callout
struct callout *c_next;
static struct callout *callout = NULL; /* Callout list */
struct callout *newp, *p, **pp;
if ((newp = (struct callout *) malloc(sizeof(struct callout))) == NULL)
for (pp = &callout; (p = *pp) != NULL; pp = &p->c_next)
struct callout **copp, *freep;
for (copp = &callout; (freep = *copp) != NULL; copp = &freep->c_next)
struct callout *p;
while (callout != NULL) {
p = callout;
callout = p->c_next;
if (callout == NULL)
tvp->tv_sec = callout->c_time.tv_sec - timenow.tv_sec;
tvp->tv_usec = callout->c_time.tv_usec - timenow.tv_usec;
prop->callout = val;
return prop->callout;
gboolean callout;
"display callouts", callout, callout_help },
void vmm_glue_callout_init(struct callout *c, int mpsafe);
void vmm_glue_callout_stop(struct callout *c);
void vmm_glue_callout_drain(struct callout *c);
void vmm_glue_callout_localize(struct callout *c);
callout_init(struct callout *c, int mpsafe)
callout_stop(struct callout *c)
callout_drain(struct callout *c)
void callout_reset_hrtime(struct callout *c, hrtime_t target,
void (*callout)(rfs4_entry_t, void *),
(*callout)(entry->dbe_data, data);
int maxcount, void (*callout)(rfs4_entry_t))
(*callout)(entry->dbe_data);
extern struct callout fr_slowtimer_ch;
void (*callout)(rfs4_entry_t, void *), void *);
int maxcount, void (*callout)(rfs4_entry_t));
struct callout *c_idnext; /* next in ID hash, or on freelist */
struct callout *c_idprev; /* prev in ID hash */
struct callout *c_clnext; /* next in callout list */
struct callout *c_clprev; /* prev in callout list */
struct callout callout;
struct callout *callout;
callout = &c->callout;
if (callout_pending(callout)) /* callout was reset */
if (!callout_active(callout)) /* callout was stopped */
callout_deactivate(callout);
callout_reset_hrtime(&c->callout, c->time_target,
callout_init(&vatpit->channel[i].callout, 1);
callout_drain(&vatpit->channel[i].callout);
vmm_glue_callout_localize(&vatpit->channel[i].callout);
callout_stop(&c->callout);
ASSERT(!callout_active(&c->callout));
struct callout *callout = &out->callout;
if (callout_active(callout)) {
callout_deactivate(callout);
struct callout *callout = &vhpet->timer[n].callout;
if (callout_pending(callout) || !callout_active(callout)) {
callout_deactivate(callout);
callout_stop(&vhpet->timer[n].callout);
callout_reset_hrtime(&timer->callout, timer->callout_expire,
callout_init(&vhpet->timer[i].callout, 1);
callout_drain(&vhpet->timer[i].callout);
vmm_glue_callout_localize(&vhpet->timer[i].callout);
callout_stop(&timer->callout);
callout_reset_hrtime(&timer->callout,
struct callout callout;
callout_reset_hrtime(&timer->callout,
callout_stop(&vlapic->callout);
callout_stop(&vlapic->callout);
callout_init(&vlapic->callout, 1);
callout_drain(&vlapic->callout);
vmm_glue_callout_localize(&vlapic->callout);
callout_stop(&vlapic->callout);
if (callout_active(&vlapic->callout)) {
callout_reset_hrtime(&vlapic->callout, vlapic->timer_fire_when,
if (callout_pending(&vlapic->callout)) /* callout was reset */
if (!callout_active(&vlapic->callout)) /* callout was stopped */
callout_deactivate(&vlapic->callout);
callout_stop(&vlapic->callout);
struct callout callout; /* vlapic timer */
struct callout callout;
ASSERT(!callout_active(&vrtc->callout));
callout_init(&vrtc->callout, 1);
callout_drain(&vrtc->callout);
vmm_glue_callout_localize(&vrtc->callout);
callout_stop(&vrtc->callout);
ASSERT(!callout_active(&vrtc->callout));
if (callout_pending(&vrtc->callout)) {
} else if (!callout_active(&vrtc->callout)) {
callout_deactivate(&vrtc->callout);
callout_reset_hrtime(&vrtc->callout, next, vrtc_callout_handler,
if (callout_active(&vrtc->callout)) {
callout_stop(&vrtc->callout);
struct callout *c = arg;
vmm_glue_callout_init(struct callout *c, int mpsafe)
callout_reset_hrtime(struct callout *c, hrtime_t target, void (*func)(void *),
vmm_glue_callout_stop(struct callout *c)
vmm_glue_callout_drain(struct callout *c)
vmm_glue_callout_localize(struct callout *c)