t_l *sort(t_l *list, char *flag, char *path) { t_l *base; base = list; sor(list); if (isflag(flag, 't')) list = sort_t(list, flag, base, path); else if (isflag(flag, 'r')) list = sort_r(list, base); return (list); }
static void test_by_function_level(int fl, bool dirty) { rtems_interrupt_lock lock; rtems_interrupt_lock_context lock_context; int s; uint64_t min; uint64_t q1; uint64_t q2; uint64_t q3; uint64_t max; rtems_interrupt_lock_initialize(&lock, "test"); rtems_interrupt_lock_acquire(&lock, &lock_context); for (s = 0; s < SAMPLES; ++s) { call_at_level(fl, fl, s, dirty); } rtems_interrupt_lock_release(&lock, &lock_context); rtems_interrupt_lock_destroy(&lock); sort_t(); min = t[0]; q1 = t[(1 * SAMPLES) / 4]; q2 = t[SAMPLES / 2]; q3 = t[(3 * SAMPLES) / 4]; max = t[SAMPLES - 1]; printf( " <Sample functionNestLevel=\"%i\">\n" " <Min unit=\"ns\">%" PRIu64 "</Min>" "<Q1 unit=\"ns\">%" PRIu64 "</Q1>" "<Q2 unit=\"ns\">%" PRIu64 "</Q2>" "<Q3 unit=\"ns\">%" PRIu64 "</Q3>" "<Max unit=\"ns\">%" PRIu64 "</Max>\n" " </Sample>\n", fl, rtems_counter_ticks_to_nanoseconds(min), rtems_counter_ticks_to_nanoseconds(q1), rtems_counter_ticks_to_nanoseconds(q2), rtems_counter_ticks_to_nanoseconds(q3), rtems_counter_ticks_to_nanoseconds(max) ); }