From 43bc8a9b53e212af4d24f9a4960e5c452555efb6 Mon Sep 17 00:00:00 2001 From: Joel Sing Date: Thu, 22 Dec 2011 23:42:43 +1100 Subject: [PATCH] syscall: make getdirentries work on netbsd R=golang-dev, mikioh.mikioh CC=golang-dev https://golang.org/cl/5504068 --- src/pkg/syscall/syscall_netbsd.go | 9 ++++----- src/pkg/syscall/zsyscall_netbsd_386.go | 17 +++++++++++++++++ src/pkg/syscall/zsyscall_netbsd_amd64.go | 17 +++++++++++++++++ src/pkg/syscall/ztypes_netbsd_386.go | 6 +++--- src/pkg/syscall/ztypes_netbsd_amd64.go | 6 +++--- 5 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/pkg/syscall/syscall_netbsd.go b/src/pkg/syscall/syscall_netbsd.go index eb1a78a113..f122c62249 100644 --- a/src/pkg/syscall/syscall_netbsd.go +++ b/src/pkg/syscall/syscall_netbsd.go @@ -74,13 +74,13 @@ func Pipe(p []int) (err error) { return } -// TODO -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS +//sys getdents(fd int, buf []byte) (n int, err error) +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + return getdents(fd, buf) } // TODO -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { return -1, ENOSYS } @@ -176,7 +176,6 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // __fhstatvfs140 // __fstat30 // __getcwd -// __getdents30 // __getfh30 // __getlogin // __lstat30 diff --git a/src/pkg/syscall/zsyscall_netbsd_386.go b/src/pkg/syscall/zsyscall_netbsd_386.go index 6520a7fe78..61fb8b5b4f 100644 --- a/src/pkg/syscall/zsyscall_netbsd_386.go +++ b/src/pkg/syscall/zsyscall_netbsd_386.go @@ -263,6 +263,23 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), 0) if e1 != 0 { diff --git a/src/pkg/syscall/zsyscall_netbsd_amd64.go b/src/pkg/syscall/zsyscall_netbsd_amd64.go index 94fbc83be2..e665aa0098 100644 --- a/src/pkg/syscall/zsyscall_netbsd_amd64.go +++ b/src/pkg/syscall/zsyscall_netbsd_amd64.go @@ -263,6 +263,23 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), 0) if e1 != 0 { diff --git a/src/pkg/syscall/ztypes_netbsd_386.go b/src/pkg/syscall/ztypes_netbsd_386.go index 04e7bad67a..ef9f33aeba 100644 --- a/src/pkg/syscall/ztypes_netbsd_386.go +++ b/src/pkg/syscall/ztypes_netbsd_386.go @@ -127,11 +127,11 @@ type Flock_t struct { } type Dirent struct { - Fileno uint32 + Fileno uint64 Reclen uint16 + Namlen uint16 Type uint8 - Namlen uint8 - Name [256]int8 + Name [512]int8 } type Fsid struct { diff --git a/src/pkg/syscall/ztypes_netbsd_amd64.go b/src/pkg/syscall/ztypes_netbsd_amd64.go index 1aabee5d4d..3979d54def 100644 --- a/src/pkg/syscall/ztypes_netbsd_amd64.go +++ b/src/pkg/syscall/ztypes_netbsd_amd64.go @@ -130,11 +130,11 @@ type Flock_t struct { } type Dirent struct { - Fileno uint32 + Fileno uint64 Reclen uint16 + Namlen uint16 Type uint8 - Namlen uint8 - Name [256]int8 + Name [512]int8 } type Fsid struct {