Example #1
0
File: main.c Project: cfregly/ktap
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;
}
Example #2
0
File: kp_main.c Project: ktap/ktap
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;
}