// AOutExe.h: interface for the CAOutExe class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_AOUTEXE_H__76FD01E6_B5BB_4D69_80A6_5C25409A325E__INCLUDED_) #define AFX_AOUTEXE_H__76FD01E6_B5BB_4D69_80A6_5C25409A325E__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "ProgramFile.h" #include const unsigned int F_EXEC=0000002; const int NUMSECTIONTYPES=4; const unsigned int STYP_TEXT=0x20; const unsigned int STYP_DATA=0x40; const unsigned int STYP_RDATA=0x100; const unsigned int STYP_SDATA=0x200; struct fileHeader { unsigned short magicNumber; unsigned short numSections; int timeAndDate; int symbolsPointer; int sizeOfSymbols; unsigned short sizeOfOptionalHeader; unsigned short flags; }; struct sectionHeader { char name[8]; int physicalAddress; int virtualAddress; int sectionSize; int pointerToData; int pointerToRelocation; int pointerToGPHistogram; unsigned short numRelocationEntries; unsigned short numGPEntries; int flags; }; struct optionalHeader { unsigned short magic; unsigned short vstamp; unsigned int tsize; unsigned int dsize; unsigned int bsize; unsigned int entry; unsigned int text_start; unsigned int data_start; unsigned int bss_start; unsigned int gprmask; unsigned int cprmask[4]; unsigned int gp_value; }; struct sectionType { unsigned int flags; char name[8]; }; class CAOutExe : public CProgramFile { public: CAOutExe(); virtual ~CAOutExe(); bool OpenForReading(TCHAR* filename); private: virtual bool SendThread(); static sectionType m_SectionsForLoading[]; sectionHeader* m_Section; unsigned int m_NumSections; }; #endif // !defined(AFX_AOUTEXE_H__76FD01E6_B5BB_4D69_80A6_5C25409A325E__INCLUDED_)