diff options
author | Neal H. Walfield <neal@gnu.org> | 2009-03-17 20:09:05 +0100 |
---|---|---|
committer | Neal H. Walfield <neal@gnu.org> | 2009-03-17 20:09:05 +0100 |
commit | 4697b1940a204816329e0692fcd00a18eee26b88 (patch) | |
tree | 1cc0366a91ec3af2dd35ce76292fc511c476095e | |
parent | 76cd36c5b4fb6a3fac688c23a1294745082e08c2 (diff) |
Make the returner global. Call it when returning from an interrupt.
-rw-r--r-- | viengoos/sysdeps/x86_64/idt.c | 2 | ||||
-rw-r--r-- | viengoos/sysdeps/x86_64/syscall.c | 6 |
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))); |