src/share/vm/utilities/elfSymbolTable.hpp

Print this page
rev 5729 : 8019929: PPC64 (part 107): Extend ELF-decoder to support PPC64 function descriptor tables

*** 43,53 **** --- 43,57 ---- public: ElfSymbolTable(FILE* file, Elf_Shdr shdr); ~ElfSymbolTable(); // search the symbol that is nearest to the specified address. + #if defined(PPC64) + bool lookup(address addr, int* stringtableIndex, int* posIndex, int* offset, ElfFuncDescTable* funcDescTable); + #else bool lookup(address addr, int* stringtableIndex, int* posIndex, int* offset); + #endif NullDecoder::decoder_status get_status() { return m_status; }; protected: ElfSymbolTable* m_next;
*** 63,70 **** --- 67,103 ---- Elf_Shdr m_shdr; NullDecoder::decoder_status m_status; }; + #if defined(PPC64) + + class ElfFuncDescTable: public CHeapObj<mtInternal> { + friend class ElfFile; + public: + ElfFuncDescTable(FILE* file, Elf_Shdr shdr); + ~ElfFuncDescTable(); + + // return the function address for the function descriptor at 'index' or NULL on error + address lookup(Elf_Word index); + + NullDecoder::decoder_status get_status() { return m_status; }; + + protected: + // holds the complete function descriptor section if + // we can allocate enough memory + address* m_funcDescs; + + // file contains string table + FILE* m_file; + + // section header + Elf_Shdr m_shdr; + + NullDecoder::decoder_status m_status; + }; + + #endif + #endif // _WINDOWS and _APPLE #endif // SHARE_VM_UTILITIES_ELF_SYMBOL_TABLE_HPP