#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
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???
};
#define GETMSG_IGNORE ((void*)-1)
+// === GLOBALS ===
+extern BOOL gaThreads_NoTaskSwitch[MAX_CPUS];
+
// === FUNCTIONS ===
extern tThread *Proc_GetCurThread(void);
extern tThread *Threads_GetThread(Uint TID);