Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

/users/u3/mtikir/PMaCInstrumentor_v1601/include/defines/SymbolTable.d

Go to the documentation of this file.
00001 /*
00002 ##################################################################
00003 XCOFF32     XCOFF64     Name     Description
00004 Offset     Length     Offset     Length
00005 0     8     0      4   n_name     Symbol name (occupies the same 8 bytes as n_zeroes and n_offset)
00006 0     4     0   4      n_zeroes     Zero, indicating name in string table or .debug section (overlays first 4 bytes of n_name)
00007 4     4     8     4     n_offset+     Offset of the name in string table or .debug section (In XCOFF32: overlays last 4 bytes of n_name)
00008 8     4     0     8     n_value+     Symbol value; storage class-dependent
00009 12     2     12     2     n_scnum     Section number of symbol
00010 14     2     14     2     n_type     Basic and derived type specification
00011 14     1     14     1     n_lang     Source language ID (overlays first byte of n_type)
00012 15     1     15     1     n_cpu     CPU Type ID (overlays second byte of n_type)
00013 16     1     16     1     n_sclass     Storage class of symbol
00014 17     1     17     1     n_numaux     Number of auxiliary entries
00015 +Use "32" or "64" suffix when __XCOFF_HYBRID__ is defined.
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 

Generated on Mon Jan 28 11:08:31 2008 for PMaCInstrumentor by doxygen 1.3.5