Lines Matching defs:rat
110 struct rtadvd_timer *rat;
118 rat = malloc(sizeof(*rat));
119 if (rat == NULL) {
124 memset(rat, 0, sizeof(*rat));
126 rat->rat_expire = timeout;
127 rat->rat_update = update;
128 rat->rat_expire_data = timeodata;
129 rat->rat_update_data = updatedata;
130 rat->rat_tm = tm_max;
133 TAILQ_INSERT_TAIL(&ra_timer, rat, rat_next);
135 return (rat);
139 rtadvd_remove_timer(struct rtadvd_timer *rat)
142 if (rat == NULL)
145 TAILQ_REMOVE(&ra_timer, rat, rat_next);
146 free(rat);
159 struct rtadvd_timer *rat;
163 TAILQ_FOREACH(rat, &ra_timer, rat_next) {
164 if (TS_CMP(&rat->rat_tm, &now, <=)) {
165 if (((*rat->rat_expire)(rat->rat_expire_data) == NULL))
167 if (rat->rat_update)
168 (*rat->rat_update)(rat->rat_update_data, &rat->rat_tm);
169 TS_ADD(&rat->rat_tm, &now, &rat->rat_tm);
171 if (TS_CMP(&rat->rat_tm, &tm_max, <))
172 tm_max = rat->rat_tm;
186 rtadvd_set_timer(struct timespec *tm, struct rtadvd_timer *rat)
192 TS_ADD(&now, tm, &rat->rat_tm);
195 if (TS_CMP(&rat->rat_tm, &tm_max, <))
196 tm_max = rat->rat_tm;