1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

Expose integral types in p_elf.h.

This commit is contained in:
Markus F.X.J. Oberhumer 2006-12-19 10:49:13 +01:00
parent 4c068e3e00
commit 767bc71870
2 changed files with 22 additions and 2 deletions

View File

@ -37,9 +37,14 @@
namespace N_Elf {
// The ELF file header. This appears at the start of every ELF file.
template <class Word, class Addr, class Off, class Half>
template <class TWord, class TAddr, class TOff, class THalf>
struct Ehdr
{
typedef TWord Word;
typedef TAddr Addr;
typedef TOff Off;
typedef THalf Half;
unsigned char e_ident[16]; /* Magic number and other info */
Half e_type; /* Object file type */
Half e_machine; /* Architecture */
@ -422,6 +427,14 @@ template <class TP, class TEhdr, class TPhdr, class TShdr, class TDyn, class TSy
struct ElfClass
{
typedef TP BeLePolicy;
// integral types
typedef typename TP::U16 U16;
typedef typename TP::U32 U32;
typedef typename TP::U64 U64;
typedef typename TEhdr::Addr Addr;
// ELF types
typedef TEhdr Ehdr;
typedef TPhdr Phdr;
typedef TShdr Shdr;

View File

@ -41,10 +41,17 @@ class PackVmlinuxBase : public Packer
{
typedef Packer super;
protected:
// integral types
typedef typename TElfClass::U16 U16;
typedef typename TElfClass::U32 U32;
typedef typename TElfClass::U64 U64;
typedef typename TElfClass::Addr Addr;
// ELF types
typedef typename TElfClass::Ehdr Ehdr;
typedef typename TElfClass::Shdr Shdr;
typedef typename TElfClass::Phdr Phdr;
typedef /*typename TElfClass::Addr*/ unsigned long Addr;
typedef typename TElfClass::Dyn Dyn;
typedef typename TElfClass::Sym Sym;
public:
PackVmlinuxBase(InputFile *f,