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
5//go:build darwin || dragonfly || freebsd || netbsd || openbsd
6// +build darwin dragonfly freebsd netbsd openbsd
7
8package sysconf
9
10import "golang.org/x/sys/unix"
11
12func pathconf(path string, name int) int64 {
13	if val, err := unix.Pathconf(path, name); err == nil {
14		return int64(val)
15	}
16	return -1
17}
18
19func sysctl32(name string) int64 {
20	if val, err := unix.SysctlUint32(name); err == nil {
21		return int64(val)
22	}
23	return -1
24}
25
26func sysctl64(name string) int64 {
27	if val, err := unix.SysctlUint64(name); err == nil {
28		return int64(val)
29	}
30	return -1
31}
32
33func yesno(val int64) int64 {
34	if val == 0 {
35		return -1
36	}
37	return val
38}
39