mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-18 05:28:36 -07:00
Support for executing 32 bit SPARC32PLUS files for Sparc64 user emulator
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3378 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
bf367b5409
commit
cb33da57aa
9 changed files with 149 additions and 48 deletions
30
linux-user/elfload32.c
Executable file
30
linux-user/elfload32.c
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
#define OVERRIDE_ELF_CLASS ELFCLASS32
|
||||
#define load_elf_binary load_elf_binary32
|
||||
#define do_init_thread do_init_thread32
|
||||
|
||||
#include "elfload.c"
|
||||
|
||||
#undef load_elf_binary
|
||||
#undef do_init_thread
|
||||
|
||||
int load_elf_binary(struct linux_binprm *bprm, struct target_pt_regs *regs,
|
||||
struct image_info *info);
|
||||
|
||||
int load_elf_binary_multi(struct linux_binprm *bprm,
|
||||
struct target_pt_regs *regs,
|
||||
struct image_info *info)
|
||||
{
|
||||
struct elfhdr *elf_ex;
|
||||
int retval;
|
||||
|
||||
elf_ex = (struct elfhdr *) bprm->buf; /* exec-header */
|
||||
if (elf_ex->e_ident[EI_CLASS] == ELFCLASS64) {
|
||||
retval = load_elf_binary(bprm, regs, info);
|
||||
} else {
|
||||
retval = load_elf_binary32(bprm, regs, info);
|
||||
if (personality(info->personality) == PER_LINUX)
|
||||
info->personality = PER_LINUX32;
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue