This commit is contained in:
Konstantin Belousov 2025-06-20 15:31:56 -04:00 committed by GitHub
commit 2ac9b2d3b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 38 deletions

View File

@ -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

View File

@ -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 {