firm_event
vq_get(Vuid_queue *vq, Firm_event *firm_event)
if (firm_event != FIRM_EVENT_NULL)
*firm_event = vqn->firm_event;
vq_peek(Vuid_queue *vq, Firm_event *firm_event)
*firm_event = vq->top->firm_event;
vq_putback(Vuid_queue *vq, Firm_event *firm_event)
vqn->firm_event = *firm_event;
tv_interval = tv_subt(vq->bottom->firm_event.time,
vq->top->firm_event.time);
if (!tv_equal(victim->prev->firm_event.time,
victim->firm_event.time))
tv_diff = tv_subt(victim->firm_event.time,
base->firm_event.time);
if (victim->firm_event.id == base->firm_event.id) {
switch (base->firm_event.pair_type) {
base->firm_event.value +=
victim->firm_event.value;
base->firm_event.value =
victim->firm_event.value;
return ((vqn->firm_event.value < 1 && vqn->firm_event.value > -1) ||
(vqn->firm_event.pair_type == FE_PAIR_DELTA) ||
(vqn->firm_event.pair_type == FE_PAIR_ABSOLUTE));
vq_put(Vuid_queue *vq, Firm_event *firm_event)
if (timercmp(&vp->firm_event.time, &firm_event->time,
tv_equal(vp->firm_event.time, firm_event->time)) {
vqn->firm_event = *firm_event;
return (vq_putback(vq, firm_event));
Firm_event firm_event; /* Firm event */