1/*	$OpenBSD: macros.h,v 1.2 2021/12/13 16:56:50 deraadt Exp $	*/
2/* Public domain - Moritz Buhl */
3
4#include <sys/socket.h>
5#include <sys/stdint.h>
6#include <sys/sysctl.h>
7#include <sys/types.h>
8
9#include <stdbool.h>
10#include <string.h>
11#include <stdio.h>
12
13#define __arraycount(_a)	nitems(_a)
14#define __unreachable()		atf_tc_fail("unreachable")
15#define __UNCONST(a)		(a)
16
17#define __dead2 __dead
18
19/* t_chroot.c */
20#define fchroot(fd) 0
21
22/* t_clock_gettime.c */
23int sysctlbyname(char *, void *, size_t *, void *, size_t);
24
25int
26sysctlbyname(char* s, void *oldp, size_t *oldlenp, void *newp, size_t newlen)
27{
28        int mib[3], miblen;
29
30	mib[0] = CTL_KERN;
31	if (strcmp(s, "kern.timecounter.hardware") == 0) {
32		mib[1] = KERN_TIMECOUNTER;
33		mib[2] = KERN_TIMECOUNTER_HARDWARE;
34		miblen = 3;
35	} else if (strcmp(s, "kern.timecounter.choice") == 0) {
36		mib[1] = KERN_TIMECOUNTER;
37		mib[2] = KERN_TIMECOUNTER_CHOICE;
38		miblen = 3;
39	} else if (strcmp(s, "kern.securelevel") == 0) {
40		mib[1] = KERN_SECURELVL;
41		miblen = 2;
42	} else {
43		fprintf(stderr, "%s(): mib '%s' not supported\n", __func__, s);
44		return -42;
45	}
46
47        return sysctl(mib, miblen, oldp, oldlenp, newp, newlen);
48}
49
50/* t_mlock.c */
51#define MAP_WIRED	__MAP_NOREPLACE
52
53/* t_pipe2.c */
54#define O_NOSIGPIPE	0
55
56/* t_poll.c */
57#define pollts(a, b, c, e)	0
58
59/* t_sendrecv.c */
60#define SO_RERROR	SO_DEBUG
61
62/* t_write.c */
63#define _PATH_DEVZERO	"/dev/zero"
64