dirent_js.go

 1package dirent
 2
 3import (
 4	"os"
 5	"syscall"
 6	"unsafe"
 7)
 8
 9func direntIno(buf []byte) (uint64, bool) {
10	return 1, true
11}
12
13func direntReclen(buf []byte) (uint64, bool) {
14	return readInt(buf, unsafe.Offsetof(syscall.Dirent{}.Reclen), unsafe.Sizeof(syscall.Dirent{}.Reclen))
15}
16
17func direntNamlen(buf []byte) (uint64, bool) {
18	reclen, ok := direntReclen(buf)
19	if !ok {
20		return 0, false
21	}
22	return reclen - uint64(unsafe.Offsetof(syscall.Dirent{}.Name)), true
23}
24
25func direntType(buf []byte) os.FileMode {
26	return ^os.FileMode(0) // unknown
27}