img_elf.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*************************************************************************/ /*!
  2. @File img_elf.h
  3. @Title IMG ELF file definitions
  4. @Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
  5. @Platform RGX
  6. @Description Definitions for ELF file structures used in the DDK.
  7. @License Strictly Confidential.
  8. */ /**************************************************************************/
  9. #if !defined(IMG_ELF_H)
  10. #define IMG_ELF_H
  11. #include "img_types.h"
  12. /* ELF format defines */
  13. #define ELF_PT_LOAD (0x1U) /* Program header identifier as Load */
  14. #define ELF_SHT_SYMTAB (0x2U) /* Section identifier as Symbol Table */
  15. #define ELF_SHT_STRTAB (0x3U) /* Section identifier as String Table */
  16. #define MAX_STRTAB_NUM (0x8U) /* Maximum number of string table in the ELF file */
  17. /* Redefined structs of ELF format */
  18. typedef struct
  19. {
  20. IMG_UINT8 ui32Eident[16];
  21. IMG_UINT16 ui32Etype;
  22. IMG_UINT16 ui32Emachine;
  23. IMG_UINT32 ui32Eversion;
  24. IMG_UINT32 ui32Eentry;
  25. IMG_UINT32 ui32Ephoff;
  26. IMG_UINT32 ui32Eshoff;
  27. IMG_UINT32 ui32Eflags;
  28. IMG_UINT16 ui32Eehsize;
  29. IMG_UINT16 ui32Ephentsize;
  30. IMG_UINT16 ui32Ephnum;
  31. IMG_UINT16 ui32Eshentsize;
  32. IMG_UINT16 ui32Eshnum;
  33. IMG_UINT16 ui32Eshtrndx;
  34. } IMG_ELF_HDR;
  35. typedef struct
  36. {
  37. IMG_UINT32 ui32Stname;
  38. IMG_UINT32 ui32Stvalue;
  39. IMG_UINT32 ui32Stsize;
  40. IMG_UINT8 ui32Stinfo;
  41. IMG_UINT8 ui32Stother;
  42. IMG_UINT16 ui32Stshndx;
  43. } IMG_ELF_SYM;
  44. typedef struct
  45. {
  46. IMG_UINT32 ui32Shname;
  47. IMG_UINT32 ui32Shtype;
  48. IMG_UINT32 ui32Shflags;
  49. IMG_UINT32 ui32Shaddr;
  50. IMG_UINT32 ui32Shoffset;
  51. IMG_UINT32 ui32Shsize;
  52. IMG_UINT32 ui32Shlink;
  53. IMG_UINT32 ui32Shinfo;
  54. IMG_UINT32 ui32Shaddralign;
  55. IMG_UINT32 ui32Shentsize;
  56. } IMG_ELF_SHDR;
  57. typedef struct
  58. {
  59. IMG_UINT32 ui32Ptype;
  60. IMG_UINT32 ui32Poffset;
  61. IMG_UINT32 ui32Pvaddr;
  62. IMG_UINT32 ui32Ppaddr;
  63. IMG_UINT32 ui32Pfilesz;
  64. IMG_UINT32 ui32Pmemsz;
  65. IMG_UINT32 ui32Pflags;
  66. IMG_UINT32 ui32Palign;
  67. } IMG_ELF_PROGRAM_HDR;
  68. #endif /* IMG_ELF_H */