pub struct BpfRingBufferConsumer { /* private fields */ }Expand description
Le consommateur d’un tampon circulaire BPF, projeté en mémoire.
Implementations§
Source§impl BpfRingBufferConsumer
impl BpfRingBufferConsumer
Sourcepub fn new(
map: BorrowedFd<'_>,
data_size: usize,
page_size: usize,
) -> Result<Self, Errno>
pub fn new( map: BorrowedFd<'_>, data_size: usize, page_size: usize, ) -> Result<Self, Errno>
Projette le tampon map, de data_size octets de données, sur une machine dont la page
fait page_size octets.
§Errors
EINVAL si page_size n’est pas une puissance de deux d’au moins 4 Kio, ou si
data_size n’est pas une puissance de deux multiple de la page — ce que le noyau exige
d’un tampon circulaire ; l’erreur de mmap(2) sinon (map n’est pas un tampon circulaire,
taille fausse…).
Sourcepub fn consume(&mut self, handler: impl FnMut(&[u8])) -> usize
pub fn consume(&mut self, handler: impl FnMut(&[u8])) -> usize
Vide le tampon : rend chaque enregistrement publié à handler, dans l’ordre, puis
avance la position consommée. S’arrête sur un enregistrement encore en cours d’écriture.
Rend le nombre d’enregistrements rendus (les jetés ne comptent pas).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BpfRingBufferConsumer
impl RefUnwindSafe for BpfRingBufferConsumer
impl Send for BpfRingBufferConsumer
impl Sync for BpfRingBufferConsumer
impl Unpin for BpfRingBufferConsumer
impl UnsafeUnpin for BpfRingBufferConsumer
impl UnwindSafe for BpfRingBufferConsumer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more