1// Copyright 2019 The Go Authors. 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// +build arm64,openbsd
6
7package unix
8
9func setTimespec(sec, nsec int64) Timespec {
10	return Timespec{Sec: sec, Nsec: nsec}
11}
12
13func setTimeval(sec, usec int64) Timeval {
14	return Timeval{Sec: sec, Usec: usec}
15}
16
17func SetKevent(k *Kevent_t, fd, mode, flags int) {
18	k.Ident = uint64(fd)
19	k.Filter = int16(mode)
20	k.Flags = uint16(flags)
21}
22
23func (iov *Iovec) SetLen(length int) {
24	iov.Len = uint64(length)
25}
26
27func (msghdr *Msghdr) SetControllen(length int) {
28	msghdr.Controllen = uint32(length)
29}
30
31func (msghdr *Msghdr) SetIovlen(length int) {
32	msghdr.Iovlen = uint32(length)
33}
34
35func (cmsg *Cmsghdr) SetLen(length int) {
36	cmsg.Len = uint32(length)
37}
38
39// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
40// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
41const SYS___SYSCTL = SYS_SYSCTL
42