Remove registers.h and move the stack frame definition into ptrace.h to be consistent with the other ports.
Signed-off-by: Michael Walle <mich...@walle.cc> --- arch/lm32/include/asm/elf.h | 14 +++--- arch/lm32/include/asm/ptrace.h | 75 +++++++++++++++++++++++++------ arch/lm32/include/asm/registers.h | 88 ------------------------------------ arch/lm32/include/asm/sigcontext.h | 19 ++------ arch/lm32/kernel/entry.S | 2 +- arch/lm32/kernel/ptrace.c | 1 - arch/lm32/kernel/traps.c | 1 - 7 files changed, 75 insertions(+), 125 deletions(-) delete mode 100644 arch/lm32/include/asm/registers.h diff --git a/arch/lm32/include/asm/elf.h b/arch/lm32/include/asm/elf.h index 2fa63d5..a16d2d8 100644 --- a/arch/lm32/include/asm/elf.h +++ b/arch/lm32/include/asm/elf.h @@ -21,11 +21,10 @@ * MA 02111-1307 USA */ -#ifndef _LM32_ASM_ELF_H -#define _LM32_ASM_ELF_H +#ifndef _ASM_LM32_ELF_H +#define _ASM_LM32_ELF_H -#include <asm/registers.h> -#include <asm/user.h> +#include <linux/ptrace.h> /* * ELF register definitions.. @@ -53,17 +52,20 @@ #define R_LM32_GNU_VTINHERIT 9 #define R_LM32_GNU_VTENTRY 10 +/* ELF register definitions */ typedef unsigned long elf_greg_t; #define ELF_NGREG (sizeof(struct pt_regs) / sizeof(elf_greg_t)) typedef elf_greg_t elf_gregset_t[ELF_NGREG]; -typedef struct fp_regs elf_fpregset_t; +/* LM32 does not have fp regs */ +typedef unsigned long elf_fpreg_t; +typedef elf_fpreg_t elf_fpregset_t; /* * This is used to ensure we don't load something for the wrong architecture. */ -#define elf_check_arch(x) (((x)->e_machine == EM_LM32)||((x)->e_machine == EM_LM32_OLD)) +#define elf_check_arch(x) (((x)->e_machine == EM_LM32) || ((x)->e_machine == EM_LM32_OLD)) #define elf_check_fdpic(x) (1) #define elf_check_const_displacement(x) (1) diff --git a/arch/lm32/include/asm/ptrace.h b/arch/lm32/include/asm/ptrace.h index 031e119..02a324e 100644 --- a/arch/lm32/include/asm/ptrace.h +++ b/arch/lm32/include/asm/ptrace.h @@ -21,11 +21,67 @@ * MA 02111-1307 USA */ -#ifndef _LM32_ASM_PTRACE_H -#define _LM32_ASM_PTRACE_H +#ifndef _ASM_LM32_PTRACE_H +#define _ASM_LM32_PTRACE_H -#include <asm/registers.h> +#define PT_MODE_KERNEL 1 +#define PT_MODE_USER 0 +#ifndef __ASSEMBLY__ + +typedef unsigned long lm32_reg_t; + +struct pt_regs { + lm32_reg_t r0; + lm32_reg_t r1; + lm32_reg_t r2; + lm32_reg_t r3; + lm32_reg_t r4; + lm32_reg_t r5; + lm32_reg_t r6; + lm32_reg_t r7; + lm32_reg_t r8; + lm32_reg_t r9; + lm32_reg_t r10; + lm32_reg_t r11; + lm32_reg_t r12; + lm32_reg_t r13; + lm32_reg_t r14; + lm32_reg_t r15; + lm32_reg_t r16; + lm32_reg_t r17; + lm32_reg_t r18; + lm32_reg_t r19; + lm32_reg_t r20; + lm32_reg_t r21; + lm32_reg_t r22; + lm32_reg_t r23; + lm32_reg_t r24; + lm32_reg_t r25; + lm32_reg_t gp; + lm32_reg_t fp; + lm32_reg_t sp; + lm32_reg_t ra; + lm32_reg_t ea; + lm32_reg_t ba; + unsigned int pt_mode; +}; + +#ifdef __KERNEL__ +#define user_mode(regs) ((regs)->pt_mode == PT_MODE_USER) + +#define instruction_pointer(regs) ((regs)->ea) +#define profile_pc(regs) instruction_pointer(regs) + +void show_regs(struct pt_regs *); + +#else /* !__KERNEL__ */ + +/* TBD (gdbserver/ptrace) */ + +#endif /* !__KERNEL__ */ + +/* FIXME: remove this ? */ /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ #define PTRACE_GETREGS 12 #define PTRACE_SETREGS 13 @@ -40,15 +96,6 @@ #define PT_TEXT_END_ADDR 51 #define PT_DATA_ADDR 52 -#ifdef __KERNEL__ -#ifndef __ASSEMBLY__ - -#define user_mode(regs) ((regs)->pt_mode == PT_MODE_USER) -#define instruction_pointer(regs) ((regs)->ea) -#define profile_pc(regs) instruction_pointer(regs) -extern void show_regs(struct pt_regs *); - -#endif -#endif +#endif /* !__ASSEMBLY__ */ -#endif /* _LM32_PTRACE_H */ +#endif /* _ASM_LM32_PTRACE_H */ diff --git a/arch/lm32/include/asm/registers.h b/arch/lm32/include/asm/registers.h deleted file mode 100644 index 8f52e8c..0000000 --- a/arch/lm32/include/asm/registers.h +++ /dev/null @@ -1,88 +0,0 @@ - -/* registers.h: register frame declarations - * - * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. - * Written by David Howells (dhowe...@redhat.com) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - */ - -#ifndef _ASM_REGISTERS_H -#define _ASM_REGISTERS_H - -#define PT_MODE_KERNEL 1 -#define PT_MODE_USER 0 - -#ifndef __ASSEMBLY__ - -/* this struct defines the way the registers are stored on the - stack during a system call. */ -struct pt_regs { - long r0; - long r1; - long r2; - long r3; - long r4; - long r5; - long r6; - long r7; - long r8; - long r9; - long r10; - long r11; - long r12; - long r13; - long r14; - long r15; - long r16; - long r17; - long r18; - long r19; - long r20; - long r21; - long r22; - long r23; - long r24; - long r25; - long gp; - long fp; - long sp; - long ra; - long ea; - long ba; - unsigned int pt_mode; -}; - -/* this defines the registers stored during an interrupt */ -struct int_regs { - long r1; - long r2; - long r3; - long r4; - long r5; - long r6; - long r7; - long r8; - long r9; - long r10; - long ra; - long ea; -}; - -/* no fp_regs but the kernel likes to have them */ -struct fp_regs -{ -}; - -struct user_context -{ - struct pt_regs regs; - struct fp_regs fpregs; -} __attribute__((aligned(4))); - -#endif /* __ASSEMBLY__ */ - -#endif diff --git a/arch/lm32/include/asm/sigcontext.h b/arch/lm32/include/asm/sigcontext.h index 80489bc..8e469a5 100644 --- a/arch/lm32/include/asm/sigcontext.h +++ b/arch/lm32/include/asm/sigcontext.h @@ -21,10 +21,11 @@ * MA 02111-1307 USA */ -#ifndef __ASM_LM32_SIGCONTEXT_H -#define __ASM_LM32_SIGCONTEXT_H +#ifndef _ASM_LM32_SIGCONTEXT_H +#define _ASM_LM32_SIGCONTEXT_H -#include <asm/registers.h> +/* FIXME should be linux/ptrace.h */ +#include <asm/ptrace.h> /* * Signal context structure - contains all info to do with the state @@ -34,16 +35,6 @@ struct sigcontext { struct pt_regs regs; unsigned long oldmask; - /* TODO - unsigned long exception_no; - unsigned long sc_pc; - unsigned long sc_regs[32]; - unsigned long sc_EBA; - unsigned long sc_DEBA; - unsigned long sc_IM; - unsigned long sc_IP; - */ }; - -#endif +#endif /* _ASM_LM32_SIGCONTEXT_H */ diff --git a/arch/lm32/kernel/entry.S b/arch/lm32/kernel/entry.S index 24c1740..f957def 100644 --- a/arch/lm32/kernel/entry.S +++ b/arch/lm32/kernel/entry.S @@ -7,7 +7,7 @@ #include <asm/setup.h> #include <asm/segment.h> #include <asm/asm-offsets.h> -#include <asm/registers.h> +#include <asm/ptrace.h> /* * Exception vector table (see "LatticeMico32 Processor Reference Manual") diff --git a/arch/lm32/kernel/ptrace.c b/arch/lm32/kernel/ptrace.c index d963d66..7a91417 100644 --- a/arch/lm32/kernel/ptrace.c +++ b/arch/lm32/kernel/ptrace.c @@ -29,7 +29,6 @@ #include <linux/user.h> #include <linux/signal.h> -#include <asm/registers.h> #include <asm/uaccess.h> void ptrace_disable(struct task_struct *child) diff --git a/arch/lm32/kernel/traps.c b/arch/lm32/kernel/traps.c index 503339b..33b4022 100644 --- a/arch/lm32/kernel/traps.c +++ b/arch/lm32/kernel/traps.c @@ -35,7 +35,6 @@ #include <linux/module.h> #include <asm/system.h> -#include <asm/registers.h> #include <asm/traps.h> extern unsigned long reset_handler; -- 1.7.2.3 _______________________________________________ http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org IRC: #milkymist@Freenode Twitter: www.twitter.com/milkymistvj Ideas? http://milkymist.uservoice.com