- compat layer extended through the full BSD API surface pf_ioctl/pf_lb/ pf_if/pf_norm/pf_table/pf_ruleset/radix/md5/sha2 need (all compile): cpumem/counters model, ifaddr/ifg groups, cred view, endian+in6 names, NAT46/64, SipHash24, mbuf_list, frag6 helpers, ip6 forward/checksum, tcp options/FSM names, taskqueue & sysctl shims (documented in docs/porting-notes.md) - pfsrc/divert_sock.c: real BSD divert(4) as runtime-registered PF_DIVERT=32 socket family inside the module (sock_register; NPROTO=AF_MAX=45 -> zero core patches); divert_packet/divert6_packet wired for pf.c - compat/pfk_ifq.c: OpenBSD 8.0 ifq framework with priq back end; hfsc and fq_codel aliases pending M5 (recorded in feature matrix as pending) - design + plan updated for the divert decision (user-requested) - stage-port.sh: single deterministic rename program for headers and .c
39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
/* PFLINUX compat: <sys/cdefs.h> minimal for queue.h/tree.h */
|
|
#ifndef _PFK_CDEFS_H
|
|
#define _PFK_CDEFS_H
|
|
#include <linux/compiler.h>
|
|
#define __BEGIN_DECLS
|
|
#define __END_DECLS
|
|
#ifndef __aligned
|
|
#define __aligned(x) __attribute__((__aligned__(x)))
|
|
#endif
|
|
#ifndef __packed
|
|
#define __packed __attribute__((__packed__))
|
|
#endif
|
|
/* NOTE: the kernel redefines 'inline' as a macro that expands to
|
|
* 'inline __gnu_inline __inline_maybe_unused notrace'; any attribute placed
|
|
* between those tokens breaks the parse. Therefore __unused expands to
|
|
* nothing here (unused *static inline* functions do not warn in GCC). */
|
|
#ifndef __unused
|
|
#define __unused
|
|
#endif
|
|
#ifndef __dead
|
|
#define __dead __attribute__((__noreturn__))
|
|
#endif
|
|
#ifndef __predict_false
|
|
#define __predict_false(x) unlikely(x)
|
|
#endif
|
|
#ifndef __predict_true
|
|
#define __predict_true(x) likely(x)
|
|
#endif
|
|
#ifndef __arraycount
|
|
#define __arraycount(a) (sizeof(a)/sizeof((a)[0]))
|
|
#endif
|
|
#ifndef __predict
|
|
#define __predict(x, y) ((y) ? likely(x) : unlikely(x))
|
|
#endif
|
|
#ifndef __restrict
|
|
#define __restrict
|
|
#endif
|
|
#endif
|