51 #include <semaphore.h> 55 #define orxTHREAD_KU32_MAIN_THREAD_ID 0 56 #define orxTHREAD_KU32_MAX_THREAD_NUMBER 16 58 #define orxTHREAD_KU32_FLAG_NONE 0 59 #define orxTHREAD_KU32_MASK_ALL (((1 << orxTHREAD_KU32_MAX_THREAD_NUMBER) - 1) & ~(1 << orxTHREAD_KU32_MAIN_THREAD_ID)) 60 #define orxTHREAD_GET_FLAG_FROM_ID(ID) (1 << (ID)) 64 typedef struct __orxTHREAD_SEMAPHORE_t orxTHREAD_SEMAPHORE; orxDLLAPI orxSTATUS orxFASTCALL orxThread_SetCallbacks(const orxTHREAD_FUNCTION _pfnStart, const orxTHREAD_FUNCTION _pfnStop, void *_pContext)
orxDLLAPI void orxFASTCALL orxThread_Exit()
orxDLLAPI orxSTATUS orxFASTCALL orxThread_Enable(orxU32 _u32EnableThreads, orxU32 _u32DisableThreads)
orxDLLAPI void orxFASTCALL orxThread_Yield()
orxDLLAPI orxSTATUS orxFASTCALL orxThread_RunTask(const orxTHREAD_FUNCTION _pfnRun, const orxTHREAD_FUNCTION _pfnThen, const orxTHREAD_FUNCTION _pfnElse, void *_pContext)
struct __orxTHREAD_SEMAPHORE_t orxTHREAD_SEMAPHORE
orxDLLAPI orxSTATUS orxFASTCALL orxThread_SignalSemaphore(orxTHREAD_SEMAPHORE *_pstSemaphore)
orxDLLAPI void orxFASTCALL orxThread_Setup()
orxDLLAPI orxSTATUS orxFASTCALL orxThread_Join(orxU32 _u32ThreadID)
orxDLLAPI orxSTATUS orxFASTCALL orxThread_Init()
orxDLLAPI orxU32 orxFASTCALL orxThread_GetTaskCount()
orxDLLAPI orxSTATUS orxFASTCALL orxThread_JoinAll()
orxDLLAPI orxSTATUS orxFASTCALL orxThread_DeleteSemaphore(orxTHREAD_SEMAPHORE *_pstSemaphore)
orxSTATUS(orxFASTCALL * orxTHREAD_FUNCTION)(void *_pContext)
orxDLLAPI const orxSTRING orxFASTCALL orxThread_GetName(orxU32 _u32ThreadID)
orxDLLAPI orxTHREAD_SEMAPHORE *orxFASTCALL orxThread_CreateSemaphore(orxU32 _u32Value)
orxDLLAPI orxU32 orxFASTCALL orxThread_Start(const orxTHREAD_FUNCTION _pfnRun, const orxSTRING _zName, void *_pContext)
orxDLLAPI orxU32 orxFASTCALL orxThread_GetCurrent()
orxDLLAPI orxSTATUS orxFASTCALL orxThread_WaitSemaphore(orxTHREAD_SEMAPHORE *_pstSemaphore)