1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI__LINUX_FILTER_H__ 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI__LINUX_FILTER_H__ 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/compiler.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 2382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#include <linux/bpf_common.h> 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BPF_MAJOR_VERSION 1 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BPF_MINOR_VERSION 1 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct sock_filter { 27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 code; 28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 jt; 29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 jf; 30d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 k; 3182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris}; 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct sock_fprog { 33d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned short len; 34d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct sock_filter __user * filter; 3582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris}; 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BPF_RVAL(code) ((code) & 0x18) 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BPF_A 0x10 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BPF_MISCOP(code) ((code) & 0xf8) 3982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_TAX 0x00 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BPF_TXA 0x80 41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef BPF_STMT 42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define BPF_STMT(code,k) { (unsigned short) (code), 0, 0, k } 43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef BPF_JUMP 45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define BPF_JUMP(code,k,jt,jf) { (unsigned short) (code), jt, jf, k } 46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BPF_MEMWORDS 16 48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SKF_AD_OFF (- 0x1000) 49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_PROTOCOL 0 50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_PKTTYPE 4 51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_IFINDEX 8 52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_NLATTR 12 53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_NLATTR_NEST 16 54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_MARK 20 55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_QUEUE 24 56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_HATYPE 28 57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_RXHASH 32 58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_CPU 36 59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_ALU_XOR_X 40 60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_VLAN_TAG 44 61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_VLAN_TAG_PRESENT 48 62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SKF_AD_PAY_OFFSET 52 63ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define SKF_AD_RANDOM 56 6405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SKF_AD_VLAN_TPID 60 6505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SKF_AD_MAX 64 66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SKF_NET_OFF (- 0x100000) 6705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SKF_LL_OFF (- 0x200000) 6805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define BPF_NET_OFF SKF_NET_OFF 6905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define BPF_LL_OFF SKF_LL_OFF 70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 71