20 #ifndef GFX_OS_HEAP_SIZE
21 #define GFX_OS_HEAP_SIZE 10240
29 #define gDelayForever osWaitForever
32 typedef gU16 gSemcount;
33 typedef void gThreadreturn;
34 typedef osPriority gThreadpriority;
36 #define gSemMaxCount osFeature_Semaphore
37 #define gThreadpriorityLow osPriorityLow
38 #define gThreadpriorityNormal osPriorityNormal
39 #define gThreadpriorityHigh osPriorityHigh
54 #define GFX_THREAD_STACK(name, sz) gU8 name[1];
55 #define GFX_THREAD_FUNCTION(fnName, param) gThreadreturn fnName(void* param)
56 #define gfxThreadReturn(retval) return
62 #define gfxExit() os_error(0)
63 #define gfxHalt(msg) os_error(1)
64 #define gfxSystemTicks() osKernelSysTick()
65 #define gfxMillisecondsToTicks(ms) osKernelSysTickMicroSec(1000*ms)
66 #define gfxSystemLock() osKernelInitialize()
67 #define gfxSystemUnlock() osKernelStart()
68 #define gfxSleepMilliseconds(ms) osDelay(ms)
71 #define gfxMutexDestroy(pmutex) osMutexDelete((pmutex)->id)
72 #define gfxMutexEnter(pmutex) osMutexWait((pmutex)->id, gDelayForever)
73 #define gfxMutexExit(pmutex) osMutexRelease((pmutex)->id)
83 #define gfxYield() osThreadYield()
84 #define gfxThreadMe() osThreadGetId()
85 #define gfxThreadClose(thread) {}
91 #define GOS_NEED_X_HEAP GFXON
92 #include "gos_x_heap.h"
void gfxSemSignal(gSem *psem)
Signal a semaphore.
void * gThread
A thread handle.
#define GFX_THREAD_FUNCTION(fnName, param)
Declare a thread function.
gBool gfxSemWait(gSem *psem, gDelay ms)
Wait on a semaphore.
void gfxMutexInit(gMutex *pmutex)
Initialise a mutex to protect a region of code from other threads.
gThread gfxThreadCreate(void *stackarea, gMemSize stacksz, gThreadpriority prio, GFX_THREAD_FUNCTION((*fn), p), void *param)
Start a new thread.
gBool gfxSemWaitI(gSem *psem)
Test if a wait on a semaphore can be satisfied immediately.
void gfxSemDestroy(gSem *psem)
Destroy a Counted Semaphore.
void gfxSemInit(gSem *psem, gSemcount val, gSemcount limit)
Initialise a Counted Semaphore.
void gfxSemSignalI(gSem *psem)
Signal a semaphore.