mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-02 15:17:31 -04:00
unix: add SysctlUvmexp on OpenBSD
OpenBSD uses sysctl with struct uvmexp to get information from the virtual memory system of the kernel. Add type Uvmexp and the SysctlUvmexp function to query this information. This will be used in github.com/tklauser/go-sysconf to get _SC_AVPHYS_PAGES on OpenBSD. Change-Id: I96ded2d1be37e5307bab55e79b13234cc93d21e6 Reviewed-on: https://go-review.googlesource.com/c/139278 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
committed by
Tobias Klauser
parent
219bb53033
commit
679a27dec1
@@ -43,6 +43,23 @@ func nametomib(name string) (mib []_C_int, err error) {
|
||||
return nil, EINVAL
|
||||
}
|
||||
|
||||
func SysctlUvmexp(name string) (*Uvmexp, error) {
|
||||
mib, err := sysctlmib(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
n := uintptr(SizeofUvmexp)
|
||||
var u Uvmexp
|
||||
if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if n != SizeofUvmexp {
|
||||
return nil, EIO
|
||||
}
|
||||
return &u, nil
|
||||
}
|
||||
|
||||
//sysnb pipe(p *[2]_C_int) (err error)
|
||||
func Pipe(p []int) (err error) {
|
||||
if len(p) != 2 {
|
||||
|
||||
Reference in New Issue
Block a user