diff options
Diffstat (limited to 'include/asm-x86/user_64.h')
-rw-r--r-- | include/asm-x86/user_64.h | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/include/asm-x86/user_64.h b/include/asm-x86/user_64.h index 12785c649ac5..a5449d456cc0 100644 --- a/include/asm-x86/user_64.h +++ b/include/asm-x86/user_64.h | |||
@@ -40,13 +40,13 @@ | |||
40 | * and both the standard and SIMD floating point data can be accessed via | 40 | * and both the standard and SIMD floating point data can be accessed via |
41 | * the new ptrace requests. In either case, changes to the FPU environment | 41 | * the new ptrace requests. In either case, changes to the FPU environment |
42 | * will be reflected in the task's state as expected. | 42 | * will be reflected in the task's state as expected. |
43 | * | 43 | * |
44 | * x86-64 support by Andi Kleen. | 44 | * x86-64 support by Andi Kleen. |
45 | */ | 45 | */ |
46 | 46 | ||
47 | /* This matches the 64bit FXSAVE format as defined by AMD. It is the same | 47 | /* This matches the 64bit FXSAVE format as defined by AMD. It is the same |
48 | as the 32bit format defined by Intel, except that the selector:offset pairs for | 48 | as the 32bit format defined by Intel, except that the selector:offset pairs for |
49 | data and eip are replaced with flat 64bit pointers. */ | 49 | data and eip are replaced with flat 64bit pointers. */ |
50 | struct user_i387_struct { | 50 | struct user_i387_struct { |
51 | unsigned short cwd; | 51 | unsigned short cwd; |
52 | unsigned short swd; | 52 | unsigned short swd; |
@@ -65,13 +65,34 @@ struct user_i387_struct { | |||
65 | * Segment register layout in coredumps. | 65 | * Segment register layout in coredumps. |
66 | */ | 66 | */ |
67 | struct user_regs_struct { | 67 | struct user_regs_struct { |
68 | unsigned long r15,r14,r13,r12,rbp,rbx,r11,r10; | 68 | unsigned long r15; |
69 | unsigned long r9,r8,rax,rcx,rdx,rsi,rdi,orig_rax; | 69 | unsigned long r14; |
70 | unsigned long rip,cs,eflags; | 70 | unsigned long r13; |
71 | unsigned long rsp,ss; | 71 | unsigned long r12; |
72 | unsigned long fs_base, gs_base; | 72 | unsigned long bp; |
73 | unsigned long ds,es,fs,gs; | 73 | unsigned long bx; |
74 | }; | 74 | unsigned long r11; |
75 | unsigned long r10; | ||
76 | unsigned long r9; | ||
77 | unsigned long r8; | ||
78 | unsigned long ax; | ||
79 | unsigned long cx; | ||
80 | unsigned long dx; | ||
81 | unsigned long si; | ||
82 | unsigned long di; | ||
83 | unsigned long orig_ax; | ||
84 | unsigned long ip; | ||
85 | unsigned long cs; | ||
86 | unsigned long flags; | ||
87 | unsigned long sp; | ||
88 | unsigned long ss; | ||
89 | unsigned long fs_base; | ||
90 | unsigned long gs_base; | ||
91 | unsigned long ds; | ||
92 | unsigned long es; | ||
93 | unsigned long fs; | ||
94 | unsigned long gs; | ||
95 | }; | ||
75 | 96 | ||
76 | /* When the kernel dumps core, it starts by dumping the user struct - | 97 | /* When the kernel dumps core, it starts by dumping the user struct - |
77 | this will be used by gdb to figure out where the data and stack segments | 98 | this will be used by gdb to figure out where the data and stack segments |
@@ -94,7 +115,7 @@ struct user{ | |||
94 | This is actually the bottom of the stack, | 115 | This is actually the bottom of the stack, |
95 | the top of the stack is always found in the | 116 | the top of the stack is always found in the |
96 | esp register. */ | 117 | esp register. */ |
97 | long int signal; /* Signal that caused the core dump. */ | 118 | long int signal; /* Signal that caused the core dump. */ |
98 | int reserved; /* No longer used */ | 119 | int reserved; /* No longer used */ |
99 | int pad1; | 120 | int pad1; |
100 | struct user_pt_regs * u_ar0; /* Used by gdb to help find the values for */ | 121 | struct user_pt_regs * u_ar0; /* Used by gdb to help find the values for */ |