00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #define SECTION_IS_OF_TYPE_DECL(__str) inline bool is ## __str() { return (GET(s_flags) == STYP_## __str); }
00020 #define IS_SECT_TYPE(__str) is ## __str()
00021
00022 #define SECTHEADER_MACROS_BASIS(__str) \
00023 GET_FIELD_BASIS(char*,s_name); \
00024 GET_FIELD_BASIS(uint64_t,s_paddr); \
00025 GET_FIELD_BASIS(uint64_t,s_vaddr); \
00026 GET_FIELD_BASIS(uint64_t,s_size); \
00027 GET_FIELD_BASIS(uint64_t,s_scnptr); \
00028 GET_FIELD_BASIS(uint64_t,s_relptr); \
00029 GET_FIELD_BASIS(uint64_t,s_lnnoptr); \
00030 GET_FIELD_BASIS(uint32_t,s_nreloc); \
00031 GET_FIELD_BASIS(uint32_t,s_nlnno); \
00032 GET_FIELD_BASIS(uint32_t,s_flags); \
00033 \
00034 SECTION_IS_OF_TYPE_DECL(TEXT); \
00035 SECTION_IS_OF_TYPE_DECL(DATA); \
00036 SECTION_IS_OF_TYPE_DECL(BSS); \
00037 SECTION_IS_OF_TYPE_DECL(PAD); \
00038 SECTION_IS_OF_TYPE_DECL(LOADER); \
00039 SECTION_IS_OF_TYPE_DECL(DEBUG); \
00040 SECTION_IS_OF_TYPE_DECL(TYPCHK); \
00041 SECTION_IS_OF_TYPE_DECL(EXCEPT); \
00042 SECTION_IS_OF_TYPE_DECL(OVRFLO); \
00043 SECTION_IS_OF_TYPE_DECL(INFO); \
00044
00046 #define SECTHEADER_MACROS_CLASS(__str) \
00047 GET_FIELD_CLASS(char*,s_name); \
00048 GET_FIELD_CLASS(uint64_t,s_paddr); \
00049 GET_FIELD_CLASS(uint64_t,s_vaddr); \
00050 GET_FIELD_CLASS(uint64_t,s_size); \
00051 GET_FIELD_CLASS(uint64_t,s_scnptr); \
00052 GET_FIELD_CLASS(uint64_t,s_relptr); \
00053 GET_FIELD_CLASS(uint64_t,s_lnnoptr); \
00054 GET_FIELD_CLASS(uint32_t,s_nreloc); \
00055 GET_FIELD_CLASS(uint32_t,s_nlnno); \
00056 GET_FIELD_CLASS(uint32_t,s_flags); \
00057