From d86ddebd051d29d5710ac5f7bf17b99b47fbca50 Mon Sep 17 00:00:00 2001 From: Joel Sing Date: Thu, 22 Dec 2011 23:42:43 +1100 Subject: syscall: make getdirentries work on netbsd R=golang-dev, mikioh.mikioh CC=golang-dev http://codereview.appspot.com/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 eb1a78a11..f122c6224 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 6520a7fe7..61fb8b5b4 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 94fbc83be..e665aa009 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 04e7bad67..ef9f33aeb 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 1aabee5d4..3979d54de 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 { -- cgit v1.2.1