mirror of
https://github.com/golang/go
synced 2024-11-13 19:10:22 -07:00
internal/syscall/unix: use libc calls on Darwin
Add unexported unlinkat, openat, and fstatat calls, so that the internal/syscall/unix package can use them. Change-Id: I1df81ecae6427211dd392ec68c9f020fe131a526 Reviewed-on: https://go-review.googlesource.com/c/148457 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
d0a91f2305
commit
be5f646dab
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build linux darwin openbsd netbsd dragonfly
|
// +build linux openbsd netbsd dragonfly
|
||||||
|
|
||||||
package unix
|
package unix
|
||||||
|
|
||||||
|
31
src/internal/syscall/unix/at_darwin.go
Normal file
31
src/internal/syscall/unix/at_darwin.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
package unix
|
||||||
|
|
||||||
|
import (
|
||||||
|
"syscall"
|
||||||
|
_ "unsafe" // for linkname
|
||||||
|
)
|
||||||
|
|
||||||
|
func Unlinkat(dirfd int, path string, flags int) error {
|
||||||
|
return unlinkat(dirfd, path, flags)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Openat(dirfd int, path string, flags int, perm uint32) (int, error) {
|
||||||
|
return openat(dirfd, path, flags, perm)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Fstatat(dirfd int, path string, stat *syscall.Stat_t, flags int) error {
|
||||||
|
return fstatat(dirfd, path, stat, flags)
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:linkname unlinkat syscall.unlinkat
|
||||||
|
func unlinkat(dirfd int, path string, flags int) error
|
||||||
|
|
||||||
|
//go:linkname openat syscall.openat
|
||||||
|
func openat(dirfd int, path string, flags int, perm uint32) (int, error)
|
||||||
|
|
||||||
|
//go:linkname fstatat syscall.fstatat
|
||||||
|
func fstatat(dirfd int, path string, stat *syscall.Stat_t, flags int) error
|
@ -483,7 +483,7 @@ ok:
|
|||||||
// C calling convention (use libcCall).
|
// C calling convention (use libcCall).
|
||||||
TEXT runtime·syscall6(SB),NOSPLIT,$0
|
TEXT runtime·syscall6(SB),NOSPLIT,$0
|
||||||
SUB $16, RSP // push structure pointer
|
SUB $16, RSP // push structure pointer
|
||||||
MOVD R0, (RSP)
|
MOVD R0, 8(RSP)
|
||||||
|
|
||||||
MOVD 0(R0), R12 // fn
|
MOVD 0(R0), R12 // fn
|
||||||
MOVD 16(R0), R1 // a2
|
MOVD 16(R0), R1 // a2
|
||||||
@ -492,19 +492,25 @@ TEXT runtime·syscall6(SB),NOSPLIT,$0
|
|||||||
MOVD 40(R0), R4 // a5
|
MOVD 40(R0), R4 // a5
|
||||||
MOVD 48(R0), R5 // a6
|
MOVD 48(R0), R5 // a6
|
||||||
MOVD 8(R0), R0 // a1
|
MOVD 8(R0), R0 // a1
|
||||||
|
|
||||||
|
// If fn is declared as vararg, we have to pass the vararg arguments on the stack.
|
||||||
|
// See syscall above. The only function this applies to is openat, for which the 4th
|
||||||
|
// arg must be on the stack.
|
||||||
|
MOVD R3, (RSP)
|
||||||
|
|
||||||
BL (R12)
|
BL (R12)
|
||||||
|
|
||||||
MOVD (RSP), R2 // pop structure pointer
|
MOVD 8(RSP), R2 // pop structure pointer
|
||||||
ADD $16, RSP
|
ADD $16, RSP
|
||||||
MOVD R0, 56(R2) // save r1
|
MOVD R0, 56(R2) // save r1
|
||||||
MOVD R1, 64(R2) // save r2
|
MOVD R1, 64(R2) // save r2
|
||||||
CMPW $-1, R0
|
CMPW $-1, R0
|
||||||
BNE ok
|
BNE ok
|
||||||
SUB $16, RSP // push structure pointer
|
SUB $16, RSP // push structure pointer
|
||||||
MOVD R2, (RSP)
|
MOVD R2, 8(RSP)
|
||||||
BL libc_error(SB)
|
BL libc_error(SB)
|
||||||
MOVW (R0), R0
|
MOVW (R0), R0
|
||||||
MOVD (RSP), R2 // pop structure pointer
|
MOVD 8(RSP), R2 // pop structure pointer
|
||||||
ADD $16, RSP
|
ADD $16, RSP
|
||||||
MOVD R0, 72(R2) // save err
|
MOVD R0, 72(R2) // save err
|
||||||
ok:
|
ok:
|
||||||
|
@ -344,6 +344,9 @@ func Kill(pid int, signum Signal) (err error) { return kill(pid, int(signum), 1)
|
|||||||
//sysnb exit(res int) (err error)
|
//sysnb exit(res int) (err error)
|
||||||
//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error)
|
//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error)
|
||||||
//sys fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (val int, err error) = SYS_fcntl
|
//sys fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (val int, err error) = SYS_fcntl
|
||||||
|
//sys unlinkat(fd int, path string, flags int) (err error)
|
||||||
|
//sys openat(fd int, path string, flags int, perm uint32) (fdret int, err error)
|
||||||
|
//sys fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_fstatat64
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
execveDarwin = execve
|
execveDarwin = execve
|
||||||
|
@ -1886,6 +1886,64 @@ func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (val int, err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func unlinkat(fd int, path string, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := syscall(funcPC(libc_unlinkat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_unlinkat_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_unlinkat libc_unlinkat
|
||||||
|
//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func openat(fd int, path string, flags int, perm uint32) (fdret int, err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
r0, _, e1 := syscall6(funcPC(libc_openat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(perm), 0, 0)
|
||||||
|
fdret = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_openat_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_openat libc_openat
|
||||||
|
//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_fstatat64_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_fstatat64 libc_fstatat64
|
||||||
|
//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Gettimeofday(tp *Timeval) (err error) {
|
func Gettimeofday(tp *Timeval) (err error) {
|
||||||
_, _, e1 := rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
|
_, _, e1 := rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
@ -239,5 +239,11 @@ TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
|
|||||||
JMP libc_exit(SB)
|
JMP libc_exit(SB)
|
||||||
TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_sysctl(SB)
|
JMP libc_sysctl(SB)
|
||||||
|
TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_unlinkat(SB)
|
||||||
|
TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_openat(SB)
|
||||||
|
TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_fstatat64(SB)
|
||||||
TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_gettimeofday(SB)
|
JMP libc_gettimeofday(SB)
|
||||||
|
@ -1886,6 +1886,64 @@ func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (val int, err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func unlinkat(fd int, path string, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := syscall(funcPC(libc_unlinkat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_unlinkat_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_unlinkat libc_unlinkat
|
||||||
|
//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func openat(fd int, path string, flags int, perm uint32) (fdret int, err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
r0, _, e1 := syscall6(funcPC(libc_openat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(perm), 0, 0)
|
||||||
|
fdret = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_openat_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_openat libc_openat
|
||||||
|
//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_fstatat64_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_fstatat64 libc_fstatat64
|
||||||
|
//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Gettimeofday(tp *Timeval) (err error) {
|
func Gettimeofday(tp *Timeval) (err error) {
|
||||||
_, _, e1 := rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
|
_, _, e1 := rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
@ -239,5 +239,11 @@ TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
|
|||||||
JMP libc_exit(SB)
|
JMP libc_exit(SB)
|
||||||
TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_sysctl(SB)
|
JMP libc_sysctl(SB)
|
||||||
|
TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_unlinkat(SB)
|
||||||
|
TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_openat(SB)
|
||||||
|
TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_fstatat64(SB)
|
||||||
TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_gettimeofday(SB)
|
JMP libc_gettimeofday(SB)
|
||||||
|
@ -1886,6 +1886,64 @@ func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (val int, err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func unlinkat(fd int, path string, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := syscall(funcPC(libc_unlinkat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_unlinkat_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_unlinkat libc_unlinkat
|
||||||
|
//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func openat(fd int, path string, flags int, perm uint32) (fdret int, err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
r0, _, e1 := syscall6(funcPC(libc_openat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(perm), 0, 0)
|
||||||
|
fdret = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_openat_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_openat libc_openat
|
||||||
|
//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_fstatat64_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_fstatat64 libc_fstatat64
|
||||||
|
//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Gettimeofday(tp *Timeval) (err error) {
|
func Gettimeofday(tp *Timeval) (err error) {
|
||||||
_, _, e1 := rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
|
_, _, e1 := rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
@ -223,6 +223,8 @@ TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
|
|||||||
JMP libc_unmount(SB)
|
JMP libc_unmount(SB)
|
||||||
TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_write(SB)
|
JMP libc_write(SB)
|
||||||
|
TEXT ·libc_writev_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_writev(SB)
|
||||||
TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_mmap(SB)
|
JMP libc_mmap(SB)
|
||||||
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
|
||||||
@ -237,7 +239,11 @@ TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
|
|||||||
JMP libc_exit(SB)
|
JMP libc_exit(SB)
|
||||||
TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_sysctl(SB)
|
JMP libc_sysctl(SB)
|
||||||
TEXT ·libc_writev_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_writev(SB)
|
JMP libc_unlinkat(SB)
|
||||||
|
TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_openat(SB)
|
||||||
|
TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_fstatat64(SB)
|
||||||
TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_gettimeofday(SB)
|
JMP libc_gettimeofday(SB)
|
||||||
|
@ -1886,6 +1886,64 @@ func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (val int, err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func unlinkat(fd int, path string, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := syscall(funcPC(libc_unlinkat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_unlinkat_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_unlinkat libc_unlinkat
|
||||||
|
//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func openat(fd int, path string, flags int, perm uint32) (fdret int, err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
r0, _, e1 := syscall6(funcPC(libc_openat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(perm), 0, 0)
|
||||||
|
fdret = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_openat_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_openat libc_openat
|
||||||
|
//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func libc_fstatat64_trampoline()
|
||||||
|
|
||||||
|
//go:linkname libc_fstatat64 libc_fstatat64
|
||||||
|
//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib"
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Gettimeofday(tp *Timeval) (err error) {
|
func Gettimeofday(tp *Timeval) (err error) {
|
||||||
_, _, e1 := rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
|
_, _, e1 := rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
@ -223,6 +223,8 @@ TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
|
|||||||
JMP libc_unmount(SB)
|
JMP libc_unmount(SB)
|
||||||
TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_write(SB)
|
JMP libc_write(SB)
|
||||||
|
TEXT ·libc_writev_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_writev(SB)
|
||||||
TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_mmap(SB)
|
JMP libc_mmap(SB)
|
||||||
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
|
||||||
@ -237,7 +239,11 @@ TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
|
|||||||
JMP libc_exit(SB)
|
JMP libc_exit(SB)
|
||||||
TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_sysctl(SB)
|
JMP libc_sysctl(SB)
|
||||||
TEXT ·libc_writev_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_writev(SB)
|
JMP libc_unlinkat(SB)
|
||||||
|
TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_openat(SB)
|
||||||
|
TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
|
||||||
|
JMP libc_fstatat64(SB)
|
||||||
TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
|
TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
|
||||||
JMP libc_gettimeofday(SB)
|
JMP libc_gettimeofday(SB)
|
||||||
|
Loading…
Reference in New Issue
Block a user