X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Tools%2Fnativelib%2Finclude%2Fthreads_int.h;fp=Tools%2Fnativelib%2Finclude%2Fthreads_int.h;h=cc0c3e055b32a1f0ba59eab5bb37afc140b4b09d;hb=2d39fe63812216118aec6520ccfb6ce2f11d6fd2;hp=eb5f9dffbf56c3a4d0da1ad84b8093b4bf834eff;hpb=0ab008276f88801b5a5a2ed8e96c285e524ead2c;p=tpg%2Facess2.git diff --git a/Tools/nativelib/include/threads_int.h b/Tools/nativelib/include/threads_int.h index eb5f9dff..cc0c3e05 100644 --- a/Tools/nativelib/include/threads_int.h +++ b/Tools/nativelib/include/threads_int.h @@ -8,6 +8,9 @@ #ifndef _THREADS_INT_H_ #define _THREADS_INT_H_ +typedef struct sThreadIntMutex tThreadIntMutex; // actually pthreads +typedef struct sThreadIntSem tThreadIntSem; + struct sProcess { struct sProcess *Next; @@ -24,10 +27,12 @@ struct sThread { struct sThread *Next; int TID; - + + tThreadIntMutex *Protector; + uint32_t PendingEvents; uint32_t WaitingEvents; - void *WaitSemaphore; // pthreads + tThreadIntSem *WaitSemaphore; // pthreads // Init Only void (*SpawnFcn)(void*); @@ -36,5 +41,16 @@ struct sThread extern int Threads_int_CreateThread(struct sThread *Thread); +extern tThreadIntMutex *Threads_int_MutexCreate(void); +extern void Threads_int_MutexDestroy(tThreadIntMutex *Mutex); +extern void Threads_int_MutexLock(tThreadIntMutex *Mutex); +extern void Threads_int_MutexRelease(tThreadIntMutex *Mutex); + +extern tThreadIntSem *Threads_int_SemCreate(void); +extern void Threads_int_SemDestroy(tThreadIntSem *Sem); +extern void Threads_int_SemSignal(tThreadIntSem *Sem); +extern void Threads_int_SemWait(tThreadIntSem *Sem); +extern void Threads_int_SemWaitAll(tThreadIntSem *Sem); + #endif