diff --git a/contrib/libpcap/pcap/bpf.h b/contrib/libpcap/pcap/bpf.h --- a/contrib/libpcap/pcap/bpf.h +++ b/contrib/libpcap/pcap/bpf.h @@ -74,184 +74,11 @@ extern "C" { #endif -/* BSD style release date */ -#define BPF_RELEASE 199606 - -#ifdef MSDOS /* must be 32-bit */ -typedef long bpf_int32; -typedef unsigned long bpf_u_int32; -#else -typedef int bpf_int32; -typedef u_int bpf_u_int32; -#endif - -/* - * Alignment macros. BPF_WORDALIGN rounds up to the next - * even multiple of BPF_ALIGNMENT. - * - * Tcpdump's print-pflog.c uses this, so we define it here. - */ -#ifndef __NetBSD__ -#define BPF_ALIGNMENT sizeof(bpf_int32) -#else -#define BPF_ALIGNMENT sizeof(long) -#endif -#define BPF_WORDALIGN(x) (((x)+(BPF_ALIGNMENT-1))&~(BPF_ALIGNMENT-1)) - -/* - * Structure for "pcap_compile()", "pcap_setfilter()", etc.. - */ -struct bpf_program { - u_int bf_len; - struct bpf_insn *bf_insns; -}; - -#include - -/* - * The instruction encodings. - * - * Please inform tcpdump-workers@lists.tcpdump.org if you use any - * of the reserved values, so that we can note that they're used - * (and perhaps implement it in the reference BPF implementation - * and encourage its implementation elsewhere). - */ - -/* - * The upper 8 bits of the opcode aren't used. BSD/OS used 0x8000. - */ - -/* instruction classes */ -#define BPF_CLASS(code) ((code) & 0x07) -#define BPF_LD 0x00 -#define BPF_LDX 0x01 -#define BPF_ST 0x02 -#define BPF_STX 0x03 -#define BPF_ALU 0x04 -#define BPF_JMP 0x05 -#define BPF_RET 0x06 -#define BPF_MISC 0x07 - -/* ld/ldx fields */ -#define BPF_SIZE(code) ((code) & 0x18) -#define BPF_W 0x00 -#define BPF_H 0x08 -#define BPF_B 0x10 -/* 0x18 reserved; used by BSD/OS */ -#define BPF_MODE(code) ((code) & 0xe0) -#define BPF_IMM 0x00 -#define BPF_ABS 0x20 -#define BPF_IND 0x40 -#define BPF_MEM 0x60 -#define BPF_LEN 0x80 -#define BPF_MSH 0xa0 -/* 0xc0 reserved; used by BSD/OS */ -/* 0xe0 reserved; used by BSD/OS */ - -/* alu/jmp fields */ -#define BPF_OP(code) ((code) & 0xf0) -#define BPF_ADD 0x00 -#define BPF_SUB 0x10 -#define BPF_MUL 0x20 -#define BPF_DIV 0x30 -#define BPF_OR 0x40 -#define BPF_AND 0x50 -#define BPF_LSH 0x60 -#define BPF_RSH 0x70 -#define BPF_NEG 0x80 -#define BPF_MOD 0x90 -#define BPF_XOR 0xa0 -/* 0xb0 reserved */ -/* 0xc0 reserved */ -/* 0xd0 reserved */ -/* 0xe0 reserved */ -/* 0xf0 reserved */ - -#define BPF_JA 0x00 -#define BPF_JEQ 0x10 -#define BPF_JGT 0x20 -#define BPF_JGE 0x30 -#define BPF_JSET 0x40 -/* 0x50 reserved; used on BSD/OS */ -/* 0x60 reserved */ -/* 0x70 reserved */ -/* 0x80 reserved */ -/* 0x90 reserved */ -/* 0xa0 reserved */ -/* 0xb0 reserved */ -/* 0xc0 reserved */ -/* 0xd0 reserved */ -/* 0xe0 reserved */ -/* 0xf0 reserved */ -#define BPF_SRC(code) ((code) & 0x08) -#define BPF_K 0x00 -#define BPF_X 0x08 - -/* ret - BPF_K and BPF_X also apply */ -#define BPF_RVAL(code) ((code) & 0x18) -#define BPF_A 0x10 -/* 0x18 reserved */ - -/* misc */ -#define BPF_MISCOP(code) ((code) & 0xf8) -#define BPF_TAX 0x00 -/* 0x08 reserved */ -/* 0x10 reserved */ -/* 0x18 reserved */ -/* #define BPF_COP 0x20 NetBSD "coprocessor" extensions */ -/* 0x28 reserved */ -/* 0x30 reserved */ -/* 0x38 reserved */ -/* #define BPF_COPX 0x40 NetBSD "coprocessor" extensions */ -/* also used on BSD/OS */ -/* 0x48 reserved */ -/* 0x50 reserved */ -/* 0x58 reserved */ -/* 0x60 reserved */ -/* 0x68 reserved */ -/* 0x70 reserved */ -/* 0x78 reserved */ -#define BPF_TXA 0x80 -/* 0x88 reserved */ -/* 0x90 reserved */ -/* 0x98 reserved */ -/* 0xa0 reserved */ -/* 0xa8 reserved */ -/* 0xb0 reserved */ -/* 0xb8 reserved */ -/* 0xc0 reserved; used on BSD/OS */ -/* 0xc8 reserved */ -/* 0xd0 reserved */ -/* 0xd8 reserved */ -/* 0xe0 reserved */ -/* 0xe8 reserved */ -/* 0xf0 reserved */ -/* 0xf8 reserved */ - -/* - * The instruction data structure. - */ -struct bpf_insn { - u_short code; - u_char jt; - u_char jf; - bpf_u_int32 k; -}; - -/* - * Macros for insn array initializers. - */ -#define BPF_STMT(code, k) { (u_short)(code), 0, 0, k } -#define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k } +#include PCAP_API int bpf_validate(const struct bpf_insn *, int); PCAP_API u_int bpf_filter(const struct bpf_insn *, const u_char *, u_int, u_int); -/* - * Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST). - */ -#define BPF_MEMWORDS 16 - #ifdef __cplusplus } #endif diff --git a/contrib/libpcap/pcap/pcap.h b/contrib/libpcap/pcap/pcap.h --- a/contrib/libpcap/pcap/pcap.h +++ b/contrib/libpcap/pcap/pcap.h @@ -85,7 +85,10 @@ #endif /* _WIN32/MSDOS/UN*X */ #include /* for SOCKET, as the active-mode rpcap APIs use it */ -#include + +#ifndef PCAP_DONT_INCLUDE_PCAP_BPF_H +#include +#endif #include