Blame view

include/asm-alpha/ptrace.h 1.96 KB
1da177e4c   Linus Torvalds   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   Christoph Hellwig   [PATCH] consolida...
70
71
  
  #define __ARCH_SYS_PTRACE	1
1da177e4c   Linus Torvalds   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   Andrew Morton   [PATCH] alpha: ta...
76
  #define task_pt_regs(task) \
27f451304   Al Viro   [PATCH] alpha: ta...
77
    ((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
78

e52f4ca2a   Andrew Morton   [PATCH] alpha: ta...
79
  #define force_successful_syscall_return() (task_pt_regs(current)->r0 = 0)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
80
81
82
83
  
  #endif
  
  #endif