diff options
author | Henrik Rentz-Reichert | 2012-11-12 10:41:19 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2012-11-12 10:41:19 +0000 |
commit | 2114b696f47ff095502ae6293a878baa40381c8e (patch) | |
tree | 86012267c2dd6d3bf9a8cca34c0e5c33bdd13976 /runtime | |
parent | c19158d7b0cffe2179b6c08526e2912400a3d540 (diff) | |
download | org.eclipse.etrice-2114b696f47ff095502ae6293a878baa40381c8e.tar.gz org.eclipse.etrice-2114b696f47ff095502ae6293a878baa40381c8e.tar.xz org.eclipse.etrice-2114b696f47ff095502ae6293a878baa40381c8e.zip |
[runtime.c] introduced compiler switches to distinguish platform
currently MinGW (Windows) or GNUC (Unix/Linux)
Diffstat (limited to 'runtime')
3 files changed, 57 insertions, 8 deletions
diff --git a/runtime/org.eclipse.etrice.runtime.c/src/common/platform/etPlatform.h b/runtime/org.eclipse.etrice.runtime.c/src/common/platform/etPlatform.h index ad519ffa5..3402f1790 100644 --- a/runtime/org.eclipse.etrice.runtime.c/src/common/platform/etPlatform.h +++ b/runtime/org.eclipse.etrice.runtime.c/src/common/platform/etPlatform.h @@ -23,7 +23,7 @@ /* platform specific functions */
/******************thread********************/
-void etThread_construct(etThread* self, etThreadname name,void (*func)(void *),etStacksize stacksize, etPriority prio);
+void etThread_construct(etThread* self, const etThreadname name, void (*func)(void *), etStacksize stacksize, etPriority prio);
void etThread_destruct(etThread* self);
/*****************mutex**********************/
diff --git a/runtime/org.eclipse.etrice.runtime.c/src/platforms/generic/etDatatypes.h b/runtime/org.eclipse.etrice.runtime.c/src/platforms/generic/etDatatypes.h index 0c6d63dc4..82785b544 100644 --- a/runtime/org.eclipse.etrice.runtime.c/src/platforms/generic/etDatatypes.h +++ b/runtime/org.eclipse.etrice.runtime.c/src/platforms/generic/etDatatypes.h @@ -19,7 +19,13 @@ *
* */
+#if defined __MINGW32__
#include <windows.h>
+#elif defined __GNUC__
+#else
+#error
+#endif
+
#include <stdio.h>
#include <process.h>
@@ -83,12 +89,29 @@ typedef int8 etAddressId; * typedefs for threading
*/
-typedef CRITICAL_SECTION etMutex;
-typedef HANDLE etThread;
-typedef HANDLE etSema;
+#if defined __MINGW32__
+
+ typedef CRITICAL_SECTION etMutex;
+ typedef HANDLE etThread;
+ typedef HANDLE etSema;
+
+ typedef int32 etStacksize;
+ typedef int32 etPriority;
+ typedef charPtr etThreadname;
-typedef int32 etStacksize;
-typedef int32 etPriority;
-typedef charPtr etThreadname;
+#elif defined __GNUC__
+
+ /* dummy for LINUX/UNIX */
+ typedef int etMutex;
+ typedef int etThread;
+ typedef int etSema;
+
+ typedef int32 etStacksize;
+ typedef int32 etPriority;
+ typedef charPtr etThreadname;
+
+#else
+ #error
+#endif
#endif /* _DATATYPES_H_ */
diff --git a/runtime/org.eclipse.etrice.runtime.c/src/platforms/generic/etPlatform.c b/runtime/org.eclipse.etrice.runtime.c/src/platforms/generic/etPlatform.c index c79c2ac1a..593ccefc4 100644 --- a/runtime/org.eclipse.etrice.runtime.c/src/platforms/generic/etPlatform.c +++ b/runtime/org.eclipse.etrice.runtime.c/src/platforms/generic/etPlatform.c @@ -25,8 +25,10 @@ void etUserExit(void){ } /* platform specific functions */
+#if defined __MINGW32__
+
/******************thread********************/
-void etThread_construct(etThread* self, etThreadname name,void (*func)(void *),etStacksize stacksize, etPriority prio){
+void etThread_construct(etThread* self, const etThreadname name, void (*func)(void *), etStacksize stacksize, etPriority prio){
*self = (HANDLE)_beginthread( func, stacksize, NULL );
SetThreadPriority(*self,THREAD_PRIORITY_NORMAL);
}
@@ -59,3 +61,27 @@ void etSema_waitForWakeup(etSema* self){ WaitForSingleObject( self, INFINITE );
}
/*********************************************/
+
+#elif defined __GNUC__
+
+/******************thread********************/
+void etThread_construct(etThread* self, const etThreadname name, void (*func)(void *), etStacksize stacksize, etPriority prio){}
+
+void etThread_destruct(etThread* self){}
+
+/*****************mutex**********************/
+void etMutex_construct(etMutex* self){}
+void etMutex_destruct(etMutex* self){}
+void etMutex_enter(etMutex* self){}
+void etMutex_leave(etMutex* self){}
+
+/********************semaphore****************/
+void etSema_contruct(etSema* self){}
+void etSema_destruct(etSema* self){}
+
+void etSema_wakeup(etSema* self){}
+
+void etSema_waitForWakeup(etSema* self){}
+/*********************************************/
+
+#endif
|