...
Source file src/vendor/golang.org/x/net/route/syscall.go
1
2
3
4
5
6
7 package route
8
9 import (
10 "syscall"
11 "unsafe"
12 )
13
14 var zero uintptr
15
16 func sysctl(mib []int32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error {
17 var p unsafe.Pointer
18 if len(mib) > 0 {
19 p = unsafe.Pointer(&mib[0])
20 } else {
21 p = unsafe.Pointer(&zero)
22 }
23 _, _, errno := syscall.Syscall6(syscall.SYS___SYSCTL, uintptr(p), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), newlen)
24 if errno != 0 {
25 return error(errno)
26 }
27 return nil
28 }
29
View as plain text