mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-06 00:57:18 -04:00
unix: fix Getpagesize to return actual system value on Solaris
In preparation for issues such as #10180, Getpagesize() needs to be fixed to return the actual system's page size instead of assuming it's always 4096. This is particularly important for future platform support on Solaris. Fixes #12076 Change-Id: I78205165909529215fe93ed6ba56e9c3ee1c2abb Reviewed-on: https://go-review.googlesource.com/14483 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
16e60ce682
commit
131454b560
@@ -91,6 +91,7 @@ import (
|
||||
//go:cgo_import_dynamic libsocket_setsockopt setsockopt "libsocket.so"
|
||||
//go:cgo_import_dynamic libsocket_recvfrom recvfrom "libsocket.so"
|
||||
//go:cgo_import_dynamic libsocket_recvmsg recvmsg "libsocket.so"
|
||||
//go:cgo_import_dynamic libc_sysconf sysconf "libc.so"
|
||||
|
||||
//go:linkname procgetgroups libc_getgroups
|
||||
//go:linkname procsetgroups libc_setgroups
|
||||
@@ -173,6 +174,7 @@ import (
|
||||
//go:linkname procsetsockopt libsocket_setsockopt
|
||||
//go:linkname procrecvfrom libsocket_recvfrom
|
||||
//go:linkname procrecvmsg libsocket_recvmsg
|
||||
//go:linkname procsysconf libc_sysconf
|
||||
|
||||
var (
|
||||
procgetgroups,
|
||||
@@ -255,7 +257,8 @@ var (
|
||||
procgetsockname,
|
||||
procsetsockopt,
|
||||
procrecvfrom,
|
||||
procrecvmsg syscallFunc
|
||||
procrecvmsg,
|
||||
procsysconf syscallFunc
|
||||
)
|
||||
|
||||
func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
|
||||
@@ -1083,3 +1086,12 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func sysconf(name int) (n int64, err error) {
|
||||
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsysconf)), 1, uintptr(name), 0, 0, 0, 0, 0)
|
||||
n = int64(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user