Replace rand() implementation - fixes threading lockups
[tpg/acess2.git] / Kernel / include / threads.h
index 3b6e9c6..20d21f4 100644 (file)
@@ -7,14 +7,21 @@
 #include <signal.h>
 #include <proc.h>
 
+/**
+ * \brief IPC Message
+ */
 typedef struct sMessage
 {
-       struct sMessage *Next;
-       Uint    Source;
-       Uint    Length;
-       Uint8   Data[];
-} tMsg;        // sizeof = 12+
+       struct sMessage *Next;  //!< Next message in thread's inbox
+       tTID    Source; //!< Source thread ID
+       Uint    Length; //!< Length of message data in bytes
+       Uint8   Data[]; //!< Message data
+} tMsg;
 
+/**
+ * \brief Core threading structure
+ * 
+ */
 typedef struct sThread
 {
        // --- threads.c's
@@ -67,6 +74,7 @@ enum {
        THREAD_STAT_SLEEPING,   // Message Sleep
        THREAD_STAT_OFFSLEEP,   // Mutex Sleep (or waiting on a thread)
        THREAD_STAT_WAITING,    // ???
+       THREAD_STAT_PREINIT,    // Being created
        THREAD_STAT_ZOMBIE,     // Died, just not removed
        THREAD_STAT_DEAD        // Why do we care about these???
 };
@@ -83,6 +91,9 @@ enum eFaultNumbers
 
 #define GETMSG_IGNORE  ((void*)-1)
 
+// === GLOBALS ===
+extern BOOL    gaThreads_NoTaskSwitch[MAX_CPUS];
+
 // === FUNCTIONS ===
 extern tThread *Proc_GetCurThread(void);
 extern tThread *Threads_GetThread(Uint TID);

UCC git Repository :: git.ucc.asn.au