1#![cfg_attr(
2 target_arch = "bpf",
3 expect(unused_crate_dependencies, reason = "compiler_builtins")
4)]
5#![expect(
6 clippy::all,
7 clippy::cast_lossless,
8 clippy::ptr_as_ptr,
9 clippy::ref_as_ptr,
10 clippy::use_self,
11 non_camel_case_types,
12 non_snake_case,
13 non_upper_case_globals,
14 unreachable_pub,
15 unsafe_op_in_unsafe_fn
16)]
17#![no_std]
18
19#[cfg(bpf_target_arch = "aarch64")]
20mod aarch64 {
21 pub mod bindings;
22 pub mod helpers;
23}
24#[cfg(bpf_target_arch = "arm")]
25mod armv7 {
26 pub mod bindings;
27 pub mod helpers;
28}
29#[cfg(bpf_target_arch = "loongarch64")]
30mod loongarch64 {
31 pub mod bindings;
32 pub mod helpers;
33}
34#[cfg(bpf_target_arch = "mips")]
35mod mips {
36 pub mod bindings;
37 pub mod helpers;
38}
39#[cfg(bpf_target_arch = "powerpc64")]
40mod powerpc64 {
41 pub mod bindings;
42 pub mod helpers;
43}
44#[cfg(bpf_target_arch = "riscv64")]
45mod riscv64 {
46 pub mod bindings;
47 pub mod helpers;
48}
49#[cfg(bpf_target_arch = "s390x")]
50mod s390x {
51 pub mod bindings;
52 pub mod helpers;
53}
54#[cfg(bpf_target_arch = "x86_64")]
55mod x86_64 {
56 pub mod bindings;
57 pub mod helpers;
58}
59
60mod generated {
61 #[cfg(bpf_target_arch = "aarch64")]
62 pub use super::aarch64::*;
63 #[cfg(bpf_target_arch = "arm")]
64 pub use super::armv7::*;
65 #[cfg(bpf_target_arch = "loongarch64")]
66 pub use super::loongarch64::*;
67 #[cfg(bpf_target_arch = "mips")]
68 pub use super::mips::*;
69 #[cfg(bpf_target_arch = "powerpc64")]
70 pub use super::powerpc64::*;
71 #[cfg(bpf_target_arch = "riscv64")]
72 pub use super::riscv64::*;
73 #[cfg(bpf_target_arch = "s390x")]
74 pub use super::s390x::*;
75 #[cfg(bpf_target_arch = "x86_64")]
76 pub use super::x86_64::*;
77}
78
79pub use generated::helpers;
80
81pub mod bindings {
82 pub use crate::generated::bindings::*;
83
84 pub const TC_ACT_OK: i32 = crate::generated::bindings::TC_ACT_OK as i32;
85 pub const TC_ACT_RECLASSIFY: i32 = crate::generated::bindings::TC_ACT_RECLASSIFY as i32;
86 pub const TC_ACT_SHOT: i32 = crate::generated::bindings::TC_ACT_SHOT as i32;
87 pub const TC_ACT_PIPE: i32 = crate::generated::bindings::TC_ACT_PIPE as i32;
88 pub const TC_ACT_STOLEN: i32 = crate::generated::bindings::TC_ACT_STOLEN as i32;
89 pub const TC_ACT_QUEUED: i32 = crate::generated::bindings::TC_ACT_QUEUED as i32;
90 pub const TC_ACT_REPEAT: i32 = crate::generated::bindings::TC_ACT_REPEAT as i32;
91 pub const TC_ACT_REDIRECT: i32 = crate::generated::bindings::TC_ACT_REDIRECT as i32;
92 pub const TC_ACT_TRAP: i32 = crate::generated::bindings::TC_ACT_TRAP as i32;
93 pub const TC_ACT_VALUE_MAX: i32 = crate::generated::bindings::TC_ACT_VALUE_MAX as i32;
94 pub const TC_ACT_EXT_VAL_MASK: i32 = crate::generated::bindings::TC_ACT_EXT_VAL_MASK as i32;
95
96 #[repr(C)]
97 #[derive(Debug, Copy, Clone)]
98 pub struct bpf_map_def {
99 pub type_: ::aya_ebpf_cty::c_uint,
100 pub key_size: ::aya_ebpf_cty::c_uint,
101 pub value_size: ::aya_ebpf_cty::c_uint,
102 pub max_entries: ::aya_ebpf_cty::c_uint,
103 pub map_flags: ::aya_ebpf_cty::c_uint,
104 pub id: ::aya_ebpf_cty::c_uint,
105 pub pinning: ::aya_ebpf_cty::c_uint,
106 }
107}