static int run_ktapvm() { int ktapvm_fd, ktap_fd; int ret; ktap_pid = getpid(); ktapvm_fd = open(KTAPVM_PATH, O_RDONLY); if (ktapvm_fd < 0) handle_error("open " KTAPVM_PATH " failed"); ktap_fd = ioctl(ktapvm_fd, 0, NULL); if (ktap_fd < 0) handle_error("ioctl ktapvm failed"); ktapio_create(output_filename); if (forks) { uparm.trace_pid = fork_workload(ktap_fd); uparm.workload = 1; } ret = ioctl(ktap_fd, KTAP_CMD_IOC_RUN, &uparm); close(ktap_fd); close(ktapvm_fd); return ret; }
static int run_ktapvm() { int ktapvm_fd, ktap_fd; int ret; ktapvm_fd = open(KTAPVM_PATH, O_RDONLY); if (ktapvm_fd < 0) handle_error("open " KTAPVM_PATH " failed"); ktap_fd = ioctl(ktapvm_fd, 0, NULL); if (ktap_fd < 0) handle_error("ioctl ktapvm failed"); kp_create_reader(output_filename); if (forks) { uparm.trace_pid = fork_workload(ktap_fd); uparm.workload = 1; } ret = ioctl(ktap_fd, KTAP_CMD_IOC_RUN, &uparm); switch (ret) { case -EPERM: case -EACCES: fprintf(stderr, "You may not have permission to run ktap\n"); break; } close(ktap_fd); close(ktapvm_fd); return ret; }