µGFX  2.9
version 2.9
gos_rawrtos.h
1 #ifndef _GOS_RAWRTOS_H
2 #define _GOS_RAWRTOS_H
3 
4 #if GFX_USE_OS_RAWRTOS
5 
6 #include "raw_api.h"
7 
8 #define gDelayNone (RAW_NO_WAIT)
9 #define gDelayForever (RAW_WAIT_FOREVER)
10 typedef gU32 gDelay;
11 typedef RAW_TICK_TYPE gTicks;
12 typedef gI32 gSemcount;
13 typedef gU32 gThreadreturn;
14 typedef RAW_U8 gThreadpriority;
15 
16 #define gSemMaxCount RAW_SEMAPHORE_COUNT
17 #define gThreadpriorityLow (CONFIG_RAW_PRIO_MAX-2)
18 #define gThreadpriorityNormal (CONFIG_RAW_PRIO_MAX/2)
19 #define gThreadpriorityHigh 1
20 
21 typedef RAW_SEMAPHORE gSem;
22 typedef RAW_MUTEX gMutex;
23 typedef RAW_TASK_OBJ* gThread;
24 
25 #define GFX_THREAD_FUNCTION(fnName, param) gThreadreturn fnName(void *param)
26 #define GFX_THREAD_STACK(name, sz) PORT_STACK name[(sz) & ~3];
27 #define gfxThreadReturn(retval) return retval
28 
29 #define gfxHalt(msg) for(;;)
30 #define gfxExit() for(;;)
31 #define gfxAlloc(sz) raw_malloc(sz)
32 #define gfxRealloc(p,osz,nsz) raw_calloc(p, nsz)
33 #define gfxFree(ptr) raw_free(ptr)
34 #define gfxYield() raw_sleep(0)
35 #define gfxSystemTicks() raw_system_time_get()
36 #define gfxMillisecondsToTicks(ms) (ms*RAW_TICKS_PER_SECOND/1000)
37 #define gfxSystemLock() {}
38 #define gfxSystemUnlock() {}
39 #define gfxMutexInit(pmutex) raw_mutex_create(pmutex, (RAW_U8 *)"", RAW_MUTEX_INHERIT_POLICY, 3)
40 #define gfxMutexDestroy(pmutex) raw_mutex_delete(pmutex)
41 #define gfxMutexEnter(pmutex) raw_mutex_get(pmutex, gDelayForever)
42 #define gfxMutexExit(pmutex) raw_mutex_put(pmutex)
43 #define gfxSemInit(psem, val, limit) raw_semaphore_create(psem, "", val)
44 #define gfxSemDestroy(psem) raw_semaphore_delete(psem)
45 #define gfxSemSignal(psem) raw_semaphore_put((psem))
46 #define gfxSemSignalI(psem) raw_semaphore_put_all((psem))
47 #define gfxThreadMe() {(unsigned int)raw_task_identify()}
48 #define gfxThreadClose(thread) {}
49 
50 extern RAW_VOID *raw_malloc(RAW_U32 size);
51 extern RAW_VOID raw_free(void *ptr);
52 extern RAW_VOID *raw_calloc(RAW_U32 nmemb, RAW_U32 size);
53 
54 extern RAW_U16 raw_sleep(RAW_TICK_TYPE dly);
55 extern RAW_TICK_TYPE raw_system_time_get(void);
56 
57 extern RAW_U16 raw_mutex_create(RAW_MUTEX *mutex_ptr, RAW_U8 *name_ptr, RAW_U8 policy, RAW_U8 ceiling_prio);
58 extern RAW_U16 raw_mutex_delete(RAW_MUTEX *mutex_ptr);
59 extern RAW_U16 raw_mutex_get(RAW_MUTEX *mutex_ptr, RAW_TICK_TYPE wait_option);
60 extern RAW_U16 raw_mutex_put(RAW_MUTEX *mutex_ptr);
61 extern RAW_U16 raw_semaphore_create(RAW_SEMAPHORE *semaphore_ptr, RAW_U8 *name_ptr, RAW_U32 initial_count);
62 extern RAW_U16 raw_semaphore_delete(RAW_SEMAPHORE *semaphore_ptr);
63 extern RAW_U16 raw_semaphore_get(RAW_SEMAPHORE *semaphore_ptr, RAW_TICK_TYPE wait_option);
64 extern RAW_U16 raw_semaphore_put(RAW_SEMAPHORE *semaphore_ptr);
65 
66 void gfxSleepMilliseconds(gDelay ms);
67 void gfxSleepMicroseconds(gDelay us);
68 gBool gfxSemWait(gSem* psem, gDelay ms);
69 gBool gfxSemWaitI(gSem* psem);
70 gThread gfxThreadCreate(void *stackarea, gMemSize stacksz, gThreadpriority prio, GFX_THREAD_FUNCTION((*fn),p), void *param);
71 
72 #endif
73 
74 #endif
void * gThread
A thread handle.
Definition: gos.h:116
#define GFX_THREAD_FUNCTION(fnName, param)
Declare a thread function.
Definition: gos.h:73
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 gfxSleepMilliseconds(gDelay ms)
Put the current thread to sleep for the specified period in milliseconds.
A mutex.
Definition: gos.h:110
A semaphore.
Definition: gos.h:104