X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fbinfmts.h;h=7e736e201c46c125eb11a1722f5a5e31fabcd4df;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=392602dbdf406b35c787f411ea8c75b33f2e81eb;hpb=9213980e6a70d8473e0ffd4b39ab5b6caaba9ff5;p=linux-2.6.git diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h index 392602dbd..7e736e201 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.h @@ -2,7 +2,6 @@ #define _LINUX_BINFMTS_H #include -#include struct pt_regs; @@ -36,9 +35,19 @@ struct linux_binprm{ char * interp; /* Name of the binary really executed. Most of the time same as filename, but could be different for binfmt_{misc,script} */ + unsigned interp_flags; + unsigned interp_data; unsigned long loader, exec; }; +#define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0 +#define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT) + +/* fd of the binary should be passed to the interpreter */ +#define BINPRM_FLAGS_EXECFD_BIT 1 +#define BINPRM_FLAGS_EXECFD (1 << BINPRM_FLAGS_EXECFD_BIT) + + /* * This structure defines the functions that are used to load the binary formats that * linux accepts. @@ -65,8 +74,9 @@ extern int flush_old_exec(struct linux_binprm * bprm); #define EXSTACK_DISABLE_X 1 /* Disable executable stacks */ #define EXSTACK_ENABLE_X 2 /* Enable executable stacks */ -extern int setup_arg_pages(struct linux_binprm * bprm, int executable_stack); -extern int copy_strings(int argc,char __user * __user * argv,struct linux_binprm *bprm); +extern int setup_arg_pages(struct linux_binprm * bprm, + unsigned long stack_top, + int executable_stack); extern int copy_strings_kernel(int argc,char ** argv,struct linux_binprm *bprm); extern void compute_creds(struct linux_binprm *binprm); extern int do_coredump(long signr, int exit_code, struct pt_regs * regs);