| /**************************************************************************** | |
| **************************************************************************** | |
| *** | |
| *** This header was automatically generated from a Linux kernel header | |
| *** of the same name, to make information necessary for userspace to | |
| *** call into the kernel available to libc. It contains only constants, | |
| *** structures, and macros generated from the original header, and thus, | |
| *** contains no copyrightable information. | |
| *** | |
| *** To edit the content of this header, modify the corresponding | |
| *** source file (e.g. under external/kernel-headers/original/) then | |
| *** run bionic/libc/kernel/tools/update_all.py | |
| *** | |
| *** Any manual change here will be lost the next time this script will | |
| *** be run. You've been warned! | |
| *** | |
| **************************************************************************** | |
| ****************************************************************************/ | |
| #ifndef _UAPI__LINUX_BPF_H__ | |
| #define _UAPI__LINUX_BPF_H__ | |
| #include <linux/types.h> | |
| #include <linux/bpf_common.h> | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| #define BPF_ALU64 0x07 | |
| #define BPF_DW 0x18 | |
| #define BPF_XADD 0xc0 | |
| #define BPF_MOV 0xb0 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| #define BPF_ARSH 0xc0 | |
| #define BPF_END 0xd0 | |
| #define BPF_TO_LE 0x00 | |
| #define BPF_TO_BE 0x08 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| #define BPF_FROM_LE BPF_TO_LE | |
| #define BPF_FROM_BE BPF_TO_BE | |
| #define BPF_JNE 0x50 | |
| #define BPF_JSGT 0x60 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| #define BPF_JSGE 0x70 | |
| #define BPF_CALL 0x80 | |
| #define BPF_EXIT 0x90 | |
| enum { | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_REG_0 = 0, | |
| BPF_REG_1, | |
| BPF_REG_2, | |
| BPF_REG_3, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_REG_4, | |
| BPF_REG_5, | |
| BPF_REG_6, | |
| BPF_REG_7, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_REG_8, | |
| BPF_REG_9, | |
| BPF_REG_10, | |
| __MAX_BPF_REG, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| }; | |
| #define MAX_BPF_REG __MAX_BPF_REG | |
| struct bpf_insn { | |
| __u8 code; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __u8 dst_reg : 4; | |
| __u8 src_reg : 4; | |
| __s16 off; | |
| __s32 imm; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| }; | |
| enum bpf_cmd { | |
| BPF_MAP_CREATE, | |
| BPF_MAP_LOOKUP_ELEM, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_MAP_UPDATE_ELEM, | |
| BPF_MAP_DELETE_ELEM, | |
| BPF_MAP_GET_NEXT_KEY, | |
| BPF_PROG_LOAD, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_OBJ_PIN, | |
| BPF_OBJ_GET, | |
| }; | |
| enum bpf_map_type { | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_MAP_TYPE_UNSPEC, | |
| BPF_MAP_TYPE_HASH, | |
| BPF_MAP_TYPE_ARRAY, | |
| BPF_MAP_TYPE_PROG_ARRAY, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_MAP_TYPE_PERF_EVENT_ARRAY, | |
| }; | |
| enum bpf_prog_type { | |
| BPF_PROG_TYPE_UNSPEC, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_PROG_TYPE_SOCKET_FILTER, | |
| BPF_PROG_TYPE_KPROBE, | |
| BPF_PROG_TYPE_SCHED_CLS, | |
| BPF_PROG_TYPE_SCHED_ACT, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| }; | |
| #define BPF_PSEUDO_MAP_FD 1 | |
| #define BPF_ANY 0 | |
| #define BPF_NOEXIST 1 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| #define BPF_EXIST 2 | |
| union bpf_attr { | |
| struct { | |
| __u32 map_type; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __u32 key_size; | |
| __u32 value_size; | |
| __u32 max_entries; | |
| }; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| struct { | |
| __u32 map_fd; | |
| __aligned_u64 key; | |
| union { | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __aligned_u64 value; | |
| __aligned_u64 next_key; | |
| }; | |
| __u64 flags; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| }; | |
| struct { | |
| __u32 prog_type; | |
| __u32 insn_cnt; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __aligned_u64 insns; | |
| __aligned_u64 license; | |
| __u32 log_level; | |
| __u32 log_size; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __aligned_u64 log_buf; | |
| __u32 kern_version; | |
| }; | |
| struct { | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __aligned_u64 pathname; | |
| __u32 bpf_fd; | |
| }; | |
| } __attribute__((aligned(8))); | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| enum bpf_func_id { | |
| BPF_FUNC_unspec, | |
| BPF_FUNC_map_lookup_elem, | |
| BPF_FUNC_map_update_elem, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_FUNC_map_delete_elem, | |
| BPF_FUNC_probe_read, | |
| BPF_FUNC_ktime_get_ns, | |
| BPF_FUNC_trace_printk, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_FUNC_get_prandom_u32, | |
| BPF_FUNC_get_smp_processor_id, | |
| BPF_FUNC_skb_store_bytes, | |
| BPF_FUNC_l3_csum_replace, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_FUNC_l4_csum_replace, | |
| BPF_FUNC_tail_call, | |
| BPF_FUNC_clone_redirect, | |
| BPF_FUNC_get_current_pid_tgid, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_FUNC_get_current_uid_gid, | |
| BPF_FUNC_get_current_comm, | |
| BPF_FUNC_get_cgroup_classid, | |
| BPF_FUNC_skb_vlan_push, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_FUNC_skb_vlan_pop, | |
| BPF_FUNC_skb_get_tunnel_key, | |
| BPF_FUNC_skb_set_tunnel_key, | |
| BPF_FUNC_perf_event_read, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| BPF_FUNC_redirect, | |
| BPF_FUNC_get_route_realm, | |
| BPF_FUNC_perf_event_output, | |
| __BPF_FUNC_MAX_ID, | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| }; | |
| struct __sk_buff { | |
| __u32 len; | |
| __u32 pkt_type; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __u32 mark; | |
| __u32 queue_mapping; | |
| __u32 protocol; | |
| __u32 vlan_present; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __u32 vlan_tci; | |
| __u32 vlan_proto; | |
| __u32 priority; | |
| __u32 ingress_ifindex; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __u32 ifindex; | |
| __u32 tc_index; | |
| __u32 cb[5]; | |
| __u32 hash; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __u32 tc_classid; | |
| }; | |
| struct bpf_tunnel_key { | |
| __u32 tunnel_id; | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ | |
| __u32 remote_ipv4; | |
| }; | |
| #endif |