itimer
static int realtimer_create(struct itimer *);
static int realtimer_gettime(struct itimer *, struct itimerspec *);
static int realtimer_settime(struct itimer *, int,
static int realtimer_delete(struct itimer *);
static void realtimer_expire_l(struct itimer *it, bool proc_locked);
static void itimer_fire(struct itimer *it);
itimer_zone = uma_zcreate("itimer", sizeof(struct itimer),
struct itimer *it;
it = (struct itimer *)mem;
struct itimer *it;
it = (struct itimer *)mem;
itimer_enter(struct itimer *it)
itimer_leave(struct itimer *it)
struct itimer *it;
static struct itimer *
struct itimer *it;
struct itimer *it;
struct itimer *it;
struct itimer *it;
struct itimer *it;
realtimer_create(struct itimer *it)
realtimer_delete(struct itimer *it)
realtimer_gettime(struct itimer *it, struct itimerspec *ovalue)
realtimer_settime(struct itimer *it, int flags, struct itimerspec *value,
struct itimer *it;
realtimer_expire_l(struct itimer *it, bool proc_locked)
itimer_fire(struct itimer *it)
struct itimer *it;
struct itimer *it;
static void itimer_enter(struct itimer *);
static void itimer_leave(struct itimer *);
static struct itimer *itimer_find(struct proc *, int);
struct itimer *its_timers[TIMER_MAX];
int (*timer_create)(struct itimer *timer);
int (*timer_settime)(struct itimer * timer, int flags,
int (*timer_delete)(struct itimer * timer);
int (*timer_gettime)(struct itimer * timer,
struct itimerval itimer;
itimer.it_value.tv_sec = RING_WAIT;
itimer.it_value.tv_usec = 0;
itimer.it_interval = itimer.it_value;
setitimer(ITIMER_REAL, &itimer, (struct itimerval *)0);
struct itimerval itimer;
itimer.it_value.tv_sec = itimer.it_interval.tv_sec = MSG_INTERVAL;
itimer.it_value.tv_usec = itimer.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &itimer, (struct itimerval *)0);
struct itimerval itimer;
timerclear(&itimer.it_value);
timerclear(&itimer.it_interval);
setitimer(ITIMER_REAL, &itimer, (struct itimerval *)0);
itimer.it_value.tv_sec = QUERY_RESPONSE_INTERVAL / 1000;
itimer.it_interval.tv_sec = 0;
itimer.it_interval.tv_usec = 0;
itimer.it_value.tv_usec = 0;
(void)setitimer(ITIMER_REAL, &itimer, NULL);
struct itimerval itimer;
if (TimerList && getitimer(ITIMER_REAL, &itimer) == 0)
ticks = RESTVAL(itimer) - TimerList->rest;
struct itimerval itimer;
if (!pt && getitimer(ITIMER_REAL, &itimer) == 0)
t->next->rest += RESTVAL(itimer); /* t (tp) was the first in the list */
struct itimerval itimer;
if (TimerList && getitimer(ITIMER_REAL, &itimer) == 0)
rest = RESTVAL(itimer) - TimerList->rest;
struct itimerval itimer;
itimer.it_interval.tv_sec = 0;
itimer.it_interval.tv_usec = 0;
itimer.it_value.tv_sec = TimerList->rest / SECTICKS;
itimer.it_value.tv_usec = (TimerList->rest % SECTICKS) * TICKUNIT;
if (setitimer(ITIMER_REAL, &itimer, NULL) == -1)
struct itimerval itimer;
itimer.it_interval.tv_usec = itimer.it_interval.tv_sec = 0;
itimer.it_value.tv_usec = itimer.it_value.tv_sec = 0;
if (setitimer(ITIMER_REAL, &itimer, NULL) == -1)
struct itimerval itimer;