use aya_ebpf_cty::c_void; use crate::{EbpfContext, bindings::__sk_buff}; pub struct FlowDissectorContext { skb: *mut __sk_buff, } impl FlowDissectorContext { pub fn new(skb: *mut __sk_buff) -> FlowDissectorContext { FlowDissectorContext { skb } } #[inline] pub fn data(&self) -> usize { unsafe { (*self.skb).data as usize } } #[inline] pub fn data_end(&self) -> usize { unsafe { (*self.skb).data_end as usize } } #[inline] pub fn flow_keys(&self) -> usize { unsafe { (*self.skb).__bindgen_anon_1.flow_keys as usize } } } impl EbpfContext for FlowDissectorContext { fn as_ptr(&self) -> *mut c_void { self.skb as *mut _ } }