| /* |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation, or (at your option) any |
| * later version. See the COPYING file in the top-level directory. |
| */ |
| |
| #ifndef I386_TARGET_ELF_H |
| #define I386_TARGET_ELF_H |
| |
| #include "target_ptrace.h" |
| |
| #define ELF_CLASS ELFCLASS32 |
| #define ELF_MACHINE EM_386 |
| #define EXSTACK_DEFAULT true |
| #define VDSO_HEADER "vdso.c.inc" |
| |
| #define HAVE_ELF_HWCAP 1 |
| #define HAVE_ELF_PLATFORM 1 |
| #define HAVE_ELF_CORE_DUMP 1 |
| |
| /* |
| * See linux kernel: arch/x86/include/asm/elf.h, where elf_gregset_t |
| * is mapped to struct user_regs_struct via sizeof. |
| */ |
| typedef struct target_elf_gregset_t { |
| struct target_user_regs_struct pt; |
| } target_elf_gregset_t; |
| |
| /* |
| * This is used to ensure we don't load something for the wrong architecture. |
| */ |
| #define elf_check_machine(x) ((x) == EM_386 || (x) == EM_486) |
| |
| /* |
| * i386 is the only target which supplies AT_SYSINFO for the vdso. |
| * All others only supply AT_SYSINFO_EHDR. |
| */ |
| #define DLINFO_ARCH_ITEMS (vdso_info != NULL) |
| #define ARCH_DLINFO \ |
| do { \ |
| if (vdso_info) { \ |
| NEW_AUX_ENT(AT_SYSINFO, vdso_info->entry); \ |
| } \ |
| } while (0) |
| |
| #endif |