-void Proc_Start();
-tThread *Proc_GetCurThread();
-void Proc_ChangeStack();
- int Proc_Clone(Uint *Err, Uint Flags);
-void Proc_StartProcess(Uint16 SS, Uint Stack, Uint Flags, Uint16 CS, Uint IP);
-void Proc_CallFaultHandler(tThread *Thread);
-void Proc_Scheduler();
+void Proc_IdleTask(void *unused);
+//void Proc_Start(void);
+//tThread *Proc_GetCurThread(void);
+ int Proc_NewKThread(void (*Fcn)(void*), void *Data);
+// int Proc_Clone(Uint *Err, Uint Flags);
+// int Proc_SpawnWorker(void);
+Uint Proc_MakeUserStack(void);
+//void Proc_StartUser(Uint Entrypoint, Uint *Bases, int ArgC, char **ArgV, char **EnvP, int DataSize);
+void Proc_StartProcess(Uint16 SS, Uint Stack, Uint Flags, Uint16 CS, Uint IP) NORETURN;
+ int Proc_Demote(Uint *Err, int Dest, tRegs *Regs);
+//void Proc_CallFaultHandler(tThread *Thread);
+//void Proc_DumpThreadCPUState(tThread *Thread);
+void Proc_Scheduler(int CPU, Uint RSP, Uint RIP);