X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fthreads.h;h=0f164f8c6ae64e7dcd8e1e0d449feac076f1af62;hb=635bc78017d8a4a16314a973e39c849b2afac795;hp=833a3c779d85adfb02325d2703ab607901a14190;hpb=599466207eaeee9cb2bf397a7a62d0455599d05c;p=tpg%2Facess2.git diff --git a/Kernel/include/threads.h b/Kernel/include/threads.h index 833a3c77..0f164f8c 100644 --- a/Kernel/include/threads.h +++ b/Kernel/include/threads.h @@ -74,10 +74,24 @@ enum { THREAD_STAT_ACTIVE, // Running and schedulable process THREAD_STAT_SLEEPING, // Message Sleep THREAD_STAT_MUTEXSLEEP, // Mutex Sleep + THREAD_STAT_SEMAPHORESLEEP, // Semaphore Sleep THREAD_STAT_WAITING, // ??? (Waiting for a thread) THREAD_STAT_PREINIT, // Being created - THREAD_STAT_ZOMBIE, // Died, just not removed - THREAD_STAT_DEAD // Why do we care about these??? + THREAD_STAT_ZOMBIE, // Died/Killed, but parent not informed + THREAD_STAT_DEAD, // Awaiting burial (free) + THREAD_STAT_BURIED // If it's still on the list here, something's wrong +}; +static const char * const casTHREAD_STAT[] = { + "THREAD_STAT_NULL", + "THREAD_STAT_ACTIVE", + "THREAD_STAT_SLEEPING", + "THREAD_STAT_MUTEXSLEEP", + "THREAD_STAT_SEMAPHORESLEEP", + "THREAD_STAT_WAITING", + "THREAD_STAT_PREINIT", + "THREAD_STAT_ZOMBIE", + "THREAD_STAT_DEAD", + "THREAD_STAT_BURIED" }; enum eFaultNumbers @@ -100,7 +114,11 @@ extern tThread *Proc_GetCurThread(void); extern tThread *Threads_GetThread(Uint TID); extern void Threads_SetPriority(tThread *Thread, int Pri); extern int Threads_Wake(tThread *Thread); +extern void Threads_Kill(tThread *Thread, int Status); extern void Threads_AddActive(tThread *Thread); extern tThread *Threads_GetNextToRun(int CPU, tThread *Last); +extern tThread *Threads_CloneTCB(Uint *Err, Uint Flags); +extern tThread *Threads_CloneThreadZero(void); + #endif