Lines Matching refs:ent

123 fail_point_sleep(struct fail_point *fp, struct fail_point_entry *ent,
220 struct fail_point_entry *ent, *next;
225 TAILQ_FOREACH_SAFE(ent, &fp->fp_entries, fe_entries, next) {
228 if (ent->fe_prob < PROB_MAX &&
229 ent->fe_prob < random() % PROB_MAX)
231 if (ent->fe_pid != NO_PID && ent->fe_pid != curproc->p_pid)
234 switch (ent->fe_type) {
241 *return_value = ent->fe_arg;
253 cont = ent->fe_arg;
261 msecs = ent->fe_arg;
262 if (ent->fe_count > 0 && --ent->fe_count == 0) {
263 free_entry(&fp->fp_entries, ent);
264 ent = NULL;
268 fail_point_sleep(fp, ent, msecs, &ret);
275 if (ent != NULL && ent->fe_count > 0 && --ent->fe_count == 0)
276 free_entry(&fp->fp_entries, ent);
282 while ((ent = TAILQ_LAST(&fp->fp_entries, fail_point_entries)) &&
283 ent->fe_type == FAIL_POINT_OFF)
284 free_entry(&fp->fp_entries, ent);
297 struct fail_point_entry *ent;
301 TAILQ_FOREACH(ent, &fp->fp_entries, fe_entries) {
302 if (ent->fe_prob < PROB_MAX) {
303 int decimal = ent->fe_prob % (PROB_MAX / 100);
304 int units = ent->fe_prob / (PROB_MAX / 100);
316 if (ent->fe_count > 0)
317 sbuf_printf(sb, "%d*", ent->fe_count);
318 sbuf_printf(sb, "%s", fail_type_strings[ent->fe_type].name);
319 if (ent->fe_arg)
320 sbuf_printf(sb, "(%d)", ent->fe_arg);
321 if (ent->fe_pid != NO_PID)
322 sbuf_printf(sb, "[pid %d]", ent->fe_pid);
323 if (TAILQ_NEXT(ent, fe_entries))
340 struct fail_point_entry *ent, *ent_next;
358 TAILQ_FOREACH_SAFE(ent, &fp->fp_entries, fe_entries, ent_next) {
359 if (ent->fe_prob == 0)
360 free_entry(&fp->fp_entries, ent);
364 while ((ent = TAILQ_LAST(&fp->fp_entries, fail_point_entries)) &&
365 ent->fe_type == FAIL_POINT_OFF)
366 free_entry(&fp->fp_entries, ent);
455 struct fail_point_entry *ent;
457 ent = fp_malloc(sizeof *ent, M_WAITOK | M_ZERO);
458 ent->fe_prob = PROB_MAX;
459 ent->fe_pid = NO_PID;
460 TAILQ_INSERT_TAIL(ents, ent, fe_entries);
481 ent->fe_prob = units * (PROB_MAX / 100) + decimal;
482 if (ent->fe_prob > PROB_MAX)
483 ent->fe_prob = PROB_MAX;
487 ent->fe_count = units;
494 p = parse_type(ent, p);
506 ent->fe_arg = strtol(p, &p, 0);
517 ent->fe_pid = strtol(p, &p, 0);
571 parse_type(struct fail_point_entry *ent, char *beg)
579 ent->fe_type = type;
590 free_entry(struct fail_point_entries *ents, struct fail_point_entry *ent)
592 TAILQ_REMOVE(ents, ent, fe_entries);
593 fp_free(ent);
603 struct fail_point_entry *ent, *ent_next;
605 TAILQ_FOREACH_SAFE(ent, ents, fe_entries, ent_next)
606 fp_free(ent);