diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2011-10-17 23:53:56 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2011-10-17 23:53:56 +0000 |
commit | 0e752cb4b4eb5676aace4d9f3d7c2e2334c13777 (patch) | |
tree | 10f92903ce3a52dfb93ae0e56b11411fa031a637 /include | |
parent | ab6bcf35aefe823894d349773ebd53f465f122b7 (diff) | |
download | external_llvm-0e752cb4b4eb5676aace4d9f3d7c2e2334c13777.zip external_llvm-0e752cb4b4eb5676aace4d9f3d7c2e2334c13777.tar.gz external_llvm-0e752cb4b4eb5676aace4d9f3d7c2e2334c13777.tar.bz2 |
Object/COFF: Expose more data in the public API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142315 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Object/COFF.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/include/llvm/Object/COFF.h b/include/llvm/Object/COFF.h index 1dd8f98..321bcee 100644 --- a/include/llvm/Object/COFF.h +++ b/include/llvm/Object/COFF.h @@ -73,6 +73,16 @@ struct coff_relocation { support::ulittle16_t Type; }; +struct coff_aux_section_definition { + support::ulittle32_t Length; + support::ulittle16_t NumberOfRelocations; + support::ulittle16_t NumberOfLinenumbers; + support::ulittle32_t CheckSum; + support::ulittle16_t Number; + support::ulittle8_t Selection; + char Unused[3]; +}; + class COFFObjectFile : public ObjectFile { private: const coff_file_header *Header; @@ -81,11 +91,7 @@ private: const char *StringTable; uint32_t StringTableSize; - error_code getSection(int32_t index, - const coff_section *&Res) const; error_code getString(uint32_t offset, StringRef &Res) const; - error_code getSymbol(uint32_t index, - const coff_symbol *&Res) const; const coff_symbol *toSymb(DataRefImpl Symb) const; const coff_section *toSec(DataRefImpl Sec) const; @@ -142,6 +148,17 @@ public: virtual StringRef getFileFormatName() const; virtual unsigned getArch() const; + error_code getHeader(const coff_file_header *&Res) const; + error_code getSection(int32_t index, const coff_section *&Res) const; + error_code getSymbol(uint32_t index, const coff_symbol *&Res) const; + template <typename T> + error_code getAuxSymbol(uint32_t index, const T *&Res) const { + const coff_symbol *s; + error_code ec = getSymbol(index, s); + Res = reinterpret_cast<const T*>(s); + return ec; + } + error_code getSymbolName(const coff_symbol *symbol, StringRef &Res) const; static inline bool classof(const Binary *v) { return v->getType() == isCOFF; |