static __inline__
void
_set_delayed_call_timer(
	timer_call_t			call)
{
	etimer_set_deadline(call->deadline);
}
Beispiel #2
0
/**
 * timer_queue_cancel
 *
 * Remove a timer from the queue.
 */
void timer_queue_cancel(mpqueue_head_t * queue, uint64_t deadline,
                        uint64_t new_deadline)
{
    if (queue == &current_cpu_datap()->rt_timer.queue) {
        if (deadline < new_deadline) {
            etimer_set_deadline(new_deadline);
        }
    }
}
Beispiel #3
0
void
timer_queue_cancel(
	queue_t			queue,
	uint64_t		deadline,
	uint64_t		new_deadline)
{
	if (queue == &getPerProc()->rtclock_timer.queue) {
		if (deadline < new_deadline)
			etimer_set_deadline(new_deadline);
	}
}
Beispiel #4
0
/**
 * timer_queue_assign
 *
 * Assign a deadline and return the current processor's timer queue.
 */
mpqueue_head_t *timer_queue_assign(uint64_t deadline)
{
    cpu_data_t *cdp = current_cpu_datap();
    mpqueue_head_t *queue;

    if (cdp->cpu_running) {
        queue = &cdp->rt_timer.queue;
        if (deadline < cdp->rt_timer.deadline) {
            etimer_set_deadline(deadline);
        }
    } else {
        queue = &cpu_datap(master_cpu)->rt_timer.queue;
    }

    return (queue);
}
Beispiel #5
0
queue_t
timer_queue_assign(
	uint64_t		deadline)
{
	struct per_proc_info	*pp = getPerProc();
	rtclock_timer_t			*timer;

	if (pp->running) {
		timer = &pp->rtclock_timer;

		if (deadline < timer->deadline)
			etimer_set_deadline(deadline);
	}
	else
		timer = &PerProcTable[master_cpu].ppe_vaddr->rtclock_timer;

	return (&timer->queue);
}