47 #define PRIORITY_QUEUE_NODE_INIT { NULL, 0, 0 } 
   52 #define PRIORITY_QUEUE_DATA_SIGNALING (UINTPTR_MAX) 
   73 #define PRIORITY_QUEUE_INIT { NULL } 
#define PRIORITY_QUEUE_INIT
Static initializer for priority_queue_t.
 
void priority_queue_print(priority_queue_t *root)
print the data and priority of every node in the given priority queue
 
static void priority_queue_init(priority_queue_t *priority_queue)
Initialize a priority queue object.
 
struct priority_queue_node priority_queue_node_t
data type for priority queue nodes
 
priority_queue_node_t * priority_queue_remove_head(priority_queue_t *root)
remove the priority queue's head
 
void priority_queue_print_node(priority_queue_t *root)
print the data, priority, and successor of a given node
 
void priority_queue_remove(priority_queue_t *root, priority_queue_node_t *node)
remove node from root
 
#define PRIORITY_QUEUE_NODE_INIT
Static initializer for priority_queue_node_t.
 
void priority_queue_add(priority_queue_t *root, priority_queue_node_t *new_obj)
insert new_obj into root based on its priority
 
static void priority_queue_node_init(priority_queue_node_t *priority_queue_node)
Initialize a priority queue node object.
 
data type for priority queue nodes
 
uintptr_t data
queue node data
 
struct priority_queue_node * next
next queue node
 
uint32_t priority
queue node priority
 
data type for priority queues
 
priority_queue_node_t * first
first queue node