Skip to content

Commit 54452b9

Browse files
committed
syscall: call getfsstat via libc on openbsd
On openbsd, call getfsstat directly via libc, instead of calling it via syscall.Syscall. Updates #63900 Change-Id: Ib4c581160b170e6cc6017c42e959e647d97ac993 Reviewed-on: https://go-review.googlesource.com/c/go/+/538736 TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Josh Rickmar <[email protected]> Reviewed-by: Bryan Mills <[email protected]> Reviewed-by: Cherry Mui <[email protected]> Run-TryBot: Joel Sing <[email protected]>
1 parent 4e896d1 commit 54452b9

13 files changed

+107
-8
lines changed

src/syscall/syscall_openbsd.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -116,18 +116,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
116116
}
117117

118118
func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
119-
var _p0 unsafe.Pointer
119+
var bufptr *Statfs_t
120120
var bufsize uintptr
121121
if len(buf) > 0 {
122-
_p0 = unsafe.Pointer(&buf[0])
122+
bufptr = &buf[0]
123123
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
124124
}
125-
r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
126-
n = int(r0)
127-
if e1 != 0 {
128-
err = e1
129-
}
130-
return
125+
return getfsstat(bufptr, bufsize, flags)
131126
}
132127

133128
/*
@@ -212,4 +207,5 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
212207
//sys writev(fd int, iovecs []Iovec) (n uintptr, err error)
213208
//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
214209
//sys munmap(addr uintptr, length uintptr) (err error)
210+
//sys getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error)
215211
//sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)

src/syscall/zsyscall_openbsd_386.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/syscall/zsyscall_openbsd_386.s

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
207207
JMP libc_mmap(SB)
208208
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
209209
JMP libc_munmap(SB)
210+
TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
211+
JMP libc_getfsstat(SB)
210212
TEXT ·libc_utimensat_trampoline(SB),NOSPLIT,$0-0
211213
JMP libc_utimensat(SB)
212214
TEXT ·libc_syscall_trampoline(SB),NOSPLIT,$0-0

src/syscall/zsyscall_openbsd_amd64.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/syscall/zsyscall_openbsd_amd64.s

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
207207
JMP libc_mmap(SB)
208208
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
209209
JMP libc_munmap(SB)
210+
TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
211+
JMP libc_getfsstat(SB)
210212
TEXT ·libc_utimensat_trampoline(SB),NOSPLIT,$0-0
211213
JMP libc_utimensat(SB)
212214
TEXT ·libc_syscall_trampoline(SB),NOSPLIT,$0-0

src/syscall/zsyscall_openbsd_arm.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/syscall/zsyscall_openbsd_arm.s

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
207207
JMP libc_mmap(SB)
208208
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
209209
JMP libc_munmap(SB)
210+
TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
211+
JMP libc_getfsstat(SB)
210212
TEXT ·libc_utimensat_trampoline(SB),NOSPLIT,$0-0
211213
JMP libc_utimensat(SB)
212214
TEXT ·libc_syscall_trampoline(SB),NOSPLIT,$0-0

src/syscall/zsyscall_openbsd_arm64.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/syscall/zsyscall_openbsd_arm64.s

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
207207
JMP libc_mmap(SB)
208208
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
209209
JMP libc_munmap(SB)
210+
TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
211+
JMP libc_getfsstat(SB)
210212
TEXT ·libc_utimensat_trampoline(SB),NOSPLIT,$0-0
211213
JMP libc_utimensat(SB)
212214
TEXT ·libc_syscall_trampoline(SB),NOSPLIT,$0-0

src/syscall/zsyscall_openbsd_ppc64.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/syscall/zsyscall_openbsd_ppc64.s

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,9 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
310310
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
311311
CALL libc_munmap(SB)
312312
RET
313+
TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
314+
CALL libc_getfsstat(SB)
315+
RET
313316
TEXT ·libc_utimensat_trampoline(SB),NOSPLIT,$0-0
314317
CALL libc_utimensat(SB)
315318
RET

src/syscall/zsyscall_openbsd_riscv64.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/syscall/zsyscall_openbsd_riscv64.s

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
207207
JMP libc_mmap(SB)
208208
TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
209209
JMP libc_munmap(SB)
210+
TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
211+
JMP libc_getfsstat(SB)
210212
TEXT ·libc_utimensat_trampoline(SB),NOSPLIT,$0-0
211213
JMP libc_utimensat(SB)
212214
TEXT ·libc_syscall_trampoline(SB),NOSPLIT,$0-0

0 commit comments

Comments
 (0)