Commit 30ac07d4f044975c324933eccc56bbd28a9a8a19

Authored by bellard
1 parent 88570520

moved i386 specific stuff outside elf.h


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@78 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 37 additions and 0 deletions
linux-user/elfload.c
... ... @@ -12,6 +12,43 @@
12 12  
13 13 #include "qemu.h"
14 14  
  15 +#ifdef TARGET_I386
  16 +
  17 +#define ELF_START_MMAP 0x80000000
  18 +
  19 +typedef uint32_t elf_greg_t;
  20 +
  21 +#define ELF_NGREG (sizeof (struct target_pt_regs) / sizeof(elf_greg_t))
  22 +typedef elf_greg_t elf_gregset_t[ELF_NGREG];
  23 +
  24 +typedef struct user_i387_struct elf_fpregset_t;
  25 +
  26 +/*
  27 + * This is used to ensure we don't load something for the wrong architecture.
  28 + */
  29 +#define elf_check_arch(x) ( ((x) == EM_386) || ((x) == EM_486) )
  30 +
  31 +/*
  32 + * These are used to set parameters in the core dumps.
  33 + */
  34 +#define ELF_CLASS ELFCLASS32
  35 +#define ELF_DATA ELFDATA2LSB
  36 +#define ELF_ARCH EM_386
  37 +
  38 + /* SVR4/i386 ABI (pages 3-31, 3-32) says that when the program
  39 + starts %edx contains a pointer to a function which might be
  40 + registered using `atexit'. This provides a mean for the
  41 + dynamic linker to call DT_FINI functions for shared libraries
  42 + that have been loaded before the code runs.
  43 +
  44 + A value of 0 tells we have no such handler. */
  45 +#define ELF_PLAT_INIT(_r) _r->edx = 0
  46 +
  47 +#define USE_ELF_CORE_DUMP
  48 +#define ELF_EXEC_PAGESIZE 4096
  49 +
  50 +#endif
  51 +
15 52 #include "linux_bin.h"
16 53 #include "elf.h"
17 54 #include "segment.h"
... ...