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