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