memory_linux.go 389 B

12345678910111213141516171819
  1. // Copyright (c) Tailscale Inc & contributors
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. //go:build linux
  4. package sysresources
  5. import "golang.org/x/sys/unix"
  6. func totalMemoryImpl() uint64 {
  7. var info unix.Sysinfo_t
  8. if err := unix.Sysinfo(&info); err != nil {
  9. return 0
  10. }
  11. // uint64 casts are required since these might be uint32s
  12. return uint64(info.Totalram) * uint64(info.Unit)
  13. }