aya_ebpf_bindings/x86_64/
bindings.rs

1#[repr(C)]
2#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
3pub struct __BindgenBitfieldUnit<Storage> {
4    storage: Storage,
5}
6impl<Storage> __BindgenBitfieldUnit<Storage> {
7    #[inline]
8    pub const fn new(storage: Storage) -> Self {
9        Self { storage }
10    }
11}
12impl<Storage> __BindgenBitfieldUnit<Storage>
13where
14    Storage: AsRef<[u8]> + AsMut<[u8]>,
15{
16    #[inline]
17    fn extract_bit(byte: u8, index: usize) -> bool {
18        let bit_index = if cfg!(target_endian = "big") {
19            7 - (index % 8)
20        } else {
21            index % 8
22        };
23        let mask = 1 << bit_index;
24        byte & mask == mask
25    }
26    #[inline]
27    pub fn get_bit(&self, index: usize) -> bool {
28        debug_assert!(index / 8 < self.storage.as_ref().len());
29        let byte_index = index / 8;
30        let byte = self.storage.as_ref()[byte_index];
31        Self::extract_bit(byte, index)
32    }
33    #[inline]
34    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
35        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
36        let byte_index = index / 8;
37        let byte = unsafe {
38            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
39        };
40        Self::extract_bit(byte, index)
41    }
42    #[inline]
43    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
44        let bit_index = if cfg!(target_endian = "big") {
45            7 - (index % 8)
46        } else {
47            index % 8
48        };
49        let mask = 1 << bit_index;
50        if val { byte | mask } else { byte & !mask }
51    }
52    #[inline]
53    pub fn set_bit(&mut self, index: usize, val: bool) {
54        debug_assert!(index / 8 < self.storage.as_ref().len());
55        let byte_index = index / 8;
56        let byte = &mut self.storage.as_mut()[byte_index];
57        *byte = Self::change_bit(*byte, index, val);
58    }
59    #[inline]
60    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
61        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
62        let byte_index = index / 8;
63        let byte = unsafe {
64            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
65        };
66        unsafe { *byte = Self::change_bit(*byte, index, val) };
67    }
68    #[inline]
69    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
70        debug_assert!(bit_width <= 64);
71        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
72        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
73        let mut val = 0;
74        for i in 0..(bit_width as usize) {
75            if self.get_bit(i + bit_offset) {
76                let index = if cfg!(target_endian = "big") {
77                    bit_width as usize - 1 - i
78                } else {
79                    i
80                };
81                val |= 1 << index;
82            }
83        }
84        val
85    }
86    #[inline]
87    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
88        debug_assert!(bit_width <= 64);
89        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
90        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
91        let mut val = 0;
92        for i in 0..(bit_width as usize) {
93            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
94                let index = if cfg!(target_endian = "big") {
95                    bit_width as usize - 1 - i
96                } else {
97                    i
98                };
99                val |= 1 << index;
100            }
101        }
102        val
103    }
104    #[inline]
105    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
106        debug_assert!(bit_width <= 64);
107        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
108        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
109        for i in 0..(bit_width as usize) {
110            let mask = 1 << i;
111            let val_bit_is_set = val & mask == mask;
112            let index = if cfg!(target_endian = "big") {
113                bit_width as usize - 1 - i
114            } else {
115                i
116            };
117            self.set_bit(index + bit_offset, val_bit_is_set);
118        }
119    }
120    #[inline]
121    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
122        debug_assert!(bit_width <= 64);
123        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
124        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
125        for i in 0..(bit_width as usize) {
126            let mask = 1 << i;
127            let val_bit_is_set = val & mask == mask;
128            let index = if cfg!(target_endian = "big") {
129                bit_width as usize - 1 - i
130            } else {
131                i
132            };
133            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
134        }
135    }
136}
137#[repr(C)]
138#[derive(Default)]
139pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
140impl<T> __IncompleteArrayField<T> {
141    #[inline]
142    pub const fn new() -> Self {
143        __IncompleteArrayField(::core::marker::PhantomData, [])
144    }
145    #[inline]
146    pub fn as_ptr(&self) -> *const T {
147        self as *const _ as *const T
148    }
149    #[inline]
150    pub fn as_mut_ptr(&mut self) -> *mut T {
151        self as *mut _ as *mut T
152    }
153    #[inline]
154    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
155        ::core::slice::from_raw_parts(self.as_ptr(), len)
156    }
157    #[inline]
158    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
159        ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
160    }
161}
162impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
163    fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
164        fmt.write_str("__IncompleteArrayField")
165    }
166}
167pub const BPF_LD: u32 = 0;
168pub const BPF_LDX: u32 = 1;
169pub const BPF_ST: u32 = 2;
170pub const BPF_STX: u32 = 3;
171pub const BPF_ALU: u32 = 4;
172pub const BPF_JMP: u32 = 5;
173pub const BPF_RET: u32 = 6;
174pub const BPF_MISC: u32 = 7;
175pub const BPF_W: u32 = 0;
176pub const BPF_H: u32 = 8;
177pub const BPF_B: u32 = 16;
178pub const BPF_IMM: u32 = 0;
179pub const BPF_ABS: u32 = 32;
180pub const BPF_IND: u32 = 64;
181pub const BPF_MEM: u32 = 96;
182pub const BPF_LEN: u32 = 128;
183pub const BPF_MSH: u32 = 160;
184pub const BPF_ADD: u32 = 0;
185pub const BPF_SUB: u32 = 16;
186pub const BPF_MUL: u32 = 32;
187pub const BPF_DIV: u32 = 48;
188pub const BPF_OR: u32 = 64;
189pub const BPF_AND: u32 = 80;
190pub const BPF_LSH: u32 = 96;
191pub const BPF_RSH: u32 = 112;
192pub const BPF_NEG: u32 = 128;
193pub const BPF_MOD: u32 = 144;
194pub const BPF_XOR: u32 = 160;
195pub const BPF_JA: u32 = 0;
196pub const BPF_JEQ: u32 = 16;
197pub const BPF_JGT: u32 = 32;
198pub const BPF_JGE: u32 = 48;
199pub const BPF_JSET: u32 = 64;
200pub const BPF_K: u32 = 0;
201pub const BPF_X: u32 = 8;
202pub const BPF_MAXINSNS: u32 = 4096;
203pub const BPF_JMP32: u32 = 6;
204pub const BPF_ALU64: u32 = 7;
205pub const BPF_DW: u32 = 24;
206pub const BPF_MEMSX: u32 = 128;
207pub const BPF_ATOMIC: u32 = 192;
208pub const BPF_XADD: u32 = 192;
209pub const BPF_MOV: u32 = 176;
210pub const BPF_ARSH: u32 = 192;
211pub const BPF_END: u32 = 208;
212pub const BPF_TO_LE: u32 = 0;
213pub const BPF_TO_BE: u32 = 8;
214pub const BPF_FROM_LE: u32 = 0;
215pub const BPF_FROM_BE: u32 = 8;
216pub const BPF_JNE: u32 = 80;
217pub const BPF_JLT: u32 = 160;
218pub const BPF_JLE: u32 = 176;
219pub const BPF_JSGT: u32 = 96;
220pub const BPF_JSGE: u32 = 112;
221pub const BPF_JSLT: u32 = 192;
222pub const BPF_JSLE: u32 = 208;
223pub const BPF_JCOND: u32 = 224;
224pub const BPF_CALL: u32 = 128;
225pub const BPF_EXIT: u32 = 144;
226pub const BPF_FETCH: u32 = 1;
227pub const BPF_XCHG: u32 = 225;
228pub const BPF_CMPXCHG: u32 = 241;
229pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
230pub const BPF_F_ALLOW_MULTI: u32 = 2;
231pub const BPF_F_REPLACE: u32 = 4;
232pub const BPF_F_BEFORE: u32 = 8;
233pub const BPF_F_AFTER: u32 = 16;
234pub const BPF_F_ID: u32 = 32;
235pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
236pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
237pub const BPF_F_TEST_RND_HI32: u32 = 4;
238pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
239pub const BPF_F_SLEEPABLE: u32 = 16;
240pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
241pub const BPF_F_XDP_DEV_BOUND_ONLY: u32 = 64;
242pub const BPF_F_TEST_REG_INVARIANTS: u32 = 128;
243pub const BPF_F_NETFILTER_IP_DEFRAG: u32 = 1;
244pub const BPF_PSEUDO_MAP_FD: u32 = 1;
245pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
246pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
247pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
248pub const BPF_PSEUDO_BTF_ID: u32 = 3;
249pub const BPF_PSEUDO_FUNC: u32 = 4;
250pub const BPF_PSEUDO_CALL: u32 = 1;
251pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
252pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
253pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
254pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
255pub const BPF_BUILD_ID_SIZE: u32 = 20;
256pub const BPF_OBJ_NAME_LEN: u32 = 16;
257pub const BPF_TAG_SIZE: u32 = 8;
258pub const TC_ACT_UNSPEC: i32 = -1;
259pub const TC_ACT_OK: u32 = 0;
260pub const TC_ACT_RECLASSIFY: u32 = 1;
261pub const TC_ACT_SHOT: u32 = 2;
262pub const TC_ACT_PIPE: u32 = 3;
263pub const TC_ACT_STOLEN: u32 = 4;
264pub const TC_ACT_QUEUED: u32 = 5;
265pub const TC_ACT_REPEAT: u32 = 6;
266pub const TC_ACT_REDIRECT: u32 = 7;
267pub const TC_ACT_TRAP: u32 = 8;
268pub const TC_ACT_VALUE_MAX: u32 = 8;
269pub const TC_ACT_EXT_VAL_MASK: u32 = 268435455;
270pub const TC_ACT_JUMP: u32 = 268435456;
271pub const TC_ACT_GOTO_CHAIN: u32 = 536870912;
272pub const TC_ACT_EXT_OPCODE_MAX: u32 = 536870912;
273pub const SOL_SOCKET: u32 = 1;
274pub const SO_DEBUG: u32 = 1;
275pub const SO_REUSEADDR: u32 = 2;
276pub const SO_TYPE: u32 = 3;
277pub const SO_ERROR: u32 = 4;
278pub const SO_DONTROUTE: u32 = 5;
279pub const SO_BROADCAST: u32 = 6;
280pub const SO_SNDBUF: u32 = 7;
281pub const SO_RCVBUF: u32 = 8;
282pub const SO_SNDBUFFORCE: u32 = 32;
283pub const SO_RCVBUFFORCE: u32 = 33;
284pub const SO_KEEPALIVE: u32 = 9;
285pub const SO_OOBINLINE: u32 = 10;
286pub const SO_NO_CHECK: u32 = 11;
287pub const SO_PRIORITY: u32 = 12;
288pub const SO_LINGER: u32 = 13;
289pub const SO_BSDCOMPAT: u32 = 14;
290pub const SO_REUSEPORT: u32 = 15;
291pub const SO_PASSCRED: u32 = 16;
292pub const SO_PEERCRED: u32 = 17;
293pub const SO_RCVLOWAT: u32 = 18;
294pub const SO_SNDLOWAT: u32 = 19;
295pub const SO_RCVTIMEO_OLD: u32 = 20;
296pub const SO_SNDTIMEO_OLD: u32 = 21;
297pub const SO_SECURITY_AUTHENTICATION: u32 = 22;
298pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23;
299pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24;
300pub const SO_BINDTODEVICE: u32 = 25;
301pub const SO_ATTACH_FILTER: u32 = 26;
302pub const SO_DETACH_FILTER: u32 = 27;
303pub const SO_GET_FILTER: u32 = 26;
304pub const SO_PEERNAME: u32 = 28;
305pub const SO_ACCEPTCONN: u32 = 30;
306pub const SO_PEERSEC: u32 = 31;
307pub const SO_PASSSEC: u32 = 34;
308pub const SO_MARK: u32 = 36;
309pub const SO_PROTOCOL: u32 = 38;
310pub const SO_DOMAIN: u32 = 39;
311pub const SO_RXQ_OVFL: u32 = 40;
312pub const SO_WIFI_STATUS: u32 = 41;
313pub const SO_PEEK_OFF: u32 = 42;
314pub const SO_NOFCS: u32 = 43;
315pub const SO_LOCK_FILTER: u32 = 44;
316pub const SO_SELECT_ERR_QUEUE: u32 = 45;
317pub const SO_BUSY_POLL: u32 = 46;
318pub const SO_MAX_PACING_RATE: u32 = 47;
319pub const SO_BPF_EXTENSIONS: u32 = 48;
320pub const SO_INCOMING_CPU: u32 = 49;
321pub const SO_ATTACH_BPF: u32 = 50;
322pub const SO_DETACH_BPF: u32 = 27;
323pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51;
324pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52;
325pub const SO_CNX_ADVICE: u32 = 53;
326pub const SO_MEMINFO: u32 = 55;
327pub const SO_INCOMING_NAPI_ID: u32 = 56;
328pub const SO_COOKIE: u32 = 57;
329pub const SO_PEERGROUPS: u32 = 59;
330pub const SO_ZEROCOPY: u32 = 60;
331pub const SO_TXTIME: u32 = 61;
332pub const SO_BINDTOIFINDEX: u32 = 62;
333pub const SO_TIMESTAMP_OLD: u32 = 29;
334pub const SO_TIMESTAMPNS_OLD: u32 = 35;
335pub const SO_TIMESTAMPING_OLD: u32 = 37;
336pub const SO_TIMESTAMP_NEW: u32 = 63;
337pub const SO_TIMESTAMPNS_NEW: u32 = 64;
338pub const SO_TIMESTAMPING_NEW: u32 = 65;
339pub const SO_RCVTIMEO_NEW: u32 = 66;
340pub const SO_SNDTIMEO_NEW: u32 = 67;
341pub const SO_DETACH_REUSEPORT_BPF: u32 = 68;
342pub const SO_PREFER_BUSY_POLL: u32 = 69;
343pub const SO_BUSY_POLL_BUDGET: u32 = 70;
344pub const SO_NETNS_COOKIE: u32 = 71;
345pub const SO_BUF_LOCK: u32 = 72;
346pub const SO_RESERVE_MEM: u32 = 73;
347pub const SO_TXREHASH: u32 = 74;
348pub const SO_RCVMARK: u32 = 75;
349pub const SO_PASSPIDFD: u32 = 76;
350pub const SO_PEERPIDFD: u32 = 77;
351pub const SO_TIMESTAMP: u32 = 29;
352pub const SO_TIMESTAMPNS: u32 = 35;
353pub const SO_TIMESTAMPING: u32 = 37;
354pub const SO_RCVTIMEO: u32 = 20;
355pub const SO_SNDTIMEO: u32 = 21;
356pub type __u8 = ::aya_ebpf_cty::c_uchar;
357pub type __s16 = ::aya_ebpf_cty::c_short;
358pub type __u16 = ::aya_ebpf_cty::c_ushort;
359pub type __s32 = ::aya_ebpf_cty::c_int;
360pub type __u32 = ::aya_ebpf_cty::c_uint;
361pub type __s64 = ::aya_ebpf_cty::c_longlong;
362pub type __u64 = ::aya_ebpf_cty::c_ulonglong;
363pub type __be16 = __u16;
364pub type __be32 = __u32;
365pub type __wsum = __u32;
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct linux_binprm {
369    _unused: [u8; 0],
370}
371#[repr(C)]
372#[derive(Debug, Copy, Clone)]
373pub struct tcphdr {
374    _unused: [u8; 0],
375}
376#[repr(C)]
377#[derive(Debug, Copy, Clone)]
378pub struct seq_file {
379    _unused: [u8; 0],
380}
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct tcp6_sock {
384    _unused: [u8; 0],
385}
386#[repr(C)]
387#[derive(Debug, Copy, Clone)]
388pub struct tcp_sock {
389    _unused: [u8; 0],
390}
391#[repr(C)]
392#[derive(Debug, Copy, Clone)]
393pub struct tcp_timewait_sock {
394    _unused: [u8; 0],
395}
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct tcp_request_sock {
399    _unused: [u8; 0],
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct udp6_sock {
404    _unused: [u8; 0],
405}
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct unix_sock {
409    _unused: [u8; 0],
410}
411#[repr(C)]
412#[derive(Debug, Copy, Clone)]
413pub struct task_struct {
414    _unused: [u8; 0],
415}
416#[repr(C)]
417#[derive(Debug, Copy, Clone)]
418pub struct cgroup {
419    _unused: [u8; 0],
420}
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct path {
424    _unused: [u8; 0],
425}
426#[repr(C)]
427#[derive(Debug, Copy, Clone)]
428pub struct inode {
429    _unused: [u8; 0],
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct socket {
434    _unused: [u8; 0],
435}
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct file {
439    _unused: [u8; 0],
440}
441#[repr(C)]
442#[derive(Debug, Copy, Clone)]
443pub struct mptcp_sock {
444    _unused: [u8; 0],
445}
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct iphdr {
449    _unused: [u8; 0],
450}
451#[repr(C)]
452#[derive(Debug, Copy, Clone)]
453pub struct ipv6hdr {
454    _unused: [u8; 0],
455}
456pub mod bpf_cond_pseudo_jmp {
457    pub type Type = ::aya_ebpf_cty::c_uint;
458    pub const BPF_MAY_GOTO: Type = 0;
459}
460pub const BPF_REG_0: _bindgen_ty_1 = 0;
461pub const BPF_REG_1: _bindgen_ty_1 = 1;
462pub const BPF_REG_2: _bindgen_ty_1 = 2;
463pub const BPF_REG_3: _bindgen_ty_1 = 3;
464pub const BPF_REG_4: _bindgen_ty_1 = 4;
465pub const BPF_REG_5: _bindgen_ty_1 = 5;
466pub const BPF_REG_6: _bindgen_ty_1 = 6;
467pub const BPF_REG_7: _bindgen_ty_1 = 7;
468pub const BPF_REG_8: _bindgen_ty_1 = 8;
469pub const BPF_REG_9: _bindgen_ty_1 = 9;
470pub const BPF_REG_10: _bindgen_ty_1 = 10;
471pub const __MAX_BPF_REG: _bindgen_ty_1 = 11;
472pub type _bindgen_ty_1 = ::aya_ebpf_cty::c_uint;
473#[repr(C)]
474#[derive(Debug, Copy, Clone)]
475pub struct bpf_insn {
476    pub code: __u8,
477    pub _bitfield_align_1: [u8; 0],
478    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
479    pub off: __s16,
480    pub imm: __s32,
481}
482impl bpf_insn {
483    #[inline]
484    pub fn dst_reg(&self) -> __u8 {
485        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
486    }
487    #[inline]
488    pub fn set_dst_reg(&mut self, val: __u8) {
489        unsafe {
490            let val: u8 = ::core::mem::transmute(val);
491            self._bitfield_1.set(0usize, 4u8, val as u64)
492        }
493    }
494    #[inline]
495    pub unsafe fn dst_reg_raw(this: *const Self) -> __u8 {
496        unsafe {
497            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
498                ::core::ptr::addr_of!((*this)._bitfield_1),
499                0usize,
500                4u8,
501            ) as u8)
502        }
503    }
504    #[inline]
505    pub unsafe fn set_dst_reg_raw(this: *mut Self, val: __u8) {
506        unsafe {
507            let val: u8 = ::core::mem::transmute(val);
508            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
509                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
510                0usize,
511                4u8,
512                val as u64,
513            )
514        }
515    }
516    #[inline]
517    pub fn src_reg(&self) -> __u8 {
518        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
519    }
520    #[inline]
521    pub fn set_src_reg(&mut self, val: __u8) {
522        unsafe {
523            let val: u8 = ::core::mem::transmute(val);
524            self._bitfield_1.set(4usize, 4u8, val as u64)
525        }
526    }
527    #[inline]
528    pub unsafe fn src_reg_raw(this: *const Self) -> __u8 {
529        unsafe {
530            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
531                ::core::ptr::addr_of!((*this)._bitfield_1),
532                4usize,
533                4u8,
534            ) as u8)
535        }
536    }
537    #[inline]
538    pub unsafe fn set_src_reg_raw(this: *mut Self, val: __u8) {
539        unsafe {
540            let val: u8 = ::core::mem::transmute(val);
541            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
542                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
543                4usize,
544                4u8,
545                val as u64,
546            )
547        }
548    }
549    #[inline]
550    pub fn new_bitfield_1(dst_reg: __u8, src_reg: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
551        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
552        __bindgen_bitfield_unit.set(0usize, 4u8, {
553            let dst_reg: u8 = unsafe { ::core::mem::transmute(dst_reg) };
554            dst_reg as u64
555        });
556        __bindgen_bitfield_unit.set(4usize, 4u8, {
557            let src_reg: u8 = unsafe { ::core::mem::transmute(src_reg) };
558            src_reg as u64
559        });
560        __bindgen_bitfield_unit
561    }
562}
563#[repr(C)]
564#[derive(Debug)]
565pub struct bpf_lpm_trie_key {
566    pub prefixlen: __u32,
567    pub data: __IncompleteArrayField<__u8>,
568}
569#[repr(C)]
570#[derive(Debug, Copy, Clone)]
571pub struct bpf_lpm_trie_key_hdr {
572    pub prefixlen: __u32,
573}
574#[repr(C)]
575pub struct bpf_lpm_trie_key_u8 {
576    pub __bindgen_anon_1: bpf_lpm_trie_key_u8__bindgen_ty_1,
577    pub data: __IncompleteArrayField<__u8>,
578}
579#[repr(C)]
580#[derive(Copy, Clone)]
581pub union bpf_lpm_trie_key_u8__bindgen_ty_1 {
582    pub hdr: bpf_lpm_trie_key_hdr,
583    pub prefixlen: __u32,
584}
585#[repr(C)]
586#[derive(Debug, Copy, Clone)]
587pub struct bpf_cgroup_storage_key {
588    pub cgroup_inode_id: __u64,
589    pub attach_type: __u32,
590}
591pub mod bpf_cgroup_iter_order {
592    pub type Type = ::aya_ebpf_cty::c_uint;
593    pub const BPF_CGROUP_ITER_ORDER_UNSPEC: Type = 0;
594    pub const BPF_CGROUP_ITER_SELF_ONLY: Type = 1;
595    pub const BPF_CGROUP_ITER_DESCENDANTS_PRE: Type = 2;
596    pub const BPF_CGROUP_ITER_DESCENDANTS_POST: Type = 3;
597    pub const BPF_CGROUP_ITER_ANCESTORS_UP: Type = 4;
598}
599#[repr(C)]
600#[derive(Copy, Clone)]
601pub union bpf_iter_link_info {
602    pub map: bpf_iter_link_info__bindgen_ty_1,
603    pub cgroup: bpf_iter_link_info__bindgen_ty_2,
604    pub task: bpf_iter_link_info__bindgen_ty_3,
605}
606#[repr(C)]
607#[derive(Debug, Copy, Clone)]
608pub struct bpf_iter_link_info__bindgen_ty_1 {
609    pub map_fd: __u32,
610}
611#[repr(C)]
612#[derive(Debug, Copy, Clone)]
613pub struct bpf_iter_link_info__bindgen_ty_2 {
614    pub order: bpf_cgroup_iter_order::Type,
615    pub cgroup_fd: __u32,
616    pub cgroup_id: __u64,
617}
618#[repr(C)]
619#[derive(Debug, Copy, Clone)]
620pub struct bpf_iter_link_info__bindgen_ty_3 {
621    pub tid: __u32,
622    pub pid: __u32,
623    pub pid_fd: __u32,
624}
625pub mod bpf_cmd {
626    pub type Type = ::aya_ebpf_cty::c_uint;
627    pub const BPF_MAP_CREATE: Type = 0;
628    pub const BPF_MAP_LOOKUP_ELEM: Type = 1;
629    pub const BPF_MAP_UPDATE_ELEM: Type = 2;
630    pub const BPF_MAP_DELETE_ELEM: Type = 3;
631    pub const BPF_MAP_GET_NEXT_KEY: Type = 4;
632    pub const BPF_PROG_LOAD: Type = 5;
633    pub const BPF_OBJ_PIN: Type = 6;
634    pub const BPF_OBJ_GET: Type = 7;
635    pub const BPF_PROG_ATTACH: Type = 8;
636    pub const BPF_PROG_DETACH: Type = 9;
637    pub const BPF_PROG_TEST_RUN: Type = 10;
638    pub const BPF_PROG_RUN: Type = 10;
639    pub const BPF_PROG_GET_NEXT_ID: Type = 11;
640    pub const BPF_MAP_GET_NEXT_ID: Type = 12;
641    pub const BPF_PROG_GET_FD_BY_ID: Type = 13;
642    pub const BPF_MAP_GET_FD_BY_ID: Type = 14;
643    pub const BPF_OBJ_GET_INFO_BY_FD: Type = 15;
644    pub const BPF_PROG_QUERY: Type = 16;
645    pub const BPF_RAW_TRACEPOINT_OPEN: Type = 17;
646    pub const BPF_BTF_LOAD: Type = 18;
647    pub const BPF_BTF_GET_FD_BY_ID: Type = 19;
648    pub const BPF_TASK_FD_QUERY: Type = 20;
649    pub const BPF_MAP_LOOKUP_AND_DELETE_ELEM: Type = 21;
650    pub const BPF_MAP_FREEZE: Type = 22;
651    pub const BPF_BTF_GET_NEXT_ID: Type = 23;
652    pub const BPF_MAP_LOOKUP_BATCH: Type = 24;
653    pub const BPF_MAP_LOOKUP_AND_DELETE_BATCH: Type = 25;
654    pub const BPF_MAP_UPDATE_BATCH: Type = 26;
655    pub const BPF_MAP_DELETE_BATCH: Type = 27;
656    pub const BPF_LINK_CREATE: Type = 28;
657    pub const BPF_LINK_UPDATE: Type = 29;
658    pub const BPF_LINK_GET_FD_BY_ID: Type = 30;
659    pub const BPF_LINK_GET_NEXT_ID: Type = 31;
660    pub const BPF_ENABLE_STATS: Type = 32;
661    pub const BPF_ITER_CREATE: Type = 33;
662    pub const BPF_LINK_DETACH: Type = 34;
663    pub const BPF_PROG_BIND_MAP: Type = 35;
664    pub const BPF_TOKEN_CREATE: Type = 36;
665    pub const __MAX_BPF_CMD: Type = 37;
666}
667pub mod bpf_map_type {
668    pub type Type = ::aya_ebpf_cty::c_uint;
669    pub const BPF_MAP_TYPE_UNSPEC: Type = 0;
670    pub const BPF_MAP_TYPE_HASH: Type = 1;
671    pub const BPF_MAP_TYPE_ARRAY: Type = 2;
672    pub const BPF_MAP_TYPE_PROG_ARRAY: Type = 3;
673    pub const BPF_MAP_TYPE_PERF_EVENT_ARRAY: Type = 4;
674    pub const BPF_MAP_TYPE_PERCPU_HASH: Type = 5;
675    pub const BPF_MAP_TYPE_PERCPU_ARRAY: Type = 6;
676    pub const BPF_MAP_TYPE_STACK_TRACE: Type = 7;
677    pub const BPF_MAP_TYPE_CGROUP_ARRAY: Type = 8;
678    pub const BPF_MAP_TYPE_LRU_HASH: Type = 9;
679    pub const BPF_MAP_TYPE_LRU_PERCPU_HASH: Type = 10;
680    pub const BPF_MAP_TYPE_LPM_TRIE: Type = 11;
681    pub const BPF_MAP_TYPE_ARRAY_OF_MAPS: Type = 12;
682    pub const BPF_MAP_TYPE_HASH_OF_MAPS: Type = 13;
683    pub const BPF_MAP_TYPE_DEVMAP: Type = 14;
684    pub const BPF_MAP_TYPE_SOCKMAP: Type = 15;
685    pub const BPF_MAP_TYPE_CPUMAP: Type = 16;
686    pub const BPF_MAP_TYPE_XSKMAP: Type = 17;
687    pub const BPF_MAP_TYPE_SOCKHASH: Type = 18;
688    pub const BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED: Type = 19;
689    pub const BPF_MAP_TYPE_CGROUP_STORAGE: Type = 19;
690    pub const BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: Type = 20;
691    pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED: Type = 21;
692    pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: Type = 21;
693    pub const BPF_MAP_TYPE_QUEUE: Type = 22;
694    pub const BPF_MAP_TYPE_STACK: Type = 23;
695    pub const BPF_MAP_TYPE_SK_STORAGE: Type = 24;
696    pub const BPF_MAP_TYPE_DEVMAP_HASH: Type = 25;
697    pub const BPF_MAP_TYPE_STRUCT_OPS: Type = 26;
698    pub const BPF_MAP_TYPE_RINGBUF: Type = 27;
699    pub const BPF_MAP_TYPE_INODE_STORAGE: Type = 28;
700    pub const BPF_MAP_TYPE_TASK_STORAGE: Type = 29;
701    pub const BPF_MAP_TYPE_BLOOM_FILTER: Type = 30;
702    pub const BPF_MAP_TYPE_USER_RINGBUF: Type = 31;
703    pub const BPF_MAP_TYPE_CGRP_STORAGE: Type = 32;
704    pub const BPF_MAP_TYPE_ARENA: Type = 33;
705    pub const __MAX_BPF_MAP_TYPE: Type = 34;
706}
707pub mod bpf_prog_type {
708    pub type Type = ::aya_ebpf_cty::c_uint;
709    pub const BPF_PROG_TYPE_UNSPEC: Type = 0;
710    pub const BPF_PROG_TYPE_SOCKET_FILTER: Type = 1;
711    pub const BPF_PROG_TYPE_KPROBE: Type = 2;
712    pub const BPF_PROG_TYPE_SCHED_CLS: Type = 3;
713    pub const BPF_PROG_TYPE_SCHED_ACT: Type = 4;
714    pub const BPF_PROG_TYPE_TRACEPOINT: Type = 5;
715    pub const BPF_PROG_TYPE_XDP: Type = 6;
716    pub const BPF_PROG_TYPE_PERF_EVENT: Type = 7;
717    pub const BPF_PROG_TYPE_CGROUP_SKB: Type = 8;
718    pub const BPF_PROG_TYPE_CGROUP_SOCK: Type = 9;
719    pub const BPF_PROG_TYPE_LWT_IN: Type = 10;
720    pub const BPF_PROG_TYPE_LWT_OUT: Type = 11;
721    pub const BPF_PROG_TYPE_LWT_XMIT: Type = 12;
722    pub const BPF_PROG_TYPE_SOCK_OPS: Type = 13;
723    pub const BPF_PROG_TYPE_SK_SKB: Type = 14;
724    pub const BPF_PROG_TYPE_CGROUP_DEVICE: Type = 15;
725    pub const BPF_PROG_TYPE_SK_MSG: Type = 16;
726    pub const BPF_PROG_TYPE_RAW_TRACEPOINT: Type = 17;
727    pub const BPF_PROG_TYPE_CGROUP_SOCK_ADDR: Type = 18;
728    pub const BPF_PROG_TYPE_LWT_SEG6LOCAL: Type = 19;
729    pub const BPF_PROG_TYPE_LIRC_MODE2: Type = 20;
730    pub const BPF_PROG_TYPE_SK_REUSEPORT: Type = 21;
731    pub const BPF_PROG_TYPE_FLOW_DISSECTOR: Type = 22;
732    pub const BPF_PROG_TYPE_CGROUP_SYSCTL: Type = 23;
733    pub const BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: Type = 24;
734    pub const BPF_PROG_TYPE_CGROUP_SOCKOPT: Type = 25;
735    pub const BPF_PROG_TYPE_TRACING: Type = 26;
736    pub const BPF_PROG_TYPE_STRUCT_OPS: Type = 27;
737    pub const BPF_PROG_TYPE_EXT: Type = 28;
738    pub const BPF_PROG_TYPE_LSM: Type = 29;
739    pub const BPF_PROG_TYPE_SK_LOOKUP: Type = 30;
740    pub const BPF_PROG_TYPE_SYSCALL: Type = 31;
741    pub const BPF_PROG_TYPE_NETFILTER: Type = 32;
742    pub const __MAX_BPF_PROG_TYPE: Type = 33;
743}
744pub mod bpf_attach_type {
745    pub type Type = ::aya_ebpf_cty::c_uint;
746    pub const BPF_CGROUP_INET_INGRESS: Type = 0;
747    pub const BPF_CGROUP_INET_EGRESS: Type = 1;
748    pub const BPF_CGROUP_INET_SOCK_CREATE: Type = 2;
749    pub const BPF_CGROUP_SOCK_OPS: Type = 3;
750    pub const BPF_SK_SKB_STREAM_PARSER: Type = 4;
751    pub const BPF_SK_SKB_STREAM_VERDICT: Type = 5;
752    pub const BPF_CGROUP_DEVICE: Type = 6;
753    pub const BPF_SK_MSG_VERDICT: Type = 7;
754    pub const BPF_CGROUP_INET4_BIND: Type = 8;
755    pub const BPF_CGROUP_INET6_BIND: Type = 9;
756    pub const BPF_CGROUP_INET4_CONNECT: Type = 10;
757    pub const BPF_CGROUP_INET6_CONNECT: Type = 11;
758    pub const BPF_CGROUP_INET4_POST_BIND: Type = 12;
759    pub const BPF_CGROUP_INET6_POST_BIND: Type = 13;
760    pub const BPF_CGROUP_UDP4_SENDMSG: Type = 14;
761    pub const BPF_CGROUP_UDP6_SENDMSG: Type = 15;
762    pub const BPF_LIRC_MODE2: Type = 16;
763    pub const BPF_FLOW_DISSECTOR: Type = 17;
764    pub const BPF_CGROUP_SYSCTL: Type = 18;
765    pub const BPF_CGROUP_UDP4_RECVMSG: Type = 19;
766    pub const BPF_CGROUP_UDP6_RECVMSG: Type = 20;
767    pub const BPF_CGROUP_GETSOCKOPT: Type = 21;
768    pub const BPF_CGROUP_SETSOCKOPT: Type = 22;
769    pub const BPF_TRACE_RAW_TP: Type = 23;
770    pub const BPF_TRACE_FENTRY: Type = 24;
771    pub const BPF_TRACE_FEXIT: Type = 25;
772    pub const BPF_MODIFY_RETURN: Type = 26;
773    pub const BPF_LSM_MAC: Type = 27;
774    pub const BPF_TRACE_ITER: Type = 28;
775    pub const BPF_CGROUP_INET4_GETPEERNAME: Type = 29;
776    pub const BPF_CGROUP_INET6_GETPEERNAME: Type = 30;
777    pub const BPF_CGROUP_INET4_GETSOCKNAME: Type = 31;
778    pub const BPF_CGROUP_INET6_GETSOCKNAME: Type = 32;
779    pub const BPF_XDP_DEVMAP: Type = 33;
780    pub const BPF_CGROUP_INET_SOCK_RELEASE: Type = 34;
781    pub const BPF_XDP_CPUMAP: Type = 35;
782    pub const BPF_SK_LOOKUP: Type = 36;
783    pub const BPF_XDP: Type = 37;
784    pub const BPF_SK_SKB_VERDICT: Type = 38;
785    pub const BPF_SK_REUSEPORT_SELECT: Type = 39;
786    pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: Type = 40;
787    pub const BPF_PERF_EVENT: Type = 41;
788    pub const BPF_TRACE_KPROBE_MULTI: Type = 42;
789    pub const BPF_LSM_CGROUP: Type = 43;
790    pub const BPF_STRUCT_OPS: Type = 44;
791    pub const BPF_NETFILTER: Type = 45;
792    pub const BPF_TCX_INGRESS: Type = 46;
793    pub const BPF_TCX_EGRESS: Type = 47;
794    pub const BPF_TRACE_UPROBE_MULTI: Type = 48;
795    pub const BPF_CGROUP_UNIX_CONNECT: Type = 49;
796    pub const BPF_CGROUP_UNIX_SENDMSG: Type = 50;
797    pub const BPF_CGROUP_UNIX_RECVMSG: Type = 51;
798    pub const BPF_CGROUP_UNIX_GETPEERNAME: Type = 52;
799    pub const BPF_CGROUP_UNIX_GETSOCKNAME: Type = 53;
800    pub const BPF_NETKIT_PRIMARY: Type = 54;
801    pub const BPF_NETKIT_PEER: Type = 55;
802    pub const __MAX_BPF_ATTACH_TYPE: Type = 56;
803}
804pub mod bpf_link_type {
805    pub type Type = ::aya_ebpf_cty::c_uint;
806    pub const BPF_LINK_TYPE_UNSPEC: Type = 0;
807    pub const BPF_LINK_TYPE_RAW_TRACEPOINT: Type = 1;
808    pub const BPF_LINK_TYPE_TRACING: Type = 2;
809    pub const BPF_LINK_TYPE_CGROUP: Type = 3;
810    pub const BPF_LINK_TYPE_ITER: Type = 4;
811    pub const BPF_LINK_TYPE_NETNS: Type = 5;
812    pub const BPF_LINK_TYPE_XDP: Type = 6;
813    pub const BPF_LINK_TYPE_PERF_EVENT: Type = 7;
814    pub const BPF_LINK_TYPE_KPROBE_MULTI: Type = 8;
815    pub const BPF_LINK_TYPE_STRUCT_OPS: Type = 9;
816    pub const BPF_LINK_TYPE_NETFILTER: Type = 10;
817    pub const BPF_LINK_TYPE_TCX: Type = 11;
818    pub const BPF_LINK_TYPE_UPROBE_MULTI: Type = 12;
819    pub const BPF_LINK_TYPE_NETKIT: Type = 13;
820    pub const __MAX_BPF_LINK_TYPE: Type = 14;
821}
822pub mod bpf_perf_event_type {
823    pub type Type = ::aya_ebpf_cty::c_uint;
824    pub const BPF_PERF_EVENT_UNSPEC: Type = 0;
825    pub const BPF_PERF_EVENT_UPROBE: Type = 1;
826    pub const BPF_PERF_EVENT_URETPROBE: Type = 2;
827    pub const BPF_PERF_EVENT_KPROBE: Type = 3;
828    pub const BPF_PERF_EVENT_KRETPROBE: Type = 4;
829    pub const BPF_PERF_EVENT_TRACEPOINT: Type = 5;
830    pub const BPF_PERF_EVENT_EVENT: Type = 6;
831}
832pub const BPF_F_KPROBE_MULTI_RETURN: _bindgen_ty_2 = 1;
833pub type _bindgen_ty_2 = ::aya_ebpf_cty::c_uint;
834pub const BPF_F_UPROBE_MULTI_RETURN: _bindgen_ty_3 = 1;
835pub type _bindgen_ty_3 = ::aya_ebpf_cty::c_uint;
836pub mod bpf_addr_space_cast {
837    pub type Type = ::aya_ebpf_cty::c_uint;
838    pub const BPF_ADDR_SPACE_CAST: Type = 1;
839}
840pub const BPF_ANY: _bindgen_ty_4 = 0;
841pub const BPF_NOEXIST: _bindgen_ty_4 = 1;
842pub const BPF_EXIST: _bindgen_ty_4 = 2;
843pub const BPF_F_LOCK: _bindgen_ty_4 = 4;
844pub type _bindgen_ty_4 = ::aya_ebpf_cty::c_uint;
845pub const BPF_F_NO_PREALLOC: _bindgen_ty_5 = 1;
846pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_5 = 2;
847pub const BPF_F_NUMA_NODE: _bindgen_ty_5 = 4;
848pub const BPF_F_RDONLY: _bindgen_ty_5 = 8;
849pub const BPF_F_WRONLY: _bindgen_ty_5 = 16;
850pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_5 = 32;
851pub const BPF_F_ZERO_SEED: _bindgen_ty_5 = 64;
852pub const BPF_F_RDONLY_PROG: _bindgen_ty_5 = 128;
853pub const BPF_F_WRONLY_PROG: _bindgen_ty_5 = 256;
854pub const BPF_F_CLONE: _bindgen_ty_5 = 512;
855pub const BPF_F_MMAPABLE: _bindgen_ty_5 = 1024;
856pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_5 = 2048;
857pub const BPF_F_INNER_MAP: _bindgen_ty_5 = 4096;
858pub const BPF_F_LINK: _bindgen_ty_5 = 8192;
859pub const BPF_F_PATH_FD: _bindgen_ty_5 = 16384;
860pub const BPF_F_VTYPE_BTF_OBJ_FD: _bindgen_ty_5 = 32768;
861pub const BPF_F_TOKEN_FD: _bindgen_ty_5 = 65536;
862pub const BPF_F_SEGV_ON_FAULT: _bindgen_ty_5 = 131072;
863pub const BPF_F_NO_USER_CONV: _bindgen_ty_5 = 262144;
864pub type _bindgen_ty_5 = ::aya_ebpf_cty::c_uint;
865pub mod bpf_stats_type {
866    pub type Type = ::aya_ebpf_cty::c_uint;
867    pub const BPF_STATS_RUN_TIME: Type = 0;
868}
869pub mod bpf_stack_build_id_status {
870    pub type Type = ::aya_ebpf_cty::c_uint;
871    pub const BPF_STACK_BUILD_ID_EMPTY: Type = 0;
872    pub const BPF_STACK_BUILD_ID_VALID: Type = 1;
873    pub const BPF_STACK_BUILD_ID_IP: Type = 2;
874}
875#[repr(C)]
876#[derive(Copy, Clone)]
877pub struct bpf_stack_build_id {
878    pub status: __s32,
879    pub build_id: [::aya_ebpf_cty::c_uchar; 20usize],
880    pub __bindgen_anon_1: bpf_stack_build_id__bindgen_ty_1,
881}
882#[repr(C)]
883#[derive(Copy, Clone)]
884pub union bpf_stack_build_id__bindgen_ty_1 {
885    pub offset: __u64,
886    pub ip: __u64,
887}
888#[repr(C)]
889#[derive(Copy, Clone)]
890pub union bpf_attr {
891    pub __bindgen_anon_1: bpf_attr__bindgen_ty_1,
892    pub __bindgen_anon_2: bpf_attr__bindgen_ty_2,
893    pub batch: bpf_attr__bindgen_ty_3,
894    pub __bindgen_anon_3: bpf_attr__bindgen_ty_4,
895    pub __bindgen_anon_4: bpf_attr__bindgen_ty_5,
896    pub __bindgen_anon_5: bpf_attr__bindgen_ty_6,
897    pub test: bpf_attr__bindgen_ty_7,
898    pub __bindgen_anon_6: bpf_attr__bindgen_ty_8,
899    pub info: bpf_attr__bindgen_ty_9,
900    pub query: bpf_attr__bindgen_ty_10,
901    pub raw_tracepoint: bpf_attr__bindgen_ty_11,
902    pub __bindgen_anon_7: bpf_attr__bindgen_ty_12,
903    pub task_fd_query: bpf_attr__bindgen_ty_13,
904    pub link_create: bpf_attr__bindgen_ty_14,
905    pub link_update: bpf_attr__bindgen_ty_15,
906    pub link_detach: bpf_attr__bindgen_ty_16,
907    pub enable_stats: bpf_attr__bindgen_ty_17,
908    pub iter_create: bpf_attr__bindgen_ty_18,
909    pub prog_bind_map: bpf_attr__bindgen_ty_19,
910    pub token_create: bpf_attr__bindgen_ty_20,
911}
912#[repr(C)]
913#[derive(Debug, Copy, Clone)]
914pub struct bpf_attr__bindgen_ty_1 {
915    pub map_type: __u32,
916    pub key_size: __u32,
917    pub value_size: __u32,
918    pub max_entries: __u32,
919    pub map_flags: __u32,
920    pub inner_map_fd: __u32,
921    pub numa_node: __u32,
922    pub map_name: [::aya_ebpf_cty::c_char; 16usize],
923    pub map_ifindex: __u32,
924    pub btf_fd: __u32,
925    pub btf_key_type_id: __u32,
926    pub btf_value_type_id: __u32,
927    pub btf_vmlinux_value_type_id: __u32,
928    pub map_extra: __u64,
929    pub value_type_btf_obj_fd: __s32,
930    pub map_token_fd: __s32,
931}
932#[repr(C)]
933#[derive(Copy, Clone)]
934pub struct bpf_attr__bindgen_ty_2 {
935    pub map_fd: __u32,
936    pub key: __u64,
937    pub __bindgen_anon_1: bpf_attr__bindgen_ty_2__bindgen_ty_1,
938    pub flags: __u64,
939}
940#[repr(C)]
941#[derive(Copy, Clone)]
942pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 {
943    pub value: __u64,
944    pub next_key: __u64,
945}
946#[repr(C)]
947#[derive(Debug, Copy, Clone)]
948pub struct bpf_attr__bindgen_ty_3 {
949    pub in_batch: __u64,
950    pub out_batch: __u64,
951    pub keys: __u64,
952    pub values: __u64,
953    pub count: __u32,
954    pub map_fd: __u32,
955    pub elem_flags: __u64,
956    pub flags: __u64,
957}
958#[repr(C)]
959#[derive(Copy, Clone)]
960pub struct bpf_attr__bindgen_ty_4 {
961    pub prog_type: __u32,
962    pub insn_cnt: __u32,
963    pub insns: __u64,
964    pub license: __u64,
965    pub log_level: __u32,
966    pub log_size: __u32,
967    pub log_buf: __u64,
968    pub kern_version: __u32,
969    pub prog_flags: __u32,
970    pub prog_name: [::aya_ebpf_cty::c_char; 16usize],
971    pub prog_ifindex: __u32,
972    pub expected_attach_type: __u32,
973    pub prog_btf_fd: __u32,
974    pub func_info_rec_size: __u32,
975    pub func_info: __u64,
976    pub func_info_cnt: __u32,
977    pub line_info_rec_size: __u32,
978    pub line_info: __u64,
979    pub line_info_cnt: __u32,
980    pub attach_btf_id: __u32,
981    pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1,
982    pub core_relo_cnt: __u32,
983    pub fd_array: __u64,
984    pub core_relos: __u64,
985    pub core_relo_rec_size: __u32,
986    pub log_true_size: __u32,
987    pub prog_token_fd: __s32,
988}
989#[repr(C)]
990#[derive(Copy, Clone)]
991pub union bpf_attr__bindgen_ty_4__bindgen_ty_1 {
992    pub attach_prog_fd: __u32,
993    pub attach_btf_obj_fd: __u32,
994}
995#[repr(C)]
996#[derive(Debug, Copy, Clone)]
997pub struct bpf_attr__bindgen_ty_5 {
998    pub pathname: __u64,
999    pub bpf_fd: __u32,
1000    pub file_flags: __u32,
1001    pub path_fd: __s32,
1002}
1003#[repr(C)]
1004#[derive(Copy, Clone)]
1005pub struct bpf_attr__bindgen_ty_6 {
1006    pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1,
1007    pub attach_bpf_fd: __u32,
1008    pub attach_type: __u32,
1009    pub attach_flags: __u32,
1010    pub replace_bpf_fd: __u32,
1011    pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2,
1012    pub expected_revision: __u64,
1013}
1014#[repr(C)]
1015#[derive(Copy, Clone)]
1016pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 {
1017    pub target_fd: __u32,
1018    pub target_ifindex: __u32,
1019}
1020#[repr(C)]
1021#[derive(Copy, Clone)]
1022pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 {
1023    pub relative_fd: __u32,
1024    pub relative_id: __u32,
1025}
1026#[repr(C)]
1027#[derive(Debug, Copy, Clone)]
1028pub struct bpf_attr__bindgen_ty_7 {
1029    pub prog_fd: __u32,
1030    pub retval: __u32,
1031    pub data_size_in: __u32,
1032    pub data_size_out: __u32,
1033    pub data_in: __u64,
1034    pub data_out: __u64,
1035    pub repeat: __u32,
1036    pub duration: __u32,
1037    pub ctx_size_in: __u32,
1038    pub ctx_size_out: __u32,
1039    pub ctx_in: __u64,
1040    pub ctx_out: __u64,
1041    pub flags: __u32,
1042    pub cpu: __u32,
1043    pub batch_size: __u32,
1044}
1045#[repr(C)]
1046#[derive(Copy, Clone)]
1047pub struct bpf_attr__bindgen_ty_8 {
1048    pub __bindgen_anon_1: bpf_attr__bindgen_ty_8__bindgen_ty_1,
1049    pub next_id: __u32,
1050    pub open_flags: __u32,
1051}
1052#[repr(C)]
1053#[derive(Copy, Clone)]
1054pub union bpf_attr__bindgen_ty_8__bindgen_ty_1 {
1055    pub start_id: __u32,
1056    pub prog_id: __u32,
1057    pub map_id: __u32,
1058    pub btf_id: __u32,
1059    pub link_id: __u32,
1060}
1061#[repr(C)]
1062#[derive(Debug, Copy, Clone)]
1063pub struct bpf_attr__bindgen_ty_9 {
1064    pub bpf_fd: __u32,
1065    pub info_len: __u32,
1066    pub info: __u64,
1067}
1068#[repr(C)]
1069#[derive(Copy, Clone)]
1070pub struct bpf_attr__bindgen_ty_10 {
1071    pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1,
1072    pub attach_type: __u32,
1073    pub query_flags: __u32,
1074    pub attach_flags: __u32,
1075    pub prog_ids: __u64,
1076    pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2,
1077    pub _bitfield_align_1: [u8; 0],
1078    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
1079    pub prog_attach_flags: __u64,
1080    pub link_ids: __u64,
1081    pub link_attach_flags: __u64,
1082    pub revision: __u64,
1083}
1084#[repr(C)]
1085#[derive(Copy, Clone)]
1086pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 {
1087    pub target_fd: __u32,
1088    pub target_ifindex: __u32,
1089}
1090#[repr(C)]
1091#[derive(Copy, Clone)]
1092pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 {
1093    pub prog_cnt: __u32,
1094    pub count: __u32,
1095}
1096impl bpf_attr__bindgen_ty_10 {
1097    #[inline]
1098    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
1099        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
1100        __bindgen_bitfield_unit
1101    }
1102}
1103#[repr(C)]
1104#[derive(Debug, Copy, Clone)]
1105pub struct bpf_attr__bindgen_ty_11 {
1106    pub name: __u64,
1107    pub prog_fd: __u32,
1108    pub _bitfield_align_1: [u8; 0],
1109    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
1110    pub cookie: __u64,
1111}
1112impl bpf_attr__bindgen_ty_11 {
1113    #[inline]
1114    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
1115        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
1116        __bindgen_bitfield_unit
1117    }
1118}
1119#[repr(C)]
1120#[derive(Debug, Copy, Clone)]
1121pub struct bpf_attr__bindgen_ty_12 {
1122    pub btf: __u64,
1123    pub btf_log_buf: __u64,
1124    pub btf_size: __u32,
1125    pub btf_log_size: __u32,
1126    pub btf_log_level: __u32,
1127    pub btf_log_true_size: __u32,
1128    pub btf_flags: __u32,
1129    pub btf_token_fd: __s32,
1130}
1131#[repr(C)]
1132#[derive(Debug, Copy, Clone)]
1133pub struct bpf_attr__bindgen_ty_13 {
1134    pub pid: __u32,
1135    pub fd: __u32,
1136    pub flags: __u32,
1137    pub buf_len: __u32,
1138    pub buf: __u64,
1139    pub prog_id: __u32,
1140    pub fd_type: __u32,
1141    pub probe_offset: __u64,
1142    pub probe_addr: __u64,
1143}
1144#[repr(C)]
1145#[derive(Copy, Clone)]
1146pub struct bpf_attr__bindgen_ty_14 {
1147    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_1,
1148    pub __bindgen_anon_2: bpf_attr__bindgen_ty_14__bindgen_ty_2,
1149    pub attach_type: __u32,
1150    pub flags: __u32,
1151    pub __bindgen_anon_3: bpf_attr__bindgen_ty_14__bindgen_ty_3,
1152}
1153#[repr(C)]
1154#[derive(Copy, Clone)]
1155pub union bpf_attr__bindgen_ty_14__bindgen_ty_1 {
1156    pub prog_fd: __u32,
1157    pub map_fd: __u32,
1158}
1159#[repr(C)]
1160#[derive(Copy, Clone)]
1161pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 {
1162    pub target_fd: __u32,
1163    pub target_ifindex: __u32,
1164}
1165#[repr(C)]
1166#[derive(Copy, Clone)]
1167pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 {
1168    pub target_btf_id: __u32,
1169    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1,
1170    pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2,
1171    pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3,
1172    pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4,
1173    pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5,
1174    pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6,
1175    pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7,
1176    pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8,
1177}
1178#[repr(C)]
1179#[derive(Debug, Copy, Clone)]
1180pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1 {
1181    pub iter_info: __u64,
1182    pub iter_info_len: __u32,
1183}
1184#[repr(C)]
1185#[derive(Debug, Copy, Clone)]
1186pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2 {
1187    pub bpf_cookie: __u64,
1188}
1189#[repr(C)]
1190#[derive(Debug, Copy, Clone)]
1191pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3 {
1192    pub flags: __u32,
1193    pub cnt: __u32,
1194    pub syms: __u64,
1195    pub addrs: __u64,
1196    pub cookies: __u64,
1197}
1198#[repr(C)]
1199#[derive(Debug, Copy, Clone)]
1200pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4 {
1201    pub target_btf_id: __u32,
1202    pub cookie: __u64,
1203}
1204#[repr(C)]
1205#[derive(Debug, Copy, Clone)]
1206pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 {
1207    pub pf: __u32,
1208    pub hooknum: __u32,
1209    pub priority: __s32,
1210    pub flags: __u32,
1211}
1212#[repr(C)]
1213#[derive(Copy, Clone)]
1214pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
1215    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1,
1216    pub expected_revision: __u64,
1217}
1218#[repr(C)]
1219#[derive(Copy, Clone)]
1220pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
1221    pub relative_fd: __u32,
1222    pub relative_id: __u32,
1223}
1224#[repr(C)]
1225#[derive(Debug, Copy, Clone)]
1226pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 {
1227    pub path: __u64,
1228    pub offsets: __u64,
1229    pub ref_ctr_offsets: __u64,
1230    pub cookies: __u64,
1231    pub cnt: __u32,
1232    pub flags: __u32,
1233    pub pid: __u32,
1234}
1235#[repr(C)]
1236#[derive(Copy, Clone)]
1237pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
1238    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1,
1239    pub expected_revision: __u64,
1240}
1241#[repr(C)]
1242#[derive(Copy, Clone)]
1243pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
1244    pub relative_fd: __u32,
1245    pub relative_id: __u32,
1246}
1247#[repr(C)]
1248#[derive(Copy, Clone)]
1249pub struct bpf_attr__bindgen_ty_15 {
1250    pub link_fd: __u32,
1251    pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1,
1252    pub flags: __u32,
1253    pub __bindgen_anon_2: bpf_attr__bindgen_ty_15__bindgen_ty_2,
1254}
1255#[repr(C)]
1256#[derive(Copy, Clone)]
1257pub union bpf_attr__bindgen_ty_15__bindgen_ty_1 {
1258    pub new_prog_fd: __u32,
1259    pub new_map_fd: __u32,
1260}
1261#[repr(C)]
1262#[derive(Copy, Clone)]
1263pub union bpf_attr__bindgen_ty_15__bindgen_ty_2 {
1264    pub old_prog_fd: __u32,
1265    pub old_map_fd: __u32,
1266}
1267#[repr(C)]
1268#[derive(Debug, Copy, Clone)]
1269pub struct bpf_attr__bindgen_ty_16 {
1270    pub link_fd: __u32,
1271}
1272#[repr(C)]
1273#[derive(Debug, Copy, Clone)]
1274pub struct bpf_attr__bindgen_ty_17 {
1275    pub type_: __u32,
1276}
1277#[repr(C)]
1278#[derive(Debug, Copy, Clone)]
1279pub struct bpf_attr__bindgen_ty_18 {
1280    pub link_fd: __u32,
1281    pub flags: __u32,
1282}
1283#[repr(C)]
1284#[derive(Debug, Copy, Clone)]
1285pub struct bpf_attr__bindgen_ty_19 {
1286    pub prog_fd: __u32,
1287    pub map_fd: __u32,
1288    pub flags: __u32,
1289}
1290#[repr(C)]
1291#[derive(Debug, Copy, Clone)]
1292pub struct bpf_attr__bindgen_ty_20 {
1293    pub flags: __u32,
1294    pub bpffs_fd: __u32,
1295}
1296pub mod bpf_func_id {
1297    pub type Type = ::aya_ebpf_cty::c_uint;
1298    pub const BPF_FUNC_unspec: Type = 0;
1299    pub const BPF_FUNC_map_lookup_elem: Type = 1;
1300    pub const BPF_FUNC_map_update_elem: Type = 2;
1301    pub const BPF_FUNC_map_delete_elem: Type = 3;
1302    pub const BPF_FUNC_probe_read: Type = 4;
1303    pub const BPF_FUNC_ktime_get_ns: Type = 5;
1304    pub const BPF_FUNC_trace_printk: Type = 6;
1305    pub const BPF_FUNC_get_prandom_u32: Type = 7;
1306    pub const BPF_FUNC_get_smp_processor_id: Type = 8;
1307    pub const BPF_FUNC_skb_store_bytes: Type = 9;
1308    pub const BPF_FUNC_l3_csum_replace: Type = 10;
1309    pub const BPF_FUNC_l4_csum_replace: Type = 11;
1310    pub const BPF_FUNC_tail_call: Type = 12;
1311    pub const BPF_FUNC_clone_redirect: Type = 13;
1312    pub const BPF_FUNC_get_current_pid_tgid: Type = 14;
1313    pub const BPF_FUNC_get_current_uid_gid: Type = 15;
1314    pub const BPF_FUNC_get_current_comm: Type = 16;
1315    pub const BPF_FUNC_get_cgroup_classid: Type = 17;
1316    pub const BPF_FUNC_skb_vlan_push: Type = 18;
1317    pub const BPF_FUNC_skb_vlan_pop: Type = 19;
1318    pub const BPF_FUNC_skb_get_tunnel_key: Type = 20;
1319    pub const BPF_FUNC_skb_set_tunnel_key: Type = 21;
1320    pub const BPF_FUNC_perf_event_read: Type = 22;
1321    pub const BPF_FUNC_redirect: Type = 23;
1322    pub const BPF_FUNC_get_route_realm: Type = 24;
1323    pub const BPF_FUNC_perf_event_output: Type = 25;
1324    pub const BPF_FUNC_skb_load_bytes: Type = 26;
1325    pub const BPF_FUNC_get_stackid: Type = 27;
1326    pub const BPF_FUNC_csum_diff: Type = 28;
1327    pub const BPF_FUNC_skb_get_tunnel_opt: Type = 29;
1328    pub const BPF_FUNC_skb_set_tunnel_opt: Type = 30;
1329    pub const BPF_FUNC_skb_change_proto: Type = 31;
1330    pub const BPF_FUNC_skb_change_type: Type = 32;
1331    pub const BPF_FUNC_skb_under_cgroup: Type = 33;
1332    pub const BPF_FUNC_get_hash_recalc: Type = 34;
1333    pub const BPF_FUNC_get_current_task: Type = 35;
1334    pub const BPF_FUNC_probe_write_user: Type = 36;
1335    pub const BPF_FUNC_current_task_under_cgroup: Type = 37;
1336    pub const BPF_FUNC_skb_change_tail: Type = 38;
1337    pub const BPF_FUNC_skb_pull_data: Type = 39;
1338    pub const BPF_FUNC_csum_update: Type = 40;
1339    pub const BPF_FUNC_set_hash_invalid: Type = 41;
1340    pub const BPF_FUNC_get_numa_node_id: Type = 42;
1341    pub const BPF_FUNC_skb_change_head: Type = 43;
1342    pub const BPF_FUNC_xdp_adjust_head: Type = 44;
1343    pub const BPF_FUNC_probe_read_str: Type = 45;
1344    pub const BPF_FUNC_get_socket_cookie: Type = 46;
1345    pub const BPF_FUNC_get_socket_uid: Type = 47;
1346    pub const BPF_FUNC_set_hash: Type = 48;
1347    pub const BPF_FUNC_setsockopt: Type = 49;
1348    pub const BPF_FUNC_skb_adjust_room: Type = 50;
1349    pub const BPF_FUNC_redirect_map: Type = 51;
1350    pub const BPF_FUNC_sk_redirect_map: Type = 52;
1351    pub const BPF_FUNC_sock_map_update: Type = 53;
1352    pub const BPF_FUNC_xdp_adjust_meta: Type = 54;
1353    pub const BPF_FUNC_perf_event_read_value: Type = 55;
1354    pub const BPF_FUNC_perf_prog_read_value: Type = 56;
1355    pub const BPF_FUNC_getsockopt: Type = 57;
1356    pub const BPF_FUNC_override_return: Type = 58;
1357    pub const BPF_FUNC_sock_ops_cb_flags_set: Type = 59;
1358    pub const BPF_FUNC_msg_redirect_map: Type = 60;
1359    pub const BPF_FUNC_msg_apply_bytes: Type = 61;
1360    pub const BPF_FUNC_msg_cork_bytes: Type = 62;
1361    pub const BPF_FUNC_msg_pull_data: Type = 63;
1362    pub const BPF_FUNC_bind: Type = 64;
1363    pub const BPF_FUNC_xdp_adjust_tail: Type = 65;
1364    pub const BPF_FUNC_skb_get_xfrm_state: Type = 66;
1365    pub const BPF_FUNC_get_stack: Type = 67;
1366    pub const BPF_FUNC_skb_load_bytes_relative: Type = 68;
1367    pub const BPF_FUNC_fib_lookup: Type = 69;
1368    pub const BPF_FUNC_sock_hash_update: Type = 70;
1369    pub const BPF_FUNC_msg_redirect_hash: Type = 71;
1370    pub const BPF_FUNC_sk_redirect_hash: Type = 72;
1371    pub const BPF_FUNC_lwt_push_encap: Type = 73;
1372    pub const BPF_FUNC_lwt_seg6_store_bytes: Type = 74;
1373    pub const BPF_FUNC_lwt_seg6_adjust_srh: Type = 75;
1374    pub const BPF_FUNC_lwt_seg6_action: Type = 76;
1375    pub const BPF_FUNC_rc_repeat: Type = 77;
1376    pub const BPF_FUNC_rc_keydown: Type = 78;
1377    pub const BPF_FUNC_skb_cgroup_id: Type = 79;
1378    pub const BPF_FUNC_get_current_cgroup_id: Type = 80;
1379    pub const BPF_FUNC_get_local_storage: Type = 81;
1380    pub const BPF_FUNC_sk_select_reuseport: Type = 82;
1381    pub const BPF_FUNC_skb_ancestor_cgroup_id: Type = 83;
1382    pub const BPF_FUNC_sk_lookup_tcp: Type = 84;
1383    pub const BPF_FUNC_sk_lookup_udp: Type = 85;
1384    pub const BPF_FUNC_sk_release: Type = 86;
1385    pub const BPF_FUNC_map_push_elem: Type = 87;
1386    pub const BPF_FUNC_map_pop_elem: Type = 88;
1387    pub const BPF_FUNC_map_peek_elem: Type = 89;
1388    pub const BPF_FUNC_msg_push_data: Type = 90;
1389    pub const BPF_FUNC_msg_pop_data: Type = 91;
1390    pub const BPF_FUNC_rc_pointer_rel: Type = 92;
1391    pub const BPF_FUNC_spin_lock: Type = 93;
1392    pub const BPF_FUNC_spin_unlock: Type = 94;
1393    pub const BPF_FUNC_sk_fullsock: Type = 95;
1394    pub const BPF_FUNC_tcp_sock: Type = 96;
1395    pub const BPF_FUNC_skb_ecn_set_ce: Type = 97;
1396    pub const BPF_FUNC_get_listener_sock: Type = 98;
1397    pub const BPF_FUNC_skc_lookup_tcp: Type = 99;
1398    pub const BPF_FUNC_tcp_check_syncookie: Type = 100;
1399    pub const BPF_FUNC_sysctl_get_name: Type = 101;
1400    pub const BPF_FUNC_sysctl_get_current_value: Type = 102;
1401    pub const BPF_FUNC_sysctl_get_new_value: Type = 103;
1402    pub const BPF_FUNC_sysctl_set_new_value: Type = 104;
1403    pub const BPF_FUNC_strtol: Type = 105;
1404    pub const BPF_FUNC_strtoul: Type = 106;
1405    pub const BPF_FUNC_sk_storage_get: Type = 107;
1406    pub const BPF_FUNC_sk_storage_delete: Type = 108;
1407    pub const BPF_FUNC_send_signal: Type = 109;
1408    pub const BPF_FUNC_tcp_gen_syncookie: Type = 110;
1409    pub const BPF_FUNC_skb_output: Type = 111;
1410    pub const BPF_FUNC_probe_read_user: Type = 112;
1411    pub const BPF_FUNC_probe_read_kernel: Type = 113;
1412    pub const BPF_FUNC_probe_read_user_str: Type = 114;
1413    pub const BPF_FUNC_probe_read_kernel_str: Type = 115;
1414    pub const BPF_FUNC_tcp_send_ack: Type = 116;
1415    pub const BPF_FUNC_send_signal_thread: Type = 117;
1416    pub const BPF_FUNC_jiffies64: Type = 118;
1417    pub const BPF_FUNC_read_branch_records: Type = 119;
1418    pub const BPF_FUNC_get_ns_current_pid_tgid: Type = 120;
1419    pub const BPF_FUNC_xdp_output: Type = 121;
1420    pub const BPF_FUNC_get_netns_cookie: Type = 122;
1421    pub const BPF_FUNC_get_current_ancestor_cgroup_id: Type = 123;
1422    pub const BPF_FUNC_sk_assign: Type = 124;
1423    pub const BPF_FUNC_ktime_get_boot_ns: Type = 125;
1424    pub const BPF_FUNC_seq_printf: Type = 126;
1425    pub const BPF_FUNC_seq_write: Type = 127;
1426    pub const BPF_FUNC_sk_cgroup_id: Type = 128;
1427    pub const BPF_FUNC_sk_ancestor_cgroup_id: Type = 129;
1428    pub const BPF_FUNC_ringbuf_output: Type = 130;
1429    pub const BPF_FUNC_ringbuf_reserve: Type = 131;
1430    pub const BPF_FUNC_ringbuf_submit: Type = 132;
1431    pub const BPF_FUNC_ringbuf_discard: Type = 133;
1432    pub const BPF_FUNC_ringbuf_query: Type = 134;
1433    pub const BPF_FUNC_csum_level: Type = 135;
1434    pub const BPF_FUNC_skc_to_tcp6_sock: Type = 136;
1435    pub const BPF_FUNC_skc_to_tcp_sock: Type = 137;
1436    pub const BPF_FUNC_skc_to_tcp_timewait_sock: Type = 138;
1437    pub const BPF_FUNC_skc_to_tcp_request_sock: Type = 139;
1438    pub const BPF_FUNC_skc_to_udp6_sock: Type = 140;
1439    pub const BPF_FUNC_get_task_stack: Type = 141;
1440    pub const BPF_FUNC_load_hdr_opt: Type = 142;
1441    pub const BPF_FUNC_store_hdr_opt: Type = 143;
1442    pub const BPF_FUNC_reserve_hdr_opt: Type = 144;
1443    pub const BPF_FUNC_inode_storage_get: Type = 145;
1444    pub const BPF_FUNC_inode_storage_delete: Type = 146;
1445    pub const BPF_FUNC_d_path: Type = 147;
1446    pub const BPF_FUNC_copy_from_user: Type = 148;
1447    pub const BPF_FUNC_snprintf_btf: Type = 149;
1448    pub const BPF_FUNC_seq_printf_btf: Type = 150;
1449    pub const BPF_FUNC_skb_cgroup_classid: Type = 151;
1450    pub const BPF_FUNC_redirect_neigh: Type = 152;
1451    pub const BPF_FUNC_per_cpu_ptr: Type = 153;
1452    pub const BPF_FUNC_this_cpu_ptr: Type = 154;
1453    pub const BPF_FUNC_redirect_peer: Type = 155;
1454    pub const BPF_FUNC_task_storage_get: Type = 156;
1455    pub const BPF_FUNC_task_storage_delete: Type = 157;
1456    pub const BPF_FUNC_get_current_task_btf: Type = 158;
1457    pub const BPF_FUNC_bprm_opts_set: Type = 159;
1458    pub const BPF_FUNC_ktime_get_coarse_ns: Type = 160;
1459    pub const BPF_FUNC_ima_inode_hash: Type = 161;
1460    pub const BPF_FUNC_sock_from_file: Type = 162;
1461    pub const BPF_FUNC_check_mtu: Type = 163;
1462    pub const BPF_FUNC_for_each_map_elem: Type = 164;
1463    pub const BPF_FUNC_snprintf: Type = 165;
1464    pub const BPF_FUNC_sys_bpf: Type = 166;
1465    pub const BPF_FUNC_btf_find_by_name_kind: Type = 167;
1466    pub const BPF_FUNC_sys_close: Type = 168;
1467    pub const BPF_FUNC_timer_init: Type = 169;
1468    pub const BPF_FUNC_timer_set_callback: Type = 170;
1469    pub const BPF_FUNC_timer_start: Type = 171;
1470    pub const BPF_FUNC_timer_cancel: Type = 172;
1471    pub const BPF_FUNC_get_func_ip: Type = 173;
1472    pub const BPF_FUNC_get_attach_cookie: Type = 174;
1473    pub const BPF_FUNC_task_pt_regs: Type = 175;
1474    pub const BPF_FUNC_get_branch_snapshot: Type = 176;
1475    pub const BPF_FUNC_trace_vprintk: Type = 177;
1476    pub const BPF_FUNC_skc_to_unix_sock: Type = 178;
1477    pub const BPF_FUNC_kallsyms_lookup_name: Type = 179;
1478    pub const BPF_FUNC_find_vma: Type = 180;
1479    pub const BPF_FUNC_loop: Type = 181;
1480    pub const BPF_FUNC_strncmp: Type = 182;
1481    pub const BPF_FUNC_get_func_arg: Type = 183;
1482    pub const BPF_FUNC_get_func_ret: Type = 184;
1483    pub const BPF_FUNC_get_func_arg_cnt: Type = 185;
1484    pub const BPF_FUNC_get_retval: Type = 186;
1485    pub const BPF_FUNC_set_retval: Type = 187;
1486    pub const BPF_FUNC_xdp_get_buff_len: Type = 188;
1487    pub const BPF_FUNC_xdp_load_bytes: Type = 189;
1488    pub const BPF_FUNC_xdp_store_bytes: Type = 190;
1489    pub const BPF_FUNC_copy_from_user_task: Type = 191;
1490    pub const BPF_FUNC_skb_set_tstamp: Type = 192;
1491    pub const BPF_FUNC_ima_file_hash: Type = 193;
1492    pub const BPF_FUNC_kptr_xchg: Type = 194;
1493    pub const BPF_FUNC_map_lookup_percpu_elem: Type = 195;
1494    pub const BPF_FUNC_skc_to_mptcp_sock: Type = 196;
1495    pub const BPF_FUNC_dynptr_from_mem: Type = 197;
1496    pub const BPF_FUNC_ringbuf_reserve_dynptr: Type = 198;
1497    pub const BPF_FUNC_ringbuf_submit_dynptr: Type = 199;
1498    pub const BPF_FUNC_ringbuf_discard_dynptr: Type = 200;
1499    pub const BPF_FUNC_dynptr_read: Type = 201;
1500    pub const BPF_FUNC_dynptr_write: Type = 202;
1501    pub const BPF_FUNC_dynptr_data: Type = 203;
1502    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: Type = 204;
1503    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: Type = 205;
1504    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: Type = 206;
1505    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: Type = 207;
1506    pub const BPF_FUNC_ktime_get_tai_ns: Type = 208;
1507    pub const BPF_FUNC_user_ringbuf_drain: Type = 209;
1508    pub const BPF_FUNC_cgrp_storage_get: Type = 210;
1509    pub const BPF_FUNC_cgrp_storage_delete: Type = 211;
1510    pub const __BPF_FUNC_MAX_ID: Type = 212;
1511}
1512pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_6 = 1;
1513pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_6 = 2;
1514pub type _bindgen_ty_6 = ::aya_ebpf_cty::c_uint;
1515pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_7 = 15;
1516pub type _bindgen_ty_7 = ::aya_ebpf_cty::c_uint;
1517pub const BPF_F_PSEUDO_HDR: _bindgen_ty_8 = 16;
1518pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_8 = 32;
1519pub const BPF_F_MARK_ENFORCE: _bindgen_ty_8 = 64;
1520pub type _bindgen_ty_8 = ::aya_ebpf_cty::c_uint;
1521pub const BPF_F_INGRESS: _bindgen_ty_9 = 1;
1522pub type _bindgen_ty_9 = ::aya_ebpf_cty::c_uint;
1523pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_10 = 1;
1524pub type _bindgen_ty_10 = ::aya_ebpf_cty::c_uint;
1525pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_11 = 255;
1526pub const BPF_F_USER_STACK: _bindgen_ty_11 = 256;
1527pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_11 = 512;
1528pub const BPF_F_REUSE_STACKID: _bindgen_ty_11 = 1024;
1529pub const BPF_F_USER_BUILD_ID: _bindgen_ty_11 = 2048;
1530pub type _bindgen_ty_11 = ::aya_ebpf_cty::c_uint;
1531pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_12 = 2;
1532pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_12 = 4;
1533pub const BPF_F_SEQ_NUMBER: _bindgen_ty_12 = 8;
1534pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_12 = 16;
1535pub type _bindgen_ty_12 = ::aya_ebpf_cty::c_uint;
1536pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_13 = 16;
1537pub type _bindgen_ty_13 = ::aya_ebpf_cty::c_uint;
1538pub const BPF_F_INDEX_MASK: _bindgen_ty_14 = 4294967295;
1539pub const BPF_F_CURRENT_CPU: _bindgen_ty_14 = 4294967295;
1540pub const BPF_F_CTXLEN_MASK: _bindgen_ty_14 = 4503595332403200;
1541pub type _bindgen_ty_14 = ::aya_ebpf_cty::c_ulong;
1542pub const BPF_F_CURRENT_NETNS: _bindgen_ty_15 = -1;
1543pub type _bindgen_ty_15 = ::aya_ebpf_cty::c_int;
1544pub const BPF_CSUM_LEVEL_QUERY: _bindgen_ty_16 = 0;
1545pub const BPF_CSUM_LEVEL_INC: _bindgen_ty_16 = 1;
1546pub const BPF_CSUM_LEVEL_DEC: _bindgen_ty_16 = 2;
1547pub const BPF_CSUM_LEVEL_RESET: _bindgen_ty_16 = 3;
1548pub type _bindgen_ty_16 = ::aya_ebpf_cty::c_uint;
1549pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_17 = 1;
1550pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_17 = 2;
1551pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_17 = 4;
1552pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_17 = 8;
1553pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_17 = 16;
1554pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_17 = 32;
1555pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_17 = 64;
1556pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_17 = 128;
1557pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_17 = 256;
1558pub type _bindgen_ty_17 = ::aya_ebpf_cty::c_uint;
1559pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: _bindgen_ty_18 = 255;
1560pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: _bindgen_ty_18 = 56;
1561pub type _bindgen_ty_18 = ::aya_ebpf_cty::c_uint;
1562pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_19 = 1;
1563pub type _bindgen_ty_19 = ::aya_ebpf_cty::c_uint;
1564pub const BPF_LOCAL_STORAGE_GET_F_CREATE: _bindgen_ty_20 = 1;
1565pub const BPF_SK_STORAGE_GET_F_CREATE: _bindgen_ty_20 = 1;
1566pub type _bindgen_ty_20 = ::aya_ebpf_cty::c_uint;
1567pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_21 = 1;
1568pub type _bindgen_ty_21 = ::aya_ebpf_cty::c_uint;
1569pub const BPF_RB_NO_WAKEUP: _bindgen_ty_22 = 1;
1570pub const BPF_RB_FORCE_WAKEUP: _bindgen_ty_22 = 2;
1571pub type _bindgen_ty_22 = ::aya_ebpf_cty::c_uint;
1572pub const BPF_RB_AVAIL_DATA: _bindgen_ty_23 = 0;
1573pub const BPF_RB_RING_SIZE: _bindgen_ty_23 = 1;
1574pub const BPF_RB_CONS_POS: _bindgen_ty_23 = 2;
1575pub const BPF_RB_PROD_POS: _bindgen_ty_23 = 3;
1576pub type _bindgen_ty_23 = ::aya_ebpf_cty::c_uint;
1577pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_24 = 2147483648;
1578pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_24 = 1073741824;
1579pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_24 = 8;
1580pub type _bindgen_ty_24 = ::aya_ebpf_cty::c_uint;
1581pub const BPF_SK_LOOKUP_F_REPLACE: _bindgen_ty_25 = 1;
1582pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: _bindgen_ty_25 = 2;
1583pub type _bindgen_ty_25 = ::aya_ebpf_cty::c_uint;
1584pub mod bpf_adj_room_mode {
1585    pub type Type = ::aya_ebpf_cty::c_uint;
1586    pub const BPF_ADJ_ROOM_NET: Type = 0;
1587    pub const BPF_ADJ_ROOM_MAC: Type = 1;
1588}
1589pub mod bpf_hdr_start_off {
1590    pub type Type = ::aya_ebpf_cty::c_uint;
1591    pub const BPF_HDR_START_MAC: Type = 0;
1592    pub const BPF_HDR_START_NET: Type = 1;
1593}
1594pub mod bpf_lwt_encap_mode {
1595    pub type Type = ::aya_ebpf_cty::c_uint;
1596    pub const BPF_LWT_ENCAP_SEG6: Type = 0;
1597    pub const BPF_LWT_ENCAP_SEG6_INLINE: Type = 1;
1598    pub const BPF_LWT_ENCAP_IP: Type = 2;
1599}
1600pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_26 = 1;
1601pub type _bindgen_ty_26 = ::aya_ebpf_cty::c_uint;
1602pub const BPF_F_BROADCAST: _bindgen_ty_27 = 8;
1603pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_27 = 16;
1604pub type _bindgen_ty_27 = ::aya_ebpf_cty::c_uint;
1605pub mod _bindgen_ty_28 {
1606    pub type Type = ::aya_ebpf_cty::c_uint;
1607    pub const BPF_SKB_TSTAMP_UNSPEC: Type = 0;
1608    pub const BPF_SKB_TSTAMP_DELIVERY_MONO: Type = 1;
1609}
1610#[repr(C)]
1611#[derive(Copy, Clone)]
1612pub struct __sk_buff {
1613    pub len: __u32,
1614    pub pkt_type: __u32,
1615    pub mark: __u32,
1616    pub queue_mapping: __u32,
1617    pub protocol: __u32,
1618    pub vlan_present: __u32,
1619    pub vlan_tci: __u32,
1620    pub vlan_proto: __u32,
1621    pub priority: __u32,
1622    pub ingress_ifindex: __u32,
1623    pub ifindex: __u32,
1624    pub tc_index: __u32,
1625    pub cb: [__u32; 5usize],
1626    pub hash: __u32,
1627    pub tc_classid: __u32,
1628    pub data: __u32,
1629    pub data_end: __u32,
1630    pub napi_id: __u32,
1631    pub family: __u32,
1632    pub remote_ip4: __u32,
1633    pub local_ip4: __u32,
1634    pub remote_ip6: [__u32; 4usize],
1635    pub local_ip6: [__u32; 4usize],
1636    pub remote_port: __u32,
1637    pub local_port: __u32,
1638    pub data_meta: __u32,
1639    pub __bindgen_anon_1: __sk_buff__bindgen_ty_1,
1640    pub tstamp: __u64,
1641    pub wire_len: __u32,
1642    pub gso_segs: __u32,
1643    pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
1644    pub gso_size: __u32,
1645    pub tstamp_type: __u8,
1646    pub _bitfield_align_1: [u8; 0],
1647    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
1648    pub hwtstamp: __u64,
1649}
1650#[repr(C)]
1651#[derive(Copy, Clone)]
1652pub union __sk_buff__bindgen_ty_1 {
1653    pub flow_keys: *mut bpf_flow_keys,
1654    pub _bitfield_align_1: [u8; 0],
1655    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1656}
1657impl __sk_buff__bindgen_ty_1 {
1658    #[inline]
1659    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
1660        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1661        __bindgen_bitfield_unit
1662    }
1663}
1664#[repr(C)]
1665#[derive(Copy, Clone)]
1666pub union __sk_buff__bindgen_ty_2 {
1667    pub sk: *mut bpf_sock,
1668    pub _bitfield_align_1: [u8; 0],
1669    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1670}
1671impl __sk_buff__bindgen_ty_2 {
1672    #[inline]
1673    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
1674        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1675        __bindgen_bitfield_unit
1676    }
1677}
1678impl __sk_buff {
1679    #[inline]
1680    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 3usize]> {
1681        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
1682        __bindgen_bitfield_unit
1683    }
1684}
1685#[repr(C)]
1686#[derive(Copy, Clone)]
1687pub struct bpf_tunnel_key {
1688    pub tunnel_id: __u32,
1689    pub __bindgen_anon_1: bpf_tunnel_key__bindgen_ty_1,
1690    pub tunnel_tos: __u8,
1691    pub tunnel_ttl: __u8,
1692    pub __bindgen_anon_2: bpf_tunnel_key__bindgen_ty_2,
1693    pub tunnel_label: __u32,
1694    pub __bindgen_anon_3: bpf_tunnel_key__bindgen_ty_3,
1695}
1696#[repr(C)]
1697#[derive(Copy, Clone)]
1698pub union bpf_tunnel_key__bindgen_ty_1 {
1699    pub remote_ipv4: __u32,
1700    pub remote_ipv6: [__u32; 4usize],
1701}
1702#[repr(C)]
1703#[derive(Copy, Clone)]
1704pub union bpf_tunnel_key__bindgen_ty_2 {
1705    pub tunnel_ext: __u16,
1706    pub tunnel_flags: __be16,
1707}
1708#[repr(C)]
1709#[derive(Copy, Clone)]
1710pub union bpf_tunnel_key__bindgen_ty_3 {
1711    pub local_ipv4: __u32,
1712    pub local_ipv6: [__u32; 4usize],
1713}
1714#[repr(C)]
1715#[derive(Copy, Clone)]
1716pub struct bpf_xfrm_state {
1717    pub reqid: __u32,
1718    pub spi: __u32,
1719    pub family: __u16,
1720    pub ext: __u16,
1721    pub __bindgen_anon_1: bpf_xfrm_state__bindgen_ty_1,
1722}
1723#[repr(C)]
1724#[derive(Copy, Clone)]
1725pub union bpf_xfrm_state__bindgen_ty_1 {
1726    pub remote_ipv4: __u32,
1727    pub remote_ipv6: [__u32; 4usize],
1728}
1729pub mod bpf_ret_code {
1730    pub type Type = ::aya_ebpf_cty::c_uint;
1731    pub const BPF_OK: Type = 0;
1732    pub const BPF_DROP: Type = 2;
1733    pub const BPF_REDIRECT: Type = 7;
1734    pub const BPF_LWT_REROUTE: Type = 128;
1735    pub const BPF_FLOW_DISSECTOR_CONTINUE: Type = 129;
1736}
1737#[repr(C)]
1738#[derive(Debug, Copy, Clone)]
1739pub struct bpf_sock {
1740    pub bound_dev_if: __u32,
1741    pub family: __u32,
1742    pub type_: __u32,
1743    pub protocol: __u32,
1744    pub mark: __u32,
1745    pub priority: __u32,
1746    pub src_ip4: __u32,
1747    pub src_ip6: [__u32; 4usize],
1748    pub src_port: __u32,
1749    pub dst_port: __be16,
1750    pub _bitfield_align_1: [u8; 0],
1751    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
1752    pub dst_ip4: __u32,
1753    pub dst_ip6: [__u32; 4usize],
1754    pub state: __u32,
1755    pub rx_queue_mapping: __s32,
1756}
1757impl bpf_sock {
1758    #[inline]
1759    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
1760        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
1761        __bindgen_bitfield_unit
1762    }
1763}
1764#[repr(C)]
1765#[derive(Debug, Copy, Clone)]
1766pub struct bpf_tcp_sock {
1767    pub snd_cwnd: __u32,
1768    pub srtt_us: __u32,
1769    pub rtt_min: __u32,
1770    pub snd_ssthresh: __u32,
1771    pub rcv_nxt: __u32,
1772    pub snd_nxt: __u32,
1773    pub snd_una: __u32,
1774    pub mss_cache: __u32,
1775    pub ecn_flags: __u32,
1776    pub rate_delivered: __u32,
1777    pub rate_interval_us: __u32,
1778    pub packets_out: __u32,
1779    pub retrans_out: __u32,
1780    pub total_retrans: __u32,
1781    pub segs_in: __u32,
1782    pub data_segs_in: __u32,
1783    pub segs_out: __u32,
1784    pub data_segs_out: __u32,
1785    pub lost_out: __u32,
1786    pub sacked_out: __u32,
1787    pub bytes_received: __u64,
1788    pub bytes_acked: __u64,
1789    pub dsack_dups: __u32,
1790    pub delivered: __u32,
1791    pub delivered_ce: __u32,
1792    pub icsk_retransmits: __u32,
1793}
1794#[repr(C)]
1795#[derive(Copy, Clone)]
1796pub struct bpf_sock_tuple {
1797    pub __bindgen_anon_1: bpf_sock_tuple__bindgen_ty_1,
1798}
1799#[repr(C)]
1800#[derive(Copy, Clone)]
1801pub union bpf_sock_tuple__bindgen_ty_1 {
1802    pub ipv4: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1,
1803    pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
1804}
1805#[repr(C)]
1806#[derive(Debug, Copy, Clone)]
1807pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
1808    pub saddr: __be32,
1809    pub daddr: __be32,
1810    pub sport: __be16,
1811    pub dport: __be16,
1812}
1813#[repr(C)]
1814#[derive(Debug, Copy, Clone)]
1815pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
1816    pub saddr: [__be32; 4usize],
1817    pub daddr: [__be32; 4usize],
1818    pub sport: __be16,
1819    pub dport: __be16,
1820}
1821pub mod tcx_action_base {
1822    pub type Type = ::aya_ebpf_cty::c_int;
1823    pub const TCX_NEXT: Type = -1;
1824    pub const TCX_PASS: Type = 0;
1825    pub const TCX_DROP: Type = 2;
1826    pub const TCX_REDIRECT: Type = 7;
1827}
1828#[repr(C)]
1829#[derive(Debug, Copy, Clone)]
1830pub struct bpf_xdp_sock {
1831    pub queue_id: __u32,
1832}
1833pub mod xdp_action {
1834    pub type Type = ::aya_ebpf_cty::c_uint;
1835    pub const XDP_ABORTED: Type = 0;
1836    pub const XDP_DROP: Type = 1;
1837    pub const XDP_PASS: Type = 2;
1838    pub const XDP_TX: Type = 3;
1839    pub const XDP_REDIRECT: Type = 4;
1840}
1841#[repr(C)]
1842#[derive(Debug, Copy, Clone)]
1843pub struct xdp_md {
1844    pub data: __u32,
1845    pub data_end: __u32,
1846    pub data_meta: __u32,
1847    pub ingress_ifindex: __u32,
1848    pub rx_queue_index: __u32,
1849    pub egress_ifindex: __u32,
1850}
1851#[repr(C)]
1852#[derive(Copy, Clone)]
1853pub struct bpf_devmap_val {
1854    pub ifindex: __u32,
1855    pub bpf_prog: bpf_devmap_val__bindgen_ty_1,
1856}
1857#[repr(C)]
1858#[derive(Copy, Clone)]
1859pub union bpf_devmap_val__bindgen_ty_1 {
1860    pub fd: ::aya_ebpf_cty::c_int,
1861    pub id: __u32,
1862}
1863#[repr(C)]
1864#[derive(Copy, Clone)]
1865pub struct bpf_cpumap_val {
1866    pub qsize: __u32,
1867    pub bpf_prog: bpf_cpumap_val__bindgen_ty_1,
1868}
1869#[repr(C)]
1870#[derive(Copy, Clone)]
1871pub union bpf_cpumap_val__bindgen_ty_1 {
1872    pub fd: ::aya_ebpf_cty::c_int,
1873    pub id: __u32,
1874}
1875pub mod sk_action {
1876    pub type Type = ::aya_ebpf_cty::c_uint;
1877    pub const SK_DROP: Type = 0;
1878    pub const SK_PASS: Type = 1;
1879}
1880#[repr(C)]
1881#[derive(Copy, Clone)]
1882pub struct sk_msg_md {
1883    pub __bindgen_anon_1: sk_msg_md__bindgen_ty_1,
1884    pub __bindgen_anon_2: sk_msg_md__bindgen_ty_2,
1885    pub family: __u32,
1886    pub remote_ip4: __u32,
1887    pub local_ip4: __u32,
1888    pub remote_ip6: [__u32; 4usize],
1889    pub local_ip6: [__u32; 4usize],
1890    pub remote_port: __u32,
1891    pub local_port: __u32,
1892    pub size: __u32,
1893    pub __bindgen_anon_3: sk_msg_md__bindgen_ty_3,
1894}
1895#[repr(C)]
1896#[derive(Copy, Clone)]
1897pub union sk_msg_md__bindgen_ty_1 {
1898    pub data: *mut ::aya_ebpf_cty::c_void,
1899    pub _bitfield_align_1: [u8; 0],
1900    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1901}
1902impl sk_msg_md__bindgen_ty_1 {
1903    #[inline]
1904    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
1905        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1906        __bindgen_bitfield_unit
1907    }
1908}
1909#[repr(C)]
1910#[derive(Copy, Clone)]
1911pub union sk_msg_md__bindgen_ty_2 {
1912    pub data_end: *mut ::aya_ebpf_cty::c_void,
1913    pub _bitfield_align_1: [u8; 0],
1914    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1915}
1916impl sk_msg_md__bindgen_ty_2 {
1917    #[inline]
1918    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
1919        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1920        __bindgen_bitfield_unit
1921    }
1922}
1923#[repr(C)]
1924#[derive(Copy, Clone)]
1925pub union sk_msg_md__bindgen_ty_3 {
1926    pub sk: *mut bpf_sock,
1927    pub _bitfield_align_1: [u8; 0],
1928    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1929}
1930impl sk_msg_md__bindgen_ty_3 {
1931    #[inline]
1932    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
1933        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1934        __bindgen_bitfield_unit
1935    }
1936}
1937#[repr(C)]
1938#[derive(Copy, Clone)]
1939pub struct sk_reuseport_md {
1940    pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1,
1941    pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2,
1942    pub len: __u32,
1943    pub eth_protocol: __u32,
1944    pub ip_protocol: __u32,
1945    pub bind_inany: __u32,
1946    pub hash: __u32,
1947    pub __bindgen_anon_3: sk_reuseport_md__bindgen_ty_3,
1948    pub __bindgen_anon_4: sk_reuseport_md__bindgen_ty_4,
1949}
1950#[repr(C)]
1951#[derive(Copy, Clone)]
1952pub union sk_reuseport_md__bindgen_ty_1 {
1953    pub data: *mut ::aya_ebpf_cty::c_void,
1954    pub _bitfield_align_1: [u8; 0],
1955    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1956}
1957impl sk_reuseport_md__bindgen_ty_1 {
1958    #[inline]
1959    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
1960        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1961        __bindgen_bitfield_unit
1962    }
1963}
1964#[repr(C)]
1965#[derive(Copy, Clone)]
1966pub union sk_reuseport_md__bindgen_ty_2 {
1967    pub data_end: *mut ::aya_ebpf_cty::c_void,
1968    pub _bitfield_align_1: [u8; 0],
1969    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1970}
1971impl sk_reuseport_md__bindgen_ty_2 {
1972    #[inline]
1973    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
1974        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1975        __bindgen_bitfield_unit
1976    }
1977}
1978#[repr(C)]
1979#[derive(Copy, Clone)]
1980pub union sk_reuseport_md__bindgen_ty_3 {
1981    pub sk: *mut bpf_sock,
1982    pub _bitfield_align_1: [u8; 0],
1983    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1984}
1985impl sk_reuseport_md__bindgen_ty_3 {
1986    #[inline]
1987    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
1988        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1989        __bindgen_bitfield_unit
1990    }
1991}
1992#[repr(C)]
1993#[derive(Copy, Clone)]
1994pub union sk_reuseport_md__bindgen_ty_4 {
1995    pub migrating_sk: *mut bpf_sock,
1996    pub _bitfield_align_1: [u8; 0],
1997    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1998}
1999impl sk_reuseport_md__bindgen_ty_4 {
2000    #[inline]
2001    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2002        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2003        __bindgen_bitfield_unit
2004    }
2005}
2006#[repr(C)]
2007#[derive(Debug, Copy, Clone)]
2008pub struct bpf_prog_info {
2009    pub type_: __u32,
2010    pub id: __u32,
2011    pub tag: [__u8; 8usize],
2012    pub jited_prog_len: __u32,
2013    pub xlated_prog_len: __u32,
2014    pub jited_prog_insns: __u64,
2015    pub xlated_prog_insns: __u64,
2016    pub load_time: __u64,
2017    pub created_by_uid: __u32,
2018    pub nr_map_ids: __u32,
2019    pub map_ids: __u64,
2020    pub name: [::aya_ebpf_cty::c_char; 16usize],
2021    pub ifindex: __u32,
2022    pub _bitfield_align_1: [u8; 0],
2023    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
2024    pub netns_dev: __u64,
2025    pub netns_ino: __u64,
2026    pub nr_jited_ksyms: __u32,
2027    pub nr_jited_func_lens: __u32,
2028    pub jited_ksyms: __u64,
2029    pub jited_func_lens: __u64,
2030    pub btf_id: __u32,
2031    pub func_info_rec_size: __u32,
2032    pub func_info: __u64,
2033    pub nr_func_info: __u32,
2034    pub nr_line_info: __u32,
2035    pub line_info: __u64,
2036    pub jited_line_info: __u64,
2037    pub nr_jited_line_info: __u32,
2038    pub line_info_rec_size: __u32,
2039    pub jited_line_info_rec_size: __u32,
2040    pub nr_prog_tags: __u32,
2041    pub prog_tags: __u64,
2042    pub run_time_ns: __u64,
2043    pub run_cnt: __u64,
2044    pub recursion_misses: __u64,
2045    pub verified_insns: __u32,
2046    pub attach_btf_obj_id: __u32,
2047    pub attach_btf_id: __u32,
2048}
2049impl bpf_prog_info {
2050    #[inline]
2051    pub fn gpl_compatible(&self) -> __u32 {
2052        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
2053    }
2054    #[inline]
2055    pub fn set_gpl_compatible(&mut self, val: __u32) {
2056        unsafe {
2057            let val: u32 = ::core::mem::transmute(val);
2058            self._bitfield_1.set(0usize, 1u8, val as u64)
2059        }
2060    }
2061    #[inline]
2062    pub unsafe fn gpl_compatible_raw(this: *const Self) -> __u32 {
2063        unsafe {
2064            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
2065                ::core::ptr::addr_of!((*this)._bitfield_1),
2066                0usize,
2067                1u8,
2068            ) as u32)
2069        }
2070    }
2071    #[inline]
2072    pub unsafe fn set_gpl_compatible_raw(this: *mut Self, val: __u32) {
2073        unsafe {
2074            let val: u32 = ::core::mem::transmute(val);
2075            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
2076                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
2077                0usize,
2078                1u8,
2079                val as u64,
2080            )
2081        }
2082    }
2083    #[inline]
2084    pub fn new_bitfield_1(gpl_compatible: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
2085        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
2086        __bindgen_bitfield_unit.set(0usize, 1u8, {
2087            let gpl_compatible: u32 = unsafe { ::core::mem::transmute(gpl_compatible) };
2088            gpl_compatible as u64
2089        });
2090        __bindgen_bitfield_unit
2091    }
2092}
2093#[repr(C)]
2094#[derive(Debug, Copy, Clone)]
2095pub struct bpf_map_info {
2096    pub type_: __u32,
2097    pub id: __u32,
2098    pub key_size: __u32,
2099    pub value_size: __u32,
2100    pub max_entries: __u32,
2101    pub map_flags: __u32,
2102    pub name: [::aya_ebpf_cty::c_char; 16usize],
2103    pub ifindex: __u32,
2104    pub btf_vmlinux_value_type_id: __u32,
2105    pub netns_dev: __u64,
2106    pub netns_ino: __u64,
2107    pub btf_id: __u32,
2108    pub btf_key_type_id: __u32,
2109    pub btf_value_type_id: __u32,
2110    pub btf_vmlinux_id: __u32,
2111    pub map_extra: __u64,
2112}
2113#[repr(C)]
2114#[derive(Debug, Copy, Clone)]
2115pub struct bpf_btf_info {
2116    pub btf: __u64,
2117    pub btf_size: __u32,
2118    pub id: __u32,
2119    pub name: __u64,
2120    pub name_len: __u32,
2121    pub kernel_btf: __u32,
2122}
2123#[repr(C)]
2124#[derive(Copy, Clone)]
2125pub struct bpf_link_info {
2126    pub type_: __u32,
2127    pub id: __u32,
2128    pub prog_id: __u32,
2129    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1,
2130}
2131#[repr(C)]
2132#[derive(Copy, Clone)]
2133pub union bpf_link_info__bindgen_ty_1 {
2134    pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1,
2135    pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2,
2136    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3,
2137    pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4,
2138    pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5,
2139    pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
2140    pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7,
2141    pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8,
2142    pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9,
2143    pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10,
2144    pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11,
2145    pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12,
2146    pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13,
2147}
2148#[repr(C)]
2149#[derive(Debug, Copy, Clone)]
2150pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
2151    pub tp_name: __u64,
2152    pub tp_name_len: __u32,
2153}
2154#[repr(C)]
2155#[derive(Debug, Copy, Clone)]
2156pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
2157    pub attach_type: __u32,
2158    pub target_obj_id: __u32,
2159    pub target_btf_id: __u32,
2160}
2161#[repr(C)]
2162#[derive(Debug, Copy, Clone)]
2163pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 {
2164    pub cgroup_id: __u64,
2165    pub attach_type: __u32,
2166}
2167#[repr(C)]
2168#[derive(Copy, Clone)]
2169pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
2170    pub target_name: __u64,
2171    pub target_name_len: __u32,
2172    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
2173    pub __bindgen_anon_2: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2,
2174}
2175#[repr(C)]
2176#[derive(Copy, Clone)]
2177pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
2178    pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
2179}
2180#[repr(C)]
2181#[derive(Debug, Copy, Clone)]
2182pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
2183    pub map_id: __u32,
2184}
2185#[repr(C)]
2186#[derive(Copy, Clone)]
2187pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2 {
2188    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1,
2189    pub task: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2,
2190}
2191#[repr(C)]
2192#[derive(Debug, Copy, Clone)]
2193pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1 {
2194    pub cgroup_id: __u64,
2195    pub order: __u32,
2196}
2197#[repr(C)]
2198#[derive(Debug, Copy, Clone)]
2199pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2 {
2200    pub tid: __u32,
2201    pub pid: __u32,
2202}
2203#[repr(C)]
2204#[derive(Debug, Copy, Clone)]
2205pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 {
2206    pub netns_ino: __u32,
2207    pub attach_type: __u32,
2208}
2209#[repr(C)]
2210#[derive(Debug, Copy, Clone)]
2211pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 {
2212    pub ifindex: __u32,
2213}
2214#[repr(C)]
2215#[derive(Debug, Copy, Clone)]
2216pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_7 {
2217    pub map_id: __u32,
2218}
2219#[repr(C)]
2220#[derive(Debug, Copy, Clone)]
2221pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 {
2222    pub pf: __u32,
2223    pub hooknum: __u32,
2224    pub priority: __s32,
2225    pub flags: __u32,
2226}
2227#[repr(C)]
2228#[derive(Debug, Copy, Clone)]
2229pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 {
2230    pub addrs: __u64,
2231    pub count: __u32,
2232    pub flags: __u32,
2233    pub missed: __u64,
2234    pub cookies: __u64,
2235}
2236#[repr(C)]
2237#[derive(Debug, Copy, Clone)]
2238pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 {
2239    pub path: __u64,
2240    pub offsets: __u64,
2241    pub ref_ctr_offsets: __u64,
2242    pub cookies: __u64,
2243    pub path_size: __u32,
2244    pub count: __u32,
2245    pub flags: __u32,
2246    pub pid: __u32,
2247}
2248#[repr(C)]
2249#[derive(Copy, Clone)]
2250pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
2251    pub type_: __u32,
2252    pub _bitfield_align_1: [u8; 0],
2253    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
2254    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1,
2255}
2256#[repr(C)]
2257#[derive(Copy, Clone)]
2258pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
2259    pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1,
2260    pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2,
2261    pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3,
2262    pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4,
2263}
2264#[repr(C)]
2265#[derive(Debug, Copy, Clone)]
2266pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 {
2267    pub file_name: __u64,
2268    pub name_len: __u32,
2269    pub offset: __u32,
2270    pub cookie: __u64,
2271}
2272#[repr(C)]
2273#[derive(Debug, Copy, Clone)]
2274pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 {
2275    pub func_name: __u64,
2276    pub name_len: __u32,
2277    pub offset: __u32,
2278    pub addr: __u64,
2279    pub missed: __u64,
2280    pub cookie: __u64,
2281}
2282#[repr(C)]
2283#[derive(Debug, Copy, Clone)]
2284pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
2285    pub tp_name: __u64,
2286    pub name_len: __u32,
2287    pub _bitfield_align_1: [u8; 0],
2288    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
2289    pub cookie: __u64,
2290}
2291impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
2292    #[inline]
2293    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
2294        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
2295        __bindgen_bitfield_unit
2296    }
2297}
2298#[repr(C)]
2299#[derive(Debug, Copy, Clone)]
2300pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
2301    pub config: __u64,
2302    pub type_: __u32,
2303    pub _bitfield_align_1: [u8; 0],
2304    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
2305    pub cookie: __u64,
2306}
2307impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
2308    #[inline]
2309    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
2310        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
2311        __bindgen_bitfield_unit
2312    }
2313}
2314impl bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
2315    #[inline]
2316    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
2317        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
2318        __bindgen_bitfield_unit
2319    }
2320}
2321#[repr(C)]
2322#[derive(Debug, Copy, Clone)]
2323pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 {
2324    pub ifindex: __u32,
2325    pub attach_type: __u32,
2326}
2327#[repr(C)]
2328#[derive(Debug, Copy, Clone)]
2329pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 {
2330    pub ifindex: __u32,
2331    pub attach_type: __u32,
2332}
2333#[repr(C)]
2334#[derive(Copy, Clone)]
2335pub struct bpf_sock_addr {
2336    pub user_family: __u32,
2337    pub user_ip4: __u32,
2338    pub user_ip6: [__u32; 4usize],
2339    pub user_port: __u32,
2340    pub family: __u32,
2341    pub type_: __u32,
2342    pub protocol: __u32,
2343    pub msg_src_ip4: __u32,
2344    pub msg_src_ip6: [__u32; 4usize],
2345    pub __bindgen_anon_1: bpf_sock_addr__bindgen_ty_1,
2346}
2347#[repr(C)]
2348#[derive(Copy, Clone)]
2349pub union bpf_sock_addr__bindgen_ty_1 {
2350    pub sk: *mut bpf_sock,
2351    pub _bitfield_align_1: [u8; 0],
2352    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2353}
2354impl bpf_sock_addr__bindgen_ty_1 {
2355    #[inline]
2356    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2357        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2358        __bindgen_bitfield_unit
2359    }
2360}
2361#[repr(C)]
2362#[derive(Copy, Clone)]
2363pub struct bpf_sock_ops {
2364    pub op: __u32,
2365    pub __bindgen_anon_1: bpf_sock_ops__bindgen_ty_1,
2366    pub family: __u32,
2367    pub remote_ip4: __u32,
2368    pub local_ip4: __u32,
2369    pub remote_ip6: [__u32; 4usize],
2370    pub local_ip6: [__u32; 4usize],
2371    pub remote_port: __u32,
2372    pub local_port: __u32,
2373    pub is_fullsock: __u32,
2374    pub snd_cwnd: __u32,
2375    pub srtt_us: __u32,
2376    pub bpf_sock_ops_cb_flags: __u32,
2377    pub state: __u32,
2378    pub rtt_min: __u32,
2379    pub snd_ssthresh: __u32,
2380    pub rcv_nxt: __u32,
2381    pub snd_nxt: __u32,
2382    pub snd_una: __u32,
2383    pub mss_cache: __u32,
2384    pub ecn_flags: __u32,
2385    pub rate_delivered: __u32,
2386    pub rate_interval_us: __u32,
2387    pub packets_out: __u32,
2388    pub retrans_out: __u32,
2389    pub total_retrans: __u32,
2390    pub segs_in: __u32,
2391    pub data_segs_in: __u32,
2392    pub segs_out: __u32,
2393    pub data_segs_out: __u32,
2394    pub lost_out: __u32,
2395    pub sacked_out: __u32,
2396    pub sk_txhash: __u32,
2397    pub bytes_received: __u64,
2398    pub bytes_acked: __u64,
2399    pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
2400    pub __bindgen_anon_3: bpf_sock_ops__bindgen_ty_3,
2401    pub __bindgen_anon_4: bpf_sock_ops__bindgen_ty_4,
2402    pub skb_len: __u32,
2403    pub skb_tcp_flags: __u32,
2404    pub skb_hwtstamp: __u64,
2405}
2406#[repr(C)]
2407#[derive(Copy, Clone)]
2408pub union bpf_sock_ops__bindgen_ty_1 {
2409    pub args: [__u32; 4usize],
2410    pub reply: __u32,
2411    pub replylong: [__u32; 4usize],
2412}
2413#[repr(C)]
2414#[derive(Copy, Clone)]
2415pub union bpf_sock_ops__bindgen_ty_2 {
2416    pub sk: *mut bpf_sock,
2417    pub _bitfield_align_1: [u8; 0],
2418    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2419}
2420impl bpf_sock_ops__bindgen_ty_2 {
2421    #[inline]
2422    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2423        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2424        __bindgen_bitfield_unit
2425    }
2426}
2427#[repr(C)]
2428#[derive(Copy, Clone)]
2429pub union bpf_sock_ops__bindgen_ty_3 {
2430    pub skb_data: *mut ::aya_ebpf_cty::c_void,
2431    pub _bitfield_align_1: [u8; 0],
2432    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2433}
2434impl bpf_sock_ops__bindgen_ty_3 {
2435    #[inline]
2436    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2437        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2438        __bindgen_bitfield_unit
2439    }
2440}
2441#[repr(C)]
2442#[derive(Copy, Clone)]
2443pub union bpf_sock_ops__bindgen_ty_4 {
2444    pub skb_data_end: *mut ::aya_ebpf_cty::c_void,
2445    pub _bitfield_align_1: [u8; 0],
2446    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2447}
2448impl bpf_sock_ops__bindgen_ty_4 {
2449    #[inline]
2450    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2451        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2452        __bindgen_bitfield_unit
2453    }
2454}
2455pub const BPF_SOCK_OPS_RTO_CB_FLAG: _bindgen_ty_29 = 1;
2456pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: _bindgen_ty_29 = 2;
2457pub const BPF_SOCK_OPS_STATE_CB_FLAG: _bindgen_ty_29 = 4;
2458pub const BPF_SOCK_OPS_RTT_CB_FLAG: _bindgen_ty_29 = 8;
2459pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: _bindgen_ty_29 = 16;
2460pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: _bindgen_ty_29 = 32;
2461pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: _bindgen_ty_29 = 64;
2462pub const BPF_SOCK_OPS_ALL_CB_FLAGS: _bindgen_ty_29 = 127;
2463pub type _bindgen_ty_29 = ::aya_ebpf_cty::c_uint;
2464pub const BPF_SOCK_OPS_VOID: _bindgen_ty_30 = 0;
2465pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_30 = 1;
2466pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_30 = 2;
2467pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_30 = 3;
2468pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_30 = 4;
2469pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_30 = 5;
2470pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_30 = 6;
2471pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_30 = 7;
2472pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_30 = 8;
2473pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_30 = 9;
2474pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_30 = 10;
2475pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_30 = 11;
2476pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_30 = 12;
2477pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: _bindgen_ty_30 = 13;
2478pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: _bindgen_ty_30 = 14;
2479pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: _bindgen_ty_30 = 15;
2480pub type _bindgen_ty_30 = ::aya_ebpf_cty::c_uint;
2481pub const BPF_TCP_ESTABLISHED: _bindgen_ty_31 = 1;
2482pub const BPF_TCP_SYN_SENT: _bindgen_ty_31 = 2;
2483pub const BPF_TCP_SYN_RECV: _bindgen_ty_31 = 3;
2484pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_31 = 4;
2485pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_31 = 5;
2486pub const BPF_TCP_TIME_WAIT: _bindgen_ty_31 = 6;
2487pub const BPF_TCP_CLOSE: _bindgen_ty_31 = 7;
2488pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_31 = 8;
2489pub const BPF_TCP_LAST_ACK: _bindgen_ty_31 = 9;
2490pub const BPF_TCP_LISTEN: _bindgen_ty_31 = 10;
2491pub const BPF_TCP_CLOSING: _bindgen_ty_31 = 11;
2492pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_31 = 12;
2493pub const BPF_TCP_BOUND_INACTIVE: _bindgen_ty_31 = 13;
2494pub const BPF_TCP_MAX_STATES: _bindgen_ty_31 = 14;
2495pub type _bindgen_ty_31 = ::aya_ebpf_cty::c_uint;
2496pub mod _bindgen_ty_33 {
2497    pub type Type = ::aya_ebpf_cty::c_uint;
2498    pub const BPF_LOAD_HDR_OPT_TCP_SYN: Type = 1;
2499}
2500pub mod _bindgen_ty_34 {
2501    pub type Type = ::aya_ebpf_cty::c_uint;
2502    pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: Type = 1;
2503    pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: Type = 2;
2504}
2505#[repr(C)]
2506#[derive(Debug, Copy, Clone)]
2507pub struct bpf_perf_event_value {
2508    pub counter: __u64,
2509    pub enabled: __u64,
2510    pub running: __u64,
2511}
2512pub const BPF_DEVCG_ACC_MKNOD: _bindgen_ty_35 = 1;
2513pub const BPF_DEVCG_ACC_READ: _bindgen_ty_35 = 2;
2514pub const BPF_DEVCG_ACC_WRITE: _bindgen_ty_35 = 4;
2515pub type _bindgen_ty_35 = ::aya_ebpf_cty::c_uint;
2516pub const BPF_DEVCG_DEV_BLOCK: _bindgen_ty_36 = 1;
2517pub const BPF_DEVCG_DEV_CHAR: _bindgen_ty_36 = 2;
2518pub type _bindgen_ty_36 = ::aya_ebpf_cty::c_uint;
2519#[repr(C)]
2520#[derive(Debug, Copy, Clone)]
2521pub struct bpf_cgroup_dev_ctx {
2522    pub access_type: __u32,
2523    pub major: __u32,
2524    pub minor: __u32,
2525}
2526#[repr(C)]
2527#[derive(Debug)]
2528pub struct bpf_raw_tracepoint_args {
2529    pub args: __IncompleteArrayField<__u64>,
2530}
2531pub const BPF_FIB_LOOKUP_DIRECT: _bindgen_ty_37 = 1;
2532pub const BPF_FIB_LOOKUP_OUTPUT: _bindgen_ty_37 = 2;
2533pub const BPF_FIB_LOOKUP_SKIP_NEIGH: _bindgen_ty_37 = 4;
2534pub const BPF_FIB_LOOKUP_TBID: _bindgen_ty_37 = 8;
2535pub const BPF_FIB_LOOKUP_SRC: _bindgen_ty_37 = 16;
2536pub type _bindgen_ty_37 = ::aya_ebpf_cty::c_uint;
2537pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_38 = 0;
2538pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_38 = 1;
2539pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_38 = 2;
2540pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_38 = 3;
2541pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_38 = 4;
2542pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_38 = 5;
2543pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_38 = 6;
2544pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_38 = 7;
2545pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_38 = 8;
2546pub const BPF_FIB_LKUP_RET_NO_SRC_ADDR: _bindgen_ty_38 = 9;
2547pub type _bindgen_ty_38 = ::aya_ebpf_cty::c_uint;
2548#[repr(C)]
2549#[derive(Copy, Clone)]
2550pub struct bpf_fib_lookup {
2551    pub family: __u8,
2552    pub l4_protocol: __u8,
2553    pub sport: __be16,
2554    pub dport: __be16,
2555    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
2556    pub ifindex: __u32,
2557    pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
2558    pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
2559    pub __bindgen_anon_4: bpf_fib_lookup__bindgen_ty_4,
2560    pub __bindgen_anon_5: bpf_fib_lookup__bindgen_ty_5,
2561    pub smac: [__u8; 6usize],
2562    pub dmac: [__u8; 6usize],
2563}
2564#[repr(C)]
2565#[derive(Copy, Clone)]
2566pub union bpf_fib_lookup__bindgen_ty_1 {
2567    pub tot_len: __u16,
2568    pub mtu_result: __u16,
2569}
2570#[repr(C)]
2571#[derive(Copy, Clone)]
2572pub union bpf_fib_lookup__bindgen_ty_2 {
2573    pub tos: __u8,
2574    pub flowinfo: __be32,
2575    pub rt_metric: __u32,
2576}
2577#[repr(C)]
2578#[derive(Copy, Clone)]
2579pub union bpf_fib_lookup__bindgen_ty_3 {
2580    pub ipv4_src: __be32,
2581    pub ipv6_src: [__u32; 4usize],
2582}
2583#[repr(C)]
2584#[derive(Copy, Clone)]
2585pub union bpf_fib_lookup__bindgen_ty_4 {
2586    pub ipv4_dst: __be32,
2587    pub ipv6_dst: [__u32; 4usize],
2588}
2589#[repr(C)]
2590#[derive(Copy, Clone)]
2591pub union bpf_fib_lookup__bindgen_ty_5 {
2592    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_5__bindgen_ty_1,
2593    pub tbid: __u32,
2594}
2595#[repr(C)]
2596#[derive(Debug, Copy, Clone)]
2597pub struct bpf_fib_lookup__bindgen_ty_5__bindgen_ty_1 {
2598    pub h_vlan_proto: __be16,
2599    pub h_vlan_TCI: __be16,
2600}
2601#[repr(C)]
2602#[derive(Copy, Clone)]
2603pub struct bpf_redir_neigh {
2604    pub nh_family: __u32,
2605    pub __bindgen_anon_1: bpf_redir_neigh__bindgen_ty_1,
2606}
2607#[repr(C)]
2608#[derive(Copy, Clone)]
2609pub union bpf_redir_neigh__bindgen_ty_1 {
2610    pub ipv4_nh: __be32,
2611    pub ipv6_nh: [__u32; 4usize],
2612}
2613pub mod bpf_check_mtu_flags {
2614    pub type Type = ::aya_ebpf_cty::c_uint;
2615    pub const BPF_MTU_CHK_SEGS: Type = 1;
2616}
2617pub mod bpf_check_mtu_ret {
2618    pub type Type = ::aya_ebpf_cty::c_uint;
2619    pub const BPF_MTU_CHK_RET_SUCCESS: Type = 0;
2620    pub const BPF_MTU_CHK_RET_FRAG_NEEDED: Type = 1;
2621    pub const BPF_MTU_CHK_RET_SEGS_TOOBIG: Type = 2;
2622}
2623pub mod bpf_task_fd_type {
2624    pub type Type = ::aya_ebpf_cty::c_uint;
2625    pub const BPF_FD_TYPE_RAW_TRACEPOINT: Type = 0;
2626    pub const BPF_FD_TYPE_TRACEPOINT: Type = 1;
2627    pub const BPF_FD_TYPE_KPROBE: Type = 2;
2628    pub const BPF_FD_TYPE_KRETPROBE: Type = 3;
2629    pub const BPF_FD_TYPE_UPROBE: Type = 4;
2630    pub const BPF_FD_TYPE_URETPROBE: Type = 5;
2631}
2632pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: _bindgen_ty_39 = 1;
2633pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: _bindgen_ty_39 = 2;
2634pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: _bindgen_ty_39 = 4;
2635pub type _bindgen_ty_39 = ::aya_ebpf_cty::c_uint;
2636#[repr(C)]
2637#[derive(Copy, Clone)]
2638pub struct bpf_flow_keys {
2639    pub nhoff: __u16,
2640    pub thoff: __u16,
2641    pub addr_proto: __u16,
2642    pub is_frag: __u8,
2643    pub is_first_frag: __u8,
2644    pub is_encap: __u8,
2645    pub ip_proto: __u8,
2646    pub n_proto: __be16,
2647    pub sport: __be16,
2648    pub dport: __be16,
2649    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1,
2650    pub flags: __u32,
2651    pub flow_label: __be32,
2652}
2653#[repr(C)]
2654#[derive(Copy, Clone)]
2655pub union bpf_flow_keys__bindgen_ty_1 {
2656    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1__bindgen_ty_1,
2657    pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
2658}
2659#[repr(C)]
2660#[derive(Debug, Copy, Clone)]
2661pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
2662    pub ipv4_src: __be32,
2663    pub ipv4_dst: __be32,
2664}
2665#[repr(C)]
2666#[derive(Debug, Copy, Clone)]
2667pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
2668    pub ipv6_src: [__u32; 4usize],
2669    pub ipv6_dst: [__u32; 4usize],
2670}
2671#[repr(C)]
2672#[derive(Debug, Copy, Clone)]
2673pub struct bpf_func_info {
2674    pub insn_off: __u32,
2675    pub type_id: __u32,
2676}
2677#[repr(C)]
2678#[derive(Debug, Copy, Clone)]
2679pub struct bpf_line_info {
2680    pub insn_off: __u32,
2681    pub file_name_off: __u32,
2682    pub line_off: __u32,
2683    pub line_col: __u32,
2684}
2685#[repr(C)]
2686#[derive(Debug, Copy, Clone)]
2687pub struct bpf_spin_lock {
2688    pub val: __u32,
2689}
2690#[repr(C)]
2691#[derive(Debug, Copy, Clone)]
2692pub struct bpf_timer {
2693    pub __opaque: [__u64; 2usize],
2694}
2695#[repr(C)]
2696#[derive(Debug, Copy, Clone)]
2697pub struct bpf_dynptr {
2698    pub __opaque: [__u64; 2usize],
2699}
2700#[repr(C)]
2701#[derive(Debug, Copy, Clone)]
2702pub struct bpf_list_head {
2703    pub __opaque: [__u64; 2usize],
2704}
2705#[repr(C)]
2706#[derive(Debug, Copy, Clone)]
2707pub struct bpf_list_node {
2708    pub __opaque: [__u64; 3usize],
2709}
2710#[repr(C)]
2711#[derive(Debug, Copy, Clone)]
2712pub struct bpf_rb_root {
2713    pub __opaque: [__u64; 2usize],
2714}
2715#[repr(C)]
2716#[derive(Debug, Copy, Clone)]
2717pub struct bpf_rb_node {
2718    pub __opaque: [__u64; 4usize],
2719}
2720#[repr(C)]
2721#[derive(Debug, Copy, Clone)]
2722pub struct bpf_refcount {
2723    pub __opaque: [__u32; 1usize],
2724}
2725#[repr(C)]
2726#[derive(Debug, Copy, Clone)]
2727pub struct bpf_sysctl {
2728    pub write: __u32,
2729    pub file_pos: __u32,
2730}
2731#[repr(C)]
2732#[derive(Copy, Clone)]
2733pub struct bpf_sockopt {
2734    pub __bindgen_anon_1: bpf_sockopt__bindgen_ty_1,
2735    pub __bindgen_anon_2: bpf_sockopt__bindgen_ty_2,
2736    pub __bindgen_anon_3: bpf_sockopt__bindgen_ty_3,
2737    pub level: __s32,
2738    pub optname: __s32,
2739    pub optlen: __s32,
2740    pub retval: __s32,
2741}
2742#[repr(C)]
2743#[derive(Copy, Clone)]
2744pub union bpf_sockopt__bindgen_ty_1 {
2745    pub sk: *mut bpf_sock,
2746    pub _bitfield_align_1: [u8; 0],
2747    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2748}
2749impl bpf_sockopt__bindgen_ty_1 {
2750    #[inline]
2751    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2752        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2753        __bindgen_bitfield_unit
2754    }
2755}
2756#[repr(C)]
2757#[derive(Copy, Clone)]
2758pub union bpf_sockopt__bindgen_ty_2 {
2759    pub optval: *mut ::aya_ebpf_cty::c_void,
2760    pub _bitfield_align_1: [u8; 0],
2761    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2762}
2763impl bpf_sockopt__bindgen_ty_2 {
2764    #[inline]
2765    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2766        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2767        __bindgen_bitfield_unit
2768    }
2769}
2770#[repr(C)]
2771#[derive(Copy, Clone)]
2772pub union bpf_sockopt__bindgen_ty_3 {
2773    pub optval_end: *mut ::aya_ebpf_cty::c_void,
2774    pub _bitfield_align_1: [u8; 0],
2775    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2776}
2777impl bpf_sockopt__bindgen_ty_3 {
2778    #[inline]
2779    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2780        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2781        __bindgen_bitfield_unit
2782    }
2783}
2784#[repr(C)]
2785#[derive(Debug, Copy, Clone)]
2786pub struct bpf_pidns_info {
2787    pub pid: __u32,
2788    pub tgid: __u32,
2789}
2790#[repr(C)]
2791#[derive(Copy, Clone)]
2792pub struct bpf_sk_lookup {
2793    pub __bindgen_anon_1: bpf_sk_lookup__bindgen_ty_1,
2794    pub family: __u32,
2795    pub protocol: __u32,
2796    pub remote_ip4: __u32,
2797    pub remote_ip6: [__u32; 4usize],
2798    pub remote_port: __be16,
2799    pub _bitfield_align_1: [u8; 0],
2800    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
2801    pub local_ip4: __u32,
2802    pub local_ip6: [__u32; 4usize],
2803    pub local_port: __u32,
2804    pub ingress_ifindex: __u32,
2805}
2806#[repr(C)]
2807#[derive(Copy, Clone)]
2808pub union bpf_sk_lookup__bindgen_ty_1 {
2809    pub __bindgen_anon_1: bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1,
2810    pub cookie: __u64,
2811}
2812#[repr(C)]
2813#[derive(Copy, Clone)]
2814pub union bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
2815    pub sk: *mut bpf_sock,
2816    pub _bitfield_align_1: [u8; 0],
2817    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2818}
2819impl bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
2820    #[inline]
2821    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
2822        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2823        __bindgen_bitfield_unit
2824    }
2825}
2826impl bpf_sk_lookup {
2827    #[inline]
2828    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
2829        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
2830        __bindgen_bitfield_unit
2831    }
2832}
2833#[repr(C)]
2834#[derive(Debug, Copy, Clone)]
2835pub struct btf_ptr {
2836    pub ptr: *mut ::aya_ebpf_cty::c_void,
2837    pub type_id: __u32,
2838    pub flags: __u32,
2839}
2840pub mod bpf_core_relo_kind {
2841    pub type Type = ::aya_ebpf_cty::c_uint;
2842    pub const BPF_CORE_FIELD_BYTE_OFFSET: Type = 0;
2843    pub const BPF_CORE_FIELD_BYTE_SIZE: Type = 1;
2844    pub const BPF_CORE_FIELD_EXISTS: Type = 2;
2845    pub const BPF_CORE_FIELD_SIGNED: Type = 3;
2846    pub const BPF_CORE_FIELD_LSHIFT_U64: Type = 4;
2847    pub const BPF_CORE_FIELD_RSHIFT_U64: Type = 5;
2848    pub const BPF_CORE_TYPE_ID_LOCAL: Type = 6;
2849    pub const BPF_CORE_TYPE_ID_TARGET: Type = 7;
2850    pub const BPF_CORE_TYPE_EXISTS: Type = 8;
2851    pub const BPF_CORE_TYPE_SIZE: Type = 9;
2852    pub const BPF_CORE_ENUMVAL_EXISTS: Type = 10;
2853    pub const BPF_CORE_ENUMVAL_VALUE: Type = 11;
2854    pub const BPF_CORE_TYPE_MATCHES: Type = 12;
2855}
2856#[repr(C)]
2857#[derive(Debug, Copy, Clone)]
2858pub struct bpf_core_relo {
2859    pub insn_off: __u32,
2860    pub type_id: __u32,
2861    pub access_str_off: __u32,
2862    pub kind: bpf_core_relo_kind::Type,
2863}
2864pub const BPF_F_TIMER_ABS: _bindgen_ty_41 = 1;
2865pub const BPF_F_TIMER_CPU_PIN: _bindgen_ty_41 = 2;
2866pub type _bindgen_ty_41 = ::aya_ebpf_cty::c_uint;
2867#[repr(C)]
2868#[derive(Debug, Copy, Clone)]
2869pub struct bpf_iter_num {
2870    pub __opaque: [__u64; 1usize],
2871}
2872#[repr(C)]
2873#[derive(Debug, Copy, Clone)]
2874pub struct pt_regs {
2875    pub r15: ::aya_ebpf_cty::c_ulong,
2876    pub r14: ::aya_ebpf_cty::c_ulong,
2877    pub r13: ::aya_ebpf_cty::c_ulong,
2878    pub r12: ::aya_ebpf_cty::c_ulong,
2879    pub rbp: ::aya_ebpf_cty::c_ulong,
2880    pub rbx: ::aya_ebpf_cty::c_ulong,
2881    pub r11: ::aya_ebpf_cty::c_ulong,
2882    pub r10: ::aya_ebpf_cty::c_ulong,
2883    pub r9: ::aya_ebpf_cty::c_ulong,
2884    pub r8: ::aya_ebpf_cty::c_ulong,
2885    pub rax: ::aya_ebpf_cty::c_ulong,
2886    pub rcx: ::aya_ebpf_cty::c_ulong,
2887    pub rdx: ::aya_ebpf_cty::c_ulong,
2888    pub rsi: ::aya_ebpf_cty::c_ulong,
2889    pub rdi: ::aya_ebpf_cty::c_ulong,
2890    pub orig_rax: ::aya_ebpf_cty::c_ulong,
2891    pub rip: ::aya_ebpf_cty::c_ulong,
2892    pub cs: ::aya_ebpf_cty::c_ulong,
2893    pub eflags: ::aya_ebpf_cty::c_ulong,
2894    pub rsp: ::aya_ebpf_cty::c_ulong,
2895    pub ss: ::aya_ebpf_cty::c_ulong,
2896}
2897pub type bpf_user_pt_regs_t = pt_regs;
2898#[repr(C)]
2899#[derive(Debug, Copy, Clone)]
2900pub struct bpf_perf_event_data {
2901    pub regs: bpf_user_pt_regs_t,
2902    pub sample_period: __u64,
2903    pub addr: __u64,
2904}
2905pub type sa_family_t = ::aya_ebpf_cty::c_ushort;
2906#[repr(C)]
2907#[derive(Debug, Copy, Clone)]
2908pub struct sockaddr {
2909    pub sa_family: sa_family_t,
2910    pub sa_data: [::aya_ebpf_cty::c_char; 14usize],
2911}