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;
}
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;
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