From b7cb35206a853700c5f136a79113190bfae9a6bd Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 27 Sep 2009 11:40:17 +0800 Subject: [PATCH] Added magic breakpoint to SYS_CLONE, cleaned up other debug --- Kernel/arch/x86/proc.c | 1 - Kernel/syscalls.c | 3 ++- Kernel/threads.c | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Kernel/arch/x86/proc.c b/Kernel/arch/x86/proc.c index 336bcdb3..d468d11a 100644 --- a/Kernel/arch/x86/proc.c +++ b/Kernel/arch/x86/proc.c @@ -298,7 +298,6 @@ int Proc_Clone(Uint *Err, Uint Flags) newThread->SavedState.EBP = ebp; eip = GetEIP(); if(eip == SWITCH_MAGIC) { - Log("Thread %i running", Proc_GetCurThread()->TID); outb(0x20, 0x20); // ACK Timer and return as child return 0; } diff --git a/Kernel/syscalls.c b/Kernel/syscalls.c index 1eee53bb..b9473f97 100644 --- a/Kernel/syscalls.c +++ b/Kernel/syscalls.c @@ -57,7 +57,8 @@ void SyscallHandler(tSyscallRegs *Regs) case SYS_CLONE: // Call clone system call ret = Proc_Clone(&err, Regs->Arg1); - Log("ret = %i"); + Log("ret = %i", ret); + __asm__ __volatile__("xchg %bx, %bx"); // Change user stack if requested if(ret == 0 && !(Regs->Arg1 & CLONE_VM)) Regs->StackPointer = Regs->Arg2; diff --git a/Kernel/threads.c b/Kernel/threads.c index 714b2b09..da65596b 100644 --- a/Kernel/threads.c +++ b/Kernel/threads.c @@ -93,10 +93,11 @@ void Threads_Init() cur->ThreadName = "Idle Thread"; Threads_SetTickets(0); // Never called randomly cur->Quantum = 1; // 1 slice quantum + HALT(); for(;;) { - Log("---- Idle"); - Threads_Dump(); - __asm__ __volatile__ ("hlt"); // Just yeilds + //Log("---- Idle"); + //Threads_Dump(); + HALT(); // Just yeilds } } #endif -- 2.20.1