git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Kernel/threads - Debug cleanups and (hopefully) race avoidance
[tpg/acess2.git]
/
KernelLand
/
Kernel
/
include
/
threads_int.h
diff --git
a/KernelLand/Kernel/include/threads_int.h
b/KernelLand/Kernel/include/threads_int.h
index
642f6c3
..
1c9a08d
100644
(file)
--- a/
KernelLand/Kernel/include/threads_int.h
+++ b/
KernelLand/Kernel/include/threads_int.h
@@
-12,6
+12,7
@@
#include <threads.h>
#include <proc.h>
#include <timers_int.h>
#include <threads.h>
#include <proc.h>
#include <timers_int.h>
+#include <posix_signals.h>
typedef struct sProcess tProcess;
typedef struct sProcess tProcess;
@@
-32,6
+33,7
@@
typedef struct sMessage
struct sProcess
{
struct sProcess *Next;
struct sProcess
{
struct sProcess *Next;
+ struct sProcess *Prev;
tPGID PGID;
tPID PID;
tPGID PGID;
tPID PID;
@@
-45,6
+47,8
@@
struct sProcess
int MaxFD;
char *CurrentWorkingDir;
char *RootDir;
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 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)
tMsg * volatile Messages; //!< Message Queue
tMsg *LastMessage; //!< Last Message (speeds up insertion)
@@
-125,6
+133,7
@@
static const char * const casTHREAD_STAT[] = {
"THREAD_STAT_ACTIVE",
"THREAD_STAT_SLEEPING",
"THREAD_STAT_MUTEXSLEEP",
"THREAD_STAT_ACTIVE",
"THREAD_STAT_SLEEPING",
"THREAD_STAT_MUTEXSLEEP",
+ "THREAD_STAT_RWLOCKSLEEP",
"THREAD_STAT_SEMAPHORESLEEP",
"THREAD_STAT_QUEUESLEEP",
"THREAD_STAT_EVENTSLEEP",
"THREAD_STAT_SEMAPHORESLEEP",
"THREAD_STAT_QUEUESLEEP",
"THREAD_STAT_EVENTSLEEP",
@@
-134,6
+143,7
@@
static const char * const casTHREAD_STAT[] = {
"THREAD_STAT_DEAD",
"THREAD_STAT_BURIED"
};
"THREAD_STAT_DEAD",
"THREAD_STAT_BURIED"
};
+static const unsigned int ciTHREAD_STAT_COUNT = sizeof(casTHREAD_STAT)/sizeof(casTHREAD_STAT[0]);
// === GLOBALS ===
extern BOOL gaThreads_NoTaskSwitch[MAX_CPUS];
// === GLOBALS ===
extern BOOL gaThreads_NoTaskSwitch[MAX_CPUS];
@@
-152,6
+162,8
@@
extern tThread *Threads_GetNextToRun(int CPU, tThread *Last);
extern tThread *Threads_CloneTCB(Uint Flags);
extern tThread *Threads_CloneThreadZero(void);
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);
#endif
extern void Semaphore_ForceWake(tThread *Thread);
#endif
UCC
git Repository :: git.ucc.asn.au