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

VxWorks

开发平台:

C/C++

  1. /* elfArm.h - ARM-specific elf loader header */
  2. /* Copyright 2001 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01b,30nov01,pad  Moved definitions of CHECK_FITS and SIGN_EXTEND into
  7.                  loadElfLibP.h
  8. 01a,24aug01,jn   created, based on vxWorksAE 1.1 
  9.                  share/src/loader/elfArm.h@@/main/tor3_x/5
  10. */ 
  11. #ifndef __INCelfArmh
  12. #define __INCelfArmh
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /* macros to insert the low n bits of a value into a buffer. */
  17. #define LOW11_INSERT(buf,value) INSERT ((buf), (value), 0x000007ff)
  18. #define LOW8_INSERT(buf,value) INSERT ((buf), (value), 0x000000ff)
  19. #define EM_ARCH_MACHINE EM_ARM
  20. #define EM_ARCH_MACH_ALT EM_ARM     /* not used */
  21. /*
  22.  * Relocation Type Definitions
  23.  *
  24.  */
  25. #define R_ARM_NONE           0  /* No reloc */
  26. #define R_ARM_PC24           1
  27. #define R_ARM_ABS32          2
  28. #define R_ARM_REL32          3
  29. #define R_ARM_PC13           4
  30. #define R_ARM_ABS16          5
  31. #define R_ARM_ABS12          6
  32. #define R_ARM_THM_ABS5       7
  33. #define R_ARM_ABS8           8
  34. #define R_ARM_SBREL32        9
  35. #define R_ARM_THM_PC22      10
  36. #define R_ARM_THM_PC8       11
  37. #define R_ARM_AMP_VCALL9    12
  38. #define R_ARM_SWI24         13
  39. #define R_ARM_THM_SWI8      14
  40. #define R_ARM_XPC25         15
  41. #define R_ARM_THM_XPC22     16
  42. #define R_ARM_COPY          20  /* copy symbol at runtime */
  43. #define R_ARM_GLOB_DAT      21  /* create GOT entry */
  44. #define R_ARM_JUMP_SLOT     22  /* create PLT entry */
  45. #define R_ARM_RELATIVE      23  /* adjust by program base */
  46. #define R_ARM_GOTOFF        24  /* 32 bit offset to GOT */
  47. #define R_ARM_GOTPC         25  /* 32 bit PC relative offset to GOT */
  48. #define R_ARM_GOT32         26  /* 32 bit GOT entry */
  49. #define R_ARM_PLT32         27  /* 32 bit PLT address */
  50. /* These are GNU extensions to enable C++ vtable garbage collection.  */
  51. #define R_ARM_GNU_VTENTRY   100
  52. #define R_ARM_GNU_VTINHERIT 101
  53. #define R_ARM_THM_PC11      102       /* cygnus extension to abi: thumb unconditional branch */
  54. #define R_ARM_THM_PC9       103       /* cygnus extension to abi: thumb conditional branch */
  55. #define R_ARM_RXPC25        249
  56. #define R_ARM_RSBREL32      250
  57. #define R_ARM_THM_RPC22     251
  58. #define R_ARM_RREL32        252
  59. #define R_ARM_RABS32        253
  60. #define R_ARM_RPC24         254
  61. #define R_ARM_RBASE         255
  62. #ifdef __cplusplus
  63. }
  64. #endif
  65. #endif /* __INCelfArmh */