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 },
};
|