Alessandro Decina
|
b66a73f6c7
|
Add aya-gen
aya-gen can be used to generate bindings for kernel types, eg:
aya-gen btf-types ethhdr --probe-read-getters
Will generate:
// ...
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ethhdr {
pub h_dest: [::aya_bpf_cty::c_uchar; 6usize],
pub h_source: [::aya_bpf_cty::c_uchar; 6usize],
pub h_proto: __be16,
}
impl ethhdr {
pub fn h_dest(&self) -> Option<[::aya_bpf_cty::c_uchar; 6usize]> {
unsafe { ::aya_bpf::helpers::bpf_probe_read(&self.h_dest) }.ok()
}
pub fn h_source(&self) -> Option<[::aya_bpf_cty::c_uchar; 6usize]> {
unsafe { ::aya_bpf::helpers::bpf_probe_read(&self.h_source) }.ok()
}
pub fn h_proto(&self) -> Option<__be16> {
unsafe { ::aya_bpf::helpers::bpf_probe_read(&self.h_proto) }.ok()
}
}
|
4 years ago |