sysconf_bsd.go 787 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2018 Tobias Klauser. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. //go:build darwin || dragonfly || freebsd || netbsd || openbsd
  5. // +build darwin dragonfly freebsd netbsd openbsd
  6. package sysconf
  7. import "golang.org/x/sys/unix"
  8. func pathconf(path string, name int) int64 {
  9. if val, err := unix.Pathconf(path, name); err == nil {
  10. return int64(val)
  11. }
  12. return -1
  13. }
  14. func sysctl32(name string) int64 {
  15. if val, err := unix.SysctlUint32(name); err == nil {
  16. return int64(val)
  17. }
  18. return -1
  19. }
  20. func sysctl64(name string) int64 {
  21. if val, err := unix.SysctlUint64(name); err == nil {
  22. return int64(val)
  23. }
  24. return -1
  25. }
  26. func yesno(val int64) int64 {
  27. if val == 0 {
  28. return -1
  29. }
  30. return val
  31. }