1//go:build freebsd
2
3package internal
4
5import (
6 "syscall"
7
8 "golang.org/x/sys/unix"
9)
10
11var (
12 SyscallEACCES = syscall.EACCES
13 UnixEACCES = unix.EACCES
14)
15
16var maxfiles uint64
17
18func SetRlimit() {
19 // Go 1.19 will do this automatically: https://go-review.googlesource.com/c/go/+/393354/
20 var l syscall.Rlimit
21 err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &l)
22 if err == nil && l.Cur != l.Max {
23 l.Cur = l.Max
24 syscall.Setrlimit(syscall.RLIMIT_NOFILE, &l)
25 }
26 maxfiles = uint64(l.Cur)
27}
28
29func Maxfiles() uint64 { return maxfiles }
30func Mkfifo(path string, mode uint32) error { return unix.Mkfifo(path, mode) }
31func Mknod(path string, mode uint32, dev int) error { return unix.Mknod(path, mode, uint64(dev)) }