src/dpdk/lib/librte_timer/rte_timer.c
static void
timer_get_prev_entries(uint64_t time_val, unsigned tim_lcore,
		       struct rte_timer **prev, struct priv_timer *priv_timer)
{
	unsigned lvl = priv_timer[tim_lcore].curr_skiplist_depth;
	prev[lvl] = &priv_timer[tim_lcore].pending_head;
	while(lvl != 0) {
		lvl--;
		prev[lvl] = prev[lvl+1];
		while (prev[lvl]->sl_next[lvl] &&
				prev[lvl]->sl_next[lvl]->expire <= time_val)
			prev[lvl] = prev[lvl]->sl_next[lvl];
	}
}
/*
 * For a given time value, get the entries at each level which
 * are <= that time value.
 */
For a given time value, get the entries at each level which
are <= that time value.
For a given time value get the entries at each level which are < = that time value .
static void
timer_get_prev_entries(uint64_t time_val, unsigned tim_lcore,
		       struct rte_timer **prev, struct priv_timer *priv_timer)
{
	unsigned lvl = priv_timer[tim_lcore].curr_skiplist_depth;
	prev[lvl] = &priv_timer[tim_lcore].pending_head;
	while(lvl != 0) {
		lvl--;
		prev[lvl] = prev[lvl+1];
		while (prev[lvl]->sl_next[lvl] &&
				prev[lvl]->sl_next[lvl]->expire <= time_val)
			prev[lvl] = prev[lvl]->sl_next[lvl];
	}
}
static void timer_get_prev_entries ( uint64_t time_val , unsigned tim_lcore , struct rte_timer * * prev , struct priv_timer * priv_timer ) { unsigned lvl = priv_timer [ tim_lcore ] . curr_skiplist_depth ; prev [ lvl ] = & priv_timer [ tim_lcore ] . pending_head ; while ( lvl != 0 ) { lvl -- ; prev [ lvl ] = prev [ lvl + 1 ] ; while ( prev [ lvl ] -> sl_next [ lvl ] && prev [ lvl ] -> sl_next [ lvl ] -> expire <= time_val ) prev [ lvl ] = prev [ lvl ] -> sl_next [ lvl ] ; } }
For a given time value, get the entries at each level which
 are <= that time value.
For a given time value get the entries at each level which are < = that time value .