Imports #
"syscall"
"unsafe"
_ "unsafe"
"syscall"
"syscall"
"unsafe"
"syscall"
"unsafe"
"syscall"
"unsafe"
"syscall"
"runtime"
"syscall"
"runtime"
"syscall"
"runtime"
"syscall"
"syscall"
"syscall"
"syscall"
"errors"
"os"
"syscall"
"syscall"
"unsafe"
_ "unsafe"
"syscall"
"syscall"
"unsafe"
"syscall"
"unsafe"
"syscall"
"unsafe"
"syscall"
"runtime"
"syscall"
"runtime"
"syscall"
"runtime"
"syscall"
"syscall"
"syscall"
"syscall"
"errors"
"os"
"syscall"
const RIBTypeInterface RIBType = syscall.NET_RT_IFLISTconst RIBTypeRoute RIBType = syscall.NET_RT_DUMPconst SysMetrics SysType = iotaconst SysStatsvar bigEndian binaryBigEndianvar compatFreeBSD32 boolvar errInvalidAddr = *ast.CallExprvar errInvalidMessage = *ast.CallExprvar errMessageMismatch = *ast.CallExprvar errMessageTooShort = *ast.CallExprvar errShortBuffer = *ast.CallExprvar errUnsupportedMessage = *ast.CallExprvar kernelAlign intvar littleEndian binaryLittleEndianvar nativeEndian binaryByteOrdervar rtmVersion byteconst sizeofIfAnnouncemsghdrDragonFlyBSD4 = 0x18const sizeofIfAnnouncemsghdrFreeBSD10 = 0x18const sizeofIfAnnouncemsghdrFreeBSD10 = 0x18const sizeofIfAnnouncemsghdrFreeBSD10 = 0x18const sizeofIfAnnouncemsghdrFreeBSD10 = 0x18const sizeofIfAnnouncemsghdrFreeBSD10 = 0x18const sizeofIfAnnouncemsghdrFreeBSD10Emu = 0x18const sizeofIfAnnouncemsghdrFreeBSD10Emu = 0x18const sizeofIfAnnouncemsghdrFreeBSD10Emu = 0x18const sizeofIfAnnouncemsghdrFreeBSD10Emu = 0x18const sizeofIfAnnouncemsghdrFreeBSD10Emu = 0x18const sizeofIfAnnouncemsghdrNetBSD7 = 0x18const sizeofIfData64Darwin15 = 0x80const sizeofIfDataDarwin15 = 0x60const sizeofIfDataFreeBSD10 = 0x98const sizeofIfDataFreeBSD10 = 0x98const sizeofIfDataFreeBSD10 = 0x60const sizeofIfDataFreeBSD10 = 0x98const sizeofIfDataFreeBSD10 = 0x54const sizeofIfDataFreeBSD10Emu = 0x98const sizeofIfDataFreeBSD10Emu = 0x98const sizeofIfDataFreeBSD10Emu = 0x98const sizeofIfDataFreeBSD10Emu = 0x60const sizeofIfDataFreeBSD10Emu = 0x98const sizeofIfDataFreeBSD11 = 0x98const sizeofIfDataFreeBSD11 = 0x98const sizeofIfDataFreeBSD11 = 0x98const sizeofIfDataFreeBSD11 = 0x98const sizeofIfDataFreeBSD11 = 0x98const sizeofIfDataFreeBSD11Emu = 0x98const sizeofIfDataFreeBSD11Emu = 0x98const sizeofIfDataFreeBSD11Emu = 0x98const sizeofIfDataFreeBSD11Emu = 0x98const sizeofIfDataFreeBSD11Emu = 0x98const sizeofIfDataFreeBSD7 = 0x98const sizeofIfDataFreeBSD7 = 0x50const sizeofIfDataFreeBSD7 = 0x60const sizeofIfDataFreeBSD7 = 0x98const sizeofIfDataFreeBSD7 = 0x98const sizeofIfDataFreeBSD7Emu = 0x98const sizeofIfDataFreeBSD7Emu = 0x98const sizeofIfDataFreeBSD7Emu = 0x98const sizeofIfDataFreeBSD7Emu = 0x98const sizeofIfDataFreeBSD7Emu = 0x60const sizeofIfDataFreeBSD8 = 0x98const sizeofIfDataFreeBSD8 = 0x98const sizeofIfDataFreeBSD8 = 0x50const sizeofIfDataFreeBSD8 = 0x98const sizeofIfDataFreeBSD8 = 0x60const sizeofIfDataFreeBSD8Emu = 0x98const sizeofIfDataFreeBSD8Emu = 0x98const sizeofIfDataFreeBSD8Emu = 0x60const sizeofIfDataFreeBSD8Emu = 0x98const sizeofIfDataFreeBSD8Emu = 0x98const sizeofIfDataFreeBSD9 = 0x98const sizeofIfDataFreeBSD9 = 0x60const sizeofIfDataFreeBSD9 = 0x98const sizeofIfDataFreeBSD9 = 0x50const sizeofIfDataFreeBSD9 = 0x98const sizeofIfDataFreeBSD9Emu = 0x98const sizeofIfDataFreeBSD9Emu = 0x98const sizeofIfDataFreeBSD9Emu = 0x98const sizeofIfDataFreeBSD9Emu = 0x98const sizeofIfDataFreeBSD9Emu = 0x60const sizeofIfMsghdr2Darwin15 = 0xa0const sizeofIfMsghdrDarwin15 = 0x70const sizeofIfMsghdrDragonFlyBSD4 = 0xb0const sizeofIfMsghdrFreeBSD10 = 0x70const sizeofIfMsghdrFreeBSD10 = 0xa8const sizeofIfMsghdrFreeBSD10 = 0xa8const sizeofIfMsghdrFreeBSD10 = 0x64const sizeofIfMsghdrFreeBSD10 = 0xa8const sizeofIfMsghdrFreeBSD10Emu = 0xa8const sizeofIfMsghdrFreeBSD10Emu = 0x70const sizeofIfMsghdrFreeBSD10Emu = 0xa8const sizeofIfMsghdrFreeBSD10Emu = 0xa8const sizeofIfMsghdrFreeBSD10Emu = 0xa8const sizeofIfMsghdrFreeBSD11 = 0xa8const sizeofIfMsghdrFreeBSD11 = 0xa8const sizeofIfMsghdrFreeBSD11 = 0xa8const sizeofIfMsghdrFreeBSD11 = 0xa8const sizeofIfMsghdrFreeBSD11 = 0xa8const sizeofIfMsghdrFreeBSD11Emu = 0xa8const sizeofIfMsghdrFreeBSD11Emu = 0xa8const sizeofIfMsghdrFreeBSD11Emu = 0xa8const sizeofIfMsghdrFreeBSD11Emu = 0xa8const sizeofIfMsghdrFreeBSD11Emu = 0xa8const sizeofIfMsghdrFreeBSD7 = 0xa8const sizeofIfMsghdrFreeBSD7 = 0xa8const sizeofIfMsghdrFreeBSD7 = 0xa8const sizeofIfMsghdrFreeBSD7 = 0x70const sizeofIfMsghdrFreeBSD7 = 0x60const sizeofIfMsghdrFreeBSD7Emu = 0xa8const sizeofIfMsghdrFreeBSD7Emu = 0x70const sizeofIfMsghdrFreeBSD7Emu = 0xa8const sizeofIfMsghdrFreeBSD7Emu = 0xa8const sizeofIfMsghdrFreeBSD7Emu = 0xa8const sizeofIfMsghdrFreeBSD8 = 0x70const sizeofIfMsghdrFreeBSD8 = 0xa8const sizeofIfMsghdrFreeBSD8 = 0xa8const sizeofIfMsghdrFreeBSD8 = 0xa8const sizeofIfMsghdrFreeBSD8 = 0x60const sizeofIfMsghdrFreeBSD8Emu = 0xa8const sizeofIfMsghdrFreeBSD8Emu = 0xa8const sizeofIfMsghdrFreeBSD8Emu = 0x70const sizeofIfMsghdrFreeBSD8Emu = 0xa8const sizeofIfMsghdrFreeBSD8Emu = 0xa8const sizeofIfMsghdrFreeBSD9 = 0xa8const sizeofIfMsghdrFreeBSD9 = 0x60const sizeofIfMsghdrFreeBSD9 = 0x70const sizeofIfMsghdrFreeBSD9 = 0xa8const sizeofIfMsghdrFreeBSD9 = 0xa8const sizeofIfMsghdrFreeBSD9Emu = 0x70const sizeofIfMsghdrFreeBSD9Emu = 0xa8const sizeofIfMsghdrFreeBSD9Emu = 0xa8const sizeofIfMsghdrFreeBSD9Emu = 0xa8const sizeofIfMsghdrFreeBSD9Emu = 0xa8const sizeofIfMsghdrNetBSD7 = 0x98const sizeofIfMsghdrlFreeBSD10 = 0xb0const sizeofIfMsghdrlFreeBSD10 = 0xb0const sizeofIfMsghdrlFreeBSD10 = 0x68const sizeofIfMsghdrlFreeBSD10 = 0x68const sizeofIfMsghdrlFreeBSD10 = 0xb0const sizeofIfMsghdrlFreeBSD10Emu = 0xb0const sizeofIfMsghdrlFreeBSD10Emu = 0xb0const sizeofIfMsghdrlFreeBSD10Emu = 0x68const sizeofIfMsghdrlFreeBSD10Emu = 0xb0const sizeofIfMsghdrlFreeBSD10Emu = 0xb0const sizeofIfaMsghdrDarwin15 = 0x14const sizeofIfaMsghdrDragonFlyBSD4 = 0x14const sizeofIfaMsghdrDragonFlyBSD58 = 0x18const sizeofIfaMsghdrFreeBSD10 = 0x14const sizeofIfaMsghdrFreeBSD10 = 0x14const sizeofIfaMsghdrFreeBSD10 = 0x14const sizeofIfaMsghdrFreeBSD10 = 0x14const sizeofIfaMsghdrFreeBSD10 = 0x14const sizeofIfaMsghdrFreeBSD10Emu = 0x14const sizeofIfaMsghdrFreeBSD10Emu = 0x14const sizeofIfaMsghdrFreeBSD10Emu = 0x14const sizeofIfaMsghdrFreeBSD10Emu = 0x14const sizeofIfaMsghdrFreeBSD10Emu = 0x14const sizeofIfaMsghdrNetBSD7 = 0x18const sizeofIfaMsghdrlFreeBSD10 = 0xb0const sizeofIfaMsghdrlFreeBSD10 = 0x6cconst sizeofIfaMsghdrlFreeBSD10 = 0x6cconst sizeofIfaMsghdrlFreeBSD10 = 0xb0const sizeofIfaMsghdrlFreeBSD10 = 0xb0const sizeofIfaMsghdrlFreeBSD10Emu = 0xb0const sizeofIfaMsghdrlFreeBSD10Emu = 0xb0const sizeofIfaMsghdrlFreeBSD10Emu = 0xb0const sizeofIfaMsghdrlFreeBSD10Emu = 0x6cconst sizeofIfaMsghdrlFreeBSD10Emu = 0xb0const sizeofIfmaMsghdr2Darwin15 = 0x14const sizeofIfmaMsghdrDarwin15 = 0x10const sizeofIfmaMsghdrDragonFlyBSD4 = 0x10const sizeofIfmaMsghdrFreeBSD10 = 0x10const sizeofIfmaMsghdrFreeBSD10 = 0x10const sizeofIfmaMsghdrFreeBSD10 = 0x10const sizeofIfmaMsghdrFreeBSD10 = 0x10const sizeofIfmaMsghdrFreeBSD10 = 0x10const sizeofIfmaMsghdrFreeBSD10Emu = 0x10const sizeofIfmaMsghdrFreeBSD10Emu = 0x10const sizeofIfmaMsghdrFreeBSD10Emu = 0x10const sizeofIfmaMsghdrFreeBSD10Emu = 0x10const sizeofIfmaMsghdrFreeBSD10Emu = 0x10const sizeofRtMetricsDarwin15 = 0x38const sizeofRtMetricsDragonFlyBSD4 = 0x70const sizeofRtMetricsFreeBSD10 = 0x70const sizeofRtMetricsFreeBSD10 = 0x38const sizeofRtMetricsFreeBSD10 = 0x70const sizeofRtMetricsFreeBSD10 = 0x38const sizeofRtMetricsFreeBSD10 = 0x70const sizeofRtMetricsFreeBSD10Emu = 0x70const sizeofRtMetricsFreeBSD10Emu = 0x70const sizeofRtMetricsFreeBSD10Emu = 0x70const sizeofRtMetricsFreeBSD10Emu = 0x38const sizeofRtMetricsFreeBSD10Emu = 0x70const sizeofRtMetricsNetBSD7 = 0x50const sizeofRtMsghdr = 0x60const sizeofRtMsghdr2Darwin15 = 0x5cconst sizeofRtMsghdrDarwin15 = 0x5cconst sizeofRtMsghdrDragonFlyBSD4 = 0x98const sizeofRtMsghdrFreeBSD10 = 0x5cconst sizeofRtMsghdrFreeBSD10 = 0x98const sizeofRtMsghdrFreeBSD10 = 0x98const sizeofRtMsghdrFreeBSD10 = 0x98const sizeofRtMsghdrFreeBSD10 = 0x5cconst sizeofRtMsghdrFreeBSD10Emu = 0x98const sizeofRtMsghdrFreeBSD10Emu = 0x5cconst sizeofRtMsghdrFreeBSD10Emu = 0x98const sizeofRtMsghdrFreeBSD10Emu = 0x98const sizeofRtMsghdrFreeBSD10Emu = 0x98const sizeofRtMsghdrNetBSD7 = 0x78const sizeofSockaddrInet = 0x10const sizeofSockaddrInet = 0x10const sizeofSockaddrInet = 0x10const sizeofSockaddrInet = 0x10const sizeofSockaddrInet = 0x10const sizeofSockaddrInet = 0x10const sizeofSockaddrInet = 0x10const sizeofSockaddrInet = 0x10const sizeofSockaddrInet = 0x10const sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrInet6 = 0x1cconst sizeofSockaddrStorage = 0x80const sizeofSockaddrStorage = 0x80const sizeofSockaddrStorage = 0x80const sizeofSockaddrStorage = 0x80const sizeofSockaddrStorage = 0x80const sizeofSockaddrStorage = 0x80const sizeofSockaddrStorage = 0x80const sizeofSockaddrStorage = 0x100const sizeofSockaddrStorage = 0x80var wireFormats map[int]*wireFormatA RIBType represents a type of routing information base.
type RIBType intA SysType represents a type of operating system-specific information.
type SysType intAn Addr represents an address associated with packet routing.
type Addr interface {
Family() int
}A Message represents a routing message.
type Message interface {
Sys() []Sys
}A Sys reprensents operating system-specific information.
type Sys interface {
SysType() SysType
}type binaryByteOrder interface {
Uint16([]byte) uint16
Uint32([]byte) uint32
PutUint16([]byte, uint16)
PutUint32([]byte, uint32)
Uint64([]byte) uint64
}A DefaultAddr represents an address of various operating system-specific features.
type DefaultAddr struct {
af int
Raw []byte
}An Inet4Addr represents an internet address for IPv4.
type Inet4Addr struct {
IP [4]byte
}An Inet6Addr represents an internet address for IPv6.
type Inet6Addr struct {
IP [16]byte
ZoneID int
}An InterfaceAddrMessage represents an interface address message.
type InterfaceAddrMessage struct {
Version int
Type int
Flags int
Index int
Addrs []Addr
raw []byte
}An InterfaceAnnounceMessage represents an interface announcement message.
type InterfaceAnnounceMessage struct {
Version int
Type int
Index int
Name string
What int
raw []byte
}An InterfaceMessage represents an interface message.
type InterfaceMessage struct {
Version int
Type int
Flags int
Index int
Name string
Addrs []Addr
extOff int
raw []byte
}InterfaceMetrics represents interface metrics.
type InterfaceMetrics struct {
Type int
MTU int
}InterfaceMetrics represents interface metrics.
type InterfaceMetrics struct {
Type int
MTU int
}InterfaceMetrics represents interface metrics.
type InterfaceMetrics struct {
Type int
MTU int
}RouteMetrics represents route metrics.
type InterfaceMetrics struct {
Type int
MTU int
}InterfaceMetrics represents interface metrics.
type InterfaceMetrics struct {
Type int
MTU int
}An InterfaceMulticastAddrMessage represents an interface multicast address message.
type InterfaceMulticastAddrMessage struct {
Version int
Type int
Flags int
Index int
Addrs []Addr
raw []byte
}A LinkAddr represents a link-layer address.
type LinkAddr struct {
Index int
Name string
Addr []byte
}A RouteMessage represents a message conveying an address prefix, a
nexthop address and an output interface.
Unlike other messages, this message can be used to query adjacency
information for the given address prefix, to add a new route, and
to delete or modify the existing route from the routing information
base inside the kernel by writing and reading route messages on a
routing socket.
For the manipulation of routing information, the route message must
contain appropriate fields that include:
Version       = 
type RouteMessage struct {
Version int
Type int
Flags int
Index int
ID uintptr
Seq int
Err error
Addrs []Addr
extOff int
raw []byte
}RouteMetrics represents route metrics.
type RouteMetrics struct {
PathMTU int
}RouteMetrics represents route metrics.
type RouteMetrics struct {
PathMTU int
}RouteMetrics represents route metrics.
type RouteMetrics struct {
PathMTU int
}RouteMetrics represents route metrics.
type RouteMetrics struct {
PathMTU int
}RouteMetrics represents route metrics.
type RouteMetrics struct {
PathMTU int
}type binaryBigEndian struct {
}type binaryLittleEndian struct {
}type wireFormat struct {
extOff int
bodyOff int
parse func(RIBType, []byte) (Message, error)
}Family implements the Family method of Addr interface.
func (a *LinkAddr) Family() intFamily implements the Family method of Addr interface.
func (a *Inet4Addr) Family() intFamily implements the Family method of Addr interface.
func (a *Inet6Addr) Family() intFamily implements the Family method of Addr interface.
func (a *DefaultAddr) Family() intFetchRIB fetches a routing information base from the operating system. The provided af must be an address family. The provided arg must be a RIBType-specific argument. When RIBType is related to routes, arg might be a set of route flags. When RIBType is related to network interfaces, arg might be an interface index or a set of interface flags. In most cases, zero means a wildcard.
func FetchRIB(af int, typ RIBType, arg int) ([]byte, error)Marshal returns the binary encoding of m.
func (m *RouteMessage) Marshal() ([]byte, error)ParseRIB parses b as a routing information base and returns a list of routing messages.
func ParseRIB(typ RIBType, b []byte) ([]Message, error)func (binaryLittleEndian) PutUint16(b []byte, v uint16)func (binaryBigEndian) PutUint16(b []byte, v uint16)func (binaryLittleEndian) PutUint32(b []byte, v uint32)func (binaryBigEndian) PutUint32(b []byte, v uint32)Sys implements the Sys method of Message interface.
func (m *RouteMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *RouteMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *RouteMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *InterfaceMulticastAddrMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *InterfaceMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *InterfaceMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *InterfaceMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *RouteMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *InterfaceMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *RouteMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *InterfaceMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *InterfaceAnnounceMessage) Sys() []SysSys implements the Sys method of Message interface.
func (m *InterfaceAddrMessage) Sys() []SysSysType implements the SysType method of Sys interface.
func (rmx *RouteMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (imx *InterfaceMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (imx *InterfaceMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (rmx *RouteMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (rmx *RouteMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (imx *InterfaceMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (rmx *RouteMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (imx *InterfaceMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (imx *InterfaceMetrics) SysType() SysTypeSysType implements the SysType method of Sys interface.
func (rmx *RouteMetrics) SysType() SysTypefunc (binaryLittleEndian) Uint16(b []byte) uint16func (binaryBigEndian) Uint16(b []byte) uint16func (binaryLittleEndian) Uint32(b []byte) uint32func (binaryBigEndian) Uint32(b []byte) uint32func (binaryLittleEndian) Uint64(b []byte) uint64func (binaryBigEndian) Uint64(b []byte) uint64func addrsSpace(as []Addr) intfunc init()func (a *Inet6Addr) lenAndSpace() (int, int)func (a *LinkAddr) lenAndSpace() (int, int)func (a *DefaultAddr) lenAndSpace() (int, int)func (a *Inet4Addr) lenAndSpace() (int, int)func (a *Inet4Addr) marshal(b []byte) (int, error)func (m *RouteMessage) marshal() ([]byte, error)func (a *DefaultAddr) marshal(b []byte) (int, error)func (a *LinkAddr) marshal(b []byte) (int, error)func (m *RouteMessage) marshal() ([]byte, error)func (a *Inet6Addr) marshal(b []byte) (int, error)marshalAddrs marshals as and returns a bitmap indicating which address is stored in b.
func marshalAddrs(b []byte, as []Addr) (uint, error)func parseAddrs(attrs uint, fn func(int, []byte) (int, Addr, error), b []byte) ([]Addr, error)func parseDefaultAddr(b []byte) (Addr, error)parseInetAddr parses b as an internet address for IPv4 or IPv6.
func parseInetAddr(af int, b []byte) (Addr, error)func (w *wireFormat) parseInterfaceAddrMessage(_ RIBType, b []byte) (Message, error)func (*wireFormat) parseInterfaceAddrMessage(_ RIBType, b []byte) (Message, error)func (w *wireFormat) parseInterfaceAddrMessage(typ RIBType, b []byte) (Message, error)func (*wireFormat) parseInterfaceAnnounceMessage(_ RIBType, b []byte) (Message, error)func (w *wireFormat) parseInterfaceAnnounceMessage(_ RIBType, b []byte) (Message, error)func (*wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error)func (w *wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error)func (w *wireFormat) parseInterfaceMessage(typ RIBType, b []byte) (Message, error)func (w *wireFormat) parseInterfaceMulticastAddrMessage(_ RIBType, b []byte) (Message, error)parseKernelInetAddr parses b as an internet address in conventional BSD kernel form.
func parseKernelInetAddr(af int, b []byte) (int, Addr, error)parseKernelLinkAddr parses b as a link-layer address in conventional BSD kernel form.
func parseKernelLinkAddr(_ int, b []byte) (int, Addr, error)func parseLinkAddr(b []byte) (Addr, error)func (*wireFormat) parseRouteMessage(_ RIBType, b []byte) (Message, error)func (w *wireFormat) parseRouteMessage(typ RIBType, b []byte) (Message, error)func (typ RIBType) parseable() boolfunc (typ RIBType) parseable() boolfunc (typ RIBType) parseable() boolfunc (typ RIBType) parseable() boolfunc (typ RIBType) parseable() boolfunc probeRoutingStack() (int, map[int]*wireFormat)func probeRoutingStack() (int, map[int]*wireFormat)func probeRoutingStack() (int, map[int]*wireFormat)func probeRoutingStack() (int, map[int]*wireFormat)func probeRoutingStack() (int, map[int]*wireFormat)func roundup(l int) intgo:linkname sysctl syscall.sysctl
func sysctl(mib []int32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) errorGenerated with Arrow