浏览代码

aya-ebpf: reduce duplication

Tamir Duberstein 5 天之前
父节点
当前提交
03fea9e304

+ 1 - 16
ebpf/aya-ebpf/src/args.rs

@@ -1,19 +1,4 @@
-use crate::bindings::bpf_raw_tracepoint_args;
-#[cfg(any(
-    bpf_target_arch = "arm",
-    bpf_target_arch = "mips",
-    bpf_target_arch = "powerpc64",
-    bpf_target_arch = "x86_64",
-))]
-use crate::bindings::pt_regs;
-#[cfg(any(
-    bpf_target_arch = "aarch64",
-    bpf_target_arch = "loongarch64",
-    bpf_target_arch = "s390x",
-))]
-use crate::bindings::user_pt_regs as pt_regs;
-#[cfg(bpf_target_arch = "riscv64")]
-use crate::bindings::user_regs_struct as pt_regs;
+use crate::bindings::{bpf_raw_tracepoint_args, pt_regs};
 
 mod sealed {
     #[expect(clippy::missing_safety_doc)]

+ 16 - 0
ebpf/aya-ebpf/src/bindings.rs

@@ -0,0 +1,16 @@
+#[cfg(any(
+    bpf_target_arch = "arm",
+    bpf_target_arch = "mips",
+    bpf_target_arch = "powerpc64",
+    bpf_target_arch = "x86_64",
+))]
+pub use aya_ebpf_bindings::bindings::pt_regs;
+#[cfg(any(
+    bpf_target_arch = "aarch64",
+    bpf_target_arch = "loongarch64",
+    bpf_target_arch = "s390x",
+))]
+pub use aya_ebpf_bindings::bindings::user_pt_regs as pt_regs;
+#[cfg(bpf_target_arch = "riscv64")]
+pub use aya_ebpf_bindings::bindings::user_regs_struct as pt_regs;
+pub use aya_ebpf_bindings::bindings::*;

+ 1 - 2
ebpf/aya-ebpf/src/lib.rs

@@ -23,9 +23,8 @@
 #![warn(clippy::cast_lossless, clippy::cast_sign_loss)]
 #![no_std]
 
-pub use aya_ebpf_bindings::bindings;
-
 mod args;
+pub mod bindings;
 pub use args::Argument;
 pub mod btf_maps;
 #[expect(clippy::missing_safety_doc)]

+ 1 - 16
ebpf/aya-ebpf/src/programs/probe.rs

@@ -1,21 +1,6 @@
 use core::ffi::c_void;
 
-#[cfg(any(
-    bpf_target_arch = "x86_64",
-    bpf_target_arch = "arm",
-    bpf_target_arch = "powerpc64",
-    bpf_target_arch = "mips"
-))]
-use crate::bindings::pt_regs;
-#[cfg(any(
-    bpf_target_arch = "aarch64",
-    bpf_target_arch = "loongarch64",
-    bpf_target_arch = "s390x",
-))]
-use crate::bindings::user_pt_regs as pt_regs;
-#[cfg(bpf_target_arch = "riscv64")]
-use crate::bindings::user_regs_struct as pt_regs;
-use crate::{Argument, EbpfContext, args::arg};
+use crate::{Argument, EbpfContext, args::arg, bindings::pt_regs};
 
 pub struct ProbeContext {
     pub regs: *mut pt_regs,

+ 1 - 16
ebpf/aya-ebpf/src/programs/retprobe.rs

@@ -1,21 +1,6 @@
 use core::ffi::c_void;
 
-#[cfg(any(
-    bpf_target_arch = "x86_64",
-    bpf_target_arch = "arm",
-    bpf_target_arch = "powerpc64",
-    bpf_target_arch = "mips"
-))]
-use crate::bindings::pt_regs;
-#[cfg(any(
-    bpf_target_arch = "aarch64",
-    bpf_target_arch = "loongarch64",
-    bpf_target_arch = "s390x",
-))]
-use crate::bindings::user_pt_regs as pt_regs;
-#[cfg(bpf_target_arch = "riscv64")]
-use crate::bindings::user_regs_struct as pt_regs;
-use crate::{Argument, EbpfContext, args::ret};
+use crate::{Argument, EbpfContext, args::ret, bindings::pt_regs};
 
 pub struct RetProbeContext {
     pub regs: *mut pt_regs,

+ 3 - 1
xtask/public-api/aya-ebpf.txt

@@ -1,7 +1,9 @@
 pub mod aya_ebpf
-pub use aya_ebpf::bindings
 pub use aya_ebpf::cty
 pub use aya_ebpf::macros
+pub mod aya_ebpf::bindings
+pub use aya_ebpf::bindings::<<aya_ebpf_bindings::bindings::*>>
+pub use aya_ebpf::bindings::pt_regs
 pub mod aya_ebpf::btf_maps
 pub mod aya_ebpf::btf_maps::array
 #[repr(transparent)] pub struct aya_ebpf::btf_maps::array::Array<T, const M: usize, const F: usize>(_)