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

/users/u3/mtikir/PMaCInstrumentor_v1601/include/Auxilary.h

Go to the documentation of this file.
00001 #ifndef _Auxilary_h_
00002 #define _Auxilary_h_
00003 
00004 #include <Base.h>
00005 #include <defines/Auxilary.d>
00006 
00007 class Auxilary : public SymbolBase {
00008 private:
00009 public:
00010     Auxilary(uint32_t idx) : SymbolBase(idx) {}
00011     ~Auxilary() {}
00012     bool isAuxilary() { return true; }
00013     const char* getTypeName();
00014 
00015     AUXILARY_MACROS_BASIS("For the get_X field macros check the defines directory");
00016     virtual uint8_t getAuxilaryType() { return Type__Auxilary_Symbol_No_Type; }
00017 
00018     void print(StringTable* stringTable,DebugSection* debugRawSect,bool followAux);
00019 
00020 };
00021 
00022 class AuxilarySection : public Auxilary {
00023 private:
00024     AUXENT entry;
00025 public:
00026     AuxilarySection(uint32_t idx) : Auxilary(idx) {}
00027     ~AuxilarySection() {}
00028     uint8_t getAuxilaryType() { return Type__Auxilary_Symbol_Section; }
00029 
00030     char* charStream() { return (char*)&entry; }
00031     GET_FIELD_CLASS_A(uint32_t,x_scnlen,x_scn)    { return entry.x_scn.x_scnlen; }
00032     GET_FIELD_CLASS_A(uint16_t,x_nreloc,x_scn)    { return entry.x_scn.x_nreloc; }
00033     GET_FIELD_CLASS_A(uint16_t,x_nlinno,x_scn)     { return entry.x_scn.x_nlinno; }
00034 
00035     void print(StringTable* stringTable,DebugSection* debugRawSect,bool followAux);
00036 };
00037 
00038 class AuxilaryException : public Auxilary {
00039 private:
00040     AUXENT_64 entry;
00041 public:
00042     AuxilaryException(uint32_t idx) : Auxilary(idx) {}
00043     ~AuxilaryException() {}
00044     uint8_t getAuxilaryType() { return entry.x_auxtype.x_auxtype; }
00045 
00046     char* charStream() { return (char*)&entry; }
00047     GET_FIELD_CLASS_A(uint64_t,x_exptr,x_except) { return entry.x_except.x_exptr; }
00048     GET_FIELD_CLASS_A(uint32_t,x_fsize,x_except) { return entry.x_except.x_fsize; }
00049     GET_FIELD_CLASS_A(uint32_t,x_endndx,x_except){ return entry.x_except.x_endndx; }
00050 
00051     void print(StringTable* stringTable,DebugSection* debugRawSect,bool followAux);
00052 
00053     void changeExptrCopy(uint64_t exptr,char* buff);
00054 };
00055 
00056 class AuxilaryFile : public Auxilary {
00057 public:
00058     AuxilaryFile(uint32_t idx) : Auxilary(idx) {}
00059     ~AuxilaryFile() {}
00060 
00061     void print(StringTable* stringTable,DebugSection* debugRawSect,bool followAux);
00062 };
00063 
00064 class AuxilaryFile32 : public AuxilaryFile {
00065 private:
00066     AUXENT entry;
00067 public:
00068     AuxilaryFile32(uint32_t idx) : AuxilaryFile(idx) {}
00069     ~AuxilaryFile32() {}
00070     uint8_t getAuxilaryType() { return Type__Auxilary_Symbol_File; }
00071 
00072     char* charStream() { return (char*)&entry; }
00073     GET_FIELD_CLASS_A(char*,x_fname,x_file)     { return entry.x_file.x_fname; }
00074     GET_FIELD_CLASS_A(uint32_t,x_zeroes,x_file) { return entry.x_file._x.x_zeroes; }
00075     GET_FIELD_CLASS_A(uint32_t,x_offset,x_file) { return entry.x_file._x.x_offset; }
00076     GET_FIELD_CLASS_A(uint8_t,x_ftype,x_file)     { return entry.x_file._x.x_ftype; }
00077 };
00078 
00079 class AuxilaryFile64 : public AuxilaryFile {
00080 private:
00081     AUXENT_64 entry;
00082 public:
00083     AuxilaryFile64(uint32_t idx) : AuxilaryFile(idx) {}
00084     ~AuxilaryFile64() {}
00085     uint8_t getAuxilaryType() { return entry.x_auxtype.x_auxtype; }
00086 
00087     char* charStream() { return (char*)&entry; }
00088     GET_FIELD_CLASS_A(char*,x_fname,x_file)     { return entry.x_file.x_fname; }
00089     GET_FIELD_CLASS_A(uint32_t,x_zeroes,x_file) { return entry.x_file._x.x_zeroes; }
00090     GET_FIELD_CLASS_A(uint32_t,x_offset,x_file) { return entry.x_file._x.x_offset; }
00091     GET_FIELD_CLASS_A(uint8_t,x_ftype,x_file)     { return entry.x_file._x.x_ftype; }
00092 };
00093 
00094 class AuxilaryBlock : public Auxilary {
00095 public:
00096     AuxilaryBlock(uint32_t idx) : Auxilary(idx) {}
00097     ~AuxilaryBlock() {}
00098 
00099     void print(StringTable* stringTable,DebugSection* debugRawSect,bool followAux);
00100 };
00101 
00102 class AuxilaryBlock32 : public AuxilaryBlock {
00103 private:
00104     AUXENT entry;
00105 public:
00106     AuxilaryBlock32(uint32_t idx) : AuxilaryBlock(idx) {}
00107     ~AuxilaryBlock32() {}
00108     uint8_t getAuxilaryType() { return Type__Auxilary_Symbol_Block; }
00109 
00110     char* charStream() { return (char*)&entry; }
00111     GET_FIELD_CLASS_A(uint32_t,x_lnno,x_misc) { return entry.x_sym.x_misc.x_lnsz.x_lnno; }
00112 };
00113 
00114 class AuxilaryBlock64 : public AuxilaryBlock {
00115 private:
00116     AUXENT_64 entry;
00117 public:
00118     AuxilaryBlock64(uint32_t idx) : AuxilaryBlock(idx) {}
00119     ~AuxilaryBlock64() {}
00120     uint8_t getAuxilaryType() { return entry.x_auxtype.x_auxtype; }
00121 
00122     char* charStream() { return (char*)&entry; }
00123     GET_FIELD_CLASS_A(uint32_t,x_lnno,x_misc) { return entry.x_sym.x_misc.x_lnsz.x_lnno; }
00124 };
00125 
00126 class AuxilaryFunction : public Auxilary {
00127 public:
00128     AuxilaryFunction(uint32_t idx) : Auxilary(idx) {}
00129     ~AuxilaryFunction() {}
00130 
00131     void print(StringTable* stringTable,DebugSection* debugRawSect,bool followAux);
00132     virtual void changeExptrLnnoptrCopy(uint32_t exptr,uint64_t lnnoptr,char* buff) { __SHOULD_NOT_ARRIVE; }
00133 };
00134 
00135 class AuxilaryFunction32 : public AuxilaryFunction {
00136 private:
00137     AUXENT entry;
00138 public:
00139     AuxilaryFunction32(uint32_t idx) : AuxilaryFunction(idx) {}
00140     ~AuxilaryFunction32() {}
00141     uint8_t getAuxilaryType() { return Type__Auxilary_Symbol_Function; }
00142 
00143     char* charStream() { return (char*)&entry; }
00144     GET_FIELD_CLASS_A(uint32_t,x_exptr,x_fcn)    { return entry.x_sym.x_tagndx; }
00145     GET_FIELD_CLASS_A(uint32_t,x_fsize,x_fcn)    { return entry.x_sym.x_misc.x_fsize; }
00146     GET_FIELD_CLASS_A(uint64_t,x_lnnoptr,x_fcn)    { return entry.x_sym.x_fcnary.x_fcn.x_lnnoptr; }
00147     GET_FIELD_CLASS_A(uint32_t,x_endndx,x_fcn)    { return entry.x_sym.x_fcnary.x_fcn.x_endndx; }
00148     void changeExptrLnnoptrCopy(uint32_t exptr,uint64_t lnnoptr,char* buff);
00149 };
00150 
00151 class AuxilaryFunction64 : public AuxilaryFunction {
00152 private:
00153     AUXENT_64 entry;
00154 public:
00155     AuxilaryFunction64(uint32_t idx) : AuxilaryFunction(idx) {}
00156     ~AuxilaryFunction64() {}
00157     uint8_t getAuxilaryType() { return entry.x_auxtype.x_auxtype; }
00158 
00159     char* charStream() { return (char*)&entry; }
00160     GET_FIELD_CLASS_A(uint32_t,x_exptr,x_fcn)    { return 0; }
00161     GET_FIELD_CLASS_A(uint32_t,x_fsize,x_fcn)    { return entry.x_fcn.x_fsize; }
00162     GET_FIELD_CLASS_A(uint64_t,x_lnnoptr,x_fcn)    { return entry.x_fcn.x_lnnoptr; }
00163     GET_FIELD_CLASS_A(uint32_t,x_endndx,x_fcn)    { return entry.x_fcn.x_endndx; }
00164     void changeExptrLnnoptrCopy(uint32_t exptr,uint64_t lnnoptr,char* buff);
00165 };
00166 
00167 class AuxilaryCSect : public Auxilary {
00168 public:
00169     AuxilaryCSect(uint32_t idx) : Auxilary(idx) {}
00170     ~AuxilaryCSect() {}
00171 
00172     void print(StringTable* stringTable,DebugSection* debugRawSect,bool followAux);
00173     virtual uint64_t getLength() { __SHOULD_NOT_ARRIVE; return 0; }
00174 
00175 };
00176 
00177 class AuxilaryCSect32 : public AuxilaryCSect {
00178 private:
00179     AUXENT entry;
00180 public:
00181     AuxilaryCSect32(uint32_t idx) : AuxilaryCSect(idx) {}
00182     ~AuxilaryCSect32() {}
00183     uint8_t getAuxilaryType() { return Type__Auxilary_Symbol_CSect; }
00184 
00185     char* charStream() { return (char*)&entry; }
00186     GET_FIELD_CLASS_A(uint32_t,x_scnlen,x_csect)    { return entry.x_csect.x_scnlen; }
00187     GET_FIELD_CLASS_A(uint32_t,x_parmhash,x_csect)    { return entry.x_csect.x_parmhash; }
00188     GET_FIELD_CLASS_A(uint16_t,x_snhash,x_csect)    { return entry.x_csect.x_snhash; }
00189     GET_FIELD_CLASS_A(uint8_t,x_smtyp,x_csect)        { return entry.x_csect.x_smtyp; }
00190     GET_FIELD_CLASS_A(uint8_t,x_smclas,x_csect)        { return entry.x_csect.x_smclas; }
00191     GET_FIELD_CLASS_A(uint32_t,x_stab,x_csect)        { return entry.x_csect.x_stab; }
00192     GET_FIELD_CLASS_A(uint16_t,x_snstab,x_csect)    { return entry.x_csect.x_snstab; }
00193 
00194     uint64_t getLength();
00195 };
00196 
00197 class AuxilaryCSect64 : public AuxilaryCSect {
00198 private:
00199     AUXENT_64 entry;
00200 public:
00201     AuxilaryCSect64(uint32_t idx) : AuxilaryCSect(idx) {}
00202     ~AuxilaryCSect64() {}
00203     uint8_t getAuxilaryType() { return entry.x_auxtype.x_auxtype; }
00204 
00205     char* charStream() { return (char*)&entry; }
00206     GET_FIELD_CLASS_A(uint32_t,x_scnlen_lo,x_csect)    { return entry.x_csect.x_scnlen_lo; }
00207     GET_FIELD_CLASS_A(uint32_t,x_parmhash,x_csect)    { return entry.x_csect.x_parmhash; }
00208     GET_FIELD_CLASS_A(uint16_t,x_snhash,x_csect)    { return entry.x_csect.x_snhash; }
00209     GET_FIELD_CLASS_A(uint8_t,x_smtyp,x_csect)        { return entry.x_csect.x_smtyp; }
00210     GET_FIELD_CLASS_A(uint8_t,x_smclas,x_csect)        { return entry.x_csect.x_smclas; }
00211     GET_FIELD_CLASS_A(uint32_t,x_scnlen_hi,x_csect)    { return entry.x_csect.x_scnlen_hi; }
00212 
00213     uint64_t getLength();
00214 };
00215 
00216 #endif

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