aboutsummaryrefslogtreecommitdiffstats
path: root/src/gos/gos_arduino.h
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2015-07-16 19:02:59 +1000
committerinmarket <andrewh@inmarket.com.au>2015-07-16 19:02:59 +1000
commitc1d239bbdaef9ae08948ad2b61510ac1cd240947 (patch)
treee7fbe4bc48b618f1f54227ae9dc46d6172a384b1 /src/gos/gos_arduino.h
parentb3028a78d15a325eee1ec9563047637908cab8f5 (diff)
downloaduGFX-c1d239bbdaef9ae08948ad2b61510ac1cd240947.tar.gz
uGFX-c1d239bbdaef9ae08948ad2b61510ac1cd240947.tar.bz2
uGFX-c1d239bbdaef9ae08948ad2b61510ac1cd240947.zip
Significant improvements in alternative scheduler.
Isolate the generic thread and heap code Tidyup's. Generic threading now working for x86, cortex-m0->m7.
Diffstat (limited to 'src/gos/gos_arduino.h')
-rw-r--r--src/gos/gos_arduino.h64
1 files changed, 10 insertions, 54 deletions
diff --git a/src/gos/gos_arduino.h b/src/gos/gos_arduino.h
index fc9e7073..6a18aaec 100644
--- a/src/gos/gos_arduino.h
+++ b/src/gos/gos_arduino.h
@@ -44,70 +44,26 @@ typedef bool bool_t;
typedef uint32_t size_t;
#endif
-typedef uint32_t delaytime_t;
-typedef uint32_t systemticks_t;
-typedef short semcount_t;
-typedef int threadreturn_t;
-typedef int threadpriority_t;
-
-#define DECLARE_THREAD_FUNCTION(fnName, param) threadreturn_t fnName(void *param)
-#define DECLARE_THREAD_STACK(name, sz) uint8_t name[sz];
-
-#define TIME_IMMEDIATE 0
-#define TIME_INFINITE ((delaytime_t)-1)
-#define MAX_SEMAPHORE_COUNT 0x7FFF
-#define LOW_PRIORITY 0
-#define NORMAL_PRIORITY 1
-#define HIGH_PRIORITY 2
-
-typedef struct {
- semcount_t cnt;
- semcount_t limit;
-} gfxSem;
-
-typedef uint32_t gfxMutex;
-typedef void * gfxThreadHandle;
-
-#define gfxThreadClose(thread)
-#define gfxMutexDestroy(pmutex)
-#define gfxSemDestroy(psem)
-#define gfxSemCounter(psem) ((psem)->cnt)
-#define gfxSemCounterI(psem) ((psem)->cnt)
-
-#define gfxSystemTicks() millis()
-#define gfxMillisecondsToTicks(ms) (ms)
-
#ifdef __cplusplus
extern "C" {
#endif
void gfxHalt(const char *msg);
void gfxExit(void);
- void *gfxAlloc(size_t sz);
- void *gfxRealloc(void *ptr, size_t oldsz, size_t newsz);
- void gfxFree(void *ptr);
- void gfxYield(void);
- void gfxSleepMilliseconds(delaytime_t ms);
- void gfxSleepMicroseconds(delaytime_t ms);
- //systemticks_t gfxSystemTicks(void);
- //systemticks_t gfxMillisecondsToTicks(delaytime_t ms);
- void gfxSystemLock(void);
- void gfxSystemUnlock(void);
- void gfxMutexInit(gfxMutex *pmutex);
- void gfxMutexEnter(gfxMutex *pmutex);
- void gfxMutexExit(gfxMutex *pmutex);
- void gfxSemInit(gfxSem *psem, semcount_t val, semcount_t limit);
- bool_t gfxSemWait(gfxSem *psem, delaytime_t ms);
- bool_t gfxSemWaitI(gfxSem *psem);
- void gfxSemSignal(gfxSem *psem);
- void gfxSemSignalI(gfxSem *psem);
- gfxThreadHandle gfxThreadCreate(void *stackarea, size_t stacksz, threadpriority_t prio, DECLARE_THREAD_FUNCTION((*fn),p), void *param);
- threadreturn_t gfxThreadWait(gfxThreadHandle thread);
- gfxThreadHandle gfxThreadMe(void);
#ifdef __cplusplus
}
#endif
+/*===========================================================================*/
+/* Use the generic thread handling and heap handling */
+/*===========================================================================*/
+
+#define GOS_NEED_X_THREADS TRUE
+#define GOS_NEED_X_HEAP TRUE
+
+#include "gos_x_threads.h"
+#include "gos_x_heap.h"
+
#endif /* GFX_USE_OS_ARDUINO */
#endif /* _GOS_ARDUINO_H */