os_mqueue_init

int
os_mqueue_init(struct os_mqueue *mq, os_event_fn *ev_cb, void *arg)

Initializes an mqueue. An mqueue is a queue of mbufs that ties to a particular task's event queue. Mqueues form a helper API around a common paradigm: wait on an event queue until at least one packet is available, then process a queue of packets.

Arguments

ArgumentsDescription
mqThe mqueue to initialize
ev_cbThe callback to associate with the mqeueue event. Typically, this callback pulls each packet off the mqueue and processes them.
argThe argument to associate with the mqueue event.

@return 0 on success, non-zero on failure.

Initializes an mqueue. Sets the event argument in the os event of the mqueue to arg.

Arguments

ArgumentsDescription
mqPointer to a mqueue structure
argEvent argument

Returned values

0: success. All other values indicate an error

Example

/* Event callback to execute when a packet is received. */
extern void process_rx_data_queue(void);

/* Declare mqueue */
struct os_mqueue rxpkt_q;

/* Initialize mqueue */
os_mqueue_init(&rxpkt_q, process_rx_data_queue, NULL);