From 4dcd0b7660ee76598dcdc274b2bca3bd3027d190 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Mon, 17 Dec 2018 19:18:00 -0800 Subject: [PATCH] unix: remove raw syscall from Getfsstat Use libc version instead. Update golang/go#17490 Change-Id: Ibcedccb9715961904d12fc85f69a7139b6c26658 Reviewed-on: https://go-review.googlesource.com/c/154660 Reviewed-by: Ian Lance Taylor --- unix/darwin_test.go | 1 + unix/syscall_darwin.go | 7 +------ unix/syscall_darwin_386.go | 1 + unix/syscall_darwin_amd64.go | 1 + unix/syscall_darwin_arm.go | 1 + unix/syscall_darwin_arm64.go | 1 + unix/zsyscall_darwin_386.1_12.go | 15 +++++++++++++++ unix/zsyscall_darwin_386.go | 11 +++++++++++ unix/zsyscall_darwin_386.s | 2 ++ unix/zsyscall_darwin_amd64.1_12.go | 15 +++++++++++++++ unix/zsyscall_darwin_amd64.go | 11 +++++++++++ unix/zsyscall_darwin_amd64.s | 2 ++ unix/zsyscall_darwin_arm.1_12.go | 15 +++++++++++++++ unix/zsyscall_darwin_arm.go | 11 +++++++++++ unix/zsyscall_darwin_arm.s | 2 ++ unix/zsyscall_darwin_arm64.1_12.go | 15 +++++++++++++++ unix/zsyscall_darwin_arm64.go | 11 +++++++++++ unix/zsyscall_darwin_arm64.s | 2 ++ 18 files changed, 118 insertions(+), 6 deletions(-) diff --git a/unix/darwin_test.go b/unix/darwin_test.go index f0c6e84f..34db141b 100644 --- a/unix/darwin_test.go +++ b/unix/darwin_test.go @@ -206,4 +206,5 @@ var darwinTests = [...]darwinTest{ {"mmap", libc_mmap_trampoline}, {"munmap", libc_munmap_trampoline}, {"gettimeofday", libc_gettimeofday_trampoline}, + {"getfsstat64", libc_getfsstat64_trampoline}, } diff --git a/unix/syscall_darwin.go b/unix/syscall_darwin.go index 19e4e34e..c392379d 100644 --- a/unix/syscall_darwin.go +++ b/unix/syscall_darwin.go @@ -168,12 +168,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { _p0 = unsafe.Pointer(&buf[0]) bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) } - r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return + return getfsstat(_p0, bufsize, flags) } func xattrPointer(dest []byte) *byte { diff --git a/unix/syscall_darwin_386.go b/unix/syscall_darwin_386.go index 8123d1a2..6f294f54 100644 --- a/unix/syscall_darwin_386.go +++ b/unix/syscall_darwin_386.go @@ -71,6 +71,7 @@ const SYS___SYSCTL = SYS_SYSCTL //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 //sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/unix/syscall_darwin_amd64.go b/unix/syscall_darwin_amd64.go index 8ff17293..690a5ff7 100644 --- a/unix/syscall_darwin_amd64.go +++ b/unix/syscall_darwin_amd64.go @@ -71,6 +71,7 @@ const SYS___SYSCTL = SYS_SYSCTL //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 //sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/unix/syscall_darwin_arm.go b/unix/syscall_darwin_arm.go index 0bc2f38f..db95b58d 100644 --- a/unix/syscall_darwin_arm.go +++ b/unix/syscall_darwin_arm.go @@ -68,6 +68,7 @@ const SYS___SYSCTL = SYS_SYSCTL //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) //sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT //sys Lstat(path string, stat *Stat_t) (err error) //sys Stat(path string, stat *Stat_t) (err error) //sys Statfs(path string, stat *Statfs_t) (err error) diff --git a/unix/syscall_darwin_arm64.go b/unix/syscall_darwin_arm64.go index 3a0835db..29388c3b 100644 --- a/unix/syscall_darwin_arm64.go +++ b/unix/syscall_darwin_arm64.go @@ -70,6 +70,7 @@ const SYS___SYSCTL = SYS_SYSCTL //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) //sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT //sys Lstat(path string, stat *Stat_t) (err error) //sys Stat(path string, stat *Stat_t) (err error) //sys Statfs(path string, stat *Statfs_t) (err error) diff --git a/unix/zsyscall_darwin_386.1_12.go b/unix/zsyscall_darwin_386.1_12.go index fee4a750..a14cba33 100644 --- a/unix/zsyscall_darwin_386.1_12.go +++ b/unix/zsyscall_darwin_386.1_12.go @@ -2253,6 +2253,21 @@ func libc___getdirentries64_trampoline() //go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat64_trampoline() + +//go:linkname libc_getfsstat64 libc_getfsstat64 +//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/unix/zsyscall_darwin_386.go b/unix/zsyscall_darwin_386.go index 56cff2b8..f3a91ebe 100644 --- a/unix/zsyscall_darwin_386.go +++ b/unix/zsyscall_darwin_386.go @@ -1725,6 +1725,17 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/unix/zsyscall_darwin_386.s b/unix/zsyscall_darwin_386.s index e7cdc27a..0c894ae3 100644 --- a/unix/zsyscall_darwin_386.s +++ b/unix/zsyscall_darwin_386.s @@ -268,6 +268,8 @@ TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatfs64(SB) TEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0 JMP libc___getdirentries64(SB) +TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat64(SB) TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_lstat64(SB) TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 diff --git a/unix/zsyscall_darwin_amd64.1_12.go b/unix/zsyscall_darwin_amd64.1_12.go index 61d820f0..0b109391 100644 --- a/unix/zsyscall_darwin_amd64.1_12.go +++ b/unix/zsyscall_darwin_amd64.1_12.go @@ -2253,6 +2253,21 @@ func libc___getdirentries64_trampoline() //go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat64_trampoline() + +//go:linkname libc_getfsstat64 libc_getfsstat64 +//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/unix/zsyscall_darwin_amd64.go b/unix/zsyscall_darwin_amd64.go index af28b726..67b673d6 100644 --- a/unix/zsyscall_darwin_amd64.go +++ b/unix/zsyscall_darwin_amd64.go @@ -1725,6 +1725,17 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/unix/zsyscall_darwin_amd64.s b/unix/zsyscall_darwin_amd64.s index bbe7111b..5eee7824 100644 --- a/unix/zsyscall_darwin_amd64.s +++ b/unix/zsyscall_darwin_amd64.s @@ -268,6 +268,8 @@ TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatfs64(SB) TEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0 JMP libc___getdirentries64(SB) +TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat64(SB) TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_lstat64(SB) TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 diff --git a/unix/zsyscall_darwin_arm.1_12.go b/unix/zsyscall_darwin_arm.1_12.go index 9144a82a..817e776f 100644 --- a/unix/zsyscall_darwin_arm.1_12.go +++ b/unix/zsyscall_darwin_arm.1_12.go @@ -2232,6 +2232,21 @@ func libc_fstatfs_trampoline() //go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat_trampoline() + +//go:linkname libc_getfsstat libc_getfsstat +//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/unix/zsyscall_darwin_arm.go b/unix/zsyscall_darwin_arm.go index 870bbde3..557d8429 100644 --- a/unix/zsyscall_darwin_arm.go +++ b/unix/zsyscall_darwin_arm.go @@ -1708,6 +1708,17 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/unix/zsyscall_darwin_arm.s b/unix/zsyscall_darwin_arm.s index 6101e45d..216dd217 100644 --- a/unix/zsyscall_darwin_arm.s +++ b/unix/zsyscall_darwin_arm.s @@ -266,6 +266,8 @@ TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatat(SB) TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatfs(SB) +TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0 diff --git a/unix/zsyscall_darwin_arm64.1_12.go b/unix/zsyscall_darwin_arm64.1_12.go index eb88c519..c8abdd5c 100644 --- a/unix/zsyscall_darwin_arm64.1_12.go +++ b/unix/zsyscall_darwin_arm64.1_12.go @@ -2232,6 +2232,21 @@ func libc_fstatfs_trampoline() //go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat_trampoline() + +//go:linkname libc_getfsstat libc_getfsstat +//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/unix/zsyscall_darwin_arm64.go b/unix/zsyscall_darwin_arm64.go index d579e913..42024b0b 100644 --- a/unix/zsyscall_darwin_arm64.go +++ b/unix/zsyscall_darwin_arm64.go @@ -1708,6 +1708,17 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/unix/zsyscall_darwin_arm64.s b/unix/zsyscall_darwin_arm64.s index c76ebd3f..53a47d9f 100644 --- a/unix/zsyscall_darwin_arm64.s +++ b/unix/zsyscall_darwin_arm64.s @@ -266,6 +266,8 @@ TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatat(SB) TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatfs(SB) +TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0