Skip to content

Commit

Permalink
syscall: provide and use fcntlPtr for all BSD platforms
Browse files Browse the repository at this point in the history
Provide fcntlPtr for all BSD platforms, then use this for FcntlFlock.
This reduces darwin and openbsd specific code, as well as avoiding
the use of an indirect system call on OpenBSD.

Updates #63900

Change-Id: I5c701f0d8413fab5477b9e21381395621d1fb6d0
Reviewed-on: https://go-review.googlesource.com/c/go/+/540018
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Josh Rickmar <jrick@zettaport.com>
  • Loading branch information
4a6f656c committed Nov 7, 2023
1 parent 9d836d4 commit fd59c87
Show file tree
Hide file tree
Showing 24 changed files with 202 additions and 92 deletions.
2 changes: 2 additions & 0 deletions src/syscall/flock_darwin.go → src/syscall/flock_bsd.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build darwin || dragonfly || freebsd || netbsd || openbsd

package syscall

import "unsafe"
Expand Down
2 changes: 0 additions & 2 deletions src/syscall/flock.go → src/syscall/flock_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build linux || freebsd || openbsd || netbsd || dragonfly

package syscall

import "unsafe"
Expand Down
1 change: 1 addition & 0 deletions src/syscall/mksyscall.pl
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@ ($)
if($libc) {
if($funcname eq "") {
$sysname = substr $sysname, 4;
$sysname =~ y/A-Z/a-z/;
$funcname = "libc_$sysname";
}
$sysname = "abi.FuncPCABI0(${funcname}_trampoline)";
Expand Down
1 change: 1 addition & 0 deletions src/syscall/syscall_bsd.go
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,7 @@ func Futimes(fd int, tv []Timeval) (err error) {
}

//sys fcntl(fd int, cmd int, arg int) (val int, err error)
//sys fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (val int, err error) = SYS_FCNTL

var mapper = &mmapper{
active: make(map[*byte][]byte),
Expand Down
1 change: 0 additions & 1 deletion src/syscall/syscall_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,6 @@ func Kill(pid int, signum Signal) (err error) { return kill(pid, int(signum), 1)
//sysnb execve(path *byte, argv **byte, envp **byte) (err error)
//sysnb exit(res int) (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 unlinkat(fd int, path string, flags int) (err error)
//sys openat(fd int, path string, flags int, perm uint32) (fdret int, err error)
//sys getcwd(buf []byte) (n int, err error)
Expand Down
1 change: 0 additions & 1 deletion src/syscall/syscall_openbsd_libc.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,5 @@ func syscall9X(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
//sysnb getentropy(p []byte) (err error)
//sys fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
//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)
22 changes: 11 additions & 11 deletions src/syscall/zsyscall_darwin_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 11 additions & 11 deletions src/syscall/zsyscall_darwin_arm64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_dragonfly_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_freebsd_386.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_freebsd_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_freebsd_arm.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_freebsd_arm64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_freebsd_riscv64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_netbsd_386.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_netbsd_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_netbsd_arm.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/syscall/zsyscall_netbsd_arm64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 11 additions & 11 deletions src/syscall/zsyscall_openbsd_386.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 11 additions & 11 deletions src/syscall/zsyscall_openbsd_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit fd59c87

Please sign in to comment.