|
|
@@ -280,6 +280,22 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
|
|
return -1, ENOSYS
|
|
|
}
|
|
|
|
|
|
+func direntIno(buf []byte) (uint64, bool) {
|
|
|
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
|
|
|
+}
|
|
|
+
|
|
|
+func direntReclen(buf []byte) (uint64, bool) {
|
|
|
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
|
|
|
+}
|
|
|
+
|
|
|
+func direntNamlen(buf []byte) (uint64, bool) {
|
|
|
+ reclen, ok := direntReclen(buf)
|
|
|
+ if !ok {
|
|
|
+ return 0, false
|
|
|
+ }
|
|
|
+ return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true
|
|
|
+}
|
|
|
+
|
|
|
//sys getdirent(fd int, buf []byte) (n int, err error)
|
|
|
func Getdents(fd int, buf []byte) (n int, err error) {
|
|
|
return getdirent(fd, buf)
|