summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@gnu.org>2009-03-17 20:09:05 +0100
committerNeal H. Walfield <neal@gnu.org>2009-03-17 20:09:05 +0100
commit4697b1940a204816329e0692fcd00a18eee26b88 (patch)
tree1cc0366a91ec3af2dd35ce76292fc511c476095e
parent76cd36c5b4fb6a3fac688c23a1294745082e08c2 (diff)
Make the returner global. Call it when returning from an interrupt.
-rw-r--r--viengoos/sysdeps/x86_64/idt.c2
-rw-r--r--viengoos/sysdeps/x86_64/syscall.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/viengoos/sysdeps/x86_64/idt.c b/viengoos/sysdeps/x86_64/idt.c
index 7c9be01..12a0845 100644
--- a/viengoos/sysdeps/x86_64/idt.c
+++ b/viengoos/sysdeps/x86_64/idt.c
@@ -318,7 +318,7 @@ dummy (void)
/* No return address. */
" pushq $0\n\t"
" cld\n\t"
- " jmp thread_resume\n\t"
+ " jmp return_to_user_land\n\t"
:: [save_area_restore_all_end]
"n"(((uintptr_t) &((struct thread *)0)->regs_restore_all)+8),
[save_area_rax_offset]"n"(offsetof (struct thread, regs[RAX])));
diff --git a/viengoos/sysdeps/x86_64/syscall.c b/viengoos/sysdeps/x86_64/syscall.c
index e43ac19..147a4f7 100644
--- a/viengoos/sysdeps/x86_64/syscall.c
+++ b/viengoos/sysdeps/x86_64/syscall.c
@@ -24,8 +24,8 @@
#include "thread.h"
#include "bottom-half.h"
-static void __attribute__ ((used))
-returner (void)
+void __attribute__ ((used))
+return_to_user_land (void)
{
for (;;)
{
@@ -117,7 +117,7 @@ dummy (void)
/* Zero the frame pointer and push a return address of 0. */
"xor %%rbp, %%rbp\n\t"
"cld\n\t"
- "lea returner, %%rax\n\t"
+ "lea return_to_user_land, %%rax\n\t"
"pushq %%rax\n\t"
"jmp dispatcher\n\t"
:: [save_area_offset]"n"(offsetof (struct thread, regs)));