File: tables.h

package info (click to toggle)
trinity 1.9%2Bgit20230109.87f1530-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,116 kB
  • sloc: ansic: 33,463; sh: 536; makefile: 163
file content (94 lines) | stat: -rw-r--r-- 3,377 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#pragma once

#include "types.h"
#include "syscall.h"

extern const struct syscalltable *syscalls;
extern const struct syscalltable *syscalls_32bit;
extern const struct syscalltable *syscalls_64bit;

extern unsigned long syscalls_todo;
extern unsigned int max_nr_syscalls;
extern unsigned int max_nr_32bit_syscalls;
extern unsigned int max_nr_64bit_syscalls;

extern bool use_32bit;
extern bool use_64bit;

void validate_specific_syscall(const struct syscalltable *table, int call);
void activate_syscall_in_table(unsigned int calln, unsigned int *nr_active, const struct syscalltable *table, int *active_syscall);
void deactivate_syscall_in_table(unsigned int calln, unsigned int *nr_active, const struct syscalltable *table, int *active_syscall);

void check_user_specified_arch(const char *arg, char **arg_name, bool *only_64bit, bool *only_32bit);
void clear_check_user_specified_arch(const char *arg, char **arg_name);

void select_syscall_tables(void);
int search_syscall_table(const struct syscalltable *table, unsigned int nr_syscalls, const char *arg);

void mark_all_syscalls_active(void);
void mark_all_syscalls_active_uniarch(void);
void mark_all_syscalls_active_biarch(void);

void toggle_syscall(const char *arg, bool state);
void toggle_syscall_biarch(const char *arg, bool state);
void toggle_syscall_n(int calln, bool state, const char *arg, const char *arg_name);

void activate_syscall(unsigned int calln);
void activate_syscall32(unsigned int calln);
void activate_syscall64(unsigned int calln);
void deactivate_syscall(unsigned int calln, bool do32bit);
void deactivate_syscall_uniarch(unsigned int calln);
void deactivate_syscall32(unsigned int calln);
void deactivate_syscall64(unsigned int calln);

void show_state(unsigned int state);
void dump_syscall_tables(void);
void dump_syscall_tables_uniarch(void);
void dump_syscall_tables_biarch(void);
void show_unannotated_args(void);

int setup_syscall_group(unsigned int desired_group);
int setup_syscall_group_uniarch(unsigned int desired_group);
int setup_syscall_group_biarch(unsigned int desired_group);

int validate_syscall_tables(void);
bool no_syscalls_enabled(void);
int validate_syscall_table_64(void);
int validate_syscall_table_32(void);
void sanity_check_tables(void);
const char * print_syscall_name(unsigned int callno, bool is32bit);

void enable_random_syscalls_biarch(void);
void enable_random_syscalls_uniarch(void);

int validate_specific_syscall_silent(const struct syscalltable *table, int call);
void deactivate_disabled_syscalls(void);
void deactivate_disabled_syscalls_biarch(void);
void deactivate_disabled_syscalls_uniarch(void);
void count_syscalls_enabled(void);

void display_enabled_syscalls(void);
void display_enabled_syscalls_uniarch(void);
void display_enabled_syscalls_biarch(void);

void log_enabled_syscalls(void);
void log_enabled_syscalls_uniarch(void);
void log_enabled_syscalls_biarch(void);

void init_syscalls(void);
void init_syscalls_biarch(void);
void init_syscalls_uniarch(void);

int munge_tables(void);

struct syscallentry * get_syscall_entry(unsigned int calln, bool do32);

bool this_syscallname(const char *thisname);

#define for_each_32bit_syscall(i) \
	for (i = 0; i < max_nr_32bit_syscalls; i++)
#define for_each_64bit_syscall(i) \
	for (i = 0; i < max_nr_64bit_syscalls; i++)
#define for_each_syscall(i) \
	for (i = 0; i < max_nr_syscalls; i++)