1 /* automatically generated by rust-bindgen 0.69.4 */ 2 3 #[repr(C)] 4 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] 5 pub struct __BindgenBitfieldUnit<Storage> { 6 storage: Storage, 7 } 8 impl<Storage> __BindgenBitfieldUnit<Storage> { 9 #[inline] 10 pub const fn new(storage: Storage) -> Self { 11 Self { storage } 12 } 13 } 14 impl<Storage> __BindgenBitfieldUnit<Storage> 15 where 16 Storage: AsRef<[u8]> + AsMut<[u8]>, 17 { 18 #[inline] 19 pub fn get_bit(&self, index: usize) -> bool { 20 debug_assert!(index / 8 < self.storage.as_ref().len()); 21 let byte_index = index / 8; 22 let byte = self.storage.as_ref()[byte_index]; 23 let bit_index = if cfg!(target_endian = "big") { 24 7 - (index % 8) 25 } else { 26 index % 8 27 }; 28 let mask = 1 << bit_index; 29 byte & mask == mask 30 } 31 #[inline] 32 pub fn set_bit(&mut self, index: usize, val: bool) { 33 debug_assert!(index / 8 < self.storage.as_ref().len()); 34 let byte_index = index / 8; 35 let byte = &mut self.storage.as_mut()[byte_index]; 36 let bit_index = if cfg!(target_endian = "big") { 37 7 - (index % 8) 38 } else { 39 index % 8 40 }; 41 let mask = 1 << bit_index; 42 if val { 43 *byte |= mask; 44 } else { 45 *byte &= !mask; 46 } 47 } 48 #[inline] 49 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { 50 debug_assert!(bit_width <= 64); 51 debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); 52 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); 53 let mut val = 0; 54 for i in 0..(bit_width as usize) { 55 if self.get_bit(i + bit_offset) { 56 let index = if cfg!(target_endian = "big") { 57 bit_width as usize - 1 - i 58 } else { 59 i 60 }; 61 val |= 1 << index; 62 } 63 } 64 val 65 } 66 #[inline] 67 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { 68 debug_assert!(bit_width <= 64); 69 debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); 70 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); 71 for i in 0..(bit_width as usize) { 72 let mask = 1 << i; 73 let val_bit_is_set = val & mask == mask; 74 let index = if cfg!(target_endian = "big") { 75 bit_width as usize - 1 - i 76 } else { 77 i 78 }; 79 self.set_bit(index + bit_offset, val_bit_is_set); 80 } 81 } 82 } 83 #[repr(C)] 84 #[derive(Default)] 85 pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]); 86 impl<T> __IncompleteArrayField<T> { 87 #[inline] 88 pub const fn new() -> Self { 89 __IncompleteArrayField(::core::marker::PhantomData, []) 90 } 91 #[inline] 92 pub fn as_ptr(&self) -> *const T { 93 self as *const _ as *const T 94 } 95 #[inline] 96 pub fn as_mut_ptr(&mut self) -> *mut T { 97 self as *mut _ as *mut T 98 } 99 #[inline] 100 pub unsafe fn as_slice(&self, len: usize) -> &[T] { 101 ::core::slice::from_raw_parts(self.as_ptr(), len) 102 } 103 #[inline] 104 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 105 ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 106 } 107 } 108 impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> { 109 fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { 110 fmt.write_str("__IncompleteArrayField") 111 } 112 } 113 pub const SO_ATTACH_BPF: u32 = 50; 114 pub const SO_DETACH_BPF: u32 = 27; 115 pub const BPF_LD: u32 = 0; 116 pub const BPF_LDX: u32 = 1; 117 pub const BPF_ST: u32 = 2; 118 pub const BPF_STX: u32 = 3; 119 pub const BPF_ALU: u32 = 4; 120 pub const BPF_JMP: u32 = 5; 121 pub const BPF_W: u32 = 0; 122 pub const BPF_H: u32 = 8; 123 pub const BPF_B: u32 = 16; 124 pub const BPF_K: u32 = 0; 125 pub const BPF_ALU64: u32 = 7; 126 pub const BPF_DW: u32 = 24; 127 pub const BPF_CALL: u32 = 128; 128 pub const BPF_F_ALLOW_OVERRIDE: u32 = 1; 129 pub const BPF_F_ALLOW_MULTI: u32 = 2; 130 pub const BPF_F_REPLACE: u32 = 4; 131 pub const BPF_F_BEFORE: u32 = 8; 132 pub const BPF_F_AFTER: u32 = 16; 133 pub const BPF_F_ID: u32 = 32; 134 pub const BPF_F_STRICT_ALIGNMENT: u32 = 1; 135 pub const BPF_F_ANY_ALIGNMENT: u32 = 2; 136 pub const BPF_F_TEST_RND_HI32: u32 = 4; 137 pub const BPF_F_TEST_STATE_FREQ: u32 = 8; 138 pub const BPF_F_SLEEPABLE: u32 = 16; 139 pub const BPF_F_XDP_HAS_FRAGS: u32 = 32; 140 pub const BPF_F_XDP_DEV_BOUND_ONLY: u32 = 64; 141 pub const BPF_F_TEST_REG_INVARIANTS: u32 = 128; 142 pub const BPF_F_NETFILTER_IP_DEFRAG: u32 = 1; 143 pub const BPF_PSEUDO_MAP_FD: u32 = 1; 144 pub const BPF_PSEUDO_MAP_IDX: u32 = 5; 145 pub const BPF_PSEUDO_MAP_VALUE: u32 = 2; 146 pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6; 147 pub const BPF_PSEUDO_BTF_ID: u32 = 3; 148 pub const BPF_PSEUDO_FUNC: u32 = 4; 149 pub const BPF_PSEUDO_CALL: u32 = 1; 150 pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2; 151 pub const BPF_F_QUERY_EFFECTIVE: u32 = 1; 152 pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1; 153 pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2; 154 pub const BTF_INT_SIGNED: u32 = 1; 155 pub const BTF_INT_CHAR: u32 = 2; 156 pub const BTF_INT_BOOL: u32 = 4; 157 pub const NLMSG_ALIGNTO: u32 = 4; 158 pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1; 159 pub const XDP_FLAGS_SKB_MODE: u32 = 2; 160 pub const XDP_FLAGS_DRV_MODE: u32 = 4; 161 pub const XDP_FLAGS_HW_MODE: u32 = 8; 162 pub const XDP_FLAGS_REPLACE: u32 = 16; 163 pub const XDP_FLAGS_MODES: u32 = 14; 164 pub const XDP_FLAGS_MASK: u32 = 31; 165 pub const PERF_MAX_STACK_DEPTH: u32 = 127; 166 pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8; 167 pub const PERF_FLAG_FD_NO_GROUP: u32 = 1; 168 pub const PERF_FLAG_FD_OUTPUT: u32 = 2; 169 pub const PERF_FLAG_PID_CGROUP: u32 = 4; 170 pub const PERF_FLAG_FD_CLOEXEC: u32 = 8; 171 pub const TC_H_MAJ_MASK: u32 = 4294901760; 172 pub const TC_H_MIN_MASK: u32 = 65535; 173 pub const TC_H_UNSPEC: u32 = 0; 174 pub const TC_H_ROOT: u32 = 4294967295; 175 pub const TC_H_INGRESS: u32 = 4294967281; 176 pub const TC_H_CLSACT: u32 = 4294967281; 177 pub const TC_H_MIN_PRIORITY: u32 = 65504; 178 pub const TC_H_MIN_INGRESS: u32 = 65522; 179 pub const TC_H_MIN_EGRESS: u32 = 65523; 180 pub const TCA_BPF_FLAG_ACT_DIRECT: u32 = 1; 181 pub type __u8 = ::core::ffi::c_uchar; 182 pub type __s16 = ::core::ffi::c_short; 183 pub type __u16 = ::core::ffi::c_ushort; 184 pub type __s32 = ::core::ffi::c_int; 185 pub type __u32 = ::core::ffi::c_uint; 186 pub type __s64 = ::core::ffi::c_longlong; 187 pub type __u64 = ::core::ffi::c_ulonglong; 188 #[repr(C)] 189 #[derive(Debug, Copy, Clone)] 190 pub struct bpf_insn { 191 pub code: __u8, 192 pub _bitfield_align_1: [u8; 0], 193 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, 194 pub off: __s16, 195 pub imm: __s32, 196 } 197 impl bpf_insn { 198 #[inline] 199 pub fn dst_reg(&self) -> __u8 { 200 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } 201 } 202 #[inline] 203 pub fn set_dst_reg(&mut self, val: __u8) { 204 unsafe { 205 let val: u8 = ::core::mem::transmute(val); 206 self._bitfield_1.set(0usize, 4u8, val as u64) 207 } 208 } 209 #[inline] 210 pub fn src_reg(&self) -> __u8 { 211 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } 212 } 213 #[inline] 214 pub fn set_src_reg(&mut self, val: __u8) { 215 unsafe { 216 let val: u8 = ::core::mem::transmute(val); 217 self._bitfield_1.set(4usize, 4u8, val as u64) 218 } 219 } 220 #[inline] 221 pub fn new_bitfield_1(dst_reg: __u8, src_reg: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { 222 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); 223 __bindgen_bitfield_unit.set(0usize, 4u8, { 224 let dst_reg: u8 = unsafe { ::core::mem::transmute(dst_reg) }; 225 dst_reg as u64 226 }); 227 __bindgen_bitfield_unit.set(4usize, 4u8, { 228 let src_reg: u8 = unsafe { ::core::mem::transmute(src_reg) }; 229 src_reg as u64 230 }); 231 __bindgen_bitfield_unit 232 } 233 } 234 #[repr(C)] 235 #[derive(Debug)] 236 pub struct bpf_lpm_trie_key { 237 pub prefixlen: __u32, 238 pub data: __IncompleteArrayField<__u8>, 239 } 240 impl bpf_cmd { 241 pub const BPF_PROG_RUN: bpf_cmd = bpf_cmd::BPF_PROG_TEST_RUN; 242 } 243 #[repr(u32)] 244 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, FromPrimitive)] 245 pub enum bpf_cmd { 246 BPF_MAP_CREATE = 0, 247 BPF_MAP_LOOKUP_ELEM = 1, 248 BPF_MAP_UPDATE_ELEM = 2, 249 BPF_MAP_DELETE_ELEM = 3, 250 BPF_MAP_GET_NEXT_KEY = 4, 251 BPF_PROG_LOAD = 5, 252 BPF_OBJ_PIN = 6, 253 BPF_OBJ_GET = 7, 254 BPF_PROG_ATTACH = 8, 255 BPF_PROG_DETACH = 9, 256 BPF_PROG_TEST_RUN = 10, 257 BPF_PROG_GET_NEXT_ID = 11, 258 BPF_MAP_GET_NEXT_ID = 12, 259 BPF_PROG_GET_FD_BY_ID = 13, 260 BPF_MAP_GET_FD_BY_ID = 14, 261 BPF_OBJ_GET_INFO_BY_FD = 15, 262 BPF_PROG_QUERY = 16, 263 BPF_RAW_TRACEPOINT_OPEN = 17, 264 BPF_BTF_LOAD = 18, 265 BPF_BTF_GET_FD_BY_ID = 19, 266 BPF_TASK_FD_QUERY = 20, 267 BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21, 268 BPF_MAP_FREEZE = 22, 269 BPF_BTF_GET_NEXT_ID = 23, 270 BPF_MAP_LOOKUP_BATCH = 24, 271 BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25, 272 BPF_MAP_UPDATE_BATCH = 26, 273 BPF_MAP_DELETE_BATCH = 27, 274 BPF_LINK_CREATE = 28, 275 BPF_LINK_UPDATE = 29, 276 BPF_LINK_GET_FD_BY_ID = 30, 277 BPF_LINK_GET_NEXT_ID = 31, 278 BPF_ENABLE_STATS = 32, 279 BPF_ITER_CREATE = 33, 280 BPF_LINK_DETACH = 34, 281 BPF_PROG_BIND_MAP = 35, 282 BPF_TOKEN_CREATE = 36, 283 __MAX_BPF_CMD = 37, 284 } 285 impl bpf_map_type { 286 pub const BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type = 287 bpf_map_type::BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED; 288 } 289 impl bpf_map_type { 290 pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type = 291 bpf_map_type::BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED; 292 } 293 #[repr(u32)] 294 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, FromPrimitive)] 295 pub enum bpf_map_type { 296 BPF_MAP_TYPE_UNSPEC = 0, 297 BPF_MAP_TYPE_HASH = 1, 298 BPF_MAP_TYPE_ARRAY = 2, 299 BPF_MAP_TYPE_PROG_ARRAY = 3, 300 BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4, 301 BPF_MAP_TYPE_PERCPU_HASH = 5, 302 BPF_MAP_TYPE_PERCPU_ARRAY = 6, 303 BPF_MAP_TYPE_STACK_TRACE = 7, 304 BPF_MAP_TYPE_CGROUP_ARRAY = 8, 305 BPF_MAP_TYPE_LRU_HASH = 9, 306 BPF_MAP_TYPE_LRU_PERCPU_HASH = 10, 307 BPF_MAP_TYPE_LPM_TRIE = 11, 308 BPF_MAP_TYPE_ARRAY_OF_MAPS = 12, 309 BPF_MAP_TYPE_HASH_OF_MAPS = 13, 310 BPF_MAP_TYPE_DEVMAP = 14, 311 BPF_MAP_TYPE_SOCKMAP = 15, 312 BPF_MAP_TYPE_CPUMAP = 16, 313 BPF_MAP_TYPE_XSKMAP = 17, 314 BPF_MAP_TYPE_SOCKHASH = 18, 315 BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19, 316 BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20, 317 BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21, 318 BPF_MAP_TYPE_QUEUE = 22, 319 BPF_MAP_TYPE_STACK = 23, 320 BPF_MAP_TYPE_SK_STORAGE = 24, 321 BPF_MAP_TYPE_DEVMAP_HASH = 25, 322 BPF_MAP_TYPE_STRUCT_OPS = 26, 323 BPF_MAP_TYPE_RINGBUF = 27, 324 BPF_MAP_TYPE_INODE_STORAGE = 28, 325 BPF_MAP_TYPE_TASK_STORAGE = 29, 326 BPF_MAP_TYPE_BLOOM_FILTER = 30, 327 BPF_MAP_TYPE_USER_RINGBUF = 31, 328 BPF_MAP_TYPE_CGRP_STORAGE = 32, 329 BPF_MAP_TYPE_ARENA = 33, 330 __MAX_BPF_MAP_TYPE = 34, 331 } 332 #[repr(u32)] 333 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, FromPrimitive)] 334 pub enum bpf_prog_type { 335 BPF_PROG_TYPE_UNSPEC = 0, 336 BPF_PROG_TYPE_SOCKET_FILTER = 1, 337 BPF_PROG_TYPE_KPROBE = 2, 338 BPF_PROG_TYPE_SCHED_CLS = 3, 339 BPF_PROG_TYPE_SCHED_ACT = 4, 340 BPF_PROG_TYPE_TRACEPOINT = 5, 341 BPF_PROG_TYPE_XDP = 6, 342 BPF_PROG_TYPE_PERF_EVENT = 7, 343 BPF_PROG_TYPE_CGROUP_SKB = 8, 344 BPF_PROG_TYPE_CGROUP_SOCK = 9, 345 BPF_PROG_TYPE_LWT_IN = 10, 346 BPF_PROG_TYPE_LWT_OUT = 11, 347 BPF_PROG_TYPE_LWT_XMIT = 12, 348 BPF_PROG_TYPE_SOCK_OPS = 13, 349 BPF_PROG_TYPE_SK_SKB = 14, 350 BPF_PROG_TYPE_CGROUP_DEVICE = 15, 351 BPF_PROG_TYPE_SK_MSG = 16, 352 BPF_PROG_TYPE_RAW_TRACEPOINT = 17, 353 BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, 354 BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, 355 BPF_PROG_TYPE_LIRC_MODE2 = 20, 356 BPF_PROG_TYPE_SK_REUSEPORT = 21, 357 BPF_PROG_TYPE_FLOW_DISSECTOR = 22, 358 BPF_PROG_TYPE_CGROUP_SYSCTL = 23, 359 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, 360 BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, 361 BPF_PROG_TYPE_TRACING = 26, 362 BPF_PROG_TYPE_STRUCT_OPS = 27, 363 BPF_PROG_TYPE_EXT = 28, 364 BPF_PROG_TYPE_LSM = 29, 365 BPF_PROG_TYPE_SK_LOOKUP = 30, 366 BPF_PROG_TYPE_SYSCALL = 31, 367 BPF_PROG_TYPE_NETFILTER = 32, 368 __MAX_BPF_PROG_TYPE = 33, 369 } 370 #[repr(u32)] 371 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, FromPrimitive)] 372 pub enum bpf_attach_type { 373 BPF_CGROUP_INET_INGRESS = 0, 374 BPF_CGROUP_INET_EGRESS = 1, 375 BPF_CGROUP_INET_SOCK_CREATE = 2, 376 BPF_CGROUP_SOCK_OPS = 3, 377 BPF_SK_SKB_STREAM_PARSER = 4, 378 BPF_SK_SKB_STREAM_VERDICT = 5, 379 BPF_CGROUP_DEVICE = 6, 380 BPF_SK_MSG_VERDICT = 7, 381 BPF_CGROUP_INET4_BIND = 8, 382 BPF_CGROUP_INET6_BIND = 9, 383 BPF_CGROUP_INET4_CONNECT = 10, 384 BPF_CGROUP_INET6_CONNECT = 11, 385 BPF_CGROUP_INET4_POST_BIND = 12, 386 BPF_CGROUP_INET6_POST_BIND = 13, 387 BPF_CGROUP_UDP4_SENDMSG = 14, 388 BPF_CGROUP_UDP6_SENDMSG = 15, 389 BPF_LIRC_MODE2 = 16, 390 BPF_FLOW_DISSECTOR = 17, 391 BPF_CGROUP_SYSCTL = 18, 392 BPF_CGROUP_UDP4_RECVMSG = 19, 393 BPF_CGROUP_UDP6_RECVMSG = 20, 394 BPF_CGROUP_GETSOCKOPT = 21, 395 BPF_CGROUP_SETSOCKOPT = 22, 396 BPF_TRACE_RAW_TP = 23, 397 BPF_TRACE_FENTRY = 24, 398 BPF_TRACE_FEXIT = 25, 399 BPF_MODIFY_RETURN = 26, 400 BPF_LSM_MAC = 27, 401 BPF_TRACE_ITER = 28, 402 BPF_CGROUP_INET4_GETPEERNAME = 29, 403 BPF_CGROUP_INET6_GETPEERNAME = 30, 404 BPF_CGROUP_INET4_GETSOCKNAME = 31, 405 BPF_CGROUP_INET6_GETSOCKNAME = 32, 406 BPF_XDP_DEVMAP = 33, 407 BPF_CGROUP_INET_SOCK_RELEASE = 34, 408 BPF_XDP_CPUMAP = 35, 409 BPF_SK_LOOKUP = 36, 410 BPF_XDP = 37, 411 BPF_SK_SKB_VERDICT = 38, 412 BPF_SK_REUSEPORT_SELECT = 39, 413 BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, 414 BPF_PERF_EVENT = 41, 415 BPF_TRACE_KPROBE_MULTI = 42, 416 BPF_LSM_CGROUP = 43, 417 BPF_STRUCT_OPS = 44, 418 BPF_NETFILTER = 45, 419 BPF_TCX_INGRESS = 46, 420 BPF_TCX_EGRESS = 47, 421 BPF_TRACE_UPROBE_MULTI = 48, 422 BPF_CGROUP_UNIX_CONNECT = 49, 423 BPF_CGROUP_UNIX_SENDMSG = 50, 424 BPF_CGROUP_UNIX_RECVMSG = 51, 425 BPF_CGROUP_UNIX_GETPEERNAME = 52, 426 BPF_CGROUP_UNIX_GETSOCKNAME = 53, 427 BPF_NETKIT_PRIMARY = 54, 428 BPF_NETKIT_PEER = 55, 429 __MAX_BPF_ATTACH_TYPE = 56, 430 } 431 #[repr(u32)] 432 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] 433 pub enum bpf_link_type { 434 BPF_LINK_TYPE_UNSPEC = 0, 435 BPF_LINK_TYPE_RAW_TRACEPOINT = 1, 436 BPF_LINK_TYPE_TRACING = 2, 437 BPF_LINK_TYPE_CGROUP = 3, 438 BPF_LINK_TYPE_ITER = 4, 439 BPF_LINK_TYPE_NETNS = 5, 440 BPF_LINK_TYPE_XDP = 6, 441 BPF_LINK_TYPE_PERF_EVENT = 7, 442 BPF_LINK_TYPE_KPROBE_MULTI = 8, 443 BPF_LINK_TYPE_STRUCT_OPS = 9, 444 BPF_LINK_TYPE_NETFILTER = 10, 445 BPF_LINK_TYPE_TCX = 11, 446 BPF_LINK_TYPE_UPROBE_MULTI = 12, 447 BPF_LINK_TYPE_NETKIT = 13, 448 __MAX_BPF_LINK_TYPE = 14, 449 } 450 pub const BPF_F_KPROBE_MULTI_RETURN: _bindgen_ty_2 = 1; 451 pub type _bindgen_ty_2 = ::core::ffi::c_uint; 452 pub const BPF_F_UPROBE_MULTI_RETURN: _bindgen_ty_3 = 1; 453 pub type _bindgen_ty_3 = ::core::ffi::c_uint; 454 pub const BPF_ANY: _bindgen_ty_4 = 0; 455 pub const BPF_NOEXIST: _bindgen_ty_4 = 1; 456 pub const BPF_EXIST: _bindgen_ty_4 = 2; 457 pub const BPF_F_LOCK: _bindgen_ty_4 = 4; 458 pub type _bindgen_ty_4 = ::core::ffi::c_uint; 459 pub const BPF_F_NO_PREALLOC: _bindgen_ty_5 = 1; 460 pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_5 = 2; 461 pub const BPF_F_NUMA_NODE: _bindgen_ty_5 = 4; 462 pub const BPF_F_RDONLY: _bindgen_ty_5 = 8; 463 pub const BPF_F_WRONLY: _bindgen_ty_5 = 16; 464 pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_5 = 32; 465 pub const BPF_F_ZERO_SEED: _bindgen_ty_5 = 64; 466 pub const BPF_F_RDONLY_PROG: _bindgen_ty_5 = 128; 467 pub const BPF_F_WRONLY_PROG: _bindgen_ty_5 = 256; 468 pub const BPF_F_CLONE: _bindgen_ty_5 = 512; 469 pub const BPF_F_MMAPABLE: _bindgen_ty_5 = 1024; 470 pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_5 = 2048; 471 pub const BPF_F_INNER_MAP: _bindgen_ty_5 = 4096; 472 pub const BPF_F_LINK: _bindgen_ty_5 = 8192; 473 pub const BPF_F_PATH_FD: _bindgen_ty_5 = 16384; 474 pub const BPF_F_VTYPE_BTF_OBJ_FD: _bindgen_ty_5 = 32768; 475 pub const BPF_F_TOKEN_FD: _bindgen_ty_5 = 65536; 476 pub const BPF_F_SEGV_ON_FAULT: _bindgen_ty_5 = 131072; 477 pub const BPF_F_NO_USER_CONV: _bindgen_ty_5 = 262144; 478 pub type _bindgen_ty_5 = ::core::ffi::c_uint; 479 #[repr(u32)] 480 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] 481 pub enum bpf_stats_type { 482 BPF_STATS_RUN_TIME = 0, 483 } 484 #[repr(C)] 485 #[derive(Copy, Clone)] 486 pub union bpf_attr { 487 pub __bindgen_anon_1: bpf_attr__bindgen_ty_1, 488 pub __bindgen_anon_2: bpf_attr__bindgen_ty_2, 489 pub batch: bpf_attr__bindgen_ty_3, 490 pub __bindgen_anon_3: bpf_attr__bindgen_ty_4, 491 pub __bindgen_anon_4: bpf_attr__bindgen_ty_5, 492 pub __bindgen_anon_5: bpf_attr__bindgen_ty_6, 493 pub test: bpf_attr__bindgen_ty_7, 494 pub __bindgen_anon_6: bpf_attr__bindgen_ty_8, 495 pub info: bpf_attr__bindgen_ty_9, 496 pub query: bpf_attr__bindgen_ty_10, 497 pub raw_tracepoint: bpf_attr__bindgen_ty_11, 498 pub __bindgen_anon_7: bpf_attr__bindgen_ty_12, 499 pub task_fd_query: bpf_attr__bindgen_ty_13, 500 pub link_create: bpf_attr__bindgen_ty_14, 501 pub link_update: bpf_attr__bindgen_ty_15, 502 pub link_detach: bpf_attr__bindgen_ty_16, 503 pub enable_stats: bpf_attr__bindgen_ty_17, 504 pub iter_create: bpf_attr__bindgen_ty_18, 505 pub prog_bind_map: bpf_attr__bindgen_ty_19, 506 pub token_create: bpf_attr__bindgen_ty_20, 507 } 508 #[repr(C)] 509 #[derive(Debug, Copy, Clone)] 510 pub struct bpf_attr__bindgen_ty_1 { 511 pub map_type: __u32, 512 pub key_size: __u32, 513 pub value_size: __u32, 514 pub max_entries: __u32, 515 pub map_flags: __u32, 516 pub inner_map_fd: __u32, 517 pub numa_node: __u32, 518 pub map_name: [::core::ffi::c_char; 16usize], 519 pub map_ifindex: __u32, 520 pub btf_fd: __u32, 521 pub btf_key_type_id: __u32, 522 pub btf_value_type_id: __u32, 523 pub btf_vmlinux_value_type_id: __u32, 524 pub map_extra: __u64, 525 pub value_type_btf_obj_fd: __s32, 526 pub map_token_fd: __s32, 527 } 528 #[repr(C)] 529 #[derive(Copy, Clone)] 530 pub struct bpf_attr__bindgen_ty_2 { 531 pub map_fd: __u32, 532 pub key: __u64, 533 pub __bindgen_anon_1: bpf_attr__bindgen_ty_2__bindgen_ty_1, 534 pub flags: __u64, 535 } 536 #[repr(C)] 537 #[derive(Copy, Clone)] 538 pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 { 539 pub value: __u64, 540 pub next_key: __u64, 541 } 542 #[repr(C)] 543 #[derive(Debug, Copy, Clone)] 544 pub struct bpf_attr__bindgen_ty_3 { 545 pub in_batch: __u64, 546 pub out_batch: __u64, 547 pub keys: __u64, 548 pub values: __u64, 549 pub count: __u32, 550 pub map_fd: __u32, 551 pub elem_flags: __u64, 552 pub flags: __u64, 553 } 554 #[repr(C)] 555 #[derive(Copy, Clone)] 556 pub struct bpf_attr__bindgen_ty_4 { 557 pub prog_type: __u32, 558 pub insn_cnt: __u32, 559 pub insns: __u64, 560 pub license: __u64, 561 pub log_level: __u32, 562 pub log_size: __u32, 563 pub log_buf: __u64, 564 pub kern_version: __u32, 565 pub prog_flags: __u32, 566 pub prog_name: [::core::ffi::c_char; 16usize], 567 pub prog_ifindex: __u32, 568 pub expected_attach_type: __u32, 569 pub prog_btf_fd: __u32, 570 pub func_info_rec_size: __u32, 571 pub func_info: __u64, 572 pub func_info_cnt: __u32, 573 pub line_info_rec_size: __u32, 574 pub line_info: __u64, 575 pub line_info_cnt: __u32, 576 pub attach_btf_id: __u32, 577 pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1, 578 pub core_relo_cnt: __u32, 579 pub fd_array: __u64, 580 pub core_relos: __u64, 581 pub core_relo_rec_size: __u32, 582 pub log_true_size: __u32, 583 pub prog_token_fd: __s32, 584 } 585 #[repr(C)] 586 #[derive(Copy, Clone)] 587 pub union bpf_attr__bindgen_ty_4__bindgen_ty_1 { 588 pub attach_prog_fd: __u32, 589 pub attach_btf_obj_fd: __u32, 590 } 591 #[repr(C)] 592 #[derive(Debug, Copy, Clone)] 593 pub struct bpf_attr__bindgen_ty_5 { 594 pub pathname: __u64, 595 pub bpf_fd: __u32, 596 pub file_flags: __u32, 597 pub path_fd: __s32, 598 } 599 #[repr(C)] 600 #[derive(Copy, Clone)] 601 pub struct bpf_attr__bindgen_ty_6 { 602 pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1, 603 pub attach_bpf_fd: __u32, 604 pub attach_type: __u32, 605 pub attach_flags: __u32, 606 pub replace_bpf_fd: __u32, 607 pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2, 608 pub expected_revision: __u64, 609 } 610 #[repr(C)] 611 #[derive(Copy, Clone)] 612 pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 { 613 pub target_fd: __u32, 614 pub target_ifindex: __u32, 615 } 616 #[repr(C)] 617 #[derive(Copy, Clone)] 618 pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 { 619 pub relative_fd: __u32, 620 pub relative_id: __u32, 621 } 622 #[repr(C)] 623 #[derive(Debug, Copy, Clone)] 624 pub struct bpf_attr__bindgen_ty_7 { 625 pub prog_fd: __u32, 626 pub retval: __u32, 627 pub data_size_in: __u32, 628 pub data_size_out: __u32, 629 pub data_in: __u64, 630 pub data_out: __u64, 631 pub repeat: __u32, 632 pub duration: __u32, 633 pub ctx_size_in: __u32, 634 pub ctx_size_out: __u32, 635 pub ctx_in: __u64, 636 pub ctx_out: __u64, 637 pub flags: __u32, 638 pub cpu: __u32, 639 pub batch_size: __u32, 640 } 641 #[repr(C)] 642 #[derive(Copy, Clone)] 643 pub struct bpf_attr__bindgen_ty_8 { 644 pub __bindgen_anon_1: bpf_attr__bindgen_ty_8__bindgen_ty_1, 645 pub next_id: __u32, 646 pub open_flags: __u32, 647 } 648 #[repr(C)] 649 #[derive(Copy, Clone)] 650 pub union bpf_attr__bindgen_ty_8__bindgen_ty_1 { 651 pub start_id: __u32, 652 pub prog_id: __u32, 653 pub map_id: __u32, 654 pub btf_id: __u32, 655 pub link_id: __u32, 656 } 657 #[repr(C)] 658 #[derive(Debug, Copy, Clone)] 659 pub struct bpf_attr__bindgen_ty_9 { 660 pub bpf_fd: __u32, 661 pub info_len: __u32, 662 pub info: __u64, 663 } 664 #[repr(C)] 665 #[derive(Copy, Clone)] 666 pub struct bpf_attr__bindgen_ty_10 { 667 pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1, 668 pub attach_type: __u32, 669 pub query_flags: __u32, 670 pub attach_flags: __u32, 671 pub prog_ids: __u64, 672 pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2, 673 pub _bitfield_align_1: [u8; 0], 674 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, 675 pub prog_attach_flags: __u64, 676 pub link_ids: __u64, 677 pub link_attach_flags: __u64, 678 pub revision: __u64, 679 } 680 #[repr(C)] 681 #[derive(Copy, Clone)] 682 pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 { 683 pub target_fd: __u32, 684 pub target_ifindex: __u32, 685 } 686 #[repr(C)] 687 #[derive(Copy, Clone)] 688 pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 { 689 pub prog_cnt: __u32, 690 pub count: __u32, 691 } 692 impl bpf_attr__bindgen_ty_10 { 693 #[inline] 694 pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> { 695 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); 696 __bindgen_bitfield_unit 697 } 698 } 699 #[repr(C)] 700 #[derive(Debug, Copy, Clone)] 701 pub struct bpf_attr__bindgen_ty_11 { 702 pub name: __u64, 703 pub prog_fd: __u32, 704 pub _bitfield_align_1: [u8; 0], 705 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, 706 pub cookie: __u64, 707 } 708 impl bpf_attr__bindgen_ty_11 { 709 #[inline] 710 pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> { 711 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); 712 __bindgen_bitfield_unit 713 } 714 } 715 #[repr(C)] 716 #[derive(Debug, Copy, Clone)] 717 pub struct bpf_attr__bindgen_ty_12 { 718 pub btf: __u64, 719 pub btf_log_buf: __u64, 720 pub btf_size: __u32, 721 pub btf_log_size: __u32, 722 pub btf_log_level: __u32, 723 pub btf_log_true_size: __u32, 724 pub btf_flags: __u32, 725 pub btf_token_fd: __s32, 726 } 727 #[repr(C)] 728 #[derive(Debug, Copy, Clone)] 729 pub struct bpf_attr__bindgen_ty_13 { 730 pub pid: __u32, 731 pub fd: __u32, 732 pub flags: __u32, 733 pub buf_len: __u32, 734 pub buf: __u64, 735 pub prog_id: __u32, 736 pub fd_type: __u32, 737 pub probe_offset: __u64, 738 pub probe_addr: __u64, 739 } 740 #[repr(C)] 741 #[derive(Copy, Clone)] 742 pub struct bpf_attr__bindgen_ty_14 { 743 pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_1, 744 pub __bindgen_anon_2: bpf_attr__bindgen_ty_14__bindgen_ty_2, 745 pub attach_type: __u32, 746 pub flags: __u32, 747 pub __bindgen_anon_3: bpf_attr__bindgen_ty_14__bindgen_ty_3, 748 } 749 #[repr(C)] 750 #[derive(Copy, Clone)] 751 pub union bpf_attr__bindgen_ty_14__bindgen_ty_1 { 752 pub prog_fd: __u32, 753 pub map_fd: __u32, 754 } 755 #[repr(C)] 756 #[derive(Copy, Clone)] 757 pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 { 758 pub target_fd: __u32, 759 pub target_ifindex: __u32, 760 } 761 #[repr(C)] 762 #[derive(Copy, Clone)] 763 pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 { 764 pub target_btf_id: __u32, 765 pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1, 766 pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2, 767 pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3, 768 pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4, 769 pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5, 770 pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6, 771 pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7, 772 pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8, 773 } 774 #[repr(C)] 775 #[derive(Debug, Copy, Clone)] 776 pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1 { 777 pub iter_info: __u64, 778 pub iter_info_len: __u32, 779 } 780 #[repr(C)] 781 #[derive(Debug, Copy, Clone)] 782 pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2 { 783 pub bpf_cookie: __u64, 784 } 785 #[repr(C)] 786 #[derive(Debug, Copy, Clone)] 787 pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3 { 788 pub flags: __u32, 789 pub cnt: __u32, 790 pub syms: __u64, 791 pub addrs: __u64, 792 pub cookies: __u64, 793 } 794 #[repr(C)] 795 #[derive(Debug, Copy, Clone)] 796 pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4 { 797 pub target_btf_id: __u32, 798 pub cookie: __u64, 799 } 800 #[repr(C)] 801 #[derive(Debug, Copy, Clone)] 802 pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 { 803 pub pf: __u32, 804 pub hooknum: __u32, 805 pub priority: __s32, 806 pub flags: __u32, 807 } 808 #[repr(C)] 809 #[derive(Copy, Clone)] 810 pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 { 811 pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1, 812 pub expected_revision: __u64, 813 } 814 #[repr(C)] 815 #[derive(Copy, Clone)] 816 pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 { 817 pub relative_fd: __u32, 818 pub relative_id: __u32, 819 } 820 #[repr(C)] 821 #[derive(Debug, Copy, Clone)] 822 pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 { 823 pub path: __u64, 824 pub offsets: __u64, 825 pub ref_ctr_offsets: __u64, 826 pub cookies: __u64, 827 pub cnt: __u32, 828 pub flags: __u32, 829 pub pid: __u32, 830 } 831 #[repr(C)] 832 #[derive(Copy, Clone)] 833 pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 { 834 pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1, 835 pub expected_revision: __u64, 836 } 837 #[repr(C)] 838 #[derive(Copy, Clone)] 839 pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 { 840 pub relative_fd: __u32, 841 pub relative_id: __u32, 842 } 843 #[repr(C)] 844 #[derive(Copy, Clone)] 845 pub struct bpf_attr__bindgen_ty_15 { 846 pub link_fd: __u32, 847 pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1, 848 pub flags: __u32, 849 pub __bindgen_anon_2: bpf_attr__bindgen_ty_15__bindgen_ty_2, 850 } 851 #[repr(C)] 852 #[derive(Copy, Clone)] 853 pub union bpf_attr__bindgen_ty_15__bindgen_ty_1 { 854 pub new_prog_fd: __u32, 855 pub new_map_fd: __u32, 856 } 857 #[repr(C)] 858 #[derive(Copy, Clone)] 859 pub union bpf_attr__bindgen_ty_15__bindgen_ty_2 { 860 pub old_prog_fd: __u32, 861 pub old_map_fd: __u32, 862 } 863 #[repr(C)] 864 #[derive(Debug, Copy, Clone)] 865 pub struct bpf_attr__bindgen_ty_16 { 866 pub link_fd: __u32, 867 } 868 #[repr(C)] 869 #[derive(Debug, Copy, Clone)] 870 pub struct bpf_attr__bindgen_ty_17 { 871 pub type_: __u32, 872 } 873 #[repr(C)] 874 #[derive(Debug, Copy, Clone)] 875 pub struct bpf_attr__bindgen_ty_18 { 876 pub link_fd: __u32, 877 pub flags: __u32, 878 } 879 #[repr(C)] 880 #[derive(Debug, Copy, Clone)] 881 pub struct bpf_attr__bindgen_ty_19 { 882 pub prog_fd: __u32, 883 pub map_fd: __u32, 884 pub flags: __u32, 885 } 886 #[repr(C)] 887 #[derive(Debug, Copy, Clone)] 888 pub struct bpf_attr__bindgen_ty_20 { 889 pub flags: __u32, 890 pub bpffs_fd: __u32, 891 } 892 pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_6 = 1; 893 pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_6 = 2; 894 pub type _bindgen_ty_6 = ::core::ffi::c_uint; 895 pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_7 = 15; 896 pub type _bindgen_ty_7 = ::core::ffi::c_uint; 897 pub const BPF_F_PSEUDO_HDR: _bindgen_ty_8 = 16; 898 pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_8 = 32; 899 pub const BPF_F_MARK_ENFORCE: _bindgen_ty_8 = 64; 900 pub type _bindgen_ty_8 = ::core::ffi::c_uint; 901 pub const BPF_F_INGRESS: _bindgen_ty_9 = 1; 902 pub type _bindgen_ty_9 = ::core::ffi::c_uint; 903 pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_10 = 1; 904 pub type _bindgen_ty_10 = ::core::ffi::c_uint; 905 pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_11 = 255; 906 pub const BPF_F_USER_STACK: _bindgen_ty_11 = 256; 907 pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_11 = 512; 908 pub const BPF_F_REUSE_STACKID: _bindgen_ty_11 = 1024; 909 pub const BPF_F_USER_BUILD_ID: _bindgen_ty_11 = 2048; 910 pub type _bindgen_ty_11 = ::core::ffi::c_uint; 911 pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_12 = 2; 912 pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_12 = 4; 913 pub const BPF_F_SEQ_NUMBER: _bindgen_ty_12 = 8; 914 pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_12 = 16; 915 pub type _bindgen_ty_12 = ::core::ffi::c_uint; 916 pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_13 = 16; 917 pub type _bindgen_ty_13 = ::core::ffi::c_uint; 918 pub const BPF_F_INDEX_MASK: _bindgen_ty_14 = 4294967295; 919 pub const BPF_F_CURRENT_CPU: _bindgen_ty_14 = 4294967295; 920 pub const BPF_F_CTXLEN_MASK: _bindgen_ty_14 = 4503595332403200; 921 pub type _bindgen_ty_14 = ::core::ffi::c_ulong; 922 pub const BPF_F_CURRENT_NETNS: _bindgen_ty_15 = -1; 923 pub type _bindgen_ty_15 = ::core::ffi::c_int; 924 pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_17 = 1; 925 pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_17 = 2; 926 pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_17 = 4; 927 pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_17 = 8; 928 pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_17 = 16; 929 pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_17 = 32; 930 pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_17 = 64; 931 pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_17 = 128; 932 pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_17 = 256; 933 pub type _bindgen_ty_17 = ::core::ffi::c_uint; 934 pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_19 = 1; 935 pub type _bindgen_ty_19 = ::core::ffi::c_uint; 936 pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_21 = 1; 937 pub type _bindgen_ty_21 = ::core::ffi::c_uint; 938 pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_24 = 2147483648; 939 pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_24 = 1073741824; 940 pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_24 = 8; 941 pub type _bindgen_ty_24 = ::core::ffi::c_uint; 942 pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_26 = 1; 943 pub type _bindgen_ty_26 = ::core::ffi::c_uint; 944 pub const BPF_F_BROADCAST: _bindgen_ty_27 = 8; 945 pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_27 = 16; 946 pub type _bindgen_ty_27 = ::core::ffi::c_uint; 947 #[repr(C)] 948 #[derive(Copy, Clone)] 949 pub struct bpf_devmap_val { 950 pub ifindex: __u32, 951 pub bpf_prog: bpf_devmap_val__bindgen_ty_1, 952 } 953 #[repr(C)] 954 #[derive(Copy, Clone)] 955 pub union bpf_devmap_val__bindgen_ty_1 { 956 pub fd: ::core::ffi::c_int, 957 pub id: __u32, 958 } 959 #[repr(C)] 960 #[derive(Copy, Clone)] 961 pub struct bpf_cpumap_val { 962 pub qsize: __u32, 963 pub bpf_prog: bpf_cpumap_val__bindgen_ty_1, 964 } 965 #[repr(C)] 966 #[derive(Copy, Clone)] 967 pub union bpf_cpumap_val__bindgen_ty_1 { 968 pub fd: ::core::ffi::c_int, 969 pub id: __u32, 970 } 971 #[repr(C)] 972 #[derive(Debug, Copy, Clone)] 973 pub struct bpf_prog_info { 974 pub type_: __u32, 975 pub id: __u32, 976 pub tag: [__u8; 8usize], 977 pub jited_prog_len: __u32, 978 pub xlated_prog_len: __u32, 979 pub jited_prog_insns: __u64, 980 pub xlated_prog_insns: __u64, 981 pub load_time: __u64, 982 pub created_by_uid: __u32, 983 pub nr_map_ids: __u32, 984 pub map_ids: __u64, 985 pub name: [::core::ffi::c_char; 16usize], 986 pub ifindex: __u32, 987 pub _bitfield_align_1: [u8; 0], 988 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, 989 pub netns_dev: __u64, 990 pub netns_ino: __u64, 991 pub nr_jited_ksyms: __u32, 992 pub nr_jited_func_lens: __u32, 993 pub jited_ksyms: __u64, 994 pub jited_func_lens: __u64, 995 pub btf_id: __u32, 996 pub func_info_rec_size: __u32, 997 pub func_info: __u64, 998 pub nr_func_info: __u32, 999 pub nr_line_info: __u32, 1000 pub line_info: __u64, 1001 pub jited_line_info: __u64, 1002 pub nr_jited_line_info: __u32, 1003 pub line_info_rec_size: __u32, 1004 pub jited_line_info_rec_size: __u32, 1005 pub nr_prog_tags: __u32, 1006 pub prog_tags: __u64, 1007 pub run_time_ns: __u64, 1008 pub run_cnt: __u64, 1009 pub recursion_misses: __u64, 1010 pub verified_insns: __u32, 1011 pub attach_btf_obj_id: __u32, 1012 pub attach_btf_id: __u32, 1013 } 1014 impl bpf_prog_info { 1015 #[inline] 1016 pub fn gpl_compatible(&self) -> __u32 { 1017 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } 1018 } 1019 #[inline] 1020 pub fn set_gpl_compatible(&mut self, val: __u32) { 1021 unsafe { 1022 let val: u32 = ::core::mem::transmute(val); 1023 self._bitfield_1.set(0usize, 1u8, val as u64) 1024 } 1025 } 1026 #[inline] 1027 pub fn new_bitfield_1(gpl_compatible: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> { 1028 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); 1029 __bindgen_bitfield_unit.set(0usize, 1u8, { 1030 let gpl_compatible: u32 = unsafe { ::core::mem::transmute(gpl_compatible) }; 1031 gpl_compatible as u64 1032 }); 1033 __bindgen_bitfield_unit 1034 } 1035 } 1036 #[repr(C)] 1037 #[derive(Debug, Copy, Clone)] 1038 pub struct bpf_map_info { 1039 pub type_: __u32, 1040 pub id: __u32, 1041 pub key_size: __u32, 1042 pub value_size: __u32, 1043 pub max_entries: __u32, 1044 pub map_flags: __u32, 1045 pub name: [::core::ffi::c_char; 16usize], 1046 pub ifindex: __u32, 1047 pub btf_vmlinux_value_type_id: __u32, 1048 pub netns_dev: __u64, 1049 pub netns_ino: __u64, 1050 pub btf_id: __u32, 1051 pub btf_key_type_id: __u32, 1052 pub btf_value_type_id: __u32, 1053 pub btf_vmlinux_id: __u32, 1054 pub map_extra: __u64, 1055 } 1056 #[repr(C)] 1057 #[derive(Debug, Copy, Clone)] 1058 pub struct bpf_btf_info { 1059 pub btf: __u64, 1060 pub btf_size: __u32, 1061 pub id: __u32, 1062 pub name: __u64, 1063 pub name_len: __u32, 1064 pub kernel_btf: __u32, 1065 } 1066 #[repr(C)] 1067 #[derive(Copy, Clone)] 1068 pub struct bpf_link_info { 1069 pub type_: __u32, 1070 pub id: __u32, 1071 pub prog_id: __u32, 1072 pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1, 1073 } 1074 #[repr(C)] 1075 #[derive(Copy, Clone)] 1076 pub union bpf_link_info__bindgen_ty_1 { 1077 pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1, 1078 pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2, 1079 pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3, 1080 pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4, 1081 pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5, 1082 pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6, 1083 pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7, 1084 pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8, 1085 pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9, 1086 pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10, 1087 pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11, 1088 pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12, 1089 pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13, 1090 } 1091 #[repr(C)] 1092 #[derive(Debug, Copy, Clone)] 1093 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 { 1094 pub tp_name: __u64, 1095 pub tp_name_len: __u32, 1096 } 1097 #[repr(C)] 1098 #[derive(Debug, Copy, Clone)] 1099 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 { 1100 pub attach_type: __u32, 1101 pub target_obj_id: __u32, 1102 pub target_btf_id: __u32, 1103 } 1104 #[repr(C)] 1105 #[derive(Debug, Copy, Clone)] 1106 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 { 1107 pub cgroup_id: __u64, 1108 pub attach_type: __u32, 1109 } 1110 #[repr(C)] 1111 #[derive(Copy, Clone)] 1112 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 { 1113 pub target_name: __u64, 1114 pub target_name_len: __u32, 1115 pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1, 1116 pub __bindgen_anon_2: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2, 1117 } 1118 #[repr(C)] 1119 #[derive(Copy, Clone)] 1120 pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 { 1121 pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1, 1122 } 1123 #[repr(C)] 1124 #[derive(Debug, Copy, Clone)] 1125 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 { 1126 pub map_id: __u32, 1127 } 1128 #[repr(C)] 1129 #[derive(Copy, Clone)] 1130 pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2 { 1131 pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1, 1132 pub task: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2, 1133 } 1134 #[repr(C)] 1135 #[derive(Debug, Copy, Clone)] 1136 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1 { 1137 pub cgroup_id: __u64, 1138 pub order: __u32, 1139 } 1140 #[repr(C)] 1141 #[derive(Debug, Copy, Clone)] 1142 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2 { 1143 pub tid: __u32, 1144 pub pid: __u32, 1145 } 1146 #[repr(C)] 1147 #[derive(Debug, Copy, Clone)] 1148 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 { 1149 pub netns_ino: __u32, 1150 pub attach_type: __u32, 1151 } 1152 #[repr(C)] 1153 #[derive(Debug, Copy, Clone)] 1154 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 { 1155 pub ifindex: __u32, 1156 } 1157 #[repr(C)] 1158 #[derive(Debug, Copy, Clone)] 1159 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_7 { 1160 pub map_id: __u32, 1161 } 1162 #[repr(C)] 1163 #[derive(Debug, Copy, Clone)] 1164 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 { 1165 pub pf: __u32, 1166 pub hooknum: __u32, 1167 pub priority: __s32, 1168 pub flags: __u32, 1169 } 1170 #[repr(C)] 1171 #[derive(Debug, Copy, Clone)] 1172 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 { 1173 pub addrs: __u64, 1174 pub count: __u32, 1175 pub flags: __u32, 1176 pub missed: __u64, 1177 pub cookies: __u64, 1178 } 1179 #[repr(C)] 1180 #[derive(Debug, Copy, Clone)] 1181 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 { 1182 pub path: __u64, 1183 pub offsets: __u64, 1184 pub ref_ctr_offsets: __u64, 1185 pub cookies: __u64, 1186 pub path_size: __u32, 1187 pub count: __u32, 1188 pub flags: __u32, 1189 pub pid: __u32, 1190 } 1191 #[repr(C)] 1192 #[derive(Copy, Clone)] 1193 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 { 1194 pub type_: __u32, 1195 pub _bitfield_align_1: [u8; 0], 1196 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, 1197 pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1, 1198 } 1199 #[repr(C)] 1200 #[derive(Copy, Clone)] 1201 pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 { 1202 pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1, 1203 pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2, 1204 pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3, 1205 pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4, 1206 } 1207 #[repr(C)] 1208 #[derive(Debug, Copy, Clone)] 1209 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 { 1210 pub file_name: __u64, 1211 pub name_len: __u32, 1212 pub offset: __u32, 1213 pub cookie: __u64, 1214 } 1215 #[repr(C)] 1216 #[derive(Debug, Copy, Clone)] 1217 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 { 1218 pub func_name: __u64, 1219 pub name_len: __u32, 1220 pub offset: __u32, 1221 pub addr: __u64, 1222 pub missed: __u64, 1223 pub cookie: __u64, 1224 } 1225 #[repr(C)] 1226 #[derive(Debug, Copy, Clone)] 1227 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 { 1228 pub tp_name: __u64, 1229 pub name_len: __u32, 1230 pub _bitfield_align_1: [u8; 0], 1231 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, 1232 pub cookie: __u64, 1233 } 1234 impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 { 1235 #[inline] 1236 pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> { 1237 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); 1238 __bindgen_bitfield_unit 1239 } 1240 } 1241 #[repr(C)] 1242 #[derive(Debug, Copy, Clone)] 1243 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 { 1244 pub config: __u64, 1245 pub type_: __u32, 1246 pub _bitfield_align_1: [u8; 0], 1247 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, 1248 pub cookie: __u64, 1249 } 1250 impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 { 1251 #[inline] 1252 pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> { 1253 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); 1254 __bindgen_bitfield_unit 1255 } 1256 } 1257 impl bpf_link_info__bindgen_ty_1__bindgen_ty_11 { 1258 #[inline] 1259 pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> { 1260 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); 1261 __bindgen_bitfield_unit 1262 } 1263 } 1264 #[repr(C)] 1265 #[derive(Debug, Copy, Clone)] 1266 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 { 1267 pub ifindex: __u32, 1268 pub attach_type: __u32, 1269 } 1270 #[repr(C)] 1271 #[derive(Debug, Copy, Clone)] 1272 pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 { 1273 pub ifindex: __u32, 1274 pub attach_type: __u32, 1275 } 1276 #[repr(C)] 1277 #[derive(Debug, Copy, Clone)] 1278 pub struct bpf_func_info { 1279 pub insn_off: __u32, 1280 pub type_id: __u32, 1281 } 1282 #[repr(C)] 1283 #[derive(Debug, Copy, Clone)] 1284 pub struct bpf_line_info { 1285 pub insn_off: __u32, 1286 pub file_name_off: __u32, 1287 pub line_off: __u32, 1288 pub line_col: __u32, 1289 } 1290 pub const BPF_F_TIMER_ABS: _bindgen_ty_41 = 1; 1291 pub const BPF_F_TIMER_CPU_PIN: _bindgen_ty_41 = 2; 1292 pub type _bindgen_ty_41 = ::core::ffi::c_uint; 1293 #[repr(C)] 1294 #[derive(Debug, Copy, Clone)] 1295 pub struct btf_header { 1296 pub magic: __u16, 1297 pub version: __u8, 1298 pub flags: __u8, 1299 pub hdr_len: __u32, 1300 pub type_off: __u32, 1301 pub type_len: __u32, 1302 pub str_off: __u32, 1303 pub str_len: __u32, 1304 } 1305 #[repr(C)] 1306 #[derive(Copy, Clone)] 1307 pub struct btf_type { 1308 pub name_off: __u32, 1309 pub info: __u32, 1310 pub __bindgen_anon_1: btf_type__bindgen_ty_1, 1311 } 1312 #[repr(C)] 1313 #[derive(Copy, Clone)] 1314 pub union btf_type__bindgen_ty_1 { 1315 pub size: __u32, 1316 pub type_: __u32, 1317 } 1318 pub const BTF_KIND_UNKN: _bindgen_ty_42 = 0; 1319 pub const BTF_KIND_INT: _bindgen_ty_42 = 1; 1320 pub const BTF_KIND_PTR: _bindgen_ty_42 = 2; 1321 pub const BTF_KIND_ARRAY: _bindgen_ty_42 = 3; 1322 pub const BTF_KIND_STRUCT: _bindgen_ty_42 = 4; 1323 pub const BTF_KIND_UNION: _bindgen_ty_42 = 5; 1324 pub const BTF_KIND_ENUM: _bindgen_ty_42 = 6; 1325 pub const BTF_KIND_FWD: _bindgen_ty_42 = 7; 1326 pub const BTF_KIND_TYPEDEF: _bindgen_ty_42 = 8; 1327 pub const BTF_KIND_VOLATILE: _bindgen_ty_42 = 9; 1328 pub const BTF_KIND_CONST: _bindgen_ty_42 = 10; 1329 pub const BTF_KIND_RESTRICT: _bindgen_ty_42 = 11; 1330 pub const BTF_KIND_FUNC: _bindgen_ty_42 = 12; 1331 pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_42 = 13; 1332 pub const BTF_KIND_VAR: _bindgen_ty_42 = 14; 1333 pub const BTF_KIND_DATASEC: _bindgen_ty_42 = 15; 1334 pub const BTF_KIND_FLOAT: _bindgen_ty_42 = 16; 1335 pub const BTF_KIND_DECL_TAG: _bindgen_ty_42 = 17; 1336 pub const BTF_KIND_TYPE_TAG: _bindgen_ty_42 = 18; 1337 pub const BTF_KIND_ENUM64: _bindgen_ty_42 = 19; 1338 pub const NR_BTF_KINDS: _bindgen_ty_42 = 20; 1339 pub const BTF_KIND_MAX: _bindgen_ty_42 = 19; 1340 pub type _bindgen_ty_42 = ::core::ffi::c_uint; 1341 #[repr(C)] 1342 #[derive(Debug, Copy, Clone)] 1343 pub struct btf_enum { 1344 pub name_off: __u32, 1345 pub val: __s32, 1346 } 1347 #[repr(C)] 1348 #[derive(Debug, Copy, Clone)] 1349 pub struct btf_array { 1350 pub type_: __u32, 1351 pub index_type: __u32, 1352 pub nelems: __u32, 1353 } 1354 #[repr(C)] 1355 #[derive(Debug, Copy, Clone)] 1356 pub struct btf_member { 1357 pub name_off: __u32, 1358 pub type_: __u32, 1359 pub offset: __u32, 1360 } 1361 #[repr(C)] 1362 #[derive(Debug, Copy, Clone)] 1363 pub struct btf_param { 1364 pub name_off: __u32, 1365 pub type_: __u32, 1366 } 1367 pub const BTF_VAR_STATIC: _bindgen_ty_43 = 0; 1368 pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_43 = 1; 1369 pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_43 = 2; 1370 pub type _bindgen_ty_43 = ::core::ffi::c_uint; 1371 #[repr(u32)] 1372 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] 1373 pub enum btf_func_linkage { 1374 BTF_FUNC_STATIC = 0, 1375 BTF_FUNC_GLOBAL = 1, 1376 BTF_FUNC_EXTERN = 2, 1377 } 1378 #[repr(C)] 1379 #[derive(Debug, Copy, Clone)] 1380 pub struct btf_var { 1381 pub linkage: __u32, 1382 } 1383 #[repr(C)] 1384 #[derive(Debug, Copy, Clone)] 1385 pub struct btf_var_secinfo { 1386 pub type_: __u32, 1387 pub offset: __u32, 1388 pub size: __u32, 1389 } 1390 #[repr(C)] 1391 #[derive(Debug, Copy, Clone)] 1392 pub struct btf_decl_tag { 1393 pub component_idx: __s32, 1394 } 1395 pub const IFLA_XDP_UNSPEC: _bindgen_ty_92 = 0; 1396 pub const IFLA_XDP_FD: _bindgen_ty_92 = 1; 1397 pub const IFLA_XDP_ATTACHED: _bindgen_ty_92 = 2; 1398 pub const IFLA_XDP_FLAGS: _bindgen_ty_92 = 3; 1399 pub const IFLA_XDP_PROG_ID: _bindgen_ty_92 = 4; 1400 pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_92 = 5; 1401 pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_92 = 6; 1402 pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_92 = 7; 1403 pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_92 = 8; 1404 pub const __IFLA_XDP_MAX: _bindgen_ty_92 = 9; 1405 pub type _bindgen_ty_92 = ::core::ffi::c_uint; 1406 #[repr(u32)] 1407 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, FromPrimitive)] 1408 pub enum perf_type_id { 1409 PERF_TYPE_HARDWARE = 0, 1410 PERF_TYPE_SOFTWARE = 1, 1411 PERF_TYPE_TRACEPOINT = 2, 1412 PERF_TYPE_HW_CACHE = 3, 1413 PERF_TYPE_RAW = 4, 1414 PERF_TYPE_BREAKPOINT = 5, 1415 PERF_TYPE_MAX = 6, 1416 } 1417 #[repr(u32)] 1418 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] 1419 pub enum perf_hw_id { 1420 PERF_COUNT_HW_CPU_CYCLES = 0, 1421 PERF_COUNT_HW_INSTRUCTIONS = 1, 1422 PERF_COUNT_HW_CACHE_REFERENCES = 2, 1423 PERF_COUNT_HW_CACHE_MISSES = 3, 1424 PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4, 1425 PERF_COUNT_HW_BRANCH_MISSES = 5, 1426 PERF_COUNT_HW_BUS_CYCLES = 6, 1427 PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7, 1428 PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8, 1429 PERF_COUNT_HW_REF_CPU_CYCLES = 9, 1430 PERF_COUNT_HW_MAX = 10, 1431 } 1432 #[repr(u32)] 1433 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] 1434 pub enum perf_hw_cache_id { 1435 PERF_COUNT_HW_CACHE_L1D = 0, 1436 PERF_COUNT_HW_CACHE_L1I = 1, 1437 PERF_COUNT_HW_CACHE_LL = 2, 1438 PERF_COUNT_HW_CACHE_DTLB = 3, 1439 PERF_COUNT_HW_CACHE_ITLB = 4, 1440 PERF_COUNT_HW_CACHE_BPU = 5, 1441 PERF_COUNT_HW_CACHE_NODE = 6, 1442 PERF_COUNT_HW_CACHE_MAX = 7, 1443 } 1444 #[repr(u32)] 1445 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] 1446 pub enum perf_hw_cache_op_id { 1447 PERF_COUNT_HW_CACHE_OP_READ = 0, 1448 PERF_COUNT_HW_CACHE_OP_WRITE = 1, 1449 PERF_COUNT_HW_CACHE_OP_PREFETCH = 2, 1450 PERF_COUNT_HW_CACHE_OP_MAX = 3, 1451 } 1452 #[repr(u32)] 1453 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] 1454 pub enum perf_hw_cache_op_result_id { 1455 PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0, 1456 PERF_COUNT_HW_CACHE_RESULT_MISS = 1, 1457 PERF_COUNT_HW_CACHE_RESULT_MAX = 2, 1458 } 1459 #[repr(u32)] 1460 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, FromPrimitive)] 1461 pub enum perf_sw_ids { 1462 PERF_COUNT_SW_CPU_CLOCK = 0, 1463 PERF_COUNT_SW_TASK_CLOCK = 1, 1464 PERF_COUNT_SW_PAGE_FAULTS = 2, 1465 PERF_COUNT_SW_CONTEXT_SWITCHES = 3, 1466 PERF_COUNT_SW_CPU_MIGRATIONS = 4, 1467 PERF_COUNT_SW_PAGE_FAULTS_MIN = 5, 1468 PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6, 1469 PERF_COUNT_SW_ALIGNMENT_FAULTS = 7, 1470 PERF_COUNT_SW_EMULATION_FAULTS = 8, 1471 PERF_COUNT_SW_DUMMY = 9, 1472 PERF_COUNT_SW_BPF_OUTPUT = 10, 1473 PERF_COUNT_SW_CGROUP_SWITCHES = 11, 1474 PERF_COUNT_SW_MAX = 12, 1475 } 1476 #[repr(u32)] 1477 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, FromPrimitive)] 1478 pub enum perf_event_sample_format { 1479 PERF_SAMPLE_IP = 1, 1480 PERF_SAMPLE_TID = 2, 1481 PERF_SAMPLE_TIME = 4, 1482 PERF_SAMPLE_ADDR = 8, 1483 PERF_SAMPLE_READ = 16, 1484 PERF_SAMPLE_CALLCHAIN = 32, 1485 PERF_SAMPLE_ID = 64, 1486 PERF_SAMPLE_CPU = 128, 1487 PERF_SAMPLE_PERIOD = 256, 1488 PERF_SAMPLE_STREAM_ID = 512, 1489 PERF_SAMPLE_RAW = 1024, 1490 PERF_SAMPLE_BRANCH_STACK = 2048, 1491 PERF_SAMPLE_REGS_USER = 4096, 1492 PERF_SAMPLE_STACK_USER = 8192, 1493 PERF_SAMPLE_WEIGHT = 16384, 1494 PERF_SAMPLE_DATA_SRC = 32768, 1495 PERF_SAMPLE_IDENTIFIER = 65536, 1496 PERF_SAMPLE_TRANSACTION = 131072, 1497 PERF_SAMPLE_REGS_INTR = 262144, 1498 PERF_SAMPLE_PHYS_ADDR = 524288, 1499 PERF_SAMPLE_AUX = 1048576, 1500 PERF_SAMPLE_CGROUP = 2097152, 1501 PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, 1502 PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, 1503 PERF_SAMPLE_WEIGHT_STRUCT = 16777216, 1504 PERF_SAMPLE_MAX = 33554432, 1505 } 1506 #[repr(C)] 1507 #[derive(Copy, Clone)] 1508 pub struct perf_event_attr { 1509 pub type_: __u32, 1510 pub size: __u32, 1511 pub config: __u64, 1512 pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1, 1513 pub sample_type: __u64, 1514 pub read_format: __u64, 1515 pub _bitfield_align_1: [u32; 0], 1516 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, 1517 pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2, 1518 pub bp_type: __u32, 1519 pub __bindgen_anon_3: perf_event_attr__bindgen_ty_3, 1520 pub __bindgen_anon_4: perf_event_attr__bindgen_ty_4, 1521 pub branch_sample_type: __u64, 1522 pub sample_regs_user: __u64, 1523 pub sample_stack_user: __u32, 1524 pub clockid: __s32, 1525 pub sample_regs_intr: __u64, 1526 pub aux_watermark: __u32, 1527 pub sample_max_stack: __u16, 1528 pub __reserved_2: __u16, 1529 pub aux_sample_size: __u32, 1530 pub __reserved_3: __u32, 1531 pub sig_data: __u64, 1532 pub config3: __u64, 1533 } 1534 #[repr(C)] 1535 #[derive(Copy, Clone)] 1536 pub union perf_event_attr__bindgen_ty_1 { 1537 pub sample_period: __u64, 1538 pub sample_freq: __u64, 1539 } 1540 #[repr(C)] 1541 #[derive(Copy, Clone)] 1542 pub union perf_event_attr__bindgen_ty_2 { 1543 pub wakeup_events: __u32, 1544 pub wakeup_watermark: __u32, 1545 } 1546 #[repr(C)] 1547 #[derive(Copy, Clone)] 1548 pub union perf_event_attr__bindgen_ty_3 { 1549 pub bp_addr: __u64, 1550 pub kprobe_func: __u64, 1551 pub uprobe_path: __u64, 1552 pub config1: __u64, 1553 } 1554 #[repr(C)] 1555 #[derive(Copy, Clone)] 1556 pub union perf_event_attr__bindgen_ty_4 { 1557 pub bp_len: __u64, 1558 pub kprobe_addr: __u64, 1559 pub probe_offset: __u64, 1560 pub config2: __u64, 1561 } 1562 impl perf_event_attr { 1563 #[inline] 1564 pub fn disabled(&self) -> __u64 { 1565 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) } 1566 } 1567 #[inline] 1568 pub fn set_disabled(&mut self, val: __u64) { 1569 unsafe { 1570 let val: u64 = ::core::mem::transmute(val); 1571 self._bitfield_1.set(0usize, 1u8, val as u64) 1572 } 1573 } 1574 #[inline] 1575 pub fn inherit(&self) -> __u64 { 1576 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) } 1577 } 1578 #[inline] 1579 pub fn set_inherit(&mut self, val: __u64) { 1580 unsafe { 1581 let val: u64 = ::core::mem::transmute(val); 1582 self._bitfield_1.set(1usize, 1u8, val as u64) 1583 } 1584 } 1585 #[inline] 1586 pub fn pinned(&self) -> __u64 { 1587 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) } 1588 } 1589 #[inline] 1590 pub fn set_pinned(&mut self, val: __u64) { 1591 unsafe { 1592 let val: u64 = ::core::mem::transmute(val); 1593 self._bitfield_1.set(2usize, 1u8, val as u64) 1594 } 1595 } 1596 #[inline] 1597 pub fn exclusive(&self) -> __u64 { 1598 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) } 1599 } 1600 #[inline] 1601 pub fn set_exclusive(&mut self, val: __u64) { 1602 unsafe { 1603 let val: u64 = ::core::mem::transmute(val); 1604 self._bitfield_1.set(3usize, 1u8, val as u64) 1605 } 1606 } 1607 #[inline] 1608 pub fn exclude_user(&self) -> __u64 { 1609 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) } 1610 } 1611 #[inline] 1612 pub fn set_exclude_user(&mut self, val: __u64) { 1613 unsafe { 1614 let val: u64 = ::core::mem::transmute(val); 1615 self._bitfield_1.set(4usize, 1u8, val as u64) 1616 } 1617 } 1618 #[inline] 1619 pub fn exclude_kernel(&self) -> __u64 { 1620 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) } 1621 } 1622 #[inline] 1623 pub fn set_exclude_kernel(&mut self, val: __u64) { 1624 unsafe { 1625 let val: u64 = ::core::mem::transmute(val); 1626 self._bitfield_1.set(5usize, 1u8, val as u64) 1627 } 1628 } 1629 #[inline] 1630 pub fn exclude_hv(&self) -> __u64 { 1631 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u64) } 1632 } 1633 #[inline] 1634 pub fn set_exclude_hv(&mut self, val: __u64) { 1635 unsafe { 1636 let val: u64 = ::core::mem::transmute(val); 1637 self._bitfield_1.set(6usize, 1u8, val as u64) 1638 } 1639 } 1640 #[inline] 1641 pub fn exclude_idle(&self) -> __u64 { 1642 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u64) } 1643 } 1644 #[inline] 1645 pub fn set_exclude_idle(&mut self, val: __u64) { 1646 unsafe { 1647 let val: u64 = ::core::mem::transmute(val); 1648 self._bitfield_1.set(7usize, 1u8, val as u64) 1649 } 1650 } 1651 #[inline] 1652 pub fn mmap(&self) -> __u64 { 1653 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u64) } 1654 } 1655 #[inline] 1656 pub fn set_mmap(&mut self, val: __u64) { 1657 unsafe { 1658 let val: u64 = ::core::mem::transmute(val); 1659 self._bitfield_1.set(8usize, 1u8, val as u64) 1660 } 1661 } 1662 #[inline] 1663 pub fn comm(&self) -> __u64 { 1664 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u64) } 1665 } 1666 #[inline] 1667 pub fn set_comm(&mut self, val: __u64) { 1668 unsafe { 1669 let val: u64 = ::core::mem::transmute(val); 1670 self._bitfield_1.set(9usize, 1u8, val as u64) 1671 } 1672 } 1673 #[inline] 1674 pub fn freq(&self) -> __u64 { 1675 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u64) } 1676 } 1677 #[inline] 1678 pub fn set_freq(&mut self, val: __u64) { 1679 unsafe { 1680 let val: u64 = ::core::mem::transmute(val); 1681 self._bitfield_1.set(10usize, 1u8, val as u64) 1682 } 1683 } 1684 #[inline] 1685 pub fn inherit_stat(&self) -> __u64 { 1686 unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u64) } 1687 } 1688 #[inline] 1689 pub fn set_inherit_stat(&mut self, val: __u64) { 1690 unsafe { 1691 let val: u64 = ::core::mem::transmute(val); 1692 self._bitfield_1.set(11usize, 1u8, val as u64) 1693 } 1694 } 1695 #[inline] 1696 pub fn enable_on_exec(&self) -> __u64 { 1697 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u64) } 1698 } 1699 #[inline] 1700 pub fn set_enable_on_exec(&mut self, val: __u64) { 1701 unsafe { 1702 let val: u64 = ::core::mem::transmute(val); 1703 self._bitfield_1.set(12usize, 1u8, val as u64) 1704 } 1705 } 1706 #[inline] 1707 pub fn task(&self) -> __u64 { 1708 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u64) } 1709 } 1710 #[inline] 1711 pub fn set_task(&mut self, val: __u64) { 1712 unsafe { 1713 let val: u64 = ::core::mem::transmute(val); 1714 self._bitfield_1.set(13usize, 1u8, val as u64) 1715 } 1716 } 1717 #[inline] 1718 pub fn watermark(&self) -> __u64 { 1719 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u64) } 1720 } 1721 #[inline] 1722 pub fn set_watermark(&mut self, val: __u64) { 1723 unsafe { 1724 let val: u64 = ::core::mem::transmute(val); 1725 self._bitfield_1.set(14usize, 1u8, val as u64) 1726 } 1727 } 1728 #[inline] 1729 pub fn precise_ip(&self) -> __u64 { 1730 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 2u8) as u64) } 1731 } 1732 #[inline] 1733 pub fn set_precise_ip(&mut self, val: __u64) { 1734 unsafe { 1735 let val: u64 = ::core::mem::transmute(val); 1736 self._bitfield_1.set(15usize, 2u8, val as u64) 1737 } 1738 } 1739 #[inline] 1740 pub fn mmap_data(&self) -> __u64 { 1741 unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u64) } 1742 } 1743 #[inline] 1744 pub fn set_mmap_data(&mut self, val: __u64) { 1745 unsafe { 1746 let val: u64 = ::core::mem::transmute(val); 1747 self._bitfield_1.set(17usize, 1u8, val as u64) 1748 } 1749 } 1750 #[inline] 1751 pub fn sample_id_all(&self) -> __u64 { 1752 unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u64) } 1753 } 1754 #[inline] 1755 pub fn set_sample_id_all(&mut self, val: __u64) { 1756 unsafe { 1757 let val: u64 = ::core::mem::transmute(val); 1758 self._bitfield_1.set(18usize, 1u8, val as u64) 1759 } 1760 } 1761 #[inline] 1762 pub fn exclude_host(&self) -> __u64 { 1763 unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u64) } 1764 } 1765 #[inline] 1766 pub fn set_exclude_host(&mut self, val: __u64) { 1767 unsafe { 1768 let val: u64 = ::core::mem::transmute(val); 1769 self._bitfield_1.set(19usize, 1u8, val as u64) 1770 } 1771 } 1772 #[inline] 1773 pub fn exclude_guest(&self) -> __u64 { 1774 unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u64) } 1775 } 1776 #[inline] 1777 pub fn set_exclude_guest(&mut self, val: __u64) { 1778 unsafe { 1779 let val: u64 = ::core::mem::transmute(val); 1780 self._bitfield_1.set(20usize, 1u8, val as u64) 1781 } 1782 } 1783 #[inline] 1784 pub fn exclude_callchain_kernel(&self) -> __u64 { 1785 unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } 1786 } 1787 #[inline] 1788 pub fn set_exclude_callchain_kernel(&mut self, val: __u64) { 1789 unsafe { 1790 let val: u64 = ::core::mem::transmute(val); 1791 self._bitfield_1.set(21usize, 1u8, val as u64) 1792 } 1793 } 1794 #[inline] 1795 pub fn exclude_callchain_user(&self) -> __u64 { 1796 unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } 1797 } 1798 #[inline] 1799 pub fn set_exclude_callchain_user(&mut self, val: __u64) { 1800 unsafe { 1801 let val: u64 = ::core::mem::transmute(val); 1802 self._bitfield_1.set(22usize, 1u8, val as u64) 1803 } 1804 } 1805 #[inline] 1806 pub fn mmap2(&self) -> __u64 { 1807 unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u64) } 1808 } 1809 #[inline] 1810 pub fn set_mmap2(&mut self, val: __u64) { 1811 unsafe { 1812 let val: u64 = ::core::mem::transmute(val); 1813 self._bitfield_1.set(23usize, 1u8, val as u64) 1814 } 1815 } 1816 #[inline] 1817 pub fn comm_exec(&self) -> __u64 { 1818 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u64) } 1819 } 1820 #[inline] 1821 pub fn set_comm_exec(&mut self, val: __u64) { 1822 unsafe { 1823 let val: u64 = ::core::mem::transmute(val); 1824 self._bitfield_1.set(24usize, 1u8, val as u64) 1825 } 1826 } 1827 #[inline] 1828 pub fn use_clockid(&self) -> __u64 { 1829 unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u64) } 1830 } 1831 #[inline] 1832 pub fn set_use_clockid(&mut self, val: __u64) { 1833 unsafe { 1834 let val: u64 = ::core::mem::transmute(val); 1835 self._bitfield_1.set(25usize, 1u8, val as u64) 1836 } 1837 } 1838 #[inline] 1839 pub fn context_switch(&self) -> __u64 { 1840 unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u64) } 1841 } 1842 #[inline] 1843 pub fn set_context_switch(&mut self, val: __u64) { 1844 unsafe { 1845 let val: u64 = ::core::mem::transmute(val); 1846 self._bitfield_1.set(26usize, 1u8, val as u64) 1847 } 1848 } 1849 #[inline] 1850 pub fn write_backward(&self) -> __u64 { 1851 unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u64) } 1852 } 1853 #[inline] 1854 pub fn set_write_backward(&mut self, val: __u64) { 1855 unsafe { 1856 let val: u64 = ::core::mem::transmute(val); 1857 self._bitfield_1.set(27usize, 1u8, val as u64) 1858 } 1859 } 1860 #[inline] 1861 pub fn namespaces(&self) -> __u64 { 1862 unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u64) } 1863 } 1864 #[inline] 1865 pub fn set_namespaces(&mut self, val: __u64) { 1866 unsafe { 1867 let val: u64 = ::core::mem::transmute(val); 1868 self._bitfield_1.set(28usize, 1u8, val as u64) 1869 } 1870 } 1871 #[inline] 1872 pub fn ksymbol(&self) -> __u64 { 1873 unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u64) } 1874 } 1875 #[inline] 1876 pub fn set_ksymbol(&mut self, val: __u64) { 1877 unsafe { 1878 let val: u64 = ::core::mem::transmute(val); 1879 self._bitfield_1.set(29usize, 1u8, val as u64) 1880 } 1881 } 1882 #[inline] 1883 pub fn bpf_event(&self) -> __u64 { 1884 unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u64) } 1885 } 1886 #[inline] 1887 pub fn set_bpf_event(&mut self, val: __u64) { 1888 unsafe { 1889 let val: u64 = ::core::mem::transmute(val); 1890 self._bitfield_1.set(30usize, 1u8, val as u64) 1891 } 1892 } 1893 #[inline] 1894 pub fn aux_output(&self) -> __u64 { 1895 unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u64) } 1896 } 1897 #[inline] 1898 pub fn set_aux_output(&mut self, val: __u64) { 1899 unsafe { 1900 let val: u64 = ::core::mem::transmute(val); 1901 self._bitfield_1.set(31usize, 1u8, val as u64) 1902 } 1903 } 1904 #[inline] 1905 pub fn cgroup(&self) -> __u64 { 1906 unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } 1907 } 1908 #[inline] 1909 pub fn set_cgroup(&mut self, val: __u64) { 1910 unsafe { 1911 let val: u64 = ::core::mem::transmute(val); 1912 self._bitfield_1.set(32usize, 1u8, val as u64) 1913 } 1914 } 1915 #[inline] 1916 pub fn text_poke(&self) -> __u64 { 1917 unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) } 1918 } 1919 #[inline] 1920 pub fn set_text_poke(&mut self, val: __u64) { 1921 unsafe { 1922 let val: u64 = ::core::mem::transmute(val); 1923 self._bitfield_1.set(33usize, 1u8, val as u64) 1924 } 1925 } 1926 #[inline] 1927 pub fn build_id(&self) -> __u64 { 1928 unsafe { ::core::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) } 1929 } 1930 #[inline] 1931 pub fn set_build_id(&mut self, val: __u64) { 1932 unsafe { 1933 let val: u64 = ::core::mem::transmute(val); 1934 self._bitfield_1.set(34usize, 1u8, val as u64) 1935 } 1936 } 1937 #[inline] 1938 pub fn inherit_thread(&self) -> __u64 { 1939 unsafe { ::core::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) } 1940 } 1941 #[inline] 1942 pub fn set_inherit_thread(&mut self, val: __u64) { 1943 unsafe { 1944 let val: u64 = ::core::mem::transmute(val); 1945 self._bitfield_1.set(35usize, 1u8, val as u64) 1946 } 1947 } 1948 #[inline] 1949 pub fn remove_on_exec(&self) -> __u64 { 1950 unsafe { ::core::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) } 1951 } 1952 #[inline] 1953 pub fn set_remove_on_exec(&mut self, val: __u64) { 1954 unsafe { 1955 let val: u64 = ::core::mem::transmute(val); 1956 self._bitfield_1.set(36usize, 1u8, val as u64) 1957 } 1958 } 1959 #[inline] 1960 pub fn sigtrap(&self) -> __u64 { 1961 unsafe { ::core::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) } 1962 } 1963 #[inline] 1964 pub fn set_sigtrap(&mut self, val: __u64) { 1965 unsafe { 1966 let val: u64 = ::core::mem::transmute(val); 1967 self._bitfield_1.set(37usize, 1u8, val as u64) 1968 } 1969 } 1970 #[inline] 1971 pub fn __reserved_1(&self) -> __u64 { 1972 unsafe { ::core::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) } 1973 } 1974 #[inline] 1975 pub fn set___reserved_1(&mut self, val: __u64) { 1976 unsafe { 1977 let val: u64 = ::core::mem::transmute(val); 1978 self._bitfield_1.set(38usize, 26u8, val as u64) 1979 } 1980 } 1981 #[inline] 1982 pub fn new_bitfield_1( 1983 disabled: __u64, 1984 inherit: __u64, 1985 pinned: __u64, 1986 exclusive: __u64, 1987 exclude_user: __u64, 1988 exclude_kernel: __u64, 1989 exclude_hv: __u64, 1990 exclude_idle: __u64, 1991 mmap: __u64, 1992 comm: __u64, 1993 freq: __u64, 1994 inherit_stat: __u64, 1995 enable_on_exec: __u64, 1996 task: __u64, 1997 watermark: __u64, 1998 precise_ip: __u64, 1999 mmap_data: __u64, 2000 sample_id_all: __u64, 2001 exclude_host: __u64, 2002 exclude_guest: __u64, 2003 exclude_callchain_kernel: __u64, 2004 exclude_callchain_user: __u64, 2005 mmap2: __u64, 2006 comm_exec: __u64, 2007 use_clockid: __u64, 2008 context_switch: __u64, 2009 write_backward: __u64, 2010 namespaces: __u64, 2011 ksymbol: __u64, 2012 bpf_event: __u64, 2013 aux_output: __u64, 2014 cgroup: __u64, 2015 text_poke: __u64, 2016 build_id: __u64, 2017 inherit_thread: __u64, 2018 remove_on_exec: __u64, 2019 sigtrap: __u64, 2020 __reserved_1: __u64, 2021 ) -> __BindgenBitfieldUnit<[u8; 8usize]> { 2022 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); 2023 __bindgen_bitfield_unit.set(0usize, 1u8, { 2024 let disabled: u64 = unsafe { ::core::mem::transmute(disabled) }; 2025 disabled as u64 2026 }); 2027 __bindgen_bitfield_unit.set(1usize, 1u8, { 2028 let inherit: u64 = unsafe { ::core::mem::transmute(inherit) }; 2029 inherit as u64 2030 }); 2031 __bindgen_bitfield_unit.set(2usize, 1u8, { 2032 let pinned: u64 = unsafe { ::core::mem::transmute(pinned) }; 2033 pinned as u64 2034 }); 2035 __bindgen_bitfield_unit.set(3usize, 1u8, { 2036 let exclusive: u64 = unsafe { ::core::mem::transmute(exclusive) }; 2037 exclusive as u64 2038 }); 2039 __bindgen_bitfield_unit.set(4usize, 1u8, { 2040 let exclude_user: u64 = unsafe { ::core::mem::transmute(exclude_user) }; 2041 exclude_user as u64 2042 }); 2043 __bindgen_bitfield_unit.set(5usize, 1u8, { 2044 let exclude_kernel: u64 = unsafe { ::core::mem::transmute(exclude_kernel) }; 2045 exclude_kernel as u64 2046 }); 2047 __bindgen_bitfield_unit.set(6usize, 1u8, { 2048 let exclude_hv: u64 = unsafe { ::core::mem::transmute(exclude_hv) }; 2049 exclude_hv as u64 2050 }); 2051 __bindgen_bitfield_unit.set(7usize, 1u8, { 2052 let exclude_idle: u64 = unsafe { ::core::mem::transmute(exclude_idle) }; 2053 exclude_idle as u64 2054 }); 2055 __bindgen_bitfield_unit.set(8usize, 1u8, { 2056 let mmap: u64 = unsafe { ::core::mem::transmute(mmap) }; 2057 mmap as u64 2058 }); 2059 __bindgen_bitfield_unit.set(9usize, 1u8, { 2060 let comm: u64 = unsafe { ::core::mem::transmute(comm) }; 2061 comm as u64 2062 }); 2063 __bindgen_bitfield_unit.set(10usize, 1u8, { 2064 let freq: u64 = unsafe { ::core::mem::transmute(freq) }; 2065 freq as u64 2066 }); 2067 __bindgen_bitfield_unit.set(11usize, 1u8, { 2068 let inherit_stat: u64 = unsafe { ::core::mem::transmute(inherit_stat) }; 2069 inherit_stat as u64 2070 }); 2071 __bindgen_bitfield_unit.set(12usize, 1u8, { 2072 let enable_on_exec: u64 = unsafe { ::core::mem::transmute(enable_on_exec) }; 2073 enable_on_exec as u64 2074 }); 2075 __bindgen_bitfield_unit.set(13usize, 1u8, { 2076 let task: u64 = unsafe { ::core::mem::transmute(task) }; 2077 task as u64 2078 }); 2079 __bindgen_bitfield_unit.set(14usize, 1u8, { 2080 let watermark: u64 = unsafe { ::core::mem::transmute(watermark) }; 2081 watermark as u64 2082 }); 2083 __bindgen_bitfield_unit.set(15usize, 2u8, { 2084 let precise_ip: u64 = unsafe { ::core::mem::transmute(precise_ip) }; 2085 precise_ip as u64 2086 }); 2087 __bindgen_bitfield_unit.set(17usize, 1u8, { 2088 let mmap_data: u64 = unsafe { ::core::mem::transmute(mmap_data) }; 2089 mmap_data as u64 2090 }); 2091 __bindgen_bitfield_unit.set(18usize, 1u8, { 2092 let sample_id_all: u64 = unsafe { ::core::mem::transmute(sample_id_all) }; 2093 sample_id_all as u64 2094 }); 2095 __bindgen_bitfield_unit.set(19usize, 1u8, { 2096 let exclude_host: u64 = unsafe { ::core::mem::transmute(exclude_host) }; 2097 exclude_host as u64 2098 }); 2099 __bindgen_bitfield_unit.set(20usize, 1u8, { 2100 let exclude_guest: u64 = unsafe { ::core::mem::transmute(exclude_guest) }; 2101 exclude_guest as u64 2102 }); 2103 __bindgen_bitfield_unit.set(21usize, 1u8, { 2104 let exclude_callchain_kernel: u64 = 2105 unsafe { ::core::mem::transmute(exclude_callchain_kernel) }; 2106 exclude_callchain_kernel as u64 2107 }); 2108 __bindgen_bitfield_unit.set(22usize, 1u8, { 2109 let exclude_callchain_user: u64 = 2110 unsafe { ::core::mem::transmute(exclude_callchain_user) }; 2111 exclude_callchain_user as u64 2112 }); 2113 __bindgen_bitfield_unit.set(23usize, 1u8, { 2114 let mmap2: u64 = unsafe { ::core::mem::transmute(mmap2) }; 2115 mmap2 as u64 2116 }); 2117 __bindgen_bitfield_unit.set(24usize, 1u8, { 2118 let comm_exec: u64 = unsafe { ::core::mem::transmute(comm_exec) }; 2119 comm_exec as u64 2120 }); 2121 __bindgen_bitfield_unit.set(25usize, 1u8, { 2122 let use_clockid: u64 = unsafe { ::core::mem::transmute(use_clockid) }; 2123 use_clockid as u64 2124 }); 2125 __bindgen_bitfield_unit.set(26usize, 1u8, { 2126 let context_switch: u64 = unsafe { ::core::mem::transmute(context_switch) }; 2127 context_switch as u64 2128 }); 2129 __bindgen_bitfield_unit.set(27usize, 1u8, { 2130 let write_backward: u64 = unsafe { ::core::mem::transmute(write_backward) }; 2131 write_backward as u64 2132 }); 2133 __bindgen_bitfield_unit.set(28usize, 1u8, { 2134 let namespaces: u64 = unsafe { ::core::mem::transmute(namespaces) }; 2135 namespaces as u64 2136 }); 2137 __bindgen_bitfield_unit.set(29usize, 1u8, { 2138 let ksymbol: u64 = unsafe { ::core::mem::transmute(ksymbol) }; 2139 ksymbol as u64 2140 }); 2141 __bindgen_bitfield_unit.set(30usize, 1u8, { 2142 let bpf_event: u64 = unsafe { ::core::mem::transmute(bpf_event) }; 2143 bpf_event as u64 2144 }); 2145 __bindgen_bitfield_unit.set(31usize, 1u8, { 2146 let aux_output: u64 = unsafe { ::core::mem::transmute(aux_output) }; 2147 aux_output as u64 2148 }); 2149 __bindgen_bitfield_unit.set(32usize, 1u8, { 2150 let cgroup: u64 = unsafe { ::core::mem::transmute(cgroup) }; 2151 cgroup as u64 2152 }); 2153 __bindgen_bitfield_unit.set(33usize, 1u8, { 2154 let text_poke: u64 = unsafe { ::core::mem::transmute(text_poke) }; 2155 text_poke as u64 2156 }); 2157 __bindgen_bitfield_unit.set(34usize, 1u8, { 2158 let build_id: u64 = unsafe { ::core::mem::transmute(build_id) }; 2159 build_id as u64 2160 }); 2161 __bindgen_bitfield_unit.set(35usize, 1u8, { 2162 let inherit_thread: u64 = unsafe { ::core::mem::transmute(inherit_thread) }; 2163 inherit_thread as u64 2164 }); 2165 __bindgen_bitfield_unit.set(36usize, 1u8, { 2166 let remove_on_exec: u64 = unsafe { ::core::mem::transmute(remove_on_exec) }; 2167 remove_on_exec as u64 2168 }); 2169 __bindgen_bitfield_unit.set(37usize, 1u8, { 2170 let sigtrap: u64 = unsafe { ::core::mem::transmute(sigtrap) }; 2171 sigtrap as u64 2172 }); 2173 __bindgen_bitfield_unit.set(38usize, 26u8, { 2174 let __reserved_1: u64 = unsafe { ::core::mem::transmute(__reserved_1) }; 2175 __reserved_1 as u64 2176 }); 2177 __bindgen_bitfield_unit 2178 } 2179 } 2180 #[repr(C)] 2181 #[derive(Copy, Clone)] 2182 pub struct perf_event_mmap_page { 2183 pub version: __u32, 2184 pub compat_version: __u32, 2185 pub lock: __u32, 2186 pub index: __u32, 2187 pub offset: __s64, 2188 pub time_enabled: __u64, 2189 pub time_running: __u64, 2190 pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1, 2191 pub pmc_width: __u16, 2192 pub time_shift: __u16, 2193 pub time_mult: __u32, 2194 pub time_offset: __u64, 2195 pub time_zero: __u64, 2196 pub size: __u32, 2197 pub __reserved_1: __u32, 2198 pub time_cycles: __u64, 2199 pub time_mask: __u64, 2200 pub __reserved: [__u8; 928usize], 2201 pub data_head: __u64, 2202 pub data_tail: __u64, 2203 pub data_offset: __u64, 2204 pub data_size: __u64, 2205 pub aux_head: __u64, 2206 pub aux_tail: __u64, 2207 pub aux_offset: __u64, 2208 pub aux_size: __u64, 2209 } 2210 #[repr(C)] 2211 #[derive(Copy, Clone)] 2212 pub union perf_event_mmap_page__bindgen_ty_1 { 2213 pub capabilities: __u64, 2214 pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1, 2215 } 2216 #[repr(C)] 2217 #[derive(Debug, Copy, Clone)] 2218 pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { 2219 pub _bitfield_align_1: [u64; 0], 2220 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, 2221 } 2222 impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { 2223 #[inline] 2224 pub fn cap_bit0(&self) -> __u64 { 2225 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) } 2226 } 2227 #[inline] 2228 pub fn set_cap_bit0(&mut self, val: __u64) { 2229 unsafe { 2230 let val: u64 = ::core::mem::transmute(val); 2231 self._bitfield_1.set(0usize, 1u8, val as u64) 2232 } 2233 } 2234 #[inline] 2235 pub fn cap_bit0_is_deprecated(&self) -> __u64 { 2236 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) } 2237 } 2238 #[inline] 2239 pub fn set_cap_bit0_is_deprecated(&mut self, val: __u64) { 2240 unsafe { 2241 let val: u64 = ::core::mem::transmute(val); 2242 self._bitfield_1.set(1usize, 1u8, val as u64) 2243 } 2244 } 2245 #[inline] 2246 pub fn cap_user_rdpmc(&self) -> __u64 { 2247 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) } 2248 } 2249 #[inline] 2250 pub fn set_cap_user_rdpmc(&mut self, val: __u64) { 2251 unsafe { 2252 let val: u64 = ::core::mem::transmute(val); 2253 self._bitfield_1.set(2usize, 1u8, val as u64) 2254 } 2255 } 2256 #[inline] 2257 pub fn cap_user_time(&self) -> __u64 { 2258 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) } 2259 } 2260 #[inline] 2261 pub fn set_cap_user_time(&mut self, val: __u64) { 2262 unsafe { 2263 let val: u64 = ::core::mem::transmute(val); 2264 self._bitfield_1.set(3usize, 1u8, val as u64) 2265 } 2266 } 2267 #[inline] 2268 pub fn cap_user_time_zero(&self) -> __u64 { 2269 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) } 2270 } 2271 #[inline] 2272 pub fn set_cap_user_time_zero(&mut self, val: __u64) { 2273 unsafe { 2274 let val: u64 = ::core::mem::transmute(val); 2275 self._bitfield_1.set(4usize, 1u8, val as u64) 2276 } 2277 } 2278 #[inline] 2279 pub fn cap_user_time_short(&self) -> __u64 { 2280 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) } 2281 } 2282 #[inline] 2283 pub fn set_cap_user_time_short(&mut self, val: __u64) { 2284 unsafe { 2285 let val: u64 = ::core::mem::transmute(val); 2286 self._bitfield_1.set(5usize, 1u8, val as u64) 2287 } 2288 } 2289 #[inline] 2290 pub fn cap_____res(&self) -> __u64 { 2291 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) } 2292 } 2293 #[inline] 2294 pub fn set_cap_____res(&mut self, val: __u64) { 2295 unsafe { 2296 let val: u64 = ::core::mem::transmute(val); 2297 self._bitfield_1.set(6usize, 58u8, val as u64) 2298 } 2299 } 2300 #[inline] 2301 pub fn new_bitfield_1( 2302 cap_bit0: __u64, 2303 cap_bit0_is_deprecated: __u64, 2304 cap_user_rdpmc: __u64, 2305 cap_user_time: __u64, 2306 cap_user_time_zero: __u64, 2307 cap_user_time_short: __u64, 2308 cap_____res: __u64, 2309 ) -> __BindgenBitfieldUnit<[u8; 8usize]> { 2310 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); 2311 __bindgen_bitfield_unit.set(0usize, 1u8, { 2312 let cap_bit0: u64 = unsafe { ::core::mem::transmute(cap_bit0) }; 2313 cap_bit0 as u64 2314 }); 2315 __bindgen_bitfield_unit.set(1usize, 1u8, { 2316 let cap_bit0_is_deprecated: u64 = 2317 unsafe { ::core::mem::transmute(cap_bit0_is_deprecated) }; 2318 cap_bit0_is_deprecated as u64 2319 }); 2320 __bindgen_bitfield_unit.set(2usize, 1u8, { 2321 let cap_user_rdpmc: u64 = unsafe { ::core::mem::transmute(cap_user_rdpmc) }; 2322 cap_user_rdpmc as u64 2323 }); 2324 __bindgen_bitfield_unit.set(3usize, 1u8, { 2325 let cap_user_time: u64 = unsafe { ::core::mem::transmute(cap_user_time) }; 2326 cap_user_time as u64 2327 }); 2328 __bindgen_bitfield_unit.set(4usize, 1u8, { 2329 let cap_user_time_zero: u64 = unsafe { ::core::mem::transmute(cap_user_time_zero) }; 2330 cap_user_time_zero as u64 2331 }); 2332 __bindgen_bitfield_unit.set(5usize, 1u8, { 2333 let cap_user_time_short: u64 = unsafe { ::core::mem::transmute(cap_user_time_short) }; 2334 cap_user_time_short as u64 2335 }); 2336 __bindgen_bitfield_unit.set(6usize, 58u8, { 2337 let cap_____res: u64 = unsafe { ::core::mem::transmute(cap_____res) }; 2338 cap_____res as u64 2339 }); 2340 __bindgen_bitfield_unit 2341 } 2342 } 2343 #[repr(C)] 2344 #[derive(Debug, Copy, Clone)] 2345 pub struct perf_event_header { 2346 pub type_: __u32, 2347 pub misc: __u16, 2348 pub size: __u16, 2349 } 2350 #[repr(u32)] 2351 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, ToPrimitive)] 2352 pub enum perf_event_type { 2353 PERF_RECORD_MMAP = 1, 2354 PERF_RECORD_LOST = 2, 2355 PERF_RECORD_COMM = 3, 2356 PERF_RECORD_EXIT = 4, 2357 PERF_RECORD_THROTTLE = 5, 2358 PERF_RECORD_UNTHROTTLE = 6, 2359 PERF_RECORD_FORK = 7, 2360 PERF_RECORD_READ = 8, 2361 PERF_RECORD_SAMPLE = 9, 2362 PERF_RECORD_MMAP2 = 10, 2363 PERF_RECORD_AUX = 11, 2364 PERF_RECORD_ITRACE_START = 12, 2365 PERF_RECORD_LOST_SAMPLES = 13, 2366 PERF_RECORD_SWITCH = 14, 2367 PERF_RECORD_SWITCH_CPU_WIDE = 15, 2368 PERF_RECORD_NAMESPACES = 16, 2369 PERF_RECORD_KSYMBOL = 17, 2370 PERF_RECORD_BPF_EVENT = 18, 2371 PERF_RECORD_CGROUP = 19, 2372 PERF_RECORD_TEXT_POKE = 20, 2373 PERF_RECORD_AUX_OUTPUT_HW_ID = 21, 2374 PERF_RECORD_MAX = 22, 2375 } 2376 pub const TCA_BPF_UNSPEC: _bindgen_ty_152 = 0; 2377 pub const TCA_BPF_ACT: _bindgen_ty_152 = 1; 2378 pub const TCA_BPF_POLICE: _bindgen_ty_152 = 2; 2379 pub const TCA_BPF_CLASSID: _bindgen_ty_152 = 3; 2380 pub const TCA_BPF_OPS_LEN: _bindgen_ty_152 = 4; 2381 pub const TCA_BPF_OPS: _bindgen_ty_152 = 5; 2382 pub const TCA_BPF_FD: _bindgen_ty_152 = 6; 2383 pub const TCA_BPF_NAME: _bindgen_ty_152 = 7; 2384 pub const TCA_BPF_FLAGS: _bindgen_ty_152 = 8; 2385 pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_152 = 9; 2386 pub const TCA_BPF_TAG: _bindgen_ty_152 = 10; 2387 pub const TCA_BPF_ID: _bindgen_ty_152 = 11; 2388 pub const __TCA_BPF_MAX: _bindgen_ty_152 = 12; 2389 pub type _bindgen_ty_152 = ::core::ffi::c_uint; 2390 #[repr(C)] 2391 #[derive(Debug, Copy, Clone)] 2392 pub struct ifinfomsg { 2393 pub ifi_family: ::core::ffi::c_uchar, 2394 pub __ifi_pad: ::core::ffi::c_uchar, 2395 pub ifi_type: ::core::ffi::c_ushort, 2396 pub ifi_index: ::core::ffi::c_int, 2397 pub ifi_flags: ::core::ffi::c_uint, 2398 pub ifi_change: ::core::ffi::c_uint, 2399 } 2400 #[repr(C)] 2401 #[derive(Debug, Copy, Clone)] 2402 pub struct tcmsg { 2403 pub tcm_family: ::core::ffi::c_uchar, 2404 pub tcm__pad1: ::core::ffi::c_uchar, 2405 pub tcm__pad2: ::core::ffi::c_ushort, 2406 pub tcm_ifindex: ::core::ffi::c_int, 2407 pub tcm_handle: __u32, 2408 pub tcm_parent: __u32, 2409 pub tcm_info: __u32, 2410 } 2411 pub const TCA_UNSPEC: _bindgen_ty_170 = 0; 2412 pub const TCA_KIND: _bindgen_ty_170 = 1; 2413 pub const TCA_OPTIONS: _bindgen_ty_170 = 2; 2414 pub const TCA_STATS: _bindgen_ty_170 = 3; 2415 pub const TCA_XSTATS: _bindgen_ty_170 = 4; 2416 pub const TCA_RATE: _bindgen_ty_170 = 5; 2417 pub const TCA_FCNT: _bindgen_ty_170 = 6; 2418 pub const TCA_STATS2: _bindgen_ty_170 = 7; 2419 pub const TCA_STAB: _bindgen_ty_170 = 8; 2420 pub const TCA_PAD: _bindgen_ty_170 = 9; 2421 pub const TCA_DUMP_INVISIBLE: _bindgen_ty_170 = 10; 2422 pub const TCA_CHAIN: _bindgen_ty_170 = 11; 2423 pub const TCA_HW_OFFLOAD: _bindgen_ty_170 = 12; 2424 pub const TCA_INGRESS_BLOCK: _bindgen_ty_170 = 13; 2425 pub const TCA_EGRESS_BLOCK: _bindgen_ty_170 = 14; 2426 pub const __TCA_MAX: _bindgen_ty_170 = 15; 2427 pub type _bindgen_ty_170 = ::core::ffi::c_uint; 2428 pub const AYA_PERF_EVENT_IOC_ENABLE: ::core::ffi::c_int = 9216; 2429 pub const AYA_PERF_EVENT_IOC_DISABLE: ::core::ffi::c_int = 9217; 2430 pub const AYA_PERF_EVENT_IOC_SET_BPF: ::core::ffi::c_int = 1074013192; 2431