5 #define MAX_TIMER_QUEUE_ENTRIES 64
49 tq->
queue[index] = tocb;
55 parent_index = (index - 1) / 2;
56 parent = tq->
queue[parent_index];
63 tq->
queue[parent_index] = tocb;
64 tq->
queue[index] = parent;
76 int right_child_index;
78 left_child_index = 2 * index + 1;
83 right_child_index = left_child_index + 1;
86 return left_child_index;
90 return left_child_index;
92 return right_child_index;
114 if (min_child_index < 0)
117 child = tq->
queue[min_child_index];
125 tq->
queue[min_child_index] = tocb;
126 tq->
queue[index] = child;
128 index = min_child_index;
void timer_monotonic_get(struct mono_time *mt)
static void mono_time_add_usecs(struct mono_time *mt, long us)
static int mono_time_before(const struct mono_time *t1, const struct mono_time *t2)
static int mono_time_cmp(const struct mono_time *t1, const struct mono_time *t2)
struct mono_time expiration
void(* callback)(struct timeout_callback *tocb)
struct timeout_callback * queue[MAX_TIMER_QUEUE_ENTRIES]
static int timer_queue_full(struct timer_queue *tq)
static struct timer_queue global_timer_queue
static int timer_queue_min_child_index(struct timer_queue *tq, int index)
int timer_sched_callback(struct timeout_callback *tocb, unsigned long us)
static int timer_queue_insert(struct timer_queue *tq, struct timeout_callback *tocb)
#define MAX_TIMER_QUEUE_ENTRIES
static struct timeout_callback * timer_queue_expired(struct timer_queue *tq, struct mono_time *current_time)
static int timer_queue_empty(struct timer_queue *tq)
static struct timeout_callback * timer_queue_head(struct timer_queue *tq)
static void timer_queue_remove_head(struct timer_queue *tq)