111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_FILTER_H__ 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_FILTER_H__ 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/compiler.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h> 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MAJOR_VERSION 1 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MINOR_VERSION 1 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct sock_filter 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 code; 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 jt; 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 jf; 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 k; 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct sock_fprog 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short len; 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sock_filter __user *filter; 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_CLASS(code) ((code) & 0x07) 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_LD 0x00 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_LDX 0x01 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_ST 0x02 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_STX 0x03 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_ALU 0x04 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_JMP 0x05 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_RET 0x06 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MISC 0x07 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_SIZE(code) ((code) & 0x18) 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_W 0x00 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_H 0x08 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_B 0x10 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MODE(code) ((code) & 0xe0) 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_IMM 0x00 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_ABS 0x20 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_IND 0x40 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MEM 0x60 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_LEN 0x80 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MSH 0xa0 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_OP(code) ((code) & 0xf0) 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_ADD 0x00 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_SUB 0x10 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MUL 0x20 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_DIV 0x30 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_OR 0x40 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_AND 0x50 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_LSH 0x60 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_RSH 0x70 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_NEG 0x80 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_JA 0x00 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_JEQ 0x10 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_JGT 0x20 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_JGE 0x30 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_JSET 0x40 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_SRC(code) ((code) & 0x08) 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_K 0x00 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_X 0x08 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_RVAL(code) ((code) & 0x18) 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_A 0x10 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MISCOP(code) ((code) & 0xf8) 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_TAX 0x00 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_TXA 0x80 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef BPF_MAXINSNS 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MAXINSNS 4096 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef BPF_STMT 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k } 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef BPF_JUMP 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k } 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BPF_MEMWORDS 16 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SKF_AD_OFF (-0x1000) 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SKF_AD_PROTOCOL 0 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SKF_AD_PKTTYPE 4 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SKF_AD_IFINDEX 8 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SKF_AD_MAX 12 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SKF_NET_OFF (-0x100000) 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SKF_LL_OFF (-0x200000) 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 105