117#define __CH_QUEUE_DATA(name) {(ch_queue_t *)&name, (ch_queue_t *)&name} 
  126#define CH_QUEUE_DECL(name)                                                 \ 
  127    ch_queue_t name = __CH_QUEUE_DATA(name) 
 
  168  return (
bool)(lp->
next == lp);
 
 
  181  return (
bool)(lp->
next != lp);
 
 
  238  return (
bool)(qp->
next == qp);
 
 
  251  return (
bool)(qp->
next != qp);
 
 
  443  return (
bool)(dlhp == dlhp->
next);
 
 
  456  return (
bool)(dlhp != dlhp->
next);
 
 
  470  return (
bool)(dlp->
next == dlhp);
 
 
  484  return (
bool)(dlhp->
next == dlp);
 
 
  546    chDbgAssert(dlp != dlep, 
"element already in list");
 
 
#define chDbgAssert(c, r)
Condition assertion.
 
static ch_priority_queue_t * ch_pqueue_insert_ahead(ch_priority_queue_t *pqp, ch_priority_queue_t *p)
Inserts an element in the priority queue placing it ahead of its peers.
 
static ch_list_t * ch_list_unlink(ch_list_t *lp)
Pops an element from the top of a stack list and returns it.
 
static void ch_list_init(ch_list_t *lp)
List initialization.
 
static void ch_queue_init(ch_queue_t *qp)
Queue initialization.
 
static ch_delta_list_t * ch_dlist_remove_first(ch_delta_list_t *dlhp)
Dequeues an element from the delta list.
 
static bool ch_dlist_islast(ch_delta_list_t *dlhp, ch_delta_list_t *dlp)
Last element in the delta list check.
 
static void ch_dlist_init(ch_delta_list_t *dlhp)
Delta list initialization.
 
static bool ch_queue_notempty(const ch_queue_t *qp)
Evaluates to true if the specified queue is not empty.
 
static void ch_pqueue_init(ch_priority_queue_t *pqp)
Priority queue initialization.
 
static void ch_dlist_insert_after(ch_delta_list_t *dlhp, ch_delta_list_t *dlp, sysinterval_t delta)
Inserts an element after another header element.
 
static void ch_dlist_insert_before(ch_delta_list_t *dlhp, ch_delta_list_t *dlp, sysinterval_t delta)
Inserts an element before another header element.
 
static bool ch_dlist_notempty(ch_delta_list_t *dlhp)
Evaluates to true if the specified queue is not empty.
 
static bool ch_dlist_isfirst(ch_delta_list_t *dlhp, ch_delta_list_t *dlp)
Fist element in the delta list check.
 
static ch_priority_queue_t * ch_pqueue_remove_highest(ch_priority_queue_t *pqp)
Removes the highest priority element from a priority queue and returns it.
 
static ch_delta_list_t * ch_dlist_dequeue(ch_delta_list_t *dlp)
Dequeues an element from the delta list.
 
struct ch_priority_queue ch_priority_queue_t
Type of a generic priority-ordered bidirectional linked list header and element.
 
static bool ch_queue_isempty(const ch_queue_t *qp)
Evaluates to true if the specified queue is empty.
 
static ch_queue_t * ch_queue_dequeue(ch_queue_t *p)
Removes an element from a queue and returns it.
 
struct ch_list ch_list_t
Type of a generic single link list header and element.
 
static bool ch_list_notempty(ch_list_t *lp)
Evaluates to true if the specified list is not empty.
 
struct ch_delta_list ch_delta_list_t
Type of a generic bidirectional linked delta list header and element.
 
static ch_queue_t * ch_queue_lifo_remove(ch_queue_t *qp)
Removes the last-out element from a queue and returns it.
 
static bool ch_dlist_isempty(ch_delta_list_t *dlhp)
Evaluates to true if the specified delta list is empty.
 
static void ch_queue_insert(ch_queue_t *qp, ch_queue_t *p)
Inserts an element into a queue.
 
struct ch_queue ch_queue_t
Type of a generic bidirectional linked list header and element.
 
static ch_queue_t * ch_queue_fifo_remove(ch_queue_t *qp)
Removes the first-out element from a queue and returns it.
 
static void ch_dlist_insert(ch_delta_list_t *dlhp, ch_delta_list_t *dlep, sysinterval_t delta)
Inserts an element in a delta list.
 
static bool ch_list_isempty(ch_list_t *lp)
Evaluates to true if the specified list is empty.
 
static ch_priority_queue_t * ch_pqueue_insert_behind(ch_priority_queue_t *pqp, ch_priority_queue_t *p)
Inserts an element in the priority queue placing it behind its peers.
 
static void ch_list_link(ch_list_t *lp, ch_list_t *p)
Pushes an element on top of a stack list.
 
#define likely(x)
Marks a boolean expression as likely true.
 
#define unlikely(x)
Marks a boolean expression as likely false.
 
uint64_t sysinterval_t
Type of time interval.
 
Delta list element and header structure.
 
ch_delta_list_t * next
Next in the delta list.
 
sysinterval_t delta
Time interval from previous.
 
ch_delta_list_t * prev
Previous in the delta list.
 
Structure representing a generic single link list header and element.
 
ch_list_t * next
Next in the list/queue.
 
Structure representing a generic priority-ordered bidirectional linked list header and element.
 
ch_priority_queue_t * next
Next in the queue.
 
tprio_t prio
Priority of this element.
 
ch_priority_queue_t * prev
Previous in the queue.
 
Structure representing a generic bidirectional linked list header and element.
 
ch_queue_t * prev
Previous in the queue.
 
ch_queue_t * next
Next in the list/queue.