github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/utils/memory/memsysctl.go (about) 1 //go:build darwin || freebsd || openbsd || dragonfly || netbsd 2 // +build darwin freebsd openbsd dragonfly netbsd 3 4 package memory 5 6 import ( 7 "syscall" 8 "unsafe" 9 ) 10 11 func sysctlUint64(name string) (uint64, error) { 12 s, err := syscall.Sysctl(name) 13 if err != nil { 14 return 0, err 15 } 16 // hack because the string conversion above drops a \0 17 b := []byte(s) 18 if len(b) < 8 { 19 b = append(b, 0) 20 } 21 return *(*uint64)(unsafe.Pointer(&b[0])), nil 22 }