loadElfLib.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* loadElfLib.h - object module dependant loader library header */
  2. /* Copyright 1996-2001 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01b,05sep01,jn   changing ARM to ELF and created loadElfLibP.h - 
  7.                  moved utility macros and private type and structure
  8.  definitions to loadElfLibP.h
  9. 01a,20jun96,dbt  written from /host/include/loadelf.h v01c
  10.  and /host/include/elfppc.h v01c
  11. */
  12. #ifndef __INCloadElfLibh
  13. #define __INCloadElfLibh
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #include "vwModNum.h"
  18. #include "elf.h"
  19. #include "private/loadElfLibP.h"
  20. /* Defines */
  21. #define MAX_SEC_LEN     256
  22. #define SDA_SCN_TYPE    unsigned char
  23. #define NOT_SDA_SCN     0
  24. #define SDA_SCN         1
  25. #define SDA2_SCN        2
  26. /* status codes */
  27. #define S_loadElfLib_HDR_READ (M_loadElfLib | 1)
  28. #define S_loadElfLib_HDR_ERROR (M_loadElfLib | 2)
  29. #define S_loadElfLib_PHDR_MALLOC (M_loadElfLib | 3)
  30. #define S_loadElfLib_PHDR_READ (M_loadElfLib | 4)
  31. #define S_loadElfLib_SHDR_MALLOC (M_loadElfLib | 5)
  32. #define S_loadElfLib_SHDR_READ (M_loadElfLib | 6)
  33. #define S_loadElfLib_READ_SECTIONS (M_loadElfLib | 7)
  34. #define S_loadElfLib_LOAD_SECTIONS (M_loadElfLib | 8)
  35. #define S_loadElfLib_LOAD_PROG (M_loadElfLib | 9)
  36. #define S_loadElfLib_SYMTAB (M_loadElfLib | 10)
  37. #define S_loadElfLib_RELA_SECTION (M_loadElfLib | 11)
  38. #define S_loadElfLib_SCN_READ (M_loadElfLib | 12)
  39. #define S_loadElfLib_SDA_MALLOC (M_loadElfLib | 13)
  40. #define S_loadElfLib_SST_READ (M_loadElfLib | 15)
  41. #define S_loadElfLib_JMPADDR_ERROR (M_loadElfLib | 20)
  42. #define S_loadElfLib_GPREL_REFERENCE (M_loadElfLib | 21)
  43. #define S_loadElfLib_UNRECOGNIZED_RELOCENTRY (M_loadElfLib | 22)
  44. #define S_loadElfLib_RELOC (M_loadElfLib | 23)
  45. #define S_loadElfLib_UNSUPPORTED (M_loadElfLib | 24)
  46. #define S_loadElfLib_REL_SECTION (M_loadElfLib | 25)
  47. typedef enum    /* RTYPE_SPARC - sparc relocation types */
  48.     {
  49.     RELOC_8,        RELOC_16,        RELOC_32,          /* simplest relocs */
  50.     RELOC_DISP8,    RELOC_DISP16,    RELOC_DISP32,      /* Disp's (pc-rel) */
  51.     RELOC_WDISP30,  RELOC_WDISP22,                      /* SR word disp's */
  52.     RELOC_HI22,     RELOC_22,                           /* SR 22-bit relocs */
  53.     RELOC_13,       RELOC_LO10,                         /* SR 13&10-bit relocs*/
  54.     RELOC_SFA_BASE, RELOC_SFA_OFF13,                    /* SR S.F.A. relocs */
  55.     RELOC_BASE10,   RELOC_BASE13,    RELOC_BASE22,      /* base_relative pic */
  56.     RELOC_PC10,     RELOC_PC22,                         /* special pc-rel pic */
  57.     RELOC_JMP_TBL,                                      /* jmp_tbl_rel in pic */
  58.     RELOC_SEGOFF16,                                     /* ShLib offset-in-seg*/
  59.     RELOC_GLOB_DAT, RELOC_JMP_SLOT,  RELOC_RELATIVE     /* rtld relocs */
  60.     } RTYPE_SPARC;
  61. /* function declarations */
  62. extern STATUS loadElfInit (void);
  63. #ifdef __cplusplus
  64. }
  65. #endif
  66. #endif /* __INCloadElfLibh */