-typedef struct sThread
-{
- // --- threads.c's
- struct sThread *Next; //!< Next thread in list
- tSpinlock IsLocked; //!< Thread's spinlock
- volatile int Status; //!< Thread Status
- int RetStatus; //!< Return Status
-
- Uint TID; //!< Thread ID
- Uint TGID; //!< Thread Group (Process)
- Uint PTID; //!< Parent Thread ID
- Uint UID, GID; //!< User and Group
- char *ThreadName; //!< Name of thread
-
- // --- arch/proc.c's responsibility
- //! Kernel Stack Base
- tVAddr KernelStack;
-
- //! Memory Manager State
- tMemoryState MemState;
-
- //! 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 * volatile Messages; //!< Message Queue
- tMsg *LastMessage; //!< Last Message (speeds up insertion)
-
- int Quantum, Remaining; //!< Quantum Size and remaining timesteps
- int NumTickets; //!< Priority - Chance of gaining CPU
-
- Uint Config[NUM_CFG_ENTRIES]; //!< Per-process configuration
-} tThread;