11 #if GFX_USE_OS_CHIBIOS
28 #define gDelayNone TIME_IMMEDIATE
29 #define gDelayForever TIME_INFINITE
31 #if CH_KERNEL_MAJOR <= 4
32 typedef systime_t gDelay;
34 typedef sysinterval_t gDelay;
36 typedef systime_t gTicks;
37 typedef cnt_t gSemcount;
38 #if CH_KERNEL_MAJOR >= 6
39 typedef void gThreadreturn;
41 typedef msg_t gThreadreturn;
43 typedef tprio_t gThreadpriority;
45 #define gSemMaxCount ((gSemcount)(((unsigned long)((gSemcount)(-1))) >> 1))
46 #define gThreadpriorityLow LOWPRIO
47 #define gThreadpriorityNormal NORMALPRIO
48 #define gThreadpriorityHigh HIGHPRIO
50 #define GFX_THREAD_STACK(name, sz) WORKING_AREA(name, sz)
51 #define GFX_THREAD_FUNCTION(fnName, param) gThreadreturn fnName(void *param)
52 #define gfxThreadReturn(retval) return retval
54 #if CH_KERNEL_MAJOR <= 2
63 #undef GFX_THREAD_STACK
64 #define GFX_THREAD_STACK(a, b) THD_WORKING_AREA(a, b)
81 #if CH_KERNEL_MAJOR <= 2
82 #define gfxSystemTicks() chTimeNow()
83 #define gfxMutexInit(pmutex) chMtxInit(pmutex)
84 #define gfxMutexExit(pmutex) chMtxUnlock()
85 #define gfxExit() chSysHalt()
86 #define gfxHalt(msg) { chDbgPanic(msg); chSysHalt(); }
88 #define gfxSystemTicks() chVTGetSystemTimeX()
89 #define gfxMutexInit(pmutex) chMtxObjectInit(pmutex)
90 #define gfxMutexExit(pmutex) chMtxUnlock(pmutex)
91 #define gfxExit() osalSysHalt("gfx_exit")
92 #define gfxHalt(msg) { chSysHalt(msg); }
95 #if CH_KERNEL_MAJOR <= 4
96 #define gfxMillisecondsToTicks(ms) MS2ST(ms)
98 #define gfxMillisecondsToTicks(ms) TIME_MS2I(ms)
101 #define gfxAlloc(sz) chHeapAlloc(0, sz)
102 #define gfxFree(ptr) chHeapFree(ptr)
103 #define gfxYield() chThdYield()
104 #define gfxSystemLock() chSysLock()
105 #define gfxSystemUnlock() chSysUnlock()
106 #define gfxMutexDestroy(pmutex) (void)pmutex
107 #define gfxMutexEnter(pmutex) chMtxLock(pmutex)
108 void *
gfxRealloc(
void *ptr, gMemSize oldsz, gMemSize newsz);
118 #define gfxThreadWait(thread) chThdWait(thread)
119 #define gfxThreadMe() chThdSelf()
120 #define gfxThreadClose(thread) (void)thread
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 gfxSleepMicroseconds(gDelay us)
Put the current thread to sleep for the specified period in microseconds.
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 * gfxRealloc(void *ptr, gMemSize oldsz, gMemSize newsz)
Re-allocate memory.
void gfxSemSignalI(gSem *psem)
Signal a semaphore.
void gfxSleepMilliseconds(gDelay ms)
Put the current thread to sleep for the specified period in milliseconds.