| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 1 | /**************************************************************************** | 
|  | 2 | **************************************************************************** | 
|  | 3 | *** | 
|  | 4 | ***   This header was automatically generated from a Linux kernel header | 
|  | 5 | ***   of the same name, to make information necessary for userspace to | 
|  | 6 | ***   call into the kernel available to libc.  It contains only constants, | 
|  | 7 | ***   structures, and macros generated from the original header, and thus, | 
|  | 8 | ***   contains no copyrightable information. | 
|  | 9 | *** | 
|  | 10 | ***   To edit the content of this header, modify the corresponding | 
|  | 11 | ***   source file (e.g. under external/kernel-headers/original/) then | 
|  | 12 | ***   run bionic/libc/kernel/tools/update_all.py | 
|  | 13 | *** | 
|  | 14 | ***   Any manual change here will be lost the next time this script will | 
|  | 15 | ***   be run. You've been warned! | 
|  | 16 | *** | 
|  | 17 | **************************************************************************** | 
|  | 18 | ****************************************************************************/ | 
|  | 19 | #ifndef _UAPI__LINUX_BPF_COMMON_H__ | 
|  | 20 | #define _UAPI__LINUX_BPF_COMMON_H__ | 
|  | 21 | #define BPF_CLASS(code) ((code) & 0x07) | 
|  | 22 | #define BPF_LD 0x00 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 23 | #define BPF_LDX 0x01 | 
|  | 24 | #define BPF_ST 0x02 | 
|  | 25 | #define BPF_STX 0x03 | 
|  | 26 | #define BPF_ALU 0x04 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 27 | #define BPF_JMP 0x05 | 
|  | 28 | #define BPF_RET 0x06 | 
|  | 29 | #define BPF_MISC 0x07 | 
|  | 30 | #define BPF_SIZE(code) ((code) & 0x18) | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 31 | #define BPF_W 0x00 | 
|  | 32 | #define BPF_H 0x08 | 
|  | 33 | #define BPF_B 0x10 | 
|  | 34 | #define BPF_MODE(code) ((code) & 0xe0) | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 35 | #define BPF_IMM 0x00 | 
|  | 36 | #define BPF_ABS 0x20 | 
|  | 37 | #define BPF_IND 0x40 | 
|  | 38 | #define BPF_MEM 0x60 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 39 | #define BPF_LEN 0x80 | 
|  | 40 | #define BPF_MSH 0xa0 | 
|  | 41 | #define BPF_OP(code) ((code) & 0xf0) | 
|  | 42 | #define BPF_ADD 0x00 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 43 | #define BPF_SUB 0x10 | 
|  | 44 | #define BPF_MUL 0x20 | 
|  | 45 | #define BPF_DIV 0x30 | 
|  | 46 | #define BPF_OR 0x40 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 47 | #define BPF_AND 0x50 | 
|  | 48 | #define BPF_LSH 0x60 | 
|  | 49 | #define BPF_RSH 0x70 | 
|  | 50 | #define BPF_NEG 0x80 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 51 | #define BPF_MOD 0x90 | 
|  | 52 | #define BPF_XOR 0xa0 | 
|  | 53 | #define BPF_JA 0x00 | 
|  | 54 | #define BPF_JEQ 0x10 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 55 | #define BPF_JGT 0x20 | 
|  | 56 | #define BPF_JGE 0x30 | 
|  | 57 | #define BPF_JSET 0x40 | 
|  | 58 | #define BPF_SRC(code) ((code) & 0x08) | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 59 | #define BPF_K 0x00 | 
|  | 60 | #define BPF_X 0x08 | 
|  | 61 | #ifndef BPF_MAXINSNS | 
|  | 62 | #define BPF_MAXINSNS 4096 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 63 | #endif | 
|  | 64 | #endif |