ptrace.h (4ba24fef3eb3b142197135223b90ced2f319cd53) | ptrace.h (92d5dd8cd6e2b211d32d8fbc6cf4b7470765a09f) |
---|---|
1/* 2 * Copyright (C) 2013 Altera Corporation 3 * Copyright (C) 2010 Tobias Klauser <tklauser@distanz.ch> 4 * Copyright (C) 2004 Microtronix Datacom Ltd 5 * 6 * based on m68k asm/processor.h 7 * 8 * This file is subject to the terms and conditions of the GNU General Public 9 * License. See the file "COPYING" in the main directory of this archive 10 * for more details. 11 */ 12 13#ifndef _ASM_NIOS2_PTRACE_H 14#define _ASM_NIOS2_PTRACE_H 15 16#include <uapi/asm/ptrace.h> 17 | 1/* 2 * Copyright (C) 2013 Altera Corporation 3 * Copyright (C) 2010 Tobias Klauser <tklauser@distanz.ch> 4 * Copyright (C) 2004 Microtronix Datacom Ltd 5 * 6 * based on m68k asm/processor.h 7 * 8 * This file is subject to the terms and conditions of the GNU General Public 9 * License. See the file "COPYING" in the main directory of this archive 10 * for more details. 11 */ 12 13#ifndef _ASM_NIOS2_PTRACE_H 14#define _ASM_NIOS2_PTRACE_H 15 16#include <uapi/asm/ptrace.h> 17 |
18/* This struct defines the way the registers are stored on the 19 stack during a system call. */ 20 |
|
18#ifndef __ASSEMBLY__ | 21#ifndef __ASSEMBLY__ |
22struct pt_regs { 23 unsigned long r8; /* r8-r15 Caller-saved GP registers */ 24 unsigned long r9; 25 unsigned long r10; 26 unsigned long r11; 27 unsigned long r12; 28 unsigned long r13; 29 unsigned long r14; 30 unsigned long r15; 31 unsigned long r1; /* Assembler temporary */ 32 unsigned long r2; /* Retval LS 32bits */ 33 unsigned long r3; /* Retval MS 32bits */ 34 unsigned long r4; /* r4-r7 Register arguments */ 35 unsigned long r5; 36 unsigned long r6; 37 unsigned long r7; 38 unsigned long orig_r2; /* Copy of r2 ?? */ 39 unsigned long ra; /* Return address */ 40 unsigned long fp; /* Frame pointer */ 41 unsigned long sp; /* Stack pointer */ 42 unsigned long gp; /* Global pointer */ 43 unsigned long estatus; 44 unsigned long ea; /* Exception return address (pc) */ 45 unsigned long orig_r7; 46}; 47 48/* 49 * This is the extended stack used by signal handlers and the context 50 * switcher: it's pushed after the normal "struct pt_regs". 51 */ 52struct switch_stack { 53 unsigned long r16; /* r16-r23 Callee-saved GP registers */ 54 unsigned long r17; 55 unsigned long r18; 56 unsigned long r19; 57 unsigned long r20; 58 unsigned long r21; 59 unsigned long r22; 60 unsigned long r23; 61 unsigned long fp; 62 unsigned long gp; 63 unsigned long ra; 64}; 65 |
|
19#define user_mode(regs) (((regs)->estatus & ESTATUS_EU)) 20 21#define instruction_pointer(regs) ((regs)->ra) 22#define profile_pc(regs) instruction_pointer(regs) 23#define user_stack_pointer(regs) ((regs)->sp) 24extern void show_regs(struct pt_regs *); 25 26#define current_pt_regs() \ 27 ((struct pt_regs *)((unsigned long)current_thread_info() + THREAD_SIZE)\ 28 - 1) 29 30int do_syscall_trace_enter(void); 31void do_syscall_trace_exit(void); 32#endif /* __ASSEMBLY__ */ 33#endif /* _ASM_NIOS2_PTRACE_H */ | 66#define user_mode(regs) (((regs)->estatus & ESTATUS_EU)) 67 68#define instruction_pointer(regs) ((regs)->ra) 69#define profile_pc(regs) instruction_pointer(regs) 70#define user_stack_pointer(regs) ((regs)->sp) 71extern void show_regs(struct pt_regs *); 72 73#define current_pt_regs() \ 74 ((struct pt_regs *)((unsigned long)current_thread_info() + THREAD_SIZE)\ 75 - 1) 76 77int do_syscall_trace_enter(void); 78void do_syscall_trace_exit(void); 79#endif /* __ASSEMBLY__ */ 80#endif /* _ASM_NIOS2_PTRACE_H */ |