2 * Acess2 libnative (Kernel Simulation Library)
3 * - By John Hodge (thePowersGang)
6 * - Threads handling definitions
8 #ifndef _THREADS_INT_H_
9 #define _THREADS_INT_H_
11 typedef struct sThreadIntMutex tThreadIntMutex; // actually pthreads
12 typedef struct sThreadIntSem tThreadIntSem;
16 struct sProcess *Next;
31 tThreadIntMutex *Protector;
33 uint32_t PendingEvents;
34 uint32_t WaitingEvents;
35 tThreadIntSem *WaitSemaphore; // pthreads
38 void (*SpawnFcn)(void*);
42 extern int Threads_int_CreateThread(struct sThread *Thread);
44 extern tThreadIntMutex *Threads_int_MutexCreate(void);
45 extern void Threads_int_MutexDestroy(tThreadIntMutex *Mutex);
46 extern void Threads_int_MutexLock(tThreadIntMutex *Mutex);
47 extern void Threads_int_MutexRelease(tThreadIntMutex *Mutex);
49 extern tThreadIntSem *Threads_int_SemCreate(void);
50 extern void Threads_int_SemDestroy(tThreadIntSem *Sem);
51 extern void Threads_int_SemSignal(tThreadIntSem *Sem);
52 extern void Threads_int_SemWait(tThreadIntSem *Sem);
53 extern void Threads_int_SemWaitAll(tThreadIntSem *Sem);