aboutsummaryrefslogtreecommitdiffstats
path: root/src/gos/gos_chibios.c
diff options
context:
space:
mode:
authorNicolas Reinecke <nr@das-labor.org>2016-06-01 12:09:34 +0200
committerNicolas Reinecke <nr@das-labor.org>2016-06-01 12:09:34 +0200
commit1d2c15ce8101cc13bb7e272d30022f37e2ed2130 (patch)
treee14dad1456bd0eedc76c8d67f98b80f7459d2a8f /src/gos/gos_chibios.c
parentf8dac95e93127685ca2d1031ddcda28250fe0bd0 (diff)
downloaduGFX-1d2c15ce8101cc13bb7e272d30022f37e2ed2130.tar.gz
uGFX-1d2c15ce8101cc13bb7e272d30022f37e2ed2130.tar.bz2
uGFX-1d2c15ce8101cc13bb7e272d30022f37e2ed2130.zip
add support for ChibiOS RT 4 kernel
Diffstat (limited to 'src/gos/gos_chibios.c')
-rw-r--r--src/gos/gos_chibios.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gos/gos_chibios.c b/src/gos/gos_chibios.c
index c23155ca..fc34b94b 100644
--- a/src/gos/gos_chibios.c
+++ b/src/gos/gos_chibios.c
@@ -20,7 +20,7 @@
#error "GOS: CH_USE_SEMAPHORES must be defined in chconf.h"
#endif
-#elif CH_KERNEL_MAJOR == 3
+#elif (CH_KERNEL_MAJOR == 3) || (CH_KERNEL_MAJOR == 4)
#if !CH_CFG_USE_MUTEXES
#error "GOS: CH_CFG_USE_MUTEXES must be defined in chconf.h"
@@ -42,7 +42,7 @@ void _gosInit(void)
halInit();
chSysInit();
}
- #elif CH_KERNEL_MAJOR == 3
+ #elif (CH_KERNEL_MAJOR == 3) || (CH_KERNEL_MAJOR == 4)
if (!chThdGetSelfX()) {
halInit();
chSysInit();
@@ -102,7 +102,7 @@ void gfxSemInit(gfxSem *psem, semcount_t val, semcount_t limit)
#if CH_KERNEL_MAJOR == 2
chSemInit(&psem->sem, val);
- #elif CH_KERNEL_MAJOR == 3
+ #elif (CH_KERNEL_MAJOR == 3) || (CH_KERNEL_MAJOR == 4)
chSemObjectInit(&psem->sem, val);
#endif
}
@@ -120,7 +120,7 @@ bool_t gfxSemWait(gfxSem *psem, delaytime_t ms)
case TIME_INFINITE: chSemWait(&psem->sem); return TRUE;
default: return chSemWaitTimeout(&psem->sem, MS2ST(ms)) != RDY_TIMEOUT;
}
- #elif CH_KERNEL_MAJOR == 3
+ #elif (CH_KERNEL_MAJOR == 3) || (CH_KERNEL_MAJOR == 4)
switch(ms) {
case TIME_IMMEDIATE: return chSemWaitTimeout(&psem->sem, TIME_IMMEDIATE) != MSG_TIMEOUT;
case TIME_INFINITE: chSemWait(&psem->sem); return TRUE;
@@ -158,7 +158,11 @@ gfxThreadHandle gfxThreadCreate(void *stackarea, size_t stacksz, threadpriority_
{
if (!stackarea) {
if (!stacksz) stacksz = 256;
+#if (CH_KERNEL_MAJOR == 2) || (CH_KERNEL_MAJOR == 3)
return chThdCreateFromHeap(0, stacksz, prio, (tfunc_t)fn, param);
+#elif CH_KERNEL_MAJOR == 4
+ return chThdCreateFromHeap(0, stacksz, "ugfx", prio, (tfunc_t)fn, param);
+#endif
}
if (!stacksz)