From 472069e41d55901f5ab0bbb000464d9a199b535d Mon Sep 17 00:00:00 2001 From: bernie Date: Fri, 24 Feb 2006 01:35:40 +0000 Subject: [PATCH] Update for new emulator. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@557 38d2e660-2303-0410-9eaa-f027e97ec537 --- emul/emul.cpp | 26 ++++++++++++++++++++++++++ kern/switch_x86_64.s | 9 ++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/emul/emul.cpp b/emul/emul.cpp index b6cf30fa..9be4ed23 100755 --- a/emul/emul.cpp +++ b/emul/emul.cpp @@ -15,6 +15,9 @@ /*#* *#* $Log$ + *#* Revision 1.4 2006/02/24 01:35:40 bernie + *#* Update for new emulator. + *#* *#* Revision 1.3 2006/02/20 02:00:40 bernie *#* Port to Qt 4.1. *#* @@ -30,6 +33,12 @@ #include "emulwin.h" #include +#include +#if CONFIG_KERNEL + #include +#endif + + #include // std::exit() #if _QT < 4 @@ -42,6 +51,17 @@ /// The global emulator instance. Emulator *emul; +#if CONFIG_KERNEL + #include + + /// List of process stacks + List StackFreeList; + + // HACK: Reserve 64KB of stack space for kernel processes + const int NPROC = 8; + int stacks[NPROC][(64 * 1024) / sizeof(int)]; +#endif + Emulator::Emulator(int &argc, char **argv) : emulApp(new QApplication(argc, argv)), emulWin(new EmulWin(this)) @@ -79,6 +99,12 @@ extern "C" void emul_init(int *argc, char *argv[]) // setup global emulator pointer emul = new Emulator(*argc, argv); +#if CONFIG_KERNEL + LIST_INIT(&StackFreeList); + for (int i = 0; i < NPROC; i++) + ADDTAIL(&StackFreeList, (Node *)stacks[i]); +#endif + MOD_INIT(emul); } diff --git a/kern/switch_x86_64.s b/kern/switch_x86_64.s index 339c6676..99fe9834 100755 --- a/kern/switch_x86_64.s +++ b/kern/switch_x86_64.s @@ -15,6 +15,9 @@ /* * $Log$ + * Revision 1.3 2006/02/24 01:35:40 bernie + * Update for new emulator. + * * Revision 1.2 2006/02/24 01:17:05 bernie * Update for new emulator. * @@ -36,9 +39,9 @@ #.intel_syntax /* void AsmSwitchContext(void **new_sp, void **save_sp) */ -/* %rdi %rsi -.globl AsmSwitchContext -AsmSwitchContext: +/* %rdi %rsi */ +.globl asm_switch_context +asm_switch_context: pushq %rax pushq %rbx pushq %rcx -- 2.25.1