Blame view
include/asm-alpha/ptrace.h
1.96 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
#ifndef _ASMAXP_PTRACE_H #define _ASMAXP_PTRACE_H /* * This struct defines the way the registers are stored on the * kernel stack during a system call or other kernel entry * * NOTE! I want to minimize the overhead of system calls, so this * struct has as little information as possible. I does not have * * - floating point regs: the kernel doesn't change those * - r9-15: saved by the C compiler * * This makes "fork()" and "exec()" a bit more complex, but should * give us low system call latency. */ struct pt_regs { unsigned long r0; unsigned long r1; unsigned long r2; unsigned long r3; unsigned long r4; unsigned long r5; unsigned long r6; unsigned long r7; unsigned long r8; unsigned long r19; unsigned long r20; unsigned long r21; unsigned long r22; unsigned long r23; unsigned long r24; unsigned long r25; unsigned long r26; unsigned long r27; unsigned long r28; unsigned long hae; /* JRP - These are the values provided to a0-a2 by PALcode */ unsigned long trap_a0; unsigned long trap_a1; unsigned long trap_a2; /* These are saved by PAL-code: */ unsigned long ps; unsigned long pc; unsigned long gp; unsigned long r16; unsigned long r17; unsigned long r18; }; /* * This is the extended stack used by signal handlers and the context * switcher: it's pushed after the normal "struct pt_regs". */ struct switch_stack { unsigned long r9; unsigned long r10; unsigned long r11; unsigned long r12; unsigned long r13; unsigned long r14; unsigned long r15; unsigned long r26; unsigned long fp[32]; /* fp[31] is fpcr */ }; #ifdef __KERNEL__ |
481bed454 [PATCH] consolida... |
70 71 |
#define __ARCH_SYS_PTRACE 1 |
1da177e4c Linux-2.6.12-rc2 |
72 73 74 75 |
#define user_mode(regs) (((regs)->ps & 8) != 0) #define instruction_pointer(regs) ((regs)->pc) #define profile_pc(regs) instruction_pointer(regs) extern void show_regs(struct pt_regs *); |
e52f4ca2a [PATCH] alpha: ta... |
76 |
#define task_pt_regs(task) \ |
27f451304 [PATCH] alpha: ta... |
77 |
((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1) |
1da177e4c Linux-2.6.12-rc2 |
78 |
|
e52f4ca2a [PATCH] alpha: ta... |
79 |
#define force_successful_syscall_return() (task_pt_regs(current)->r0 = 0) |
1da177e4c Linux-2.6.12-rc2 |
80 81 82 83 |
#endif #endif |