1*6e05f03dSanton /* $OpenBSD: kern_compat.h,v 1.16 2023/11/11 07:34:54 anton Exp $ */ 2996673c0Smpi 3996673c0Smpi #ifndef _KERN_COMPAT_H_ 4996673c0Smpi #define _KERN_COMPAT_H_ 5996673c0Smpi 6f5097eedSbluhm #define _KERNEL 7f5097eedSbluhm #include <sys/refcnt.h> 8f5097eedSbluhm #undef _KERNEL 9f5097eedSbluhm 10996673c0Smpi #include <sys/socket.h> 11996673c0Smpi #include <sys/domain.h> 12996673c0Smpi #include <sys/queue.h> 13b2ef63beSmpi #include <sys/mutex.h> 142e154ce3Sclaudio #include <sys/rwlock.h> 15b2ef63beSmpi #include <sys/task.h> 1611a02c36Smpi #include <sys/select.h> 17996673c0Smpi #include <arpa/inet.h> 18996673c0Smpi 19996673c0Smpi #include <assert.h> 20996673c0Smpi #include <err.h> 21996673c0Smpi #include <errno.h> 222e154ce3Sclaudio #include <limits.h> 23996673c0Smpi #include <stdbool.h> 24996673c0Smpi #include <stdio.h> 25996673c0Smpi #include <stdlib.h> 26996673c0Smpi #include <string.h> 27996673c0Smpi 288ceda520Smpi #include "srp_compat.h" 298ceda520Smpi 302e154ce3Sclaudio #define _KERNEL 31996673c0Smpi #define DIAGNOSTIC 32996673c0Smpi #define INET 33996673c0Smpi #define INET6 34996673c0Smpi 35996673c0Smpi #define KASSERT(x) assert(x) 36996673c0Smpi #define KERNEL_ASSERT_LOCKED() /* nothing */ 37c0e958b1Smpi #define KERNEL_LOCK() /* nothing */ 38c0e958b1Smpi #define KERNEL_UNLOCK() /* nothing */ 39996673c0Smpi 40aa678fb1Sbluhm #define NET_ASSERT_UNLOCKED() /* nothing */ 41aa678fb1Sbluhm #define NET_ASSERT_LOCKED() /* nothing */ 42aa678fb1Sbluhm #define NET_ASSERT_LOCKED_EXCLUSIVE() /* nothing */ 43aa678fb1Sbluhm 44996673c0Smpi #define panic(x...) errx(1, x) 45996673c0Smpi 46996673c0Smpi #define malloc(size, bucket, flag) calloc(1, size) 47996673c0Smpi #define mallocarray(nelems, size, bucket, flag) calloc(nelems, size) 48996673c0Smpi #define free(x, bucket, size) free(x) 49996673c0Smpi 50996673c0Smpi struct pool { 51996673c0Smpi size_t pr_size; 52996673c0Smpi }; 53996673c0Smpi 54996673c0Smpi #define pool_init(a, b, c, d, e, f, g) do { (a)->pr_size = (b); } while (0) 55b2ef63beSmpi #define pool_setipl(pp, ipl) /* nothing */ 56996673c0Smpi #define pool_get(pp, flags) malloc((pp)->pr_size, 0, 0) 57996673c0Smpi #define pool_put(pp, rp) free((rp), 0, 0) 58996673c0Smpi 59996673c0Smpi #define log(lvl, x...) fprintf(stderr, x) 60996673c0Smpi 61996673c0Smpi #define min(a, b) (a < b ? a : b) 62996673c0Smpi #define max(a, b) (a < b ? b : a) 63996673c0Smpi 64996673c0Smpi #ifndef nitems 65996673c0Smpi #define nitems(_a) (sizeof((_a)) / sizeof((_a)[0])) 66996673c0Smpi #endif 67996673c0Smpi 681e28b427Smpi #ifndef IPL_NONE 691e28b427Smpi #define IPL_NONE 0 701e28b427Smpi #endif 717087031dSbluhm #define mtx_enter(_mtx) /* nothing */ 727087031dSbluhm #define mtx_leave(_mtx) /* nothing */ 73b2ef63beSmpi 74b2ef63beSmpi #define task_add(_tq, _t) ((_t)->t_func((_t)->t_arg)) 75b2ef63beSmpi 76996673c0Smpi extern struct domain *domains[]; 77996673c0Smpi 78b2ef63beSmpi #define IPL_SOFTNET 0 79b2ef63beSmpi 8059a3c59fSmpi #define rw_init(rwl, name) 8159a3c59fSmpi #define rw_enter_write(rwl) 8259a3c59fSmpi #define rw_exit_write(rwl) 8359a3c59fSmpi #define rw_assert_wrlock(rwl) 8459a3c59fSmpi 85eb899f7fSmpi #define SET(t, f) ((t) |= (f)) 86eb899f7fSmpi #define CLR(t, f) ((t) &= ~(f)) 87eb899f7fSmpi #define ISSET(t, f) ((t) & (f)) 88eb899f7fSmpi 89eb899f7fSmpi struct rtentry; 90eb899f7fSmpi 91*6e05f03dSanton int rt_hash(struct rtentry *, const struct sockaddr *, uint32_t *); 92eb899f7fSmpi 93996673c0Smpi #endif /* _KERN_COMPAT_H_ */ 94