Esempio n. 1
0
void toggle_syscall_n(int calln, bool state, const char *arg, const char *arg_name)
{
	if (calln == -1) {
		outputerr("No idea what syscall (%s) is.\n", arg);
		exit(EXIT_FAILURE);
	}

	validate_specific_syscall(syscalls, calln);

	if (state == TRUE) {
		syscalls[calln].entry->flags |= ACTIVE;
		activate_syscall(calln);
	} else {
		syscalls[calln].entry->flags |= TO_BE_DEACTIVATED;
	}

	output(0, "Marking syscall %s (%d) as to be %sabled.\n",
		arg_name, calln,
		state ? "en" : "dis");
}
Esempio n. 2
0
static void toggle_syscall_biarch_n(int calln, const struct syscalltable *table,
				    bool onlyflag, bool doflag, bool state,
				    void (*activate)(unsigned int),
				    int arch_bits, const char *arg_name)
{
	if (calln != -1) {
		struct syscallentry *entry = table[calln].entry;

		validate_specific_syscall(table, calln);

		if ((state == TRUE) && onlyflag && doflag) {
			entry->flags |= ACTIVE;
			(*activate)(calln);
		} else {
			entry->flags |= TO_BE_DEACTIVATED;
		}
	}

	if ((arch_bits != 0) && (calln != -1))
		output(0, "Marking %d-bit syscall %s (%d) as to be %sabled.\n",
			arch_bits, arg_name, calln,
			state ? "en" : "dis");
}