Loading arch/mn10300/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ mainmenu "Linux Kernel Configuration" config MN10300 def_bool y select HAVE_OPROFILE select HAVE_ARCH_TRACEHOOK config AM33 def_bool y Loading arch/mn10300/include/asm/elf.h +2 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ */ typedef unsigned long elf_greg_t; #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) #define ELF_NGREG ((sizeof(struct pt_regs) / sizeof(elf_greg_t)) - 1) typedef elf_greg_t elf_gregset_t[ELF_NGREG]; #define ELF_NFPREG 32 Loading Loading @@ -76,6 +76,7 @@ do { \ } while (0) #define USE_ELF_CORE_DUMP #define CORE_DUMP_USE_REGSET #define ELF_EXEC_PAGESIZE 4096 /* Loading arch/mn10300/include/asm/processor.h +1 −7 Original line number Diff line number Diff line Loading @@ -143,13 +143,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); unsigned long get_wchan(struct task_struct *p); #define task_pt_regs(task) \ ({ \ struct pt_regs *__regs__; \ __regs__ = (struct pt_regs *) (KSTK_TOP(task_stack_page(task)) - 8); \ __regs__ - 1; \ }) #define task_pt_regs(task) ((task)->thread.uregs) #define KSTK_EIP(task) (task_pt_regs(task)->pc) #define KSTK_ESP(task) (task_pt_regs(task)->sp) Loading arch/mn10300/include/asm/ptrace.h +8 −0 Original line number Diff line number Diff line Loading @@ -91,9 +91,17 @@ extern struct pt_regs *__frame; /* current frame pointer */ #if defined(__KERNEL__) #if !defined(__ASSEMBLY__) struct task_struct; #define user_mode(regs) (((regs)->epsw & EPSW_nSL) == EPSW_nSL) #define instruction_pointer(regs) ((regs)->pc) #define user_stack_pointer(regs) ((regs)->sp) extern void show_regs(struct pt_regs *); #define arch_has_single_step() (1) extern void user_enable_single_step(struct task_struct *); extern void user_disable_single_step(struct task_struct *); #endif /* !__ASSEMBLY */ #define profile_pc(regs) ((regs)->pc) Loading arch/mn10300/kernel/entry.S +5 −8 Original line number Diff line number Diff line Loading @@ -76,7 +76,7 @@ ENTRY(system_call) cmp nr_syscalls,d0 bcc syscall_badsys btst _TIF_SYSCALL_TRACE,(TI_flags,a2) bne syscall_trace_entry bne syscall_entry_trace syscall_call: add d0,d0,a1 add a1,a1 Loading Loading @@ -104,11 +104,10 @@ restore_all: syscall_exit_work: btst _TIF_SYSCALL_TRACE,d2 beq work_pending __sti # could let do_syscall_trace() call __sti # could let syscall_trace_exit() call # schedule() instead mov fp,d0 mov 1,d1 call do_syscall_trace[],0 # do_syscall_trace(regs,entryexit) call syscall_trace_exit[],0 # do_syscall_trace(regs) jmp resume_userspace ALIGN Loading Loading @@ -138,13 +137,11 @@ work_notifysig: jmp resume_userspace # perform syscall entry tracing syscall_trace_entry: syscall_entry_trace: mov -ENOSYS,d0 mov d0,(REG_D0,fp) mov fp,d0 clr d1 call do_syscall_trace[],0 mov (REG_ORIG_D0,fp),d0 call syscall_trace_entry[],0 # returns the syscall number to actually use mov (REG_D1,fp),d1 cmp nr_syscalls,d0 bcs syscall_call Loading Loading
arch/mn10300/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ mainmenu "Linux Kernel Configuration" config MN10300 def_bool y select HAVE_OPROFILE select HAVE_ARCH_TRACEHOOK config AM33 def_bool y Loading
arch/mn10300/include/asm/elf.h +2 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ */ typedef unsigned long elf_greg_t; #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) #define ELF_NGREG ((sizeof(struct pt_regs) / sizeof(elf_greg_t)) - 1) typedef elf_greg_t elf_gregset_t[ELF_NGREG]; #define ELF_NFPREG 32 Loading Loading @@ -76,6 +76,7 @@ do { \ } while (0) #define USE_ELF_CORE_DUMP #define CORE_DUMP_USE_REGSET #define ELF_EXEC_PAGESIZE 4096 /* Loading
arch/mn10300/include/asm/processor.h +1 −7 Original line number Diff line number Diff line Loading @@ -143,13 +143,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); unsigned long get_wchan(struct task_struct *p); #define task_pt_regs(task) \ ({ \ struct pt_regs *__regs__; \ __regs__ = (struct pt_regs *) (KSTK_TOP(task_stack_page(task)) - 8); \ __regs__ - 1; \ }) #define task_pt_regs(task) ((task)->thread.uregs) #define KSTK_EIP(task) (task_pt_regs(task)->pc) #define KSTK_ESP(task) (task_pt_regs(task)->sp) Loading
arch/mn10300/include/asm/ptrace.h +8 −0 Original line number Diff line number Diff line Loading @@ -91,9 +91,17 @@ extern struct pt_regs *__frame; /* current frame pointer */ #if defined(__KERNEL__) #if !defined(__ASSEMBLY__) struct task_struct; #define user_mode(regs) (((regs)->epsw & EPSW_nSL) == EPSW_nSL) #define instruction_pointer(regs) ((regs)->pc) #define user_stack_pointer(regs) ((regs)->sp) extern void show_regs(struct pt_regs *); #define arch_has_single_step() (1) extern void user_enable_single_step(struct task_struct *); extern void user_disable_single_step(struct task_struct *); #endif /* !__ASSEMBLY */ #define profile_pc(regs) ((regs)->pc) Loading
arch/mn10300/kernel/entry.S +5 −8 Original line number Diff line number Diff line Loading @@ -76,7 +76,7 @@ ENTRY(system_call) cmp nr_syscalls,d0 bcc syscall_badsys btst _TIF_SYSCALL_TRACE,(TI_flags,a2) bne syscall_trace_entry bne syscall_entry_trace syscall_call: add d0,d0,a1 add a1,a1 Loading Loading @@ -104,11 +104,10 @@ restore_all: syscall_exit_work: btst _TIF_SYSCALL_TRACE,d2 beq work_pending __sti # could let do_syscall_trace() call __sti # could let syscall_trace_exit() call # schedule() instead mov fp,d0 mov 1,d1 call do_syscall_trace[],0 # do_syscall_trace(regs,entryexit) call syscall_trace_exit[],0 # do_syscall_trace(regs) jmp resume_userspace ALIGN Loading Loading @@ -138,13 +137,11 @@ work_notifysig: jmp resume_userspace # perform syscall entry tracing syscall_trace_entry: syscall_entry_trace: mov -ENOSYS,d0 mov d0,(REG_D0,fp) mov fp,d0 clr d1 call do_syscall_trace[],0 mov (REG_ORIG_D0,fp),d0 call syscall_trace_entry[],0 # returns the syscall number to actually use mov (REG_D1,fp),d1 cmp nr_syscalls,d0 bcs syscall_call Loading