Manual Page Result
0
Command: ifq_deq_begin | Section: 9 | Source: OpenBSD | File: ifq_deq_begin.9
IFQ_DEQ_BEGIN(9) FreeBSD Kernel Developer's Manual IFQ_DEQ_BEGIN(9)
NAME
ifq_deq_begin, ifq_deq_commit, ifq_deq_rollback - dequeue an mbuf from an
interface sending queue
SYNOPSIS
#include <net/if_var.h>
struct mbuf *
ifq_deq_begin(struct ifqueue *ifq);
void
ifq_deq_commit(struct ifqueue *ifq, struct mbuf *m);
void
ifq_deq_rollback(struct ifqueue *ifq, struct mbuf *m);
DESCRIPTION
The ifq_deq_* set of functions provides a non-atomic alternative to
ifq_dequeue(9). Their use is discouraged, code should use ifq_dequeue(9)
whenever possible.
ifq_deq_begin(struct ifqueue *ifq)
Get a reference to the next mbuf to be transmitted from the ifq
interface send queue. If an mbuf is to be transmitted, also
acquire a lock on the send queue to exclude modification or
freeing of the referenced mbuf. Its packet header must not be
modified until the mbuf has been dequeued with ifq_deq_commit().
ifq_deq_commit(struct ifqueue *ifq, struct mbuf *m)
Dequeue the mbuf m that was referenced by a previous call to
ifq_deq_begin() and release the lock on ifq.
ifq_deq_rollback(struct ifqueue *ifq, struct mbuf *m)
Release the lock on the interface send queue ifq that was
acquired while a reference to m was being held.
CONTEXT
ifq_deq_begin(), ifq_deq_commit(), and ifq_deq_rollback() can be called
during autoconf, from process context, or from interrupt context.
RETURN VALUES
ifq_deq_begin() returns the next mbuf to be transmitted by the interface.
If no packet is available for transmission, NULL is returned.
SEE ALSO
ifq_dequeue(9)
FreeBSD 14.1-RELEASE-p8 March 20, 2021 FreeBSD 14.1-RELEASE-p8