Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ptrace.h
Go to the documentation of this file.
1 /* MN10300 Exception frame layout and ptrace constants
2  *
3  * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4  * Written by David Howells ([email protected])
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public Licence
8  * as published by the Free Software Foundation; either version
9  * 2 of the Licence, or (at your option) any later version.
10  */
11 #ifndef _UAPI_ASM_PTRACE_H
12 #define _UAPI_ASM_PTRACE_H
13 
14 #define PT_A3 0
15 #define PT_A2 1
16 #define PT_D3 2
17 #define PT_D2 3
18 #define PT_MCVF 4
19 #define PT_MCRL 5
20 #define PT_MCRH 6
21 #define PT_MDRQ 7
22 #define PT_E1 8
23 #define PT_E0 9
24 #define PT_E7 10
25 #define PT_E6 11
26 #define PT_E5 12
27 #define PT_E4 13
28 #define PT_E3 14
29 #define PT_E2 15
30 #define PT_SP 16
31 #define PT_LAR 17
32 #define PT_LIR 18
33 #define PT_MDR 19
34 #define PT_A1 20
35 #define PT_A0 21
36 #define PT_D1 22
37 #define PT_D0 23
38 #define PT_ORIG_D0 24
39 #define PT_EPSW 25
40 #define PT_PC 26
41 #define NR_PTREGS 27
42 
43 /*
44  * This defines the way registers are stored in the event of an exception
45  * - the strange order is due to the MOVM instruction
46  */
47 struct pt_regs {
48  unsigned long a3; /* syscall arg 3 */
49  unsigned long a2; /* syscall arg 4 */
50  unsigned long d3; /* syscall arg 5 */
51  unsigned long d2; /* syscall arg 6 */
52  unsigned long mcvf;
53  unsigned long mcrl;
54  unsigned long mcrh;
55  unsigned long mdrq;
56  unsigned long e1;
57  unsigned long e0;
58  unsigned long e7;
59  unsigned long e6;
60  unsigned long e5;
61  unsigned long e4;
62  unsigned long e3;
63  unsigned long e2;
64  unsigned long sp;
65  unsigned long lar;
66  unsigned long lir;
67  unsigned long mdr;
68  unsigned long a1;
69  unsigned long a0; /* syscall arg 1 */
70  unsigned long d1; /* syscall arg 2 */
71  unsigned long d0; /* syscall ret */
72  struct pt_regs *next; /* next frame pointer */
73  unsigned long orig_d0; /* syscall number */
74  unsigned long epsw;
75  unsigned long pc;
76 };
77 
78 /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
79 #define PTRACE_GETREGS 12
80 #define PTRACE_SETREGS 13
81 #define PTRACE_GETFPREGS 14
82 #define PTRACE_SETFPREGS 15
83 
84 #endif /* _UAPI_ASM_PTRACE_H */