X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fthreads.h;h=6c29230763d587f37f1c265543e77113ead4644e;hb=2ae2035466cfa7816079a067ccee25e2b8bac6bc;hp=715be8c08ae5646a31d030d400db5388ac4cc451;hpb=a506fc15c09f7d8f178a7c7d9658b5bf45778128;p=tpg%2Facess2.git diff --git a/Kernel/include/threads.h b/Kernel/include/threads.h index 715be8c0..6c292307 100644 --- a/Kernel/include/threads.h +++ b/Kernel/include/threads.h @@ -18,13 +18,11 @@ typedef struct sMessage typedef struct sThread { // --- threads.c's - // 0 struct sThread *Next; //!< Next thread in list - tSpinlock IsLocked; //!< Thread's spinlock + tShortSpinlock IsLocked; //!< Thread's spinlock volatile int Status; //!< Thread Status int RetStatus; //!< Return Status - // 16 Uint TID; //!< Thread ID Uint TGID; //!< Thread Group (Process) Uint PTID; //!< Parent Thread ID @@ -32,20 +30,16 @@ typedef struct sThread char *ThreadName; //!< Name of thread // --- arch/proc.c's responsibility - // 40 //! Kernel Stack Base tVAddr KernelStack; - // 44 (x86) //! Memory Manager State tMemoryState MemState; - // 48 (x86) //! State on task switch tTaskState SavedState; // --- threads.c's - // 60 int CurFaultNum; //!< Current fault number, 0: none tVAddr FaultHandler; //!< Fault Handler @@ -57,7 +51,6 @@ typedef struct sThread Uint Config[NUM_CFG_ENTRIES]; //!< Per-process configuration - // --- proc.c's volatile int CurCPU; } tThread; @@ -86,7 +79,8 @@ enum eFaultNumbers // === FUNCTIONS === extern tThread *Proc_GetCurThread(void); extern tThread *Threads_GetThread(Uint TID); -extern void Threads_Wake(tThread *Thread); +extern void Threads_SetTickets(tThread *Thread, int Num); +extern int Threads_Wake(tThread *Thread); extern void Threads_AddActive(tThread *Thread); extern tThread *Threads_GetNextToRun(int CPU, tThread *Last);