load.h

Go to the documentation of this file.
00001 /*
00002 ** load.h for  in /root/work/lseos-0.2.25/lseos_libc/conven
00003 ** 
00004 ** Copyright (c)2004 Vianney Rancurel
00005 ** Login   <vianney@epita.fr>
00006 ** 
00007 ** Started on  Fri May  7 11:27:48 2004 Vianney Rancurel
00008 ** Last update Mon Dec  6 12:30:12 2004 Vianney Rancurel
00009 */
00010 #ifndef __CONVEN_LOAD_H__
00011 #define __CONVEN_LOAD_H__       1
00012 #include <libc.h>
00013 
00014 #define LOADOPT_BOOTFS          (1<<0u) 
00015 
00022 #define LOADOPT_AS_IS           (1<<3u) 
00023 
00029 #define LOADOPT_WRITABLE_TEXT   (1<<4u)
00030 
00034 #if 0
00035 #define LOADOPT_LOCK_FILE       (1<<5u)
00036 
00037 #endif
00038 
00039 #define LOADOPT_VERBOSE         (1<<10u)
00040 
00042 typedef enum
00043   {
00044     LOAD_EZERO = 0,             
00046     /*
00047      * bootfs specific
00048      */
00049     LOAD_BOOTFS_VRSV = 100,     
00050     LOAD_BOOTFS_MAP,            
00051     LOAD_BOOTFS_FIND_FILE,      
00052     LOAD_BOOTFS_UNMAP,          
00053     LOAD_BOOTFS_VRELE,          
00054     LOAD_BOOTFS_PRSV_ARCHIVE,   
00055     LOAD_BOOTFS_BUSY,           
00056     LOAD_BOOTFS_SHARE_ARCHIVE,  
00058     /*
00059      * file system specific
00060      */
00061     LOAD_FS_OPEN_FAILED = 150,  
00062     LOAD_FS_PRSV_ARCHIVE,       
00063     LOAD_FS_CLOSE_FAILED,       
00064     LOAD_FS_READ_FAILED,        
00065     LOAD_FS_FSTAT_FAILED,       
00066     LOAD_FS_SHORT_READ,         
00067     LOAD_FS_PGIVE_ARCHIVE,      
00068     LOAD_FS_VRSV_ARCHIVE,       
00069     LOAD_FS_VMAP_ARCHIVE,       
00070     LOAD_FS_VUNMAP_ARCHIVE,     
00071     LOAD_FS_VRELE_ARCHIVE,      
00073     LOAD_FS_PROP_FETCH_PATH = 180,
00074     LOAD_FS_PROP_STORE_PATH,
00075     LOAD_FS_PROP_UPDATE_PATH,
00076     LOAD_FS_PROP_STORE_SECTION,
00077 
00078     /*
00079      * mapping archive
00080      */
00081     LOAD_ARCHIVE_VRSV = 200,    
00082     LOAD_ARCHIVE_VMAP,          
00083     LOAD_ARCHIVE_VUNMAP,        
00084     LOAD_ARCHIVE_VRELE,         
00085     LOAD_ARCHIVE_WIRE,          
00086     LOAD_ARCHIVE_PRELE,         
00088     /*
00089      * elf specific
00090      */
00091     LOAD_ELF_RETRIEVE_HDR = 300,
00092     LOAD_ELF_RETRIEVE_PHDR,     
00093     LOAD_ELF_BAD_HEADER,        
00094     LOAD_ELF_ZERO_SIZED_PSECTION,
00095     LOAD_ELF_CANT_HANDLE_FILE,  
00096     LOAD_ELF_UPDATE_PHDR,       
00098     /*
00099      * program sections specific
00100      */
00101     LOAD_PSECTION_PRSV = 400,   
00102     LOAD_PSECTION_COPY1,        
00103     LOAD_PSECTION_COPY2,        
00104     LOAD_PSECTION_MAP_W,        
00105     LOAD_PSECTION_MAP_R,        
00106     LOAD_PSECTION_MAP_R2,       
00107     LOAD_PSECTION_VRSV,         
00108     LOAD_PSECTION_SHARE_RO,     
00109     LOAD_PSECTION_UNMAP,        
00111     /*
00112      * zeroes
00113      */
00114     LOAD_PSECTION_PRSV_ZEROES = 500,
00115     LOAD_PSECTION_VRSV_ZEROES,  
00116     LOAD_PSECTION_MAP_ME_ZEROES, 
00117     LOAD_PSECTION_VUNMAP_ME_ZEROES,
00118     LOAD_PSECTION_COPY_REMAINING,
00119     LOAD_PSECTION_VRELE_ZEROES, 
00120     LOAD_PSECTION_PGIVE_ZEROES, 
00121     LOAD_PSECTION_MAP_ZEROES,   
00123     /*
00124      * sigcode + pinfo
00125      */
00126     LOAD_SIGCODE_PRSV = 600,    
00127     LOAD_SIGCODE_VRSV,          
00128     LOAD_SIGCODE_VMAP,          
00129     LOAD_SIGCODE_COPY,          
00130     LOAD_PINFO,                 
00132     /*
00133      * misc
00134      */
00135     LOAD_VIRT_ASRELE = 700,     
00137   } t_load_status;
00138 
00139 /* PROTO load.c */
00140 /* load.c */
00141 t_load_status load_exec(asid_t asid, char *path, vaddr_t mapaddr, u_int32_t loadopts, u_int32_t *eip);
00142 #endif

Generated on Wed May 24 23:04:16 2006 for LSE/OS by  doxygen 1.4.6