aya_ebpf_bindings/
lib.rs

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}