mirror of https://github.com/golang/go.git
Merge 9a9c35b386 into 49cdf0c42e
This commit is contained in:
commit
2ac9b2d3b0
|
|
@ -5,6 +5,7 @@
|
|||
package routebsd
|
||||
|
||||
import (
|
||||
"internal/stringslite"
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
|
|
@ -25,26 +26,9 @@ func probeRoutingStack() (int, map[int]*wireFormat) {
|
|||
// to know the underlying kernel's architecture because the
|
||||
// alignment for routing facilities are set at the build time
|
||||
// of the kernel.
|
||||
conf, _ := syscall.Sysctl("kern.conftxt")
|
||||
for i, j := 0, 0; j < len(conf); j++ {
|
||||
if conf[j] != '\n' {
|
||||
continue
|
||||
}
|
||||
s := conf[i:j]
|
||||
i = j + 1
|
||||
if len(s) > len("machine") && s[:len("machine")] == "machine" {
|
||||
s = s[len("machine"):]
|
||||
for k := 0; k < len(s); k++ {
|
||||
if s[k] == ' ' || s[k] == '\t' {
|
||||
s = s[1:]
|
||||
}
|
||||
break
|
||||
}
|
||||
if s == "amd64" {
|
||||
align = 8
|
||||
}
|
||||
break
|
||||
}
|
||||
arches, _ := syscall.Sysctl("hw.supported_archs")
|
||||
if stringslite.Index(arches, "amd64") >= 0 {
|
||||
align = 8
|
||||
}
|
||||
ifm := &wireFormat{extOff: 16, bodyOff: sizeofIfMsghdr}
|
||||
ifm.parse = ifm.parseInterfaceMessage
|
||||
|
|
|
|||
|
|
@ -4,28 +4,21 @@
|
|||
|
||||
package syscall
|
||||
|
||||
import "unsafe"
|
||||
import (
|
||||
"internal/stringslite"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
func init() {
|
||||
conf, _ := Sysctl("kern.conftxt")
|
||||
for i, j := 0, 0; j < len(conf); j++ {
|
||||
if conf[j] != '\n' {
|
||||
continue
|
||||
}
|
||||
s := conf[i:j]
|
||||
i = j + 1
|
||||
if len(s) > len("machine") && s[:len("machine")] == "machine" {
|
||||
s = s[len("machine"):]
|
||||
for k := 0; k < len(s); k++ {
|
||||
if s[k] == ' ' || s[k] == '\t' {
|
||||
s = s[1:]
|
||||
}
|
||||
break
|
||||
}
|
||||
freebsdConfArch = s
|
||||
break
|
||||
machine, _ := Sysctl("hw.machine")
|
||||
if machine == "i386" {
|
||||
arches, _ := Sysctl("hw.supported_archs")
|
||||
amd64 := "amd64"
|
||||
if stringslite.Index(arches, amd64) >= 0 {
|
||||
machine = amd64
|
||||
}
|
||||
}
|
||||
freebsdConfArch = machine
|
||||
}
|
||||
|
||||
func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
|
||||
|
|
|
|||
Loading…
Reference in New Issue