summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2012-03-18 20:31:22 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-03-28 16:27:16 +0100
commite3a25bd6b41397b88688b77d86953990251391b5 (patch)
treeb25668afb2e8f3191c18638fee56065a1924e810
parent7f3cc4ea1d996aa18602b6df019af446165cb183 (diff)
thread.h: Add 64bit variant
* i386/i386/thread.h (i386_saved_state, i386_kernel_state, i386_interrupt_state): Add 64bit registers.
-rw-r--r--i386/i386/thread.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/i386/i386/thread.h b/i386/i386/thread.h
index bae61e31..3d4808c7 100644
--- a/i386/i386/thread.h
+++ b/i386/i386/thread.h
@@ -55,6 +55,16 @@ struct i386_saved_state {
unsigned long fs;
unsigned long es;
unsigned long ds;
+#ifdef __x86_64__
+ unsigned long r15;
+ unsigned long r14;
+ unsigned long r13;
+ unsigned long r12;
+ unsigned long r11;
+ unsigned long r10;
+ unsigned long r9;
+ unsigned long r8;
+#endif
unsigned long edi;
unsigned long esi;
unsigned long ebp;
@@ -100,9 +110,17 @@ struct i386_kernel_state {
long k_ebx; /* kernel context */
long k_esp;
long k_ebp;
+#ifdef __i386__
long k_edi;
long k_esi;
+#endif
long k_eip;
+#ifdef __x86_64__
+ long k_r12;
+ long k_r13;
+ long k_r14;
+ long k_r15;
+#endif
};
/*
@@ -148,6 +166,14 @@ struct i386_interrupt_state {
long fs;
long es;
long ds;
+#ifdef __x86_64__
+ long r11;
+ long r10;
+ long r9;
+ long r8;
+ long rdi;
+ long rsi;
+#endif
long edx;
long ecx;
long eax;