root/include/linux/binfmts.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef _LINUX_BINFMTS_H
   2 #define _LINUX_BINFMTS_H
   3 
   4 #include <linux/ptrace.h>
   5 
   6 /*
   7  * MAX_ARG_PAGES defines the number of pages allocated for arguments
   8  * and envelope for the new program. 32 should suffice, this gives
   9  * a maximum env+arg of 128kB !
  10  */
  11 #define MAX_ARG_PAGES 32
  12 
  13 /*
  14  * This structure is used to hold the arguments that are used when loading binaries.
  15  */
  16 struct linux_binprm{
  17         char buf[128];
  18         unsigned long page[MAX_ARG_PAGES];
  19         unsigned long p;
  20         int sh_bang;
  21         struct inode * inode;
  22         int e_uid, e_gid;
  23         int argc, envc;
  24         char * filename;           /* Name of binary */
  25 };
  26 
  27 /*
  28  * This structure defines the functions that are used to load the binary formats that
  29  * linux accepts.
  30  */
  31 struct linux_binfmt {
  32         struct linux_binfmt * next;
  33         int (*load_binary)(struct linux_binprm *, struct  pt_regs * regs);
  34         int (*load_shlib)(int fd);
  35 };
  36 
  37 extern int register_binfmt(struct linux_binfmt *);
  38 extern int unregister_binfmt(struct linux_binfmt *);
  39 
  40 extern int read_exec(struct inode *inode, unsigned long offset,
  41         char * addr, unsigned long count);
  42 
  43 extern int open_inode(struct inode * inode, int mode);
  44 
  45 extern void flush_old_exec(struct linux_binprm * bprm);
  46 extern unsigned long change_ldt(unsigned long text_size,unsigned long * page);
  47 extern unsigned long * create_tables(char * p,int argc,int envc,int ibcs);
  48 extern unsigned long copy_strings(int argc,char ** argv,unsigned long *page,
  49                 unsigned long p, int from_kmem);
  50 
  51 #endif

/* [previous][next][first][last][top][bottom][index][help] */