Lines Matching refs:rat
109 struct rtadvd_timer *rat; in rtadvd_add_timer() local
117 rat = malloc(sizeof(*rat)); in rtadvd_add_timer()
118 if (rat == NULL) { in rtadvd_add_timer()
123 memset(rat, 0, sizeof(*rat)); in rtadvd_add_timer()
125 rat->rat_expire = timeout; in rtadvd_add_timer()
126 rat->rat_update = update; in rtadvd_add_timer()
127 rat->rat_expire_data = timeodata; in rtadvd_add_timer()
128 rat->rat_update_data = updatedata; in rtadvd_add_timer()
129 rat->rat_tm = tm_max; in rtadvd_add_timer()
132 TAILQ_INSERT_TAIL(&ra_timer, rat, rat_next); in rtadvd_add_timer()
134 return (rat); in rtadvd_add_timer()
138 rtadvd_remove_timer(struct rtadvd_timer *rat) in rtadvd_remove_timer() argument
141 if (rat == NULL) in rtadvd_remove_timer()
144 TAILQ_REMOVE(&ra_timer, rat, rat_next); in rtadvd_remove_timer()
145 free(rat); in rtadvd_remove_timer()
158 struct rtadvd_timer *rat; in rtadvd_check_timer() local
162 TAILQ_FOREACH(rat, &ra_timer, rat_next) { in rtadvd_check_timer()
163 if (TS_CMP(&rat->rat_tm, &now, <=)) { in rtadvd_check_timer()
164 if (((*rat->rat_expire)(rat->rat_expire_data) == NULL)) in rtadvd_check_timer()
166 if (rat->rat_update) in rtadvd_check_timer()
167 (*rat->rat_update)(rat->rat_update_data, &rat->rat_tm); in rtadvd_check_timer()
168 TS_ADD(&rat->rat_tm, &now, &rat->rat_tm); in rtadvd_check_timer()
170 if (TS_CMP(&rat->rat_tm, &tm_max, <)) in rtadvd_check_timer()
171 tm_max = rat->rat_tm; in rtadvd_check_timer()
185 rtadvd_set_timer(struct timespec *tm, struct rtadvd_timer *rat) in rtadvd_set_timer() argument
191 TS_ADD(&now, tm, &rat->rat_tm); in rtadvd_set_timer()
194 if (TS_CMP(&rat->rat_tm, &tm_max, <)) in rtadvd_set_timer()
195 tm_max = rat->rat_tm; in rtadvd_set_timer()