···11-#ifdef __uClinux__22-#include "elf_no.h"11+#ifndef __ASMm68k_ELF_H22+#define __ASMm68k_ELF_H33+44+/*55+ * ELF register definitions..66+ */77+88+#include <asm/ptrace.h>99+#include <asm/user.h>1010+1111+/*1212+ * 68k ELF relocation types1313+ */1414+#define R_68K_NONE 01515+#define R_68K_32 11616+#define R_68K_16 21717+#define R_68K_8 31818+#define R_68K_PC32 41919+#define R_68K_PC16 52020+#define R_68K_PC8 62121+#define R_68K_GOT32 72222+#define R_68K_GOT16 82323+#define R_68K_GOT8 92424+#define R_68K_GOT32O 102525+#define R_68K_GOT16O 112626+#define R_68K_GOT8O 122727+#define R_68K_PLT32 132828+#define R_68K_PLT16 142929+#define R_68K_PLT8 153030+#define R_68K_PLT32O 163131+#define R_68K_PLT16O 173232+#define R_68K_PLT8O 183333+#define R_68K_COPY 193434+#define R_68K_GLOB_DAT 203535+#define R_68K_JMP_SLOT 213636+#define R_68K_RELATIVE 223737+3838+typedef unsigned long elf_greg_t;3939+4040+#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t))4141+typedef elf_greg_t elf_gregset_t[ELF_NGREG];4242+4343+typedef struct user_m68kfp_struct elf_fpregset_t;4444+4545+/*4646+ * This is used to ensure we don't load something for the wrong architecture.4747+ */4848+#define elf_check_arch(x) ((x)->e_machine == EM_68K)4949+5050+/*5151+ * These are used to set parameters in the core dumps.5252+ */5353+#define ELF_CLASS ELFCLASS325454+#define ELF_DATA ELFDATA2MSB5555+#define ELF_ARCH EM_68K5656+5757+/* For SVR4/m68k the function pointer to be registered with `atexit' is5858+ passed in %a1. Although my copy of the ABI has no such statement, it5959+ is actually used on ASV. */6060+#define ELF_PLAT_INIT(_r, load_addr) _r->a1 = 06161+6262+#define USE_ELF_CORE_DUMP6363+#ifndef CONFIG_SUN36464+#define ELF_EXEC_PAGESIZE 4096365#else44-#include "elf_mm.h"6666+#define ELF_EXEC_PAGESIZE 81926767+#endif6868+6969+/* This is the location that an ET_DYN program is loaded if exec'ed. Typical7070+ use of this is to invoke "./ld.so someprog" to test out a new version of7171+ the loader. We need to make sure that it is out of the way of the program7272+ that it will "exec", and that there is sufficient room for the brk. */7373+7474+#ifndef CONFIG_SUN37575+#define ELF_ET_DYN_BASE 0xD0000000UL7676+#else7777+#define ELF_ET_DYN_BASE 0x0D800000UL7878+#endif7979+8080+#define ELF_CORE_COPY_REGS(pr_reg, regs) \8181+ /* Bleech. */ \8282+ pr_reg[0] = regs->d1; \8383+ pr_reg[1] = regs->d2; \8484+ pr_reg[2] = regs->d3; \8585+ pr_reg[3] = regs->d4; \8686+ pr_reg[4] = regs->d5; \8787+ pr_reg[7] = regs->a0; \8888+ pr_reg[8] = regs->a1; \8989+ pr_reg[9] = regs->a2; \9090+ pr_reg[14] = regs->d0; \9191+ pr_reg[15] = rdusp(); \9292+ pr_reg[16] = regs->orig_d0; \9393+ pr_reg[17] = regs->sr; \9494+ pr_reg[18] = regs->pc; \9595+ pr_reg[19] = (regs->format << 12) | regs->vector; \9696+ { \9797+ struct switch_stack *sw = ((struct switch_stack *)regs) - 1; \9898+ pr_reg[5] = sw->d6; \9999+ pr_reg[6] = sw->d7; \100100+ pr_reg[10] = sw->a3; \101101+ pr_reg[11] = sw->a4; \102102+ pr_reg[12] = sw->a5; \103103+ pr_reg[13] = sw->a6; \104104+ }105105+106106+/* This yields a mask that user programs can use to figure out what107107+ instruction set this cpu supports. */108108+109109+#define ELF_HWCAP (0)110110+111111+/* This yields a string that ld.so will use to load implementation112112+ specific libraries for optimization. This is more specific in113113+ intent than poking at uname or /proc/cpuinfo. */114114+115115+#define ELF_PLATFORM (NULL)116116+117117+#define SET_PERSONALITY(ex) set_personality(PER_LINUX)118118+5119#endif
-119
arch/m68k/include/asm/elf_mm.h
···11-#ifndef __ASMm68k_ELF_H22-#define __ASMm68k_ELF_H33-44-/*55- * ELF register definitions..66- */77-88-#include <asm/ptrace.h>99-#include <asm/user.h>1010-1111-/*1212- * 68k ELF relocation types1313- */1414-#define R_68K_NONE 01515-#define R_68K_32 11616-#define R_68K_16 21717-#define R_68K_8 31818-#define R_68K_PC32 41919-#define R_68K_PC16 52020-#define R_68K_PC8 62121-#define R_68K_GOT32 72222-#define R_68K_GOT16 82323-#define R_68K_GOT8 92424-#define R_68K_GOT32O 102525-#define R_68K_GOT16O 112626-#define R_68K_GOT8O 122727-#define R_68K_PLT32 132828-#define R_68K_PLT16 142929-#define R_68K_PLT8 153030-#define R_68K_PLT32O 163131-#define R_68K_PLT16O 173232-#define R_68K_PLT8O 183333-#define R_68K_COPY 193434-#define R_68K_GLOB_DAT 203535-#define R_68K_JMP_SLOT 213636-#define R_68K_RELATIVE 223737-3838-typedef unsigned long elf_greg_t;3939-4040-#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t))4141-typedef elf_greg_t elf_gregset_t[ELF_NGREG];4242-4343-typedef struct user_m68kfp_struct elf_fpregset_t;4444-4545-/*4646- * This is used to ensure we don't load something for the wrong architecture.4747- */4848-#define elf_check_arch(x) ((x)->e_machine == EM_68K)4949-5050-/*5151- * These are used to set parameters in the core dumps.5252- */5353-#define ELF_CLASS ELFCLASS325454-#define ELF_DATA ELFDATA2MSB5555-#define ELF_ARCH EM_68K5656-5757-/* For SVR4/m68k the function pointer to be registered with `atexit' is5858- passed in %a1. Although my copy of the ABI has no such statement, it5959- is actually used on ASV. */6060-#define ELF_PLAT_INIT(_r, load_addr) _r->a1 = 06161-6262-#define USE_ELF_CORE_DUMP6363-#ifndef CONFIG_SUN36464-#define ELF_EXEC_PAGESIZE 40966565-#else6666-#define ELF_EXEC_PAGESIZE 81926767-#endif6868-6969-/* This is the location that an ET_DYN program is loaded if exec'ed. Typical7070- use of this is to invoke "./ld.so someprog" to test out a new version of7171- the loader. We need to make sure that it is out of the way of the program7272- that it will "exec", and that there is sufficient room for the brk. */7373-7474-#ifndef CONFIG_SUN37575-#define ELF_ET_DYN_BASE 0xD0000000UL7676-#else7777-#define ELF_ET_DYN_BASE 0x0D800000UL7878-#endif7979-8080-#define ELF_CORE_COPY_REGS(pr_reg, regs) \8181- /* Bleech. */ \8282- pr_reg[0] = regs->d1; \8383- pr_reg[1] = regs->d2; \8484- pr_reg[2] = regs->d3; \8585- pr_reg[3] = regs->d4; \8686- pr_reg[4] = regs->d5; \8787- pr_reg[7] = regs->a0; \8888- pr_reg[8] = regs->a1; \8989- pr_reg[9] = regs->a2; \9090- pr_reg[14] = regs->d0; \9191- pr_reg[15] = rdusp(); \9292- pr_reg[16] = regs->orig_d0; \9393- pr_reg[17] = regs->sr; \9494- pr_reg[18] = regs->pc; \9595- pr_reg[19] = (regs->format << 12) | regs->vector; \9696- { \9797- struct switch_stack *sw = ((struct switch_stack *)regs) - 1; \9898- pr_reg[5] = sw->d6; \9999- pr_reg[6] = sw->d7; \100100- pr_reg[10] = sw->a3; \101101- pr_reg[11] = sw->a4; \102102- pr_reg[12] = sw->a5; \103103- pr_reg[13] = sw->a6; \104104- }105105-106106-/* This yields a mask that user programs can use to figure out what107107- instruction set this cpu supports. */108108-109109-#define ELF_HWCAP (0)110110-111111-/* This yields a string that ld.so will use to load implementation112112- specific libraries for optimization. This is more specific in113113- intent than poking at uname or /proc/cpuinfo. */114114-115115-#define ELF_PLATFORM (NULL)116116-117117-#define SET_PERSONALITY(ex) set_personality(PER_LINUX)118118-119119-#endif
-110
arch/m68k/include/asm/elf_no.h
···11-#ifndef __ASMm68k_ELF_H22-#define __ASMm68k_ELF_H33-44-/*55- * ELF register definitions..66- */77-88-#include <asm/ptrace.h>99-#include <asm/user.h>1010-1111-/*1212- * 68k ELF relocation types1313- */1414-#define R_68K_NONE 01515-#define R_68K_32 11616-#define R_68K_16 21717-#define R_68K_8 31818-#define R_68K_PC32 41919-#define R_68K_PC16 52020-#define R_68K_PC8 62121-#define R_68K_GOT32 72222-#define R_68K_GOT16 82323-#define R_68K_GOT8 92424-#define R_68K_GOT32O 102525-#define R_68K_GOT16O 112626-#define R_68K_GOT8O 122727-#define R_68K_PLT32 132828-#define R_68K_PLT16 142929-#define R_68K_PLT8 153030-#define R_68K_PLT32O 163131-#define R_68K_PLT16O 173232-#define R_68K_PLT8O 183333-#define R_68K_COPY 193434-#define R_68K_GLOB_DAT 203535-#define R_68K_JMP_SLOT 213636-#define R_68K_RELATIVE 223737-3838-typedef unsigned long elf_greg_t;3939-4040-#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t))4141-typedef elf_greg_t elf_gregset_t[ELF_NGREG];4242-4343-typedef struct user_m68kfp_struct elf_fpregset_t;4444-4545-/*4646- * This is used to ensure we don't load something for the wrong architecture.4747- */4848-#define elf_check_arch(x) ((x)->e_machine == EM_68K)4949-5050-/*5151- * These are used to set parameters in the core dumps.5252- */5353-#define ELF_CLASS ELFCLASS325454-#define ELF_DATA ELFDATA2MSB5555-#define ELF_ARCH EM_68K5656-5757-/* For SVR4/m68k the function pointer to be registered with `atexit' is5858- passed in %a1. Although my copy of the ABI has no such statement, it5959- is actually used on ASV. */6060-#define ELF_PLAT_INIT(_r, load_addr) _r->a1 = 06161-6262-#define USE_ELF_CORE_DUMP6363-#define ELF_EXEC_PAGESIZE 40966464-6565-/* This is the location that an ET_DYN program is loaded if exec'ed. Typical6666- use of this is to invoke "./ld.so someprog" to test out a new version of6767- the loader. We need to make sure that it is out of the way of the program6868- that it will "exec", and that there is sufficient room for the brk. */6969-7070-#define ELF_ET_DYN_BASE 0xD0000000UL7171-7272-#define ELF_CORE_COPY_REGS(pr_reg, regs) \7373- /* Bleech. */ \7474- pr_reg[0] = regs->d1; \7575- pr_reg[1] = regs->d2; \7676- pr_reg[2] = regs->d3; \7777- pr_reg[3] = regs->d4; \7878- pr_reg[4] = regs->d5; \7979- pr_reg[7] = regs->a0; \8080- pr_reg[8] = regs->a1; \8181- pr_reg[14] = regs->d0; \8282- pr_reg[15] = rdusp(); \8383- pr_reg[16] = 0 /* regs->orig_d0 */; \8484- pr_reg[17] = regs->sr; \8585- pr_reg[18] = regs->pc; \8686- /* pr_reg[19] = (regs->format << 12) | regs->vector; */ \8787- { \8888- struct switch_stack *sw = ((struct switch_stack *)regs) - 1; \8989- pr_reg[5] = sw->d6; \9090- pr_reg[6] = sw->d7; \9191- pr_reg[10] = sw->a3; \9292- pr_reg[11] = sw->a4; \9393- pr_reg[12] = sw->a5; \9494- pr_reg[13] = sw->a6; \9595- }9696-9797-/* This yields a mask that user programs can use to figure out what9898- instruction set this cpu supports. */9999-100100-#define ELF_HWCAP (0)101101-102102-/* This yields a string that ld.so will use to load implementation103103- specific libraries for optimization. This is more specific in104104- intent than poking at uname or /proc/cpuinfo. */105105-106106-#define ELF_PLATFORM (NULL)107107-108108-#define SET_PERSONALITY(ex) set_personality(PER_LINUX)109109-110110-#endif