00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #define SYMB_IS_OF_TYPE_DECL(__str) inline bool is ## __str() { return (GET(n_sclass) == C_## __str); }
00020 #define IS_SYMB_TYPE(__str) is ## __str()
00021
00022 #define SYMBOL_MACROS_BASIS(__str) \
00023 GET_FIELD_BASIS(char*,n_name); \
00024 GET_FIELD_BASIS(uint32_t,n_zeroes); \
00025 GET_FIELD_BASIS(uint32_t,n_offset); \
00026 GET_FIELD_BASIS(uint64_t,n_value); \
00027 GET_FIELD_BASIS(int16_t,n_scnum); \
00028 GET_FIELD_BASIS(uint16_t,n_type); \
00029 GET_FIELD_BASIS(uint8_t,n_sclass); \
00030 GET_FIELD_BASIS(uint8_t,n_numaux); \
00031 \
00032 SYMB_IS_OF_TYPE_DECL(ALIAS); \
00033 SYMB_IS_OF_TYPE_DECL(ARG); \
00034 SYMB_IS_OF_TYPE_DECL(AUTO); \
00035 SYMB_IS_OF_TYPE_DECL(EFCN); \
00036 SYMB_IS_OF_TYPE_DECL(ENTAG); \
00037 SYMB_IS_OF_TYPE_DECL(EOS); \
00038 SYMB_IS_OF_TYPE_DECL(EXTDEF); \
00039 SYMB_IS_OF_TYPE_DECL(FIELD); \
00040 SYMB_IS_OF_TYPE_DECL(HIDDEN); \
00041 SYMB_IS_OF_TYPE_DECL(LABEL); \
00042 SYMB_IS_OF_TYPE_DECL(LINE); \
00043 SYMB_IS_OF_TYPE_DECL(MOE); \
00044 SYMB_IS_OF_TYPE_DECL(MOS); \
00045 SYMB_IS_OF_TYPE_DECL(MOU); \
00046 SYMB_IS_OF_TYPE_DECL(REG); \
00047 SYMB_IS_OF_TYPE_DECL(REGPARM); \
00048 SYMB_IS_OF_TYPE_DECL(STRTAG); \
00049 SYMB_IS_OF_TYPE_DECL(TPDEF); \
00050 SYMB_IS_OF_TYPE_DECL(ULABEL); \
00051 SYMB_IS_OF_TYPE_DECL(UNTAG); \
00052 SYMB_IS_OF_TYPE_DECL(USTATIC); \
00053 \
00054 SYMB_IS_OF_TYPE_DECL(BCOMM); \
00055 SYMB_IS_OF_TYPE_DECL(BINCL); \
00056 SYMB_IS_OF_TYPE_DECL(BLOCK); \
00057 SYMB_IS_OF_TYPE_DECL(BSTAT); \
00058 SYMB_IS_OF_TYPE_DECL(DECL); \
00059 SYMB_IS_OF_TYPE_DECL(ECOML); \
00060 SYMB_IS_OF_TYPE_DECL(ECOMM); \
00061 SYMB_IS_OF_TYPE_DECL(EINCL); \
00062 SYMB_IS_OF_TYPE_DECL(ENTRY); \
00063 SYMB_IS_OF_TYPE_DECL(ESTAT); \
00064 SYMB_IS_OF_TYPE_DECL(EXT); \
00065 SYMB_IS_OF_TYPE_DECL(FCN); \
00066 SYMB_IS_OF_TYPE_DECL(FILE); \
00067 SYMB_IS_OF_TYPE_DECL(FUN); \
00068 SYMB_IS_OF_TYPE_DECL(GSYM); \
00069 SYMB_IS_OF_TYPE_DECL(HIDEXT); \
00070 SYMB_IS_OF_TYPE_DECL(INFO); \
00071 SYMB_IS_OF_TYPE_DECL(LSYM); \
00072 SYMB_IS_OF_TYPE_DECL(NULL); \
00073 SYMB_IS_OF_TYPE_DECL(PSYM); \
00074 SYMB_IS_OF_TYPE_DECL(RPSYM); \
00075 SYMB_IS_OF_TYPE_DECL(RSYM); \
00076 SYMB_IS_OF_TYPE_DECL(STAT); \
00077 SYMB_IS_OF_TYPE_DECL(STSYM); \
00078 SYMB_IS_OF_TYPE_DECL(TCSYM); \
00079 SYMB_IS_OF_TYPE_DECL(WEAKEXT); \
00080
00082 #define SYMBOL_MACROS_CLASS(__str) \
00083 GET_FIELD_CLASS(uint32_t,n_offset); \
00084 GET_FIELD_CLASS(uint64_t,n_value); \
00085 GET_FIELD_CLASS(int16_t,n_scnum); \
00086 GET_FIELD_CLASS(uint16_t,n_type); \
00087 GET_FIELD_CLASS(uint8_t,n_sclass); \
00088 GET_FIELD_CLASS(uint8_t,n_numaux); \
00089