X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Finclude%2Fthreads_int.h;h=403a2eff1b7437f69d026e7931e90dc7b79cdc96;hb=2462d860630674d10d554f86aa669163f6f2db6b;hp=09e58c16d21d98db14df40edfc26a1d2048eae1f;hpb=083c31409b9f25c96807ab8fef8ac79e8fe4cf9e;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/include/threads_int.h b/KernelLand/Kernel/include/threads_int.h index 09e58c16..403a2eff 100644 --- a/KernelLand/Kernel/include/threads_int.h +++ b/KernelLand/Kernel/include/threads_int.h @@ -12,6 +12,7 @@ #include #include #include +#include typedef struct sProcess tProcess; @@ -32,6 +33,7 @@ typedef struct sMessage struct sProcess { struct sProcess *Next; + struct sProcess *Prev; tPGID PGID; tPID PID; @@ -45,6 +47,8 @@ struct sProcess int MaxFD; char *CurrentWorkingDir; char *RootDir; + + void *SignalHandlers[NSIGNALS]; }; /** @@ -86,6 +90,10 @@ struct sThread int CurFaultNum; //!< Current fault number, 0: none tVAddr FaultHandler; //!< Fault Handler + + int PendingSignal; //!< Pending signal ID (0 = none) + + tMsg * volatile Messages; //!< Message Queue tMsg *LastMessage; //!< Last Message (speeds up insertion) @@ -153,6 +161,7 @@ extern tThread *Threads_GetNextToRun(int CPU, tThread *Last); extern tThread *Threads_CloneTCB(Uint Flags); extern tThread *Threads_CloneThreadZero(void); +extern int Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **ListHead, tThread **ListTail, tShortSpinlock *Lock); extern void Threads_int_WaitForStatusEnd(enum eThreadStatus Status); extern void Semaphore_ForceWake(tThread *Thread);