Struct esp_idf_svc::hal::sys::pbuf
source · #[repr(C)]pub struct pbuf {
pub next: *mut pbuf,
pub payload: *mut c_void,
pub tot_len: u16,
pub len: u16,
pub type_internal: u8,
pub flags: u8,
pub ref_: u8,
pub if_idx: u8,
}
Expand description
Main packet buffer struct
Fields§
§next: *mut pbuf
next pbuf in singly linked pbuf chain
payload: *mut c_void
pointer to the actual data in the buffer
tot_len: u16
total length of this buffer and all next buffers in chain belonging to the same packet.
For non-queue packet chains this is the invariant: p->tot_len == p->len + (p->next? p->next->tot_len: 0)
len: u16
length of this buffer
type_internal: u8
a bit field indicating pbuf type and allocation sources (see PBUF_TYPE_FLAG_, PBUF_ALLOC_FLAG_ and PBUF_TYPE_ALLOC_SRC_MASK)
flags: u8
misc flags
ref_: u8
the reference count always equals the number of pointers that refer to this pbuf. This can be pointers from an application, the stack itself, or pbuf->next pointers from a chain.
if_idx: u8
For incoming packets, this contains the input netif’s index
Trait Implementations§
impl Copy for pbuf
Auto Trait Implementations§
impl Freeze for pbuf
impl RefUnwindSafe for pbuf
impl !Send for pbuf
impl !Sync for pbuf
impl Unpin for pbuf
impl UnwindSafe for pbuf
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)