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