The friendly Operating System for the Internet of Things
Priority packet queue for GNRC

Wrapper for priority_queue that holds gnrc_pktsnip_t*. More...

Detailed Description

Files

file  priority_pktqueue.h
 gnrc priority packet queue API
 

Data Structures

struct  gnrc_priority_pktqueue_node
 data type for gnrc priority packet queue nodes More...
 

Macros

#define PRIORITY_PKTQUEUE_NODE_INIT(priority, pkt)   { NULL, priority, pkt }
 Static initializer for gnrc_priority_pktqueue_node_t.
 
#define PRIORITY_PKTQUEUE_INIT   { NULL }
 Static initializer for gnrc_priority_pktqueue_t.
 

Typedefs

typedef struct gnrc_priority_pktqueue_node gnrc_priority_pktqueue_node_t
 data type for gnrc priority packet queue nodes
 
typedef priority_queue_t gnrc_priority_pktqueue_t
 data type for gnrc priority packet queues
 

Functions

static void gnrc_priority_pktqueue_node_init (gnrc_priority_pktqueue_node_t *node, uint32_t priority, gnrc_pktsnip_t *pkt)
 Initialize a gnrc priority packet queue node object. More...
 
static void gnrc_priority_pktqueue_init (gnrc_priority_pktqueue_t *queue)
 Initialize a gnrc priority packet queue object. More...
 
uint32_t gnrc_priority_pktqueue_length (gnrc_priority_pktqueue_t *queue)
 Get the length information of a gnrc priority packet queue object. More...
 
void gnrc_priority_pktqueue_flush (gnrc_priority_pktqueue_t *queue)
 flush the gnrc priority packet queue More...
 
gnrc_pktsnip_tgnrc_priority_pktqueue_pop (gnrc_priority_pktqueue_t *queue)
 Get first element and remove it from queue. More...
 
gnrc_pktsnip_tgnrc_priority_pktqueue_head (gnrc_priority_pktqueue_t *queue)
 Get first element from queue without removing. More...
 
void gnrc_priority_pktqueue_push (gnrc_priority_pktqueue_t *queue, gnrc_priority_pktqueue_node_t *node)
 add node into queue based on its priority More...
 

Function Documentation

void gnrc_priority_pktqueue_flush ( gnrc_priority_pktqueue_t queue)
Parameters
[out]queuethe gnrc priority packet queue, must not be NULL
gnrc_pktsnip_t* gnrc_priority_pktqueue_head ( gnrc_priority_pktqueue_t queue)
Parameters
[in]queuethe gnrc priority packet queue, may not be NULL
Returns
the head of queue
static void gnrc_priority_pktqueue_init ( gnrc_priority_pktqueue_t queue)
inlinestatic
Parameters
[out]queuepre-allocated gnrc_priority_pktqueue_t object, must not be NULL.

Definition at line 83 of file priority_pktqueue.h.

uint32_t gnrc_priority_pktqueue_length ( gnrc_priority_pktqueue_t queue)
Parameters
[in]queuepre-allocated gnrc_priority_pktqueue_t object, must not be NULL.
Returns
the length of queue
static void gnrc_priority_pktqueue_node_init ( gnrc_priority_pktqueue_node_t node,
uint32_t  priority,
gnrc_pktsnip_t pkt 
)
inlinestatic
Parameters
[out]nodepre-allocated gnrc_priority_pktqueue_node_t object, must not be NULL.
[in]prioritythe priority of the gnrc packet snip
[in]pktthe gnrc packet snip

Definition at line 68 of file priority_pktqueue.h.

gnrc_pktsnip_t* gnrc_priority_pktqueue_pop ( gnrc_priority_pktqueue_t queue)
Parameters
[out]queuethe gnrc priority packet queue, may not be NULL
Returns
the old head
void gnrc_priority_pktqueue_push ( gnrc_priority_pktqueue_t queue,
gnrc_priority_pktqueue_node_t node 
)
Parameters
[in,out]queuethe gnrc priority packet queue, must not be NULL
[in]nodethe node to add.