]> Cypherpunks.ru repositories - gostls13.git/commitdiff
syscall: support Getwd on all BSDs
authorTobias Klauser <tklauser@distanz.ch>
Thu, 14 Dec 2017 10:59:33 +0000 (11:59 +0100)
committerTobias Klauser <tobias.klauser@gmail.com>
Tue, 13 Feb 2018 15:41:19 +0000 (15:41 +0000)
All supported BSDs provide the SYS___GETCWD syscall which can be used to
implement syscall.Getwd. With this change os.Getwd can use a single
syscall instead of falling back to the current kludge solution on the
BSDs.

This doesn't add any new exported functions to the frozen syscall
package, only ImplementsGetwd changes to true for dragonfly, freebsd,
netbsd and openbsd.

As suggested by Ian, this follows CL 83755 which did the same for
golang.org/x/sys/unix.

Also, an entry for netbsd/arm is added to mkall.sh which was used to
generate the syscall wrappers there.

Change-Id: I84da1ec61a6b8625443699a63cde556b6442ad41
Reviewed-on: https://go-review.googlesource.com/84484
Reviewed-by: Ian Lance Taylor <iant@golang.org>
34 files changed:
api/except.txt
src/syscall/mkall.sh
src/syscall/syscall_dragonfly.go
src/syscall/syscall_freebsd.go
src/syscall/syscall_getwd_bsd.go [new file with mode: 0644]
src/syscall/syscall_netbsd.go
src/syscall/syscall_no_getwd.go [deleted file]
src/syscall/syscall_openbsd.go
src/syscall/syscall_solaris.go
src/syscall/syscall_unix.go
src/syscall/types_dragonfly.go
src/syscall/types_freebsd.go
src/syscall/types_netbsd.go
src/syscall/types_openbsd.go
src/syscall/zsyscall_dragonfly_amd64.go
src/syscall/zsyscall_freebsd_386.go
src/syscall/zsyscall_freebsd_amd64.go
src/syscall/zsyscall_freebsd_arm.go
src/syscall/zsyscall_netbsd_386.go
src/syscall/zsyscall_netbsd_amd64.go
src/syscall/zsyscall_netbsd_arm.go
src/syscall/zsyscall_openbsd_386.go
src/syscall/zsyscall_openbsd_amd64.go
src/syscall/zsyscall_openbsd_arm.go
src/syscall/ztypes_dragonfly_amd64.go
src/syscall/ztypes_freebsd_386.go
src/syscall/ztypes_freebsd_amd64.go
src/syscall/ztypes_freebsd_arm.go
src/syscall/ztypes_netbsd_386.go
src/syscall/ztypes_netbsd_amd64.go
src/syscall/ztypes_netbsd_arm.go
src/syscall/ztypes_openbsd_386.go
src/syscall/ztypes_openbsd_amd64.go
src/syscall/ztypes_openbsd_arm.go

index f8cd0faf646f67e90a673ade1645392bd7aab732..ea4fa0eb9db2d9b20fbb8e09cd22b35dbcbfb102 100644 (file)
@@ -15,25 +15,30 @@ pkg syscall (darwin-amd64-cgo), func Fchflags(string, int) error
 pkg syscall (freebsd-386), const AF_MAX = 38
 pkg syscall (freebsd-386), const DLT_MATCHING_MAX = 242
 pkg syscall (freebsd-386), const ELAST = 94
+pkg syscall (freebsd-386), const ImplementsGetwd = false
 pkg syscall (freebsd-386), const O_CLOEXEC = 0
 pkg syscall (freebsd-386), func Fchflags(string, int) error
 pkg syscall (freebsd-386-cgo), const AF_MAX = 38
 pkg syscall (freebsd-386-cgo), const DLT_MATCHING_MAX = 242
 pkg syscall (freebsd-386-cgo), const ELAST = 94
+pkg syscall (freebsd-386-cgo), const ImplementsGetwd = false
 pkg syscall (freebsd-386-cgo), const O_CLOEXEC = 0
 pkg syscall (freebsd-amd64), const AF_MAX = 38
 pkg syscall (freebsd-amd64), const DLT_MATCHING_MAX = 242
 pkg syscall (freebsd-amd64), const ELAST = 94
+pkg syscall (freebsd-amd64), const ImplementsGetwd = false
 pkg syscall (freebsd-amd64), const O_CLOEXEC = 0
 pkg syscall (freebsd-amd64), func Fchflags(string, int) error
 pkg syscall (freebsd-amd64-cgo), const AF_MAX = 38
 pkg syscall (freebsd-amd64-cgo), const DLT_MATCHING_MAX = 242
 pkg syscall (freebsd-amd64-cgo), const ELAST = 94
+pkg syscall (freebsd-amd64-cgo), const ImplementsGetwd = false
 pkg syscall (freebsd-amd64-cgo), const O_CLOEXEC = 0
 pkg syscall (freebsd-arm), const AF_MAX = 38
 pkg syscall (freebsd-arm), const BIOCGRTIMEOUT = 1074545262
 pkg syscall (freebsd-arm), const BIOCSRTIMEOUT = 2148287085
 pkg syscall (freebsd-arm), const ELAST = 94
+pkg syscall (freebsd-arm), const ImplementsGetwd = false
 pkg syscall (freebsd-arm), const O_CLOEXEC = 0
 pkg syscall (freebsd-arm), const SIOCAIFADDR = 2151967019
 pkg syscall (freebsd-arm), const SIOCGIFSTATUS = 3274991931
@@ -65,6 +70,7 @@ pkg syscall (freebsd-arm-cgo), const AF_MAX = 38
 pkg syscall (freebsd-arm-cgo), const BIOCGRTIMEOUT = 1074545262
 pkg syscall (freebsd-arm-cgo), const BIOCSRTIMEOUT = 2148287085
 pkg syscall (freebsd-arm-cgo), const ELAST = 94
+pkg syscall (freebsd-arm-cgo), const ImplementsGetwd = false
 pkg syscall (freebsd-arm-cgo), const O_CLOEXEC = 0
 pkg syscall (freebsd-arm-cgo), const SIOCAIFADDR = 2151967019
 pkg syscall (freebsd-arm-cgo), const SIOCGIFSTATUS = 3274991931
@@ -98,6 +104,12 @@ pkg syscall (linux-amd64), type Cmsghdr struct, X__cmsg_data [0]uint8
 pkg syscall (linux-amd64-cgo), type Cmsghdr struct, X__cmsg_data [0]uint8
 pkg syscall (linux-arm), type Cmsghdr struct, X__cmsg_data [0]uint8
 pkg syscall (linux-arm-cgo), type Cmsghdr struct, X__cmsg_data [0]uint8
+pkg syscall (netbsd-386), const ImplementsGetwd = false
+pkg syscall (netbsd-386-cgo), const ImplementsGetwd = false
+pkg syscall (netbsd-amd64), const ImplementsGetwd = false
+pkg syscall (netbsd-amd64-cgo), const ImplementsGetwd = false
+pkg syscall (netbsd-arm), const ImplementsGetwd = false
+pkg syscall (netbsd-arm-cgo), const ImplementsGetwd = false
 pkg syscall (netbsd-arm), const SizeofIfData = 132
 pkg syscall (netbsd-arm), func Fchflags(string, int) error
 pkg syscall (netbsd-arm), type IfMsghdr struct, Pad_cgo_1 [4]uint8
@@ -106,6 +118,7 @@ pkg syscall (netbsd-arm-cgo), func Fchflags(string, int) error
 pkg syscall (netbsd-arm-cgo), type IfMsghdr struct, Pad_cgo_1 [4]uint8
 pkg syscall (openbsd-386), const BIOCGRTIMEOUT = 1074283118
 pkg syscall (openbsd-386), const BIOCSRTIMEOUT = 2148024941
+pkg syscall (openbsd-386), const ImplementsGetwd = false
 pkg syscall (openbsd-386), const RTF_FMASK = 63496
 pkg syscall (openbsd-386), const RTM_VERSION = 4
 pkg syscall (openbsd-386), const SIOCBRDGDADDR = 2150132039
@@ -158,6 +171,7 @@ pkg syscall (openbsd-386), type Timespec struct, Sec int32
 pkg syscall (openbsd-386), type Timeval struct, Sec int32
 pkg syscall (openbsd-386-cgo), const BIOCGRTIMEOUT = 1074283118
 pkg syscall (openbsd-386-cgo), const BIOCSRTIMEOUT = 2148024941
+pkg syscall (openbsd-386-cgo), const ImplementsGetwd = false
 pkg syscall (openbsd-386-cgo), const RTF_FMASK = 63496
 pkg syscall (openbsd-386-cgo), const RTM_VERSION = 4
 pkg syscall (openbsd-386-cgo), const SIOCBRDGDADDR = 2150132039
@@ -220,6 +234,7 @@ pkg syscall (openbsd-amd64), const EFER_NXE = 2048
 pkg syscall (openbsd-amd64), const EFER_NXE ideal-int
 pkg syscall (openbsd-amd64), const EFER_SCE = 1
 pkg syscall (openbsd-amd64), const EFER_SCE ideal-int
+pkg syscall (openbsd-amd64), const ImplementsGetwd = false
 pkg syscall (openbsd-amd64), const PMC5_PIPELINE_FLUSH = 21
 pkg syscall (openbsd-amd64), const PMC5_PIPELINE_FLUSH ideal-int
 pkg syscall (openbsd-amd64), const RTF_FMASK = 63496
@@ -282,6 +297,7 @@ pkg syscall (openbsd-amd64-cgo), const EFER_NXE = 2048
 pkg syscall (openbsd-amd64-cgo), const EFER_NXE ideal-int
 pkg syscall (openbsd-amd64-cgo), const EFER_SCE = 1
 pkg syscall (openbsd-amd64-cgo), const EFER_SCE ideal-int
+pkg syscall (openbsd-amd64-cgo), const ImplementsGetwd = false
 pkg syscall (openbsd-amd64-cgo), const PMC5_PIPELINE_FLUSH = 21
 pkg syscall (openbsd-amd64-cgo), const PMC5_PIPELINE_FLUSH ideal-int
 pkg syscall (openbsd-amd64-cgo), const RTF_FMASK = 63496
index 4e68fb26fcb4ba435f4228e28ef970ce903eaf4d..cd0783e8764a87c8dd0b8efcd6e74b1ebbb1e65b 100755 (executable)
@@ -234,6 +234,12 @@ netbsd_amd64)
        mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
        mktypes="GOARCH=$GOARCH go tool cgo -godefs"
        ;;
+netbsd_arm)
+       mkerrors="$mkerrors -m32"
+       mksyscall="./mksyscall.pl -l32 -netbsd -arm"
+       mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
 openbsd_386)
        mkerrors="$mkerrors -m32"
        mksyscall="./mksyscall.pl -l32 -openbsd"
index fead9d9b48207f3df527da7689adc94c6b7ff983..82741e4969ffd085b8e5c60332307c093186408a 100644 (file)
@@ -216,6 +216,7 @@ func setattrlistTimes(path string, times []Timespec) error {
 //sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
 //sys  accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)
 //sys  utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
+//sys  getcwd(buf []byte) (n int, err error) = SYS___GETCWD
 
 /*
  * Unimplemented
index 5fb9655e5a6ac583e41930395275bd837e93ec34..c7cd6ae63781f37e019cb77dafc3ba732397e9fa 100644 (file)
@@ -220,6 +220,7 @@ func setattrlistTimes(path string, times []Timespec) error {
 //sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
 //sys  accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)
 //sys  utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
+//sys  getcwd(buf []byte) (n int, err error) = SYS___GETCWD
 
 /*
  * Unimplemented
diff --git a/src/syscall/syscall_getwd_bsd.go b/src/syscall/syscall_getwd_bsd.go
new file mode 100644 (file)
index 0000000..b143679
--- /dev/null
@@ -0,0 +1,22 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build dragonfly freebsd netbsd openbsd
+
+package syscall
+
+const ImplementsGetwd = true
+
+func Getwd() (string, error) {
+       var buf [pathMax]byte
+       _, err := getcwd(buf[:])
+       if err != nil {
+               return "", err
+       }
+       n := clen(buf[:])
+       if n < 1 {
+               return "", EINVAL
+       }
+       return string(buf[:n]), nil
+}
index c645b139b1cdd43c856f2137986a42cd14840509..d9eddc18cfdb2cdda6d45673c740c8f90f776ca3 100644 (file)
@@ -207,6 +207,7 @@ func setattrlistTimes(path string, times []Timespec) error {
 //sys  readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
 //sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
 //sys  utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
+//sys  getcwd(buf []byte) (n int, err error) = SYS___GETCWD
 
 /*
  * Unimplemented
diff --git a/src/syscall/syscall_no_getwd.go b/src/syscall/syscall_no_getwd.go
deleted file mode 100644 (file)
index 0080c5c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build dragonfly freebsd netbsd openbsd
-
-package syscall
-
-const ImplementsGetwd = false
-
-func Getwd() (string, error) { return "", ENOTSUP }
index a43d88bf7a827a3cce90bee53f47a0b03f29a665..ac8744172366cd3f9827139f10bfb84067797a9c 100644 (file)
@@ -188,6 +188,7 @@ func setattrlistTimes(path string, times []Timespec) error {
 //sys  readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
 //sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
 //sys  utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
+//sys  getcwd(buf []byte) (n int, err error) = SYS___GETCWD
 
 /*
  * Unimplemented
index 73ac12759cd5a8b408c345ac473bf01aaae35cb5..425f5122de11e7a74f5e4f8d8670e0bbac95a0fa 100644 (file)
@@ -29,15 +29,6 @@ type SockaddrDatalink struct {
        raw    RawSockaddrDatalink
 }
 
-func clen(n []byte) int {
-       for i := 0; i < len(n); i++ {
-               if n[i] == 0 {
-                       return i
-               }
-       }
-       return len(n)
-}
-
 func direntIno(buf []byte) (uint64, bool) {
        return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
 }
index 442f558ffa55251b54265e7f89dd535da9eb09ff..a6347482734faea79acc7d30ea97f026cecee290 100644 (file)
@@ -31,6 +31,16 @@ func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
 func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
 func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
 
+// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.
+func clen(n []byte) int {
+       for i := 0; i < len(n); i++ {
+               if n[i] == 0 {
+                       return i
+               }
+       }
+       return len(n)
+}
+
 // Mmap manager, for use by operating system-specific implementations.
 
 type mmapper struct {
index 5728d6762ffe5f5da1c1e2f0cb5d3ec101e92e69..0c060d932ece8c4007623787936c3b6bd55af965 100644 (file)
@@ -125,6 +125,12 @@ type Dirent C.struct_dirent
 
 type Fsid C.struct_fsid
 
+// File system limits
+
+const (
+       pathMax = C.PATH_MAX
+)
+
 // Sockets
 
 type RawSockaddrInet4 C.struct_sockaddr_in
index 6f8670a4299d1b2ac8602fe9c97fcc38226357dc..020045bf84b715ac0909b9ff06925637cd711f5a 100644 (file)
@@ -210,6 +210,12 @@ type Dirent C.struct_dirent
 
 type Fsid C.struct_fsid
 
+// File system limits
+
+const (
+       pathMax = C.PATH_MAX
+)
+
 // Sockets
 
 type RawSockaddrInet4 C.struct_sockaddr_in
index 37c5fa983415467a95532ec38b82e2475cc06010..c3497564d9d7bc978e3939e8823ce51819442ddc 100644 (file)
@@ -110,6 +110,12 @@ type Dirent C.struct_dirent
 
 type Fsid C.fsid_t
 
+// File system limits
+
+const (
+       pathMax = C.PATH_MAX
+)
+
 // Sockets
 
 type RawSockaddrInet4 C.struct_sockaddr_in
index 29d6feb006449aae0bc83473776f3efd7425c103..93456c31a0c29597a5f2a13aecb15474ea000354 100644 (file)
@@ -126,6 +126,12 @@ type Dirent C.struct_dirent
 
 type Fsid C.fsid_t
 
+// File system limits
+
+const (
+       pathMax = C.PATH_MAX
+)
+
 // Sockets
 
 type RawSockaddrInet4 C.struct_sockaddr_in
index 5eca951d045110cc8017b3bfe354522a4538913e..6154acfa422bb1ae113a1d6fe70f44c0224db565 100644 (file)
@@ -1306,3 +1306,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index 4ada995e540f256c57e7c87d6d244d8dec68b73d..81bc754d513540cd2bfdc01746f5f7cb8c5161fd 100644 (file)
@@ -1304,3 +1304,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index 5bbc5c4f34ce93b6076646cf3137031528488528..1061bb4e016f586924b2428b55f7a99292710f8c 100644 (file)
@@ -1304,3 +1304,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index 011ac0e25a20fffb56618ede64ade8b7652679a1..1cec7f89f6bf7c840328e55ef7fcb07b3e4f03c2 100644 (file)
@@ -1304,3 +1304,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index b6313d5e97c2dc6d909b27f08194dea108a2be5c..91024659481ccacd57386e3776207c4d39ffa9be 100644 (file)
@@ -1232,3 +1232,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index 3455828e464c3cdf808c7e8d61ba68150786d189..f4a46c19a2e4fe8e5ad595bfb99e5aacb2bc4c54 100644 (file)
@@ -1232,3 +1232,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index 438cfdb61997df72f7c058127677d5632367968a..b07e7775c13bb3ba762c6fa1b826aa3b52ce7fde 100644 (file)
@@ -1232,3 +1232,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index af97f3a5617b6b3523d53d94adbb977b4298185b..3a46b94fa2fa14ea0b7bfed1e9520b08c81779bb 100644 (file)
@@ -1270,3 +1270,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index 728ad6be980d163c826287f29532861b755290e2..6bca25140b7b1456acd264ca833a129d2329ca40 100644 (file)
@@ -1270,3 +1270,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index 9998a83d124884698f3b61fedb45c8b714cd5754..4ce317c1b009152e1310e6a9e6ac33833365c116 100644 (file)
@@ -1270,3 +1270,20 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(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___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
index dbbd29a63a495886586324ef0895e09e8b73fb46..1cb860822854371a28425e6af816b88a93fdc9ce 100644 (file)
@@ -143,6 +143,10 @@ type Fsid struct {
        Val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index c23bacfe3274c09676a11a6a50a413ee726430c1..c9c58f9fe7af441a075ffac0b087ceb0e15fcbd7 100644 (file)
@@ -140,6 +140,10 @@ type Fsid struct {
        Val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index 1e5822f66ab4ead0b1c6fab5e7be2f8fbee9b7b1..847527cdda28a9f8d36153a29f088e4a7ef60377 100644 (file)
@@ -140,6 +140,10 @@ type Fsid struct {
        Val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index f65a92916ca066a0e06e9d529b92ee3176cca48c..83108dd1c43c442ae9904b0a9b3585fe281f180a 100644 (file)
@@ -142,6 +142,10 @@ type Fsid struct {
        Val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index c8afb98ea17223576f5ff7cfa911230a0eaa8f72..009c55d1f2a411019b49786214a3a070d367e3fd 100644 (file)
@@ -99,6 +99,10 @@ type Fsid struct {
        X__fsid_val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index 9336fc107a7d4db9598803f15d5fa8fd368bce54..f807d984ec881e3b2c3be2bb0508ba138362b345 100644 (file)
@@ -103,6 +103,10 @@ type Fsid struct {
        X__fsid_val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index 0e4fe4a81229b6bf4b8c5847194cae0514273768..119903f817cc97acdfd5d2ef1a02167abeed6d34 100644 (file)
@@ -104,6 +104,10 @@ type Fsid struct {
        X__fsid_val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index 05e79d85a4bf178e48629ebe14134cf25ebaeede..04d53966f4609d87d664602c99b88d8d181462ff 100644 (file)
@@ -140,6 +140,10 @@ type Fsid struct {
        Val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index 8bd169c51049d9395f61b6f2da8ff430468933a0..aad787a3e497b7c140c5112860422bb95e6fbf21 100644 (file)
@@ -142,6 +142,10 @@ type Fsid struct {
        Val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8
index 0c30259f49394dce0c290c35590437b86f692456..4383b68eae23094f6b600cd56e3cc9668e07fa87 100644 (file)
@@ -140,6 +140,10 @@ type Fsid struct {
        Val [2]int32
 }
 
+const (
+       pathMax = 0x400
+)
+
 type RawSockaddrInet4 struct {
        Len    uint8
        Family uint8