X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fthreads.h;h=b55fe0e066a8498afadcc9c8a263d3c5be9ea13d;hb=a9f9a331e2ee25ff68be6987fd645671038cbbde;hp=377b6ac11727c19fbb8bf69cfc597c3e3e40f621;hpb=98ee3b15bb2ad7c1f2b895ead1c9a4bdd6c95121;p=tpg%2Facess2.git diff --git a/Kernel/include/threads.h b/Kernel/include/threads.h index 377b6ac1..b55fe0e0 100644 --- a/Kernel/include/threads.h +++ b/Kernel/include/threads.h @@ -16,9 +16,10 @@ typedef struct sMessage typedef struct sThread { + // --- threads.c's struct sThread *Next; //!< Next thread in list - int IsLocked; //!< Thread's spinlock - int Status; //!< Thread Status + tSpinlock IsLocked; //!< Thread's spinlock + volatile int Status; //!< Thread Status int RetStatus; //!< Return Status Uint TID; //!< Thread ID @@ -27,7 +28,9 @@ typedef struct sThread Uint UID, GID; //!< User and Group char *ThreadName; //!< Name of thread - tVAddr KernelStack; //!< Kernel Stack Base + // --- arch/proc.c's responsibility + //! Kernel Stack Base + tVAddr KernelStack; //! Memory Manager State tMemoryState MemState; @@ -35,11 +38,12 @@ typedef struct sThread //! State on task switch tTaskState SavedState; + // --- threads.c's int CurSignal; //!< Signal currently being handled (0 for none) tVAddr SignalHandlers[NSIG]; //!< Signal Handler List tTaskState SignalState; //!< Saved state for signal handler - tMsg *Messages; //!< Message Queue + tMsg * volatile Messages; //!< Message Queue tMsg *LastMessage; //!< Last Message (speeds up insertion) int Quantum, Remaining; //!< Quantum Size and remaining timesteps