From f5daeec724aea1613334f14d58b101a5c8e430b4 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Sun, 23 Mar 2014 13:35:09 +0100 Subject: lib: extract igt_aux.[hc] And shovel all the various helpers in there. Also move igt_set_vt_graphics_mode to igt_kms.h since the function is implemented in igt_kms.c. And it fits better. I kinda missed this in the prep work. Signed-off-by: Daniel Vetter --- lib/drmtest.c | 188 ---------------------------------------------------------- 1 file changed, 188 deletions(-) (limited to 'lib/drmtest.c') diff --git a/lib/drmtest.c b/lib/drmtest.c index 9fcd221b..8bb64f0c 100644 --- a/lib/drmtest.c +++ b/lib/drmtest.c @@ -277,191 +277,3 @@ int drm_open_any_render(void) return fd; } - -/* signal interrupt helpers */ -static struct igt_helper_process signal_helper; -long long int sig_stat; -static void __attribute__((noreturn)) signal_helper_process(pid_t pid) -{ - /* Interrupt the parent process at 500Hz, just to be annoying */ - while (1) { - usleep(1000 * 1000 / 500); - if (kill(pid, SIGUSR1)) /* Parent has died, so must we. */ - exit(0); - } -} - -static void sig_handler(int i) -{ - sig_stat++; -} - -void igt_fork_signal_helper(void) -{ - if (igt_only_list_subtests()) - return; - - signal(SIGUSR1, sig_handler); - - igt_fork_helper(&signal_helper) { - signal_helper_process(getppid()); - } -} - -void igt_stop_signal_helper(void) -{ - if (igt_only_list_subtests()) - return; - - igt_stop_helper(&signal_helper); - - sig_stat = 0; -} - -bool igt_env_set(const char *env_var, bool default_value) -{ - char *val; - - val = getenv(env_var); - if (!val) - return default_value; - - return atoi(val) != 0; -} - -bool igt_aub_dump_enabled(void) -{ - static int dump_aub = -1; - - if (dump_aub == -1) - dump_aub = igt_env_set("IGT_DUMP_AUB", false); - - return dump_aub; -} - -/* other helpers */ -void igt_exchange_int(void *array, unsigned i, unsigned j) -{ - int *int_arr, tmp; - int_arr = array; - - tmp = int_arr[i]; - int_arr[i] = int_arr[j]; - int_arr[j] = tmp; -} - -void igt_permute_array(void *array, unsigned size, - void (*exchange_func)(void *array, - unsigned i, - unsigned j)) -{ - int i; - - for (i = size - 1; i > 1; i--) { - /* yes, not perfectly uniform, who cares */ - long l = random() % (i +1); - if (i != l) - exchange_func(array, i, l); - } -} - -void igt_progress(const char *header, uint64_t i, uint64_t total) -{ - int divider = 200; - - if (!isatty(fileno(stderr))) - return; - - if (i+1 >= total) { - fprintf(stderr, "\r%s100%%\n", header); - return; - } - - if (total / 200 == 0) - divider = 1; - - /* only bother updating about every 0.5% */ - if (i % (total / divider) == 0 || i+1 >= total) { - fprintf(stderr, "\r%s%3llu%%", header, - (long long unsigned) i * 100 / total); - } -} - -/* mappable aperture trasher helper */ -drm_intel_bo **trash_bos; -int num_trash_bos; - -void igt_init_aperture_trashers(drm_intel_bufmgr *bufmgr) -{ - int i; - - num_trash_bos = gem_mappable_aperture_size() / (1024*1024); - - trash_bos = malloc(num_trash_bos * sizeof(drm_intel_bo *)); - igt_assert(trash_bos); - - for (i = 0; i < num_trash_bos; i++) - trash_bos[i] = drm_intel_bo_alloc(bufmgr, "trash bo", 1024*1024, 4096); -} - -void igt_trash_aperture(void) -{ - int i; - uint8_t *gtt_ptr; - - for (i = 0; i < num_trash_bos; i++) { - drm_intel_gem_bo_map_gtt(trash_bos[i]); - gtt_ptr = trash_bos[i]->virtual; - *gtt_ptr = 0; - drm_intel_gem_bo_unmap_gtt(trash_bos[i]); - } -} - -void igt_cleanup_aperture_trashers(void) -{ - int i; - - for (i = 0; i < num_trash_bos; i++) - drm_intel_bo_unreference(trash_bos[i]); - - free(trash_bos); -} - -void igt_system_suspend_autoresume(void) -{ - int ret; - - /* FIXME: Simulation doesn't like suspend/resume, and not even a lighter - * approach using /sys/power/pm_test to just test our driver's callbacks - * seems to fare better. We need to investigate what's going on. */ - igt_skip_on_simulation(); - - ret = system("rtcwake -s 30 -m mem"); - igt_assert(ret == 0); -} - -void igt_drop_root(void) -{ - igt_assert(getuid() == 0); - - igt_assert(setgid(2) == 0); - igt_assert(setuid(2) == 0); - - igt_assert(getgid() == 2); - igt_assert(getuid() == 2); -} - -void igt_wait_for_keypress(void) -{ - struct termios oldt, newt; - - if (!isatty(STDIN_FILENO)) - return; - - tcgetattr ( STDIN_FILENO, &oldt ); - newt = oldt; - newt.c_lflag &= ~( ICANON | ECHO ); - tcsetattr ( STDIN_FILENO, TCSANOW, &newt ); - getchar(); - tcsetattr ( STDIN_FILENO, TCSANOW, &oldt ); -} -- cgit v1.2.3