// +build linux package memory import "syscall" func sysTotalMemory() uint64 { in := &syscall.Sysinfo_t{} err := syscall.Sysinfo(in) if err != nil { return 0 } // If this is a 32-bit system, then these fields are // uint32 instead of uint64. // So we always convert to uint64 to match signature. return uint64(in.Totalram) * uint64(in.Unit) } func sysFreeMemory() uint64 { in := &syscall.Sysinfo_t{} err := syscall.Sysinfo(in) if err != nil { return 0 } // If this is a 32-bit system, then these fields are // uint32 instead of uint64. // So we always convert to uint64 to match signature. return uint64(in.Freeram) * uint64(in.Unit) }