aboutsummaryrefslogtreecommitdiffstats
path: root/templates/wrapper_table
blob: dd9c2494bc1557d66095745f16edb77806d8acb0 (plain)
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
@name pseudo_wrapper_table.c
@header
/* The table of wrapper functions to populate */

/* This file is generated and should not be modified.  See the makewrappers
 * script if you want to modify this. */
static struct {
	char *name;		/* the name */
	int (**real)(void);	/* the underlying syscall */
	int (*wrapper)(void);	/* the wrapper from guts/name.c */
} pseudo_functions[] = {
@body
	{ /* ${comment}; */
		"${name}",
		(int (**)(void)) &real_${name},
		(int (*)(void)) wrap_${name}
	},
@footer
	/* special cases: Functions which need manually-coded wrappers */
	{ /* int fork(void); */
		"fork",
		(int (**)(void)) &real_fork,
		(int (*)(void)) wrap_fork
	},
	{ /* int clone(int (*fn)(void *), void *, int, void, ...); */
		"clone",
		(int (**)(void)) &real_clone,
		(int (*)(void)) wrap_clone
	},
	{ /* int execv(const char *file, char *const *argv); */
		"execv",
		(int (**)(void)) &real_execv,
		(int (*)(void)) wrap_execv
	},
	{ /* int execve(const char *file, char *const *argv, char *const *envp); */
		"execve",
		(int (**)(void)) &real_execve,
		(int (*)(void)) wrap_execve
	},
	{ /* int execvp(const char *file, char *const *argv); */
		"execvp",
		(int (**)(void)) &real_execvp,
		(int (*)(void)) wrap_execvp
	},
	{ NULL, NULL, NULL },
};