Commit e0ca0595 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Staging: epl: run Lindent on *.h files

It's a start, still a mess...

Cc: Daniel Krueger <daniel.krueger@systec-electronic.com>
Cc: Ronald Sieber <Ronald.Sieber@systec-electronic.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent bd5cd82d
...@@ -73,31 +73,30 @@ ...@@ -73,31 +73,30 @@
#include "global.h" #include "global.h"
#if (TARGET_SYSTEM == _NO_OS_) && (DEV_SYSTEM == _DEV_GNU_CF548X_) #if (TARGET_SYSTEM == _NO_OS_) && (DEV_SYSTEM == _DEV_GNU_CF548X_)
#include "common.h" #include "common.h"
#elif (TARGET_SYSTEM == _LINUX_) && defined(__KERNEL__) #elif (TARGET_SYSTEM == _LINUX_) && defined(__KERNEL__)
// #include <linux/config.h> // #include <linux/config.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#ifdef CONFIG_COLDFIRE #ifdef CONFIG_COLDFIRE
#include <asm/coldfire.h> #include <asm/coldfire.h>
#include <asm/m5485gpio.h> #include <asm/m5485gpio.h>
#define BENCHMARK_SET(x) MCF_GPIO_PODR_PCIBG |= (1 << (x)) // (x+1) #define BENCHMARK_SET(x) MCF_GPIO_PODR_PCIBG |= (1 << (x)) // (x+1)
#define BENCHMARK_RESET(x) MCF_GPIO_PODR_PCIBG &= ~(1 << (x)) // (x+1) #define BENCHMARK_RESET(x) MCF_GPIO_PODR_PCIBG &= ~(1 << (x)) // (x+1)
#define BENCHMARK_TOGGLE(x) MCF_GPIO_PODR_PCIBR ^= (1 << (x - 5)) #define BENCHMARK_TOGGLE(x) MCF_GPIO_PODR_PCIBR ^= (1 << (x - 5))
#else #else
#undef BENCHMARK_MODULES #undef BENCHMARK_MODULES
#define BENCHMARK_MODULES 0x00000000 #define BENCHMARK_MODULES 0x00000000
#endif #endif
#else #else
// disable Benchmarking // disable Benchmarking
#undef BENCHMARK_MODULES #undef BENCHMARK_MODULES
#define BENCHMARK_MODULES 0x00000000 #define BENCHMARK_MODULES 0x00000000
#endif #endif
/***************************************************************************/ /***************************************************************************/
...@@ -149,295 +148,290 @@ ...@@ -149,295 +148,290 @@
#define BENCHMARK_MOD_31 0x40000000 #define BENCHMARK_MOD_31 0x40000000
#define BENCHMARK_MOD_32 0x80000000 #define BENCHMARK_MOD_32 0x80000000
#if (BENCHMARK_MODULES & BENCHMARK_MOD_01) #if (BENCHMARK_MODULES & BENCHMARK_MOD_01)
#define BENCHMARK_MOD_01_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_01_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_01_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_01_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_01_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_01_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_01_SET(x) #define BENCHMARK_MOD_01_SET(x)
#define BENCHMARK_MOD_01_RESET(x) #define BENCHMARK_MOD_01_RESET(x)
#define BENCHMARK_MOD_01_TOGGLE(x) #define BENCHMARK_MOD_01_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_02) #if (BENCHMARK_MODULES & BENCHMARK_MOD_02)
#define BENCHMARK_MOD_02_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_02_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_02_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_02_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_02_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_02_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_02_SET(x) #define BENCHMARK_MOD_02_SET(x)
#define BENCHMARK_MOD_02_RESET(x) #define BENCHMARK_MOD_02_RESET(x)
#define BENCHMARK_MOD_02_TOGGLE(x) #define BENCHMARK_MOD_02_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_03) #if (BENCHMARK_MODULES & BENCHMARK_MOD_03)
#define BENCHMARK_MOD_03_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_03_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_03_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_03_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_03_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_03_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_03_SET(x) #define BENCHMARK_MOD_03_SET(x)
#define BENCHMARK_MOD_03_RESET(x) #define BENCHMARK_MOD_03_RESET(x)
#define BENCHMARK_MOD_03_TOGGLE(x) #define BENCHMARK_MOD_03_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_04) #if (BENCHMARK_MODULES & BENCHMARK_MOD_04)
#define BENCHMARK_MOD_04_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_04_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_04_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_04_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_04_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_04_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_04_SET(x) #define BENCHMARK_MOD_04_SET(x)
#define BENCHMARK_MOD_04_RESET(x) #define BENCHMARK_MOD_04_RESET(x)
#define BENCHMARK_MOD_04_TOGGLE(x) #define BENCHMARK_MOD_04_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_05) #if (BENCHMARK_MODULES & BENCHMARK_MOD_05)
#define BENCHMARK_MOD_05_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_05_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_05_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_05_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_05_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_05_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_05_SET(x) #define BENCHMARK_MOD_05_SET(x)
#define BENCHMARK_MOD_05_RESET(x) #define BENCHMARK_MOD_05_RESET(x)
#define BENCHMARK_MOD_05_TOGGLE(x) #define BENCHMARK_MOD_05_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_06) #if (BENCHMARK_MODULES & BENCHMARK_MOD_06)
#define BENCHMARK_MOD_06_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_06_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_06_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_06_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_06_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_06_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_06_SET(x) #define BENCHMARK_MOD_06_SET(x)
#define BENCHMARK_MOD_06_RESET(x) #define BENCHMARK_MOD_06_RESET(x)
#define BENCHMARK_MOD_06_TOGGLE(x) #define BENCHMARK_MOD_06_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_07) #if (BENCHMARK_MODULES & BENCHMARK_MOD_07)
#define BENCHMARK_MOD_07_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_07_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_07_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_07_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_07_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_07_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_07_SET(x) #define BENCHMARK_MOD_07_SET(x)
#define BENCHMARK_MOD_07_RESET(x) #define BENCHMARK_MOD_07_RESET(x)
#define BENCHMARK_MOD_07_TOGGLE(x) #define BENCHMARK_MOD_07_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_08) #if (BENCHMARK_MODULES & BENCHMARK_MOD_08)
#define BENCHMARK_MOD_08_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_08_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_08_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_08_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_08_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_08_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_08_SET(x) #define BENCHMARK_MOD_08_SET(x)
#define BENCHMARK_MOD_08_RESET(x) #define BENCHMARK_MOD_08_RESET(x)
#define BENCHMARK_MOD_08_TOGGLE(x) #define BENCHMARK_MOD_08_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_09) #if (BENCHMARK_MODULES & BENCHMARK_MOD_09)
#define BENCHMARK_MOD_09_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_09_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_09_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_09_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_09_TOGGLE(x) BENCHMARK_TOGGLE(x) #define BENCHMARK_MOD_09_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else #else
#define BENCHMARK_MOD_09_SET(x) #define BENCHMARK_MOD_09_SET(x)
#define BENCHMARK_MOD_09_RESET(x) #define BENCHMARK_MOD_09_RESET(x)
#define BENCHMARK_MOD_09_TOGGLE(x) #define BENCHMARK_MOD_09_TOGGLE(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_10) #if (BENCHMARK_MODULES & BENCHMARK_MOD_10)
#define BENCHMARK_MOD_10_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_10_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_10_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_10_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_10_SET(x) #define BENCHMARK_MOD_10_SET(x)
#define BENCHMARK_MOD_10_RESET(x) #define BENCHMARK_MOD_10_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_11) #if (BENCHMARK_MODULES & BENCHMARK_MOD_11)
#define BENCHMARK_MOD_11_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_11_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_11_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_11_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_11_SET(x) #define BENCHMARK_MOD_11_SET(x)
#define BENCHMARK_MOD_11_RESET(x) #define BENCHMARK_MOD_11_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_12) #if (BENCHMARK_MODULES & BENCHMARK_MOD_12)
#define BENCHMARK_MOD_12_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_12_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_12_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_12_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_12_SET(x) #define BENCHMARK_MOD_12_SET(x)
#define BENCHMARK_MOD_12_RESET(x) #define BENCHMARK_MOD_12_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_13) #if (BENCHMARK_MODULES & BENCHMARK_MOD_13)
#define BENCHMARK_MOD_13_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_13_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_13_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_13_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_13_SET(x) #define BENCHMARK_MOD_13_SET(x)
#define BENCHMARK_MOD_13_RESET(x) #define BENCHMARK_MOD_13_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_14) #if (BENCHMARK_MODULES & BENCHMARK_MOD_14)
#define BENCHMARK_MOD_14_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_14_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_14_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_14_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_14_SET(x) #define BENCHMARK_MOD_14_SET(x)
#define BENCHMARK_MOD_14_RESET(x) #define BENCHMARK_MOD_14_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_15) #if (BENCHMARK_MODULES & BENCHMARK_MOD_15)
#define BENCHMARK_MOD_15_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_15_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_15_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_15_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_15_SET(x) #define BENCHMARK_MOD_15_SET(x)
#define BENCHMARK_MOD_15_RESET(x) #define BENCHMARK_MOD_15_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_16) #if (BENCHMARK_MODULES & BENCHMARK_MOD_16)
#define BENCHMARK_MOD_16_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_16_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_16_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_16_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_16_SET(x) #define BENCHMARK_MOD_16_SET(x)
#define BENCHMARK_MOD_16_RESET(x) #define BENCHMARK_MOD_16_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_17) #if (BENCHMARK_MODULES & BENCHMARK_MOD_17)
#define BENCHMARK_MOD_17_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_17_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_17_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_17_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_17_SET(x) #define BENCHMARK_MOD_17_SET(x)
#define BENCHMARK_MOD_17_RESET(x) #define BENCHMARK_MOD_17_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_18) #if (BENCHMARK_MODULES & BENCHMARK_MOD_18)
#define BENCHMARK_MOD_18_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_18_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_18_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_18_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_18_SET(x) #define BENCHMARK_MOD_18_SET(x)
#define BENCHMARK_MOD_18_RESET(x) #define BENCHMARK_MOD_18_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_19) #if (BENCHMARK_MODULES & BENCHMARK_MOD_19)
#define BENCHMARK_MOD_19_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_19_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_19_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_19_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_19_SET(x) #define BENCHMARK_MOD_19_SET(x)
#define BENCHMARK_MOD_19_RESET(x) #define BENCHMARK_MOD_19_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_20) #if (BENCHMARK_MODULES & BENCHMARK_MOD_20)
#define BENCHMARK_MOD_20_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_20_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_20_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_20_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_20_SET(x) #define BENCHMARK_MOD_20_SET(x)
#define BENCHMARK_MOD_20_RESET(x) #define BENCHMARK_MOD_20_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_21) #if (BENCHMARK_MODULES & BENCHMARK_MOD_21)
#define BENCHMARK_MOD_21_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_21_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_21_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_21_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_21_SET(x) #define BENCHMARK_MOD_21_SET(x)
#define BENCHMARK_MOD_21_RESET(x) #define BENCHMARK_MOD_21_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_22) #if (BENCHMARK_MODULES & BENCHMARK_MOD_22)
#define BENCHMARK_MOD_22_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_22_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_22_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_22_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_22_SET(x) #define BENCHMARK_MOD_22_SET(x)
#define BENCHMARK_MOD_22_RESET(x) #define BENCHMARK_MOD_22_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_23) #if (BENCHMARK_MODULES & BENCHMARK_MOD_23)
#define BENCHMARK_MOD_23_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_23_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_23_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_23_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_23_SET(x) #define BENCHMARK_MOD_23_SET(x)
#define BENCHMARK_MOD_23_RESET(x) #define BENCHMARK_MOD_23_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_24) #if (BENCHMARK_MODULES & BENCHMARK_MOD_24)
#define BENCHMARK_MOD_24_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_24_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_24_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_24_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_24_SET(x) #define BENCHMARK_MOD_24_SET(x)
#define BENCHMARK_MOD_24_RESET(x) #define BENCHMARK_MOD_24_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_25) #if (BENCHMARK_MODULES & BENCHMARK_MOD_25)
#define BENCHMARK_MOD_25_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_25_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_25_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_25_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_25_SET(x) #define BENCHMARK_MOD_25_SET(x)
#define BENCHMARK_MOD_25_RESET(x) #define BENCHMARK_MOD_25_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_26) #if (BENCHMARK_MODULES & BENCHMARK_MOD_26)
#define BENCHMARK_MOD_26_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_26_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_26_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_26_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_26_SET(x) #define BENCHMARK_MOD_26_SET(x)
#define BENCHMARK_MOD_26_RESET(x) #define BENCHMARK_MOD_26_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_27) #if (BENCHMARK_MODULES & BENCHMARK_MOD_27)
#define BENCHMARK_MOD_27_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_27_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_27_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_27_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_27_SET(x) #define BENCHMARK_MOD_27_SET(x)
#define BENCHMARK_MOD_27_RESET(x) #define BENCHMARK_MOD_27_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_28) #if (BENCHMARK_MODULES & BENCHMARK_MOD_28)
#define BENCHMARK_MOD_28_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_28_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_28_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_28_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_28_SET(x) #define BENCHMARK_MOD_28_SET(x)
#define BENCHMARK_MOD_28_RESET(x) #define BENCHMARK_MOD_28_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_29) #if (BENCHMARK_MODULES & BENCHMARK_MOD_29)
#define BENCHMARK_MOD_29_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_29_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_29_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_29_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_29_SET(x) #define BENCHMARK_MOD_29_SET(x)
#define BENCHMARK_MOD_29_RESET(x) #define BENCHMARK_MOD_29_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_30) #if (BENCHMARK_MODULES & BENCHMARK_MOD_30)
#define BENCHMARK_MOD_30_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_30_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_30_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_30_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_30_SET(x) #define BENCHMARK_MOD_30_SET(x)
#define BENCHMARK_MOD_30_RESET(x) #define BENCHMARK_MOD_30_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_31) #if (BENCHMARK_MODULES & BENCHMARK_MOD_31)
#define BENCHMARK_MOD_31_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_31_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_31_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_31_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_31_SET(x) #define BENCHMARK_MOD_31_SET(x)
#define BENCHMARK_MOD_31_RESET(x) #define BENCHMARK_MOD_31_RESET(x)
#endif #endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_32) #if (BENCHMARK_MODULES & BENCHMARK_MOD_32)
#define BENCHMARK_MOD_32_SET(x) BENCHMARK_SET(x) #define BENCHMARK_MOD_32_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_32_RESET(x) BENCHMARK_RESET(x) #define BENCHMARK_MOD_32_RESET(x) BENCHMARK_RESET(x)
#else #else
#define BENCHMARK_MOD_32_SET(x) #define BENCHMARK_MOD_32_SET(x)
#define BENCHMARK_MOD_32_RESET(x) #define BENCHMARK_MOD_32_RESET(x)
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// modul global types // modul global types
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// local vars // local vars
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// local function prototypes // local function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // _BENCHMARK_H_ #endif // _BENCHMARK_H_
...@@ -71,7 +71,6 @@ ...@@ -71,7 +71,6 @@
#include "global.h" #include "global.h"
/***************************************************************************/ /***************************************************************************/
/* */ /* */
/* */ /* */
...@@ -122,30 +121,24 @@ ...@@ -122,30 +121,24 @@
#define DEBUG_LVL_ERROR 0x40000000 #define DEBUG_LVL_ERROR 0x40000000
#define DEBUG_LVL_ALWAYS 0x80000000 #define DEBUG_LVL_ALWAYS 0x80000000
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// global types // global types
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// global vars // global vars
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// global function prototypes // global function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// global macros // global macros
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// this macro defines a version string // this macro defines a version string
#define MAKE_VERSION_STRING(product,appname,verstr,author) \
"prd:" product ",app:" appname ",ver:" verstr ",dat:" __DATE__ ",aut:" author
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -159,18 +152,16 @@ ...@@ -159,18 +152,16 @@
prefix "Version: " verstr "\n" \ prefix "Version: " verstr "\n" \
prefix "***************************************************\n\n" prefix "***************************************************\n\n"
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// The default debug-level is: ERROR and ALWAYS. // The default debug-level is: ERROR and ALWAYS.
// You can define an other debug-level in project settings. // You can define an other debug-level in project settings.
#ifndef DEF_DEBUG_LVL #ifndef DEF_DEBUG_LVL
#define DEF_DEBUG_LVL (DEBUG_LVL_ALWAYS | DEBUG_LVL_ERROR) #define DEF_DEBUG_LVL (DEBUG_LVL_ALWAYS | DEBUG_LVL_ERROR)
#endif #endif
#ifndef DEBUG_GLB_LVL #ifndef DEBUG_GLB_LVL
#define DEBUG_GLB_LVL() (DEF_DEBUG_LVL) #define DEBUG_GLB_LVL() (DEF_DEBUG_LVL)
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#if (DEV_SYSTEM == _DEV_WIN32_) && defined (TRACE_MSG) #if (DEV_SYSTEM == _DEV_WIN32_) && defined (TRACE_MSG)
...@@ -182,12 +173,12 @@ ...@@ -182,12 +173,12 @@
// //
// Example: DEBUG_TRACE1(DEBUG_LVL_30 | DEBUG_LVL_02, "Hello %d", bCount); // Example: DEBUG_TRACE1(DEBUG_LVL_30 | DEBUG_LVL_02, "Hello %d", bCount);
#define DEBUG_TRACE0(lvl,str) TraceLvl((lvl),str) #define DEBUG_TRACE0(lvl,str) TraceLvl((lvl),str)
#define DEBUG_TRACE1(lvl,str,p1) TraceLvl((lvl),str,p1) #define DEBUG_TRACE1(lvl,str,p1) TraceLvl((lvl),str,p1)
#define DEBUG_TRACE2(lvl,str,p1,p2) TraceLvl((lvl),str,p1,p2) #define DEBUG_TRACE2(lvl,str,p1,p2) TraceLvl((lvl),str,p1,p2)
#define DEBUG_TRACE3(lvl,str,p1,p2,p3) TraceLvl((lvl),str,p1,p2,p3) #define DEBUG_TRACE3(lvl,str,p1,p2,p3) TraceLvl((lvl),str,p1,p2,p3)
#define DEBUG_TRACE4(lvl,str,p1,p2,p3,p4) TraceLvl((lvl),str,p1,p2,p3,p4) #define DEBUG_TRACE4(lvl,str,p1,p2,p3,p4) TraceLvl((lvl),str,p1,p2,p3,p4)
#define DEBUG_GLB_LVL() dwDebugLevel_g #define DEBUG_GLB_LVL() dwDebugLevel_g
#else #else
...@@ -198,462 +189,461 @@ ...@@ -198,462 +189,461 @@
// //
// Example: DEBUG_TRACE1(DEBUG_LVL_ERROR, "error code %d", dwRet); // Example: DEBUG_TRACE1(DEBUG_LVL_ERROR, "error code %d", dwRet);
#if (DEBUG_GLB_LVL() & DEBUG_LVL_ALWAYS) #if (DEBUG_GLB_LVL() & DEBUG_LVL_ALWAYS)
#define DEBUG_LVL_ALWAYS_TRACE0(str) TRACE0(str) #define DEBUG_LVL_ALWAYS_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_ALWAYS_TRACE1(str,p1) TRACE1(str,p1) #define DEBUG_LVL_ALWAYS_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_ALWAYS_TRACE2(str,p1,p2) TRACE2(str,p1,p2) #define DEBUG_LVL_ALWAYS_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_ALWAYS_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3) #define DEBUG_LVL_ALWAYS_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ALWAYS_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4) #define DEBUG_LVL_ALWAYS_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else #else
#define DEBUG_LVL_ALWAYS_TRACE0(str) #define DEBUG_LVL_ALWAYS_TRACE0(str)
#define DEBUG_LVL_ALWAYS_TRACE1(str,p1) #define DEBUG_LVL_ALWAYS_TRACE1(str,p1)
#define DEBUG_LVL_ALWAYS_TRACE2(str,p1,p2) #define DEBUG_LVL_ALWAYS_TRACE2(str,p1,p2)
#define DEBUG_LVL_ALWAYS_TRACE3(str,p1,p2,p3) #define DEBUG_LVL_ALWAYS_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ALWAYS_TRACE4(str,p1,p2,p3,p4) #define DEBUG_LVL_ALWAYS_TRACE4(str,p1,p2,p3,p4)
#endif #endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_ERROR)
#define DEBUG_LVL_ERROR_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_ERROR_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_ERROR_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_ERROR_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ERROR_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_ERROR_TRACE0(str)
#define DEBUG_LVL_ERROR_TRACE1(str,p1)
#define DEBUG_LVL_ERROR_TRACE2(str,p1,p2)
#define DEBUG_LVL_ERROR_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ERROR_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_ASSERT)
#define DEBUG_LVL_ASSERT_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_ASSERT_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_ASSERT_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_ASSERT_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ASSERT_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_ASSERT_TRACE0(str)
#define DEBUG_LVL_ASSERT_TRACE1(str,p1)
#define DEBUG_LVL_ASSERT_TRACE2(str,p1,p2)
#define DEBUG_LVL_ASSERT_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ASSERT_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_29)
#define DEBUG_LVL_29_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_29_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_29_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_29_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_29_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_29_TRACE0(str)
#define DEBUG_LVL_29_TRACE1(str,p1)
#define DEBUG_LVL_29_TRACE2(str,p1,p2)
#define DEBUG_LVL_29_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_29_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_28)
#define DEBUG_LVL_28_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_28_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_28_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_28_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_28_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_28_TRACE0(str)
#define DEBUG_LVL_28_TRACE1(str,p1)
#define DEBUG_LVL_28_TRACE2(str,p1,p2)
#define DEBUG_LVL_28_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_28_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_27)
#define DEBUG_LVL_27_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_27_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_27_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_27_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_27_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_27_TRACE0(str)
#define DEBUG_LVL_27_TRACE1(str,p1)
#define DEBUG_LVL_27_TRACE2(str,p1,p2)
#define DEBUG_LVL_27_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_27_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_26)
#define DEBUG_LVL_26_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_26_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_26_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_26_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_26_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_26_TRACE0(str)
#define DEBUG_LVL_26_TRACE1(str,p1)
#define DEBUG_LVL_26_TRACE2(str,p1,p2)
#define DEBUG_LVL_26_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_26_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_25)
#define DEBUG_LVL_25_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_25_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_25_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_25_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_25_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_25_TRACE0(str)
#define DEBUG_LVL_25_TRACE1(str,p1)
#define DEBUG_LVL_25_TRACE2(str,p1,p2)
#define DEBUG_LVL_25_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_25_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_24)
#define DEBUG_LVL_24_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_24_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_24_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_24_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_24_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_24_TRACE0(str)
#define DEBUG_LVL_24_TRACE1(str,p1)
#define DEBUG_LVL_24_TRACE2(str,p1,p2)
#define DEBUG_LVL_24_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_24_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_23)
#define DEBUG_LVL_23_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_23_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_23_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_23_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_23_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_23_TRACE0(str)
#define DEBUG_LVL_23_TRACE1(str,p1)
#define DEBUG_LVL_23_TRACE2(str,p1,p2)
#define DEBUG_LVL_23_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_23_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_22)
#define DEBUG_LVL_22_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_22_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_22_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_22_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_22_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_22_TRACE0(str)
#define DEBUG_LVL_22_TRACE1(str,p1)
#define DEBUG_LVL_22_TRACE2(str,p1,p2)
#define DEBUG_LVL_22_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_22_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_21)
#define DEBUG_LVL_21_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_21_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_21_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_21_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_21_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_21_TRACE0(str)
#define DEBUG_LVL_21_TRACE1(str,p1)
#define DEBUG_LVL_21_TRACE2(str,p1,p2)
#define DEBUG_LVL_21_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_21_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_20)
#define DEBUG_LVL_20_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_20_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_20_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_20_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_20_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_20_TRACE0(str)
#define DEBUG_LVL_20_TRACE1(str,p1)
#define DEBUG_LVL_20_TRACE2(str,p1,p2)
#define DEBUG_LVL_20_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_20_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_19)
#define DEBUG_LVL_19_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_19_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_19_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_19_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_19_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_19_TRACE0(str)
#define DEBUG_LVL_19_TRACE1(str,p1)
#define DEBUG_LVL_19_TRACE2(str,p1,p2)
#define DEBUG_LVL_19_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_19_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_18)
#define DEBUG_LVL_18_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_18_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_18_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_18_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_18_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_18_TRACE0(str)
#define DEBUG_LVL_18_TRACE1(str,p1)
#define DEBUG_LVL_18_TRACE2(str,p1,p2)
#define DEBUG_LVL_18_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_18_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_17)
#define DEBUG_LVL_17_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_17_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_17_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_17_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_17_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_17_TRACE0(str)
#define DEBUG_LVL_17_TRACE1(str,p1)
#define DEBUG_LVL_17_TRACE2(str,p1,p2)
#define DEBUG_LVL_17_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_17_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_16)
#define DEBUG_LVL_16_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_16_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_16_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_16_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_16_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_16_TRACE0(str)
#define DEBUG_LVL_16_TRACE1(str,p1)
#define DEBUG_LVL_16_TRACE2(str,p1,p2)
#define DEBUG_LVL_16_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_16_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_15)
#define DEBUG_LVL_15_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_15_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_15_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_15_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_15_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_15_TRACE0(str)
#define DEBUG_LVL_15_TRACE1(str,p1)
#define DEBUG_LVL_15_TRACE2(str,p1,p2)
#define DEBUG_LVL_15_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_15_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_14)
#define DEBUG_LVL_14_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_14_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_14_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_14_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_14_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_14_TRACE0(str)
#define DEBUG_LVL_14_TRACE1(str,p1)
#define DEBUG_LVL_14_TRACE2(str,p1,p2)
#define DEBUG_LVL_14_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_14_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_13)
#define DEBUG_LVL_13_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_13_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_13_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_13_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_13_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_13_TRACE0(str)
#define DEBUG_LVL_13_TRACE1(str,p1)
#define DEBUG_LVL_13_TRACE2(str,p1,p2)
#define DEBUG_LVL_13_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_13_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_12)
#define DEBUG_LVL_12_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_12_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_12_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_12_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_12_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_12_TRACE0(str)
#define DEBUG_LVL_12_TRACE1(str,p1)
#define DEBUG_LVL_12_TRACE2(str,p1,p2)
#define DEBUG_LVL_12_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_12_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_11)
#define DEBUG_LVL_11_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_11_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_11_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_11_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_11_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_11_TRACE0(str)
#define DEBUG_LVL_11_TRACE1(str,p1)
#define DEBUG_LVL_11_TRACE2(str,p1,p2)
#define DEBUG_LVL_11_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_11_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_10)
#define DEBUG_LVL_10_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_10_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_10_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_10_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_10_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_10_TRACE0(str)
#define DEBUG_LVL_10_TRACE1(str,p1)
#define DEBUG_LVL_10_TRACE2(str,p1,p2)
#define DEBUG_LVL_10_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_10_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_09)
#define DEBUG_LVL_09_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_09_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_09_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_09_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_09_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_09_TRACE0(str)
#define DEBUG_LVL_09_TRACE1(str,p1)
#define DEBUG_LVL_09_TRACE2(str,p1,p2)
#define DEBUG_LVL_09_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_09_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_08)
#define DEBUG_LVL_08_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_08_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_08_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_08_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_08_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_08_TRACE0(str)
#define DEBUG_LVL_08_TRACE1(str,p1)
#define DEBUG_LVL_08_TRACE2(str,p1,p2)
#define DEBUG_LVL_08_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_08_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_07)
#define DEBUG_LVL_07_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_07_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_07_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_07_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_07_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_07_TRACE0(str)
#define DEBUG_LVL_07_TRACE1(str,p1)
#define DEBUG_LVL_07_TRACE2(str,p1,p2)
#define DEBUG_LVL_07_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_07_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_06)
#define DEBUG_LVL_06_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_06_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_06_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_06_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_06_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_06_TRACE0(str)
#define DEBUG_LVL_06_TRACE1(str,p1)
#define DEBUG_LVL_06_TRACE2(str,p1,p2)
#define DEBUG_LVL_06_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_06_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_05)
#define DEBUG_LVL_05_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_05_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_05_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_05_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_05_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_05_TRACE0(str)
#define DEBUG_LVL_05_TRACE1(str,p1)
#define DEBUG_LVL_05_TRACE2(str,p1,p2)
#define DEBUG_LVL_05_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_05_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_04)
#define DEBUG_LVL_04_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_04_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_04_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_04_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_04_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_04_TRACE0(str)
#define DEBUG_LVL_04_TRACE1(str,p1)
#define DEBUG_LVL_04_TRACE2(str,p1,p2)
#define DEBUG_LVL_04_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_04_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_03)
#define DEBUG_LVL_03_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_03_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_03_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_03_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_03_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_03_TRACE0(str)
#define DEBUG_LVL_03_TRACE1(str,p1)
#define DEBUG_LVL_03_TRACE2(str,p1,p2)
#define DEBUG_LVL_03_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_03_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_02)
#define DEBUG_LVL_02_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_02_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_02_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_02_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_02_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_02_TRACE0(str)
#define DEBUG_LVL_02_TRACE1(str,p1)
#define DEBUG_LVL_02_TRACE2(str,p1,p2)
#define DEBUG_LVL_02_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_02_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_01)
#define DEBUG_LVL_01_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_01_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_01_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_01_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_01_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_01_TRACE0(str)
#define DEBUG_LVL_01_TRACE1(str,p1)
#define DEBUG_LVL_01_TRACE2(str,p1,p2)
#define DEBUG_LVL_01_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_01_TRACE4(str,p1,p2,p3,p4)
#endif
#define DEBUG_TRACE0(lvl,str) lvl##_TRACE0(str)
#define DEBUG_TRACE1(lvl,str,p1) lvl##_TRACE1(str,p1)
#define DEBUG_TRACE2(lvl,str,p1,p2) lvl##_TRACE2(str,p1,p2)
#define DEBUG_TRACE3(lvl,str,p1,p2,p3) lvl##_TRACE3(str,p1,p2,p3)
#define DEBUG_TRACE4(lvl,str,p1,p2,p3,p4) lvl##_TRACE4(str,p1,p2,p3,p4)
#if (DEBUG_GLB_LVL() & DEBUG_LVL_ERROR)
#define DEBUG_LVL_ERROR_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_ERROR_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_ERROR_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_ERROR_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ERROR_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_ERROR_TRACE0(str)
#define DEBUG_LVL_ERROR_TRACE1(str,p1)
#define DEBUG_LVL_ERROR_TRACE2(str,p1,p2)
#define DEBUG_LVL_ERROR_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ERROR_TRACE4(str,p1,p2,p3,p4)
#endif #endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_ASSERT)
#define DEBUG_LVL_ASSERT_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_ASSERT_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_ASSERT_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_ASSERT_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ASSERT_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_ASSERT_TRACE0(str)
#define DEBUG_LVL_ASSERT_TRACE1(str,p1)
#define DEBUG_LVL_ASSERT_TRACE2(str,p1,p2)
#define DEBUG_LVL_ASSERT_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_ASSERT_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_29)
#define DEBUG_LVL_29_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_29_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_29_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_29_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_29_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_29_TRACE0(str)
#define DEBUG_LVL_29_TRACE1(str,p1)
#define DEBUG_LVL_29_TRACE2(str,p1,p2)
#define DEBUG_LVL_29_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_29_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_28)
#define DEBUG_LVL_28_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_28_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_28_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_28_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_28_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_28_TRACE0(str)
#define DEBUG_LVL_28_TRACE1(str,p1)
#define DEBUG_LVL_28_TRACE2(str,p1,p2)
#define DEBUG_LVL_28_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_28_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_27)
#define DEBUG_LVL_27_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_27_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_27_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_27_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_27_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_27_TRACE0(str)
#define DEBUG_LVL_27_TRACE1(str,p1)
#define DEBUG_LVL_27_TRACE2(str,p1,p2)
#define DEBUG_LVL_27_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_27_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_26)
#define DEBUG_LVL_26_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_26_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_26_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_26_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_26_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_26_TRACE0(str)
#define DEBUG_LVL_26_TRACE1(str,p1)
#define DEBUG_LVL_26_TRACE2(str,p1,p2)
#define DEBUG_LVL_26_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_26_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_25)
#define DEBUG_LVL_25_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_25_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_25_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_25_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_25_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_25_TRACE0(str)
#define DEBUG_LVL_25_TRACE1(str,p1)
#define DEBUG_LVL_25_TRACE2(str,p1,p2)
#define DEBUG_LVL_25_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_25_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_24)
#define DEBUG_LVL_24_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_24_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_24_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_24_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_24_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_24_TRACE0(str)
#define DEBUG_LVL_24_TRACE1(str,p1)
#define DEBUG_LVL_24_TRACE2(str,p1,p2)
#define DEBUG_LVL_24_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_24_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_23)
#define DEBUG_LVL_23_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_23_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_23_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_23_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_23_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_23_TRACE0(str)
#define DEBUG_LVL_23_TRACE1(str,p1)
#define DEBUG_LVL_23_TRACE2(str,p1,p2)
#define DEBUG_LVL_23_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_23_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_22)
#define DEBUG_LVL_22_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_22_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_22_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_22_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_22_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_22_TRACE0(str)
#define DEBUG_LVL_22_TRACE1(str,p1)
#define DEBUG_LVL_22_TRACE2(str,p1,p2)
#define DEBUG_LVL_22_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_22_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_21)
#define DEBUG_LVL_21_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_21_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_21_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_21_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_21_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_21_TRACE0(str)
#define DEBUG_LVL_21_TRACE1(str,p1)
#define DEBUG_LVL_21_TRACE2(str,p1,p2)
#define DEBUG_LVL_21_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_21_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_20)
#define DEBUG_LVL_20_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_20_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_20_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_20_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_20_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_20_TRACE0(str)
#define DEBUG_LVL_20_TRACE1(str,p1)
#define DEBUG_LVL_20_TRACE2(str,p1,p2)
#define DEBUG_LVL_20_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_20_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_19)
#define DEBUG_LVL_19_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_19_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_19_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_19_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_19_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_19_TRACE0(str)
#define DEBUG_LVL_19_TRACE1(str,p1)
#define DEBUG_LVL_19_TRACE2(str,p1,p2)
#define DEBUG_LVL_19_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_19_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_18)
#define DEBUG_LVL_18_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_18_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_18_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_18_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_18_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_18_TRACE0(str)
#define DEBUG_LVL_18_TRACE1(str,p1)
#define DEBUG_LVL_18_TRACE2(str,p1,p2)
#define DEBUG_LVL_18_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_18_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_17)
#define DEBUG_LVL_17_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_17_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_17_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_17_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_17_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_17_TRACE0(str)
#define DEBUG_LVL_17_TRACE1(str,p1)
#define DEBUG_LVL_17_TRACE2(str,p1,p2)
#define DEBUG_LVL_17_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_17_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_16)
#define DEBUG_LVL_16_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_16_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_16_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_16_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_16_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_16_TRACE0(str)
#define DEBUG_LVL_16_TRACE1(str,p1)
#define DEBUG_LVL_16_TRACE2(str,p1,p2)
#define DEBUG_LVL_16_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_16_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_15)
#define DEBUG_LVL_15_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_15_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_15_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_15_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_15_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_15_TRACE0(str)
#define DEBUG_LVL_15_TRACE1(str,p1)
#define DEBUG_LVL_15_TRACE2(str,p1,p2)
#define DEBUG_LVL_15_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_15_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_14)
#define DEBUG_LVL_14_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_14_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_14_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_14_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_14_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_14_TRACE0(str)
#define DEBUG_LVL_14_TRACE1(str,p1)
#define DEBUG_LVL_14_TRACE2(str,p1,p2)
#define DEBUG_LVL_14_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_14_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_13)
#define DEBUG_LVL_13_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_13_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_13_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_13_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_13_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_13_TRACE0(str)
#define DEBUG_LVL_13_TRACE1(str,p1)
#define DEBUG_LVL_13_TRACE2(str,p1,p2)
#define DEBUG_LVL_13_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_13_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_12)
#define DEBUG_LVL_12_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_12_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_12_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_12_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_12_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_12_TRACE0(str)
#define DEBUG_LVL_12_TRACE1(str,p1)
#define DEBUG_LVL_12_TRACE2(str,p1,p2)
#define DEBUG_LVL_12_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_12_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_11)
#define DEBUG_LVL_11_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_11_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_11_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_11_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_11_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_11_TRACE0(str)
#define DEBUG_LVL_11_TRACE1(str,p1)
#define DEBUG_LVL_11_TRACE2(str,p1,p2)
#define DEBUG_LVL_11_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_11_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_10)
#define DEBUG_LVL_10_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_10_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_10_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_10_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_10_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_10_TRACE0(str)
#define DEBUG_LVL_10_TRACE1(str,p1)
#define DEBUG_LVL_10_TRACE2(str,p1,p2)
#define DEBUG_LVL_10_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_10_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_09)
#define DEBUG_LVL_09_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_09_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_09_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_09_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_09_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_09_TRACE0(str)
#define DEBUG_LVL_09_TRACE1(str,p1)
#define DEBUG_LVL_09_TRACE2(str,p1,p2)
#define DEBUG_LVL_09_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_09_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_08)
#define DEBUG_LVL_08_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_08_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_08_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_08_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_08_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_08_TRACE0(str)
#define DEBUG_LVL_08_TRACE1(str,p1)
#define DEBUG_LVL_08_TRACE2(str,p1,p2)
#define DEBUG_LVL_08_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_08_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_07)
#define DEBUG_LVL_07_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_07_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_07_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_07_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_07_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_07_TRACE0(str)
#define DEBUG_LVL_07_TRACE1(str,p1)
#define DEBUG_LVL_07_TRACE2(str,p1,p2)
#define DEBUG_LVL_07_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_07_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_06)
#define DEBUG_LVL_06_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_06_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_06_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_06_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_06_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_06_TRACE0(str)
#define DEBUG_LVL_06_TRACE1(str,p1)
#define DEBUG_LVL_06_TRACE2(str,p1,p2)
#define DEBUG_LVL_06_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_06_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_05)
#define DEBUG_LVL_05_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_05_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_05_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_05_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_05_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_05_TRACE0(str)
#define DEBUG_LVL_05_TRACE1(str,p1)
#define DEBUG_LVL_05_TRACE2(str,p1,p2)
#define DEBUG_LVL_05_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_05_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_04)
#define DEBUG_LVL_04_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_04_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_04_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_04_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_04_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_04_TRACE0(str)
#define DEBUG_LVL_04_TRACE1(str,p1)
#define DEBUG_LVL_04_TRACE2(str,p1,p2)
#define DEBUG_LVL_04_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_04_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_03)
#define DEBUG_LVL_03_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_03_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_03_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_03_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_03_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_03_TRACE0(str)
#define DEBUG_LVL_03_TRACE1(str,p1)
#define DEBUG_LVL_03_TRACE2(str,p1,p2)
#define DEBUG_LVL_03_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_03_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_02)
#define DEBUG_LVL_02_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_02_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_02_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_02_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_02_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_02_TRACE0(str)
#define DEBUG_LVL_02_TRACE1(str,p1)
#define DEBUG_LVL_02_TRACE2(str,p1,p2)
#define DEBUG_LVL_02_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_02_TRACE4(str,p1,p2,p3,p4)
#endif
#if (DEBUG_GLB_LVL() & DEBUG_LVL_01)
#define DEBUG_LVL_01_TRACE0(str) TRACE0(str)
#define DEBUG_LVL_01_TRACE1(str,p1) TRACE1(str,p1)
#define DEBUG_LVL_01_TRACE2(str,p1,p2) TRACE2(str,p1,p2)
#define DEBUG_LVL_01_TRACE3(str,p1,p2,p3) TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_01_TRACE4(str,p1,p2,p3,p4) TRACE4(str,p1,p2,p3,p4)
#else
#define DEBUG_LVL_01_TRACE0(str)
#define DEBUG_LVL_01_TRACE1(str,p1)
#define DEBUG_LVL_01_TRACE2(str,p1,p2)
#define DEBUG_LVL_01_TRACE3(str,p1,p2,p3)
#define DEBUG_LVL_01_TRACE4(str,p1,p2,p3,p4)
#endif
#define DEBUG_TRACE0(lvl,str) lvl##_TRACE0(str)
#define DEBUG_TRACE1(lvl,str,p1) lvl##_TRACE1(str,p1)
#define DEBUG_TRACE2(lvl,str,p1,p2) lvl##_TRACE2(str,p1,p2)
#define DEBUG_TRACE3(lvl,str,p1,p2,p3) lvl##_TRACE3(str,p1,p2,p3)
#define DEBUG_TRACE4(lvl,str,p1,p2,p3,p4) lvl##_TRACE4(str,p1,p2,p3,p4)
#endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// The macro DEBUG_DUMP_DATA() can be used with the same debug-levels to dump // The macro DEBUG_DUMP_DATA() can be used with the same debug-levels to dump
...@@ -661,27 +651,23 @@ ...@@ -661,27 +651,23 @@
// NOTE: DUMP_DATA has to be defined in project settings. // NOTE: DUMP_DATA has to be defined in project settings.
#if (!defined (NDEBUG) && defined (DUMP_DATA)) || (DEV_SYSTEM == _DEV_WIN32_) #if (!defined (NDEBUG) && defined (DUMP_DATA)) || (DEV_SYSTEM == _DEV_WIN32_)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C" {
{ #endif
#endif
void DumpData (char* szStr_p, BYTE MEM* pbData_p, WORD wSize_p);
#ifdef __cplusplus void DumpData(char *szStr_p, BYTE MEM * pbData_p, WORD wSize_p);
} // von extern "C"
#endif
#define DEBUG_DUMP_DATA(lvl,str,ptr,siz) if ((DEBUG_GLB_LVL() & (lvl))==(lvl)) \ #ifdef __cplusplus
} // von extern "C"
#endif
#define DEBUG_DUMP_DATA(lvl,str,ptr,siz) if ((DEBUG_GLB_LVL() & (lvl))==(lvl)) \
DumpData (str, (BYTE MEM*) (ptr), (WORD) (siz)); DumpData (str, (BYTE MEM*) (ptr), (WORD) (siz));
#else #else
#define DEBUG_DUMP_DATA(lvl,str,ptr,siz) #define DEBUG_DUMP_DATA(lvl,str,ptr,siz)
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// The macro DEBUG_ASSERT() can be used to print out an error string if the // The macro DEBUG_ASSERT() can be used to print out an error string if the
// parametered expresion does not result TRUE. // parametered expresion does not result TRUE.
...@@ -689,62 +675,60 @@ ...@@ -689,62 +675,60 @@
// deleted from compiler (in release version too). // deleted from compiler (in release version too).
#if !defined (NDEBUG) || defined (DEBUG_KEEP_ASSERT) #if !defined (NDEBUG) || defined (DEBUG_KEEP_ASSERT)
#if (DEV_SYSTEM == _DEV_WIN32_) #if (DEV_SYSTEM == _DEV_WIN32_)
// For WIN32 process will be killed after closing message box. // For WIN32 process will be killed after closing message box.
#define DEBUG_ASSERT0(expr,str) if (!(expr ) && ((DEBUG_GLB_LVL() & DEBUG_LVL_ASSERT)!=0)) { \ #define DEBUG_ASSERT0(expr,str) if (!(expr ) && ((DEBUG_GLB_LVL() & DEBUG_LVL_ASSERT)!=0)) { \
MessageBox (NULL, \ MessageBox (NULL, \
"Assertion failed: line " __LINE__ " file " __FILE__ \ "Assertion failed: line " __LINE__ " file " __FILE__ \
"\n -> " str "\n"); \ "\n -> " str "\n"); \
ExitProcess (-1); } ExitProcess (-1); }
#define DEBUG_ASSERT1(expr,str,p1) if (!(expr ) && ((DEBUG_GLB_LVL() & DEBUG_LVL_ASSERT)!=0)) { \ #define DEBUG_ASSERT1(expr,str,p1) if (!(expr ) && ((DEBUG_GLB_LVL() & DEBUG_LVL_ASSERT)!=0)) { \
MessageBox (NULL, \ MessageBox (NULL, \
"Assertion failed: line " __LINE__ " file " __FILE__ \ "Assertion failed: line " __LINE__ " file " __FILE__ \
"\n -> " str "\n"); \ "\n -> " str "\n"); \
ExitProcess (-1); } ExitProcess (-1); }
#else #else
// For microcontrollers process will be stopped using endless loop. // For microcontrollers process will be stopped using endless loop.
#define DEBUG_ASSERT0(expr,str) if (!(expr )) { \ #define DEBUG_ASSERT0(expr,str) if (!(expr )) { \
DEBUG_LVL_ASSERT_TRACE3 ( \ DEBUG_LVL_ASSERT_TRACE3 ( \
"Assertion failed: line %d file '%s'\n" \ "Assertion failed: line %d file '%s'\n" \
" -> '%s'\n", __LINE__, __FILE__, str); \ " -> '%s'\n", __LINE__, __FILE__, str); \
while (1); } while (1); }
#define DEBUG_ASSERT1(expr,str,p1) if (!(expr )) { \ #define DEBUG_ASSERT1(expr,str,p1) if (!(expr )) { \
DEBUG_LVL_ASSERT_TRACE4 ( \ DEBUG_LVL_ASSERT_TRACE4 ( \
"Assertion failed: line %d file '%s'\n" \ "Assertion failed: line %d file '%s'\n" \
" -> '%s'\n" \ " -> '%s'\n" \
" -> 0x%08lX\n", __LINE__, __FILE__, str, (DWORD) p1); \ " -> 0x%08lX\n", __LINE__, __FILE__, str, (DWORD) p1); \
while (1); } while (1); }
#endif #endif
#else #else
#define DEBUG_ASSERT0(expr,str) #define DEBUG_ASSERT0(expr,str)
#define DEBUG_ASSERT1(expr,str,p1) #define DEBUG_ASSERT1(expr,str,p1)
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// The macro DEBUG_ONLY() implements code, if NDEBUG is not defined. // The macro DEBUG_ONLY() implements code, if NDEBUG is not defined.
#if !defined (DEBUG_ONLY) #if !defined (DEBUG_ONLY)
#if !defined (NDEBUG) #if !defined (NDEBUG)
#define DEBUG_ONLY(expr) expr #define DEBUG_ONLY(expr) expr
#else #else
#define DEBUG_ONLY(expr) #define DEBUG_ONLY(expr)
#endif
#endif #endif
#endif
#endif // _DEBUG_H_ #endif // _DEBUG_H_
...@@ -73,40 +73,32 @@ ...@@ -73,40 +73,32 @@
#ifndef _EDRVFEC_H_ #ifndef _EDRVFEC_H_
#define _EDRVFEC_H_ #define _EDRVFEC_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// do this in config header // do this in config header
#define TARGET_HARDWARE TGTHW_SPLC_CF54 #define TARGET_HARDWARE TGTHW_SPLC_CF54
// base addresses // base addresses
#if ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5282) #if ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5282)
#elif ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5485) #elif ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5485)
#else #else
#error 'ERROR: Target was never implemented!' #error 'ERROR: Target was never implemented!'
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// types // types
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Rx and Tx buffer descriptor format // Rx and Tx buffer descriptor format
typedef struct typedef struct {
{
WORD m_wStatus; // control / status --- used by edrv, do not change in application WORD m_wStatus; // control / status --- used by edrv, do not change in application
WORD m_wLength; // transfer length WORD m_wLength; // transfer length
BYTE * m_pbData; // buffer address BYTE *m_pbData; // buffer address
} tBufferDescr; } tBufferDescr;
#if ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5282) #if ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5282)
...@@ -119,8 +111,4 @@ typedef struct ...@@ -119,8 +111,4 @@ typedef struct
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EDRV_FEC_H_ #endif // #ifndef _EDRV_FEC_H_
...@@ -73,7 +73,6 @@ ...@@ -73,7 +73,6 @@
#ifndef _EDRVFEC_H_ #ifndef _EDRVFEC_H_
#define _EDRVFEC_H_ #define _EDRVFEC_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -315,11 +314,10 @@ ...@@ -315,11 +314,10 @@
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Rx and Tx buffer descriptor format // Rx and Tx buffer descriptor format
typedef struct typedef struct {
{
WORD m_wStatus; // control / status --- used by edrv, do not change in application WORD m_wStatus; // control / status --- used by edrv, do not change in application
WORD m_wLength; // transfer length WORD m_wLength; // transfer length
BYTE * m_pbData; // buffer address BYTE *m_pbData; // buffer address
} tBufferDescr; } tBufferDescr;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -327,21 +325,16 @@ typedef struct ...@@ -327,21 +325,16 @@ typedef struct
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#if (NO_OF_INSTANCES > 1) #if (NO_OF_INSTANCES > 1)
#define ECI_WRITE_DW_REG(off,val) (*(DWORD *)(void *)(&__IPSBAR[off]) = val) #define ECI_WRITE_DW_REG(off,val) (*(DWORD *)(void *)(&__IPSBAR[off]) = val)
#define ECI_READ_DW_REG(off) (*(DWORD *)(void *)(&__IPSBAR[off])) #define ECI_READ_DW_REG(off) (*(DWORD *)(void *)(&__IPSBAR[off]))
#else
#if (EDRV_USED_ETH_CTRL == 0)
#define ECI_WRITE_DW_REG(off,val) (*(DWORD *)(void *)(&__IPSBAR[FEC0_ADDR+off]) = val)
#define ECI_READ_DW_REG(off) (*(DWORD *)(void *)(&__IPSBAR[FEC0_ADDR+off]))
#else #else
#if (EDRV_USED_ETH_CTRL == 0) #define ECI_WRITE_DW_REG(off,val) (*(DWORD *)(void *)(&__IPSBAR[FEC1_ADDR+off]) = val)
#define ECI_WRITE_DW_REG(off,val) (*(DWORD *)(void *)(&__IPSBAR[FEC0_ADDR+off]) = val) #define ECI_READ_DW_REG(off) (*(DWORD *)(void *)(&__IPSBAR[FEC1_ADDR+off]))
#define ECI_READ_DW_REG(off) (*(DWORD *)(void *)(&__IPSBAR[FEC0_ADDR+off])) #endif
#else
#define ECI_WRITE_DW_REG(off,val) (*(DWORD *)(void *)(&__IPSBAR[FEC1_ADDR+off]) = val)
#define ECI_READ_DW_REG(off) (*(DWORD *)(void *)(&__IPSBAR[FEC1_ADDR+off]))
#endif
#endif #endif
#endif // #ifndef _EDRV_FEC_H_ #endif // #ifndef _EDRV_FEC_H_
...@@ -71,7 +71,6 @@ ...@@ -71,7 +71,6 @@
#ifndef _EDRVSIM_H_ #ifndef _EDRVSIM_H_
#define _EDRVSIM_H_ #define _EDRVSIM_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -80,15 +79,11 @@ ...@@ -80,15 +79,11 @@
// types // types
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void EdrvRxInterruptHandler (BYTE bBufferInFrame_p, BYTE * pbEthernetData_p, WORD wDataLen_p); void EdrvRxInterruptHandler(BYTE bBufferInFrame_p, BYTE * pbEthernetData_p,
WORD wDataLen_p);
#endif // #ifndef _EDRVSIM_H_ #endif // #ifndef _EDRVSIM_H_
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/05/22 d.k.: start of the implementation, version 1.00 2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_API_H_ #ifndef _EPL_API_H_
...@@ -82,14 +81,11 @@ ...@@ -82,14 +81,11 @@
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef struct {
typedef struct
{
unsigned int m_uiNodeId; unsigned int m_uiNodeId;
tEplNmtState m_NmtState; tEplNmtState m_NmtState;
tEplNmtNodeEvent m_NodeEvent; tEplNmtNodeEvent m_NodeEvent;
...@@ -98,26 +94,20 @@ typedef struct ...@@ -98,26 +94,20 @@ typedef struct
} tEplApiEventNode; } tEplApiEventNode;
typedef struct {
typedef struct
{
tEplNmtState m_NmtState; // local NMT state tEplNmtState m_NmtState; // local NMT state
tEplNmtBootEvent m_BootEvent; tEplNmtBootEvent m_BootEvent;
WORD m_wErrorCode; // EPL error code if m_BootEvent == kEplNmtBootEventError WORD m_wErrorCode; // EPL error code if m_BootEvent == kEplNmtBootEventError
} tEplApiEventBoot; } tEplApiEventBoot;
typedef struct {
typedef struct
{
tEplLedType m_LedType; // type of the LED (e.g. Status or Error) tEplLedType m_LedType; // type of the LED (e.g. Status or Error)
BOOL m_fOn; // state of the LED (e.g. on or off) BOOL m_fOn; // state of the LED (e.g. on or off)
} tEplApiEventLed; } tEplApiEventLed;
typedef enum {
typedef enum
{
kEplApiEventNmtStateChange = 0x10, // m_NmtStateChange kEplApiEventNmtStateChange = 0x10, // m_NmtStateChange
// kEplApiEventRequestNmt = 0x11, // m_bNmtCmd // kEplApiEventRequestNmt = 0x11, // m_bNmtCmd
kEplApiEventCriticalError = 0x12, // m_InternalError, Stack halted kEplApiEventCriticalError = 0x12, // m_InternalError, Stack halted
...@@ -130,9 +120,7 @@ typedef enum ...@@ -130,9 +120,7 @@ typedef enum
} tEplApiEventType; } tEplApiEventType;
typedef union {
typedef union
{
tEplEventNmtStateChange m_NmtStateChange; tEplEventNmtStateChange m_NmtStateChange;
tEplEventError m_InternalError; tEplEventError m_InternalError;
tEplSdoComFinished m_Sdo; tEplSdoComFinished m_Sdo;
...@@ -143,15 +131,11 @@ typedef union ...@@ -143,15 +131,11 @@ typedef union
} tEplApiEventArg; } tEplApiEventArg;
typedef tEplKernel(PUBLIC ROM * tEplApiCbEvent) (tEplApiEventType EventType_p, // IN: event type (enum)
tEplApiEventArg * pEventArg_p, // IN: event argument (union)
void GENERIC * pUserArg_p);
typedef tEplKernel (PUBLIC ROM* tEplApiCbEvent) ( typedef struct {
tEplApiEventType EventType_p, // IN: event type (enum)
tEplApiEventArg* pEventArg_p, // IN: event argument (union)
void GENERIC* pUserArg_p);
typedef struct
{
unsigned int m_uiSizeOfStruct; unsigned int m_uiSizeOfStruct;
BOOL m_fAsyncOnly; // do not need to register PRes BOOL m_fAsyncOnly; // do not need to register PRes
unsigned int m_uiNodeId; // local node ID unsigned int m_uiNodeId; // local node ID
...@@ -208,97 +192,82 @@ typedef struct ...@@ -208,97 +192,82 @@ typedef struct
BYTE m_sHostname[32]; BYTE m_sHostname[32];
BYTE m_abVendorSpecificExt2[48]; BYTE m_abVendorSpecificExt2[48];
char* m_pszDevName; // NMT_ManufactDevName_VS (0x1008/0 local OD) char *m_pszDevName; // NMT_ManufactDevName_VS (0x1008/0 local OD)
char* m_pszHwVersion; // NMT_ManufactHwVers_VS (0x1009/0 local OD) char *m_pszHwVersion; // NMT_ManufactHwVers_VS (0x1009/0 local OD)
char* m_pszSwVersion; // NMT_ManufactSwVers_VS (0x100A/0 local OD) char *m_pszSwVersion; // NMT_ManufactSwVers_VS (0x100A/0 local OD)
tEplApiCbEvent m_pfnCbEvent; tEplApiCbEvent m_pfnCbEvent;
void* m_pEventUserArg; void *m_pEventUserArg;
tEplSyncCb m_pfnCbSync; tEplSyncCb m_pfnCbSync;
} tEplApiInitParam; } tEplApiInitParam;
typedef struct {
typedef struct void *m_pImage;
{
void* m_pImage;
unsigned int m_uiSize; unsigned int m_uiSize;
} tEplApiProcessImage; } tEplApiProcessImage;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
tEplKernel PUBLIC EplApiInitialize(tEplApiInitParam* pInitParam_p); tEplKernel PUBLIC EplApiInitialize(tEplApiInitParam * pInitParam_p);
tEplKernel PUBLIC EplApiShutdown(void); tEplKernel PUBLIC EplApiShutdown(void);
tEplKernel PUBLIC EplApiReadObject( tEplKernel PUBLIC EplApiReadObject(tEplSdoComConHdl * pSdoComConHdl_p,
tEplSdoComConHdl* pSdoComConHdl_p,
unsigned int uiNodeId_p, unsigned int uiNodeId_p,
unsigned int uiIndex_p, unsigned int uiIndex_p,
unsigned int uiSubindex_p, unsigned int uiSubindex_p,
void* pDstData_le_p, void *pDstData_le_p,
unsigned int* puiSize_p, unsigned int *puiSize_p,
tEplSdoType SdoType_p, tEplSdoType SdoType_p, void *pUserArg_p);
void* pUserArg_p);
tEplKernel PUBLIC EplApiWriteObject( tEplKernel PUBLIC EplApiWriteObject(tEplSdoComConHdl * pSdoComConHdl_p,
tEplSdoComConHdl* pSdoComConHdl_p,
unsigned int uiNodeId_p, unsigned int uiNodeId_p,
unsigned int uiIndex_p, unsigned int uiIndex_p,
unsigned int uiSubindex_p, unsigned int uiSubindex_p,
void* pSrcData_le_p, void *pSrcData_le_p,
unsigned int uiSize_p, unsigned int uiSize_p,
tEplSdoType SdoType_p, tEplSdoType SdoType_p, void *pUserArg_p);
void* pUserArg_p);
tEplKernel PUBLIC EplApiFreeSdoChannel( tEplKernel PUBLIC EplApiFreeSdoChannel(tEplSdoComConHdl SdoComConHdl_p);
tEplSdoComConHdl SdoComConHdl_p);
tEplKernel PUBLIC EplApiReadLocalObject( tEplKernel PUBLIC EplApiReadLocalObject(unsigned int uiIndex_p,
unsigned int uiIndex_p,
unsigned int uiSubindex_p, unsigned int uiSubindex_p,
void* pDstData_p, void *pDstData_p,
unsigned int* puiSize_p); unsigned int *puiSize_p);
tEplKernel PUBLIC EplApiWriteLocalObject( tEplKernel PUBLIC EplApiWriteLocalObject(unsigned int uiIndex_p,
unsigned int uiIndex_p,
unsigned int uiSubindex_p, unsigned int uiSubindex_p,
void* pSrcData_p, void *pSrcData_p,
unsigned int uiSize_p); unsigned int uiSize_p);
tEplKernel PUBLIC EplApiCbObdAccess(tEplObdCbParam MEM* pParam_p); tEplKernel PUBLIC EplApiCbObdAccess(tEplObdCbParam MEM * pParam_p);
tEplKernel PUBLIC EplApiLinkObject( unsigned int uiObjIndex_p, tEplKernel PUBLIC EplApiLinkObject(unsigned int uiObjIndex_p,
void* pVar_p, void *pVar_p,
unsigned int* puiVarEntries_p, unsigned int *puiVarEntries_p,
tEplObdSize* pEntrySize_p, tEplObdSize * pEntrySize_p,
unsigned int uiFirstSubindex_p); unsigned int uiFirstSubindex_p);
tEplKernel PUBLIC EplApiExecNmtCommand(tEplNmtEvent NmtEvent_p); tEplKernel PUBLIC EplApiExecNmtCommand(tEplNmtEvent NmtEvent_p);
tEplKernel PUBLIC EplApiProcess(void); tEplKernel PUBLIC EplApiProcess(void);
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_NMT_MN)) != 0) #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_NMT_MN)) != 0)
tEplKernel PUBLIC EplApiMnTriggerStateChange(unsigned int uiNodeId_p, tEplKernel PUBLIC EplApiMnTriggerStateChange(unsigned int uiNodeId_p,
tEplNmtNodeCommand NodeCommand_p); tEplNmtNodeCommand NodeCommand_p);
#endif #endif
tEplKernel PUBLIC EplApiGetIdentResponse( tEplKernel PUBLIC EplApiGetIdentResponse(unsigned int uiNodeId_p,
unsigned int uiNodeId_p, tEplIdentResponse **
tEplIdentResponse** ppIdentResponse_p); ppIdentResponse_p);
// functions for process image will be implemented in separate file // functions for process image will be implemented in separate file
tEplKernel PUBLIC EplApiProcessImageSetup(void); tEplKernel PUBLIC EplApiProcessImageSetup(void);
tEplKernel PUBLIC EplApiProcessImageExchangeIn(tEplApiProcessImage* pPI_p); tEplKernel PUBLIC EplApiProcessImageExchangeIn(tEplApiProcessImage * pPI_p);
tEplKernel PUBLIC EplApiProcessImageExchangeOut(tEplApiProcessImage* pPI_p); tEplKernel PUBLIC EplApiProcessImageExchangeOut(tEplApiProcessImage * pPI_p);
#endif // #ifndef _EPL_API_H_ #endif // #ifndef _EPL_API_H_
...@@ -86,46 +86,43 @@ ...@@ -86,46 +86,43 @@
#ifndef _EPLAMI_H_ #ifndef _EPLAMI_H_
#define _EPLAMI_H_ #define _EPLAMI_H_
#if ((DEV_SYSTEM & _DEV_64BIT_SUPPORT_) == 0) #if ((DEV_SYSTEM & _DEV_64BIT_SUPPORT_) == 0)
// #ifdef USE_VAR64 // #ifdef USE_VAR64
#error 'ERROR: development system does not support 64 bit operations!' #error 'ERROR: development system does not support 64 bit operations!'
// #endif // #endif
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// types // types
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Prototypen // Prototypen
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#if (TARGET_SYSTEM == _WIN32_) #if (TARGET_SYSTEM == _WIN32_)
#if defined(INLINE_FUNCTION_DEF) #if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION #undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF #define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define INLINE_ENABLED TRUE #define INLINE_ENABLED TRUE
#define EPL_AMI_INLINED #define EPL_AMI_INLINED
#include "../EplStack/amix86.c" #include "../EplStack/amix86.c"
#endif #endif
#elif (TARGET_SYSTEM == _LINUX_) #elif (TARGET_SYSTEM == _LINUX_)
#if defined(__m68k__) // it is an big endian machine #if defined(__m68k__) // it is an big endian machine
#if defined(INLINE_FUNCTION_DEF) #if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION #undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF #define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define INLINE_ENABLED TRUE #define INLINE_ENABLED TRUE
#define EPL_AMI_INLINED #define EPL_AMI_INLINED
#include "../EplStack/amibe.c" #include "../EplStack/amibe.c"
#endif #endif
#endif #endif
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -140,13 +137,12 @@ ...@@ -140,13 +137,12 @@
#define AmiSetByteToLe(pAddr_p, bByteVal_p) {*(BYTE FAR*)(pAddr_p) = (bByteVal_p);} #define AmiSetByteToLe(pAddr_p, bByteVal_p) {*(BYTE FAR*)(pAddr_p) = (bByteVal_p);}
#if !defined(INLINE_ENABLED) #if !defined(INLINE_ENABLED)
void PUBLIC AmiSetWordToBe (void FAR* pAddr_p, WORD wWordVal_p); void PUBLIC AmiSetWordToBe(void FAR * pAddr_p, WORD wWordVal_p);
void PUBLIC AmiSetDwordToBe (void FAR* pAddr_p, DWORD dwDwordVal_p); void PUBLIC AmiSetDwordToBe(void FAR * pAddr_p, DWORD dwDwordVal_p);
void PUBLIC AmiSetWordToLe (void FAR* pAddr_p, WORD wWordVal_p); void PUBLIC AmiSetWordToLe(void FAR * pAddr_p, WORD wWordVal_p);
void PUBLIC AmiSetDwordToLe (void FAR* pAddr_p, DWORD dwDwordVal_p); void PUBLIC AmiSetDwordToLe(void FAR * pAddr_p, DWORD dwDwordVal_p);
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
// read functions // read functions
...@@ -160,10 +156,10 @@ void PUBLIC AmiSetDwordToLe (void FAR* pAddr_p, DWORD dwDwordVal_p); ...@@ -160,10 +156,10 @@ void PUBLIC AmiSetDwordToLe (void FAR* pAddr_p, DWORD dwDwordVal_p);
#if !defined(INLINE_ENABLED) #if !defined(INLINE_ENABLED)
WORD PUBLIC AmiGetWordFromBe (void FAR* pAddr_p); WORD PUBLIC AmiGetWordFromBe(void FAR * pAddr_p);
DWORD PUBLIC AmiGetDwordFromBe (void FAR* pAddr_p); DWORD PUBLIC AmiGetDwordFromBe(void FAR * pAddr_p);
WORD PUBLIC AmiGetWordFromLe (void FAR* pAddr_p); WORD PUBLIC AmiGetWordFromLe(void FAR * pAddr_p);
DWORD PUBLIC AmiGetDwordFromLe (void FAR* pAddr_p); DWORD PUBLIC AmiGetDwordFromLe(void FAR * pAddr_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -178,9 +174,8 @@ DWORD PUBLIC AmiGetDwordFromLe (void FAR* pAddr_p); ...@@ -178,9 +174,8 @@ DWORD PUBLIC AmiGetDwordFromLe (void FAR* pAddr_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void PUBLIC AmiSetDword24ToBe (void FAR* pAddr_p, DWORD dwDwordVal_p); void PUBLIC AmiSetDword24ToBe(void FAR * pAddr_p, DWORD dwDwordVal_p);
void PUBLIC AmiSetDword24ToLe (void FAR* pAddr_p, DWORD dwDwordVal_p); void PUBLIC AmiSetDword24ToLe(void FAR * pAddr_p, DWORD dwDwordVal_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -194,9 +189,8 @@ void PUBLIC AmiSetDword24ToLe (void FAR* pAddr_p, DWORD dwDwordVal_p); ...@@ -194,9 +189,8 @@ void PUBLIC AmiSetDword24ToLe (void FAR* pAddr_p, DWORD dwDwordVal_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
DWORD PUBLIC AmiGetDword24FromBe (void FAR* pAddr_p); DWORD PUBLIC AmiGetDword24FromBe(void FAR * pAddr_p);
DWORD PUBLIC AmiGetDword24FromLe (void FAR* pAddr_p); DWORD PUBLIC AmiGetDword24FromLe(void FAR * pAddr_p);
//#ifdef USE_VAR64 //#ifdef USE_VAR64
...@@ -213,9 +207,8 @@ DWORD PUBLIC AmiGetDword24FromLe (void FAR* pAddr_p); ...@@ -213,9 +207,8 @@ DWORD PUBLIC AmiGetDword24FromLe (void FAR* pAddr_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void PUBLIC AmiSetQword40ToBe (void FAR* pAddr_p, QWORD qwQwordVal_p); void PUBLIC AmiSetQword40ToBe(void FAR * pAddr_p, QWORD qwQwordVal_p);
void PUBLIC AmiSetQword40ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p); void PUBLIC AmiSetQword40ToLe(void FAR * pAddr_p, QWORD qwQwordVal_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -229,9 +222,8 @@ void PUBLIC AmiSetQword40ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p); ...@@ -229,9 +222,8 @@ void PUBLIC AmiSetQword40ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
QWORD PUBLIC AmiGetQword40FromBe (void FAR* pAddr_p); QWORD PUBLIC AmiGetQword40FromBe(void FAR * pAddr_p);
QWORD PUBLIC AmiGetQword40FromLe (void FAR* pAddr_p); QWORD PUBLIC AmiGetQword40FromLe(void FAR * pAddr_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -246,9 +238,8 @@ QWORD PUBLIC AmiGetQword40FromLe (void FAR* pAddr_p); ...@@ -246,9 +238,8 @@ QWORD PUBLIC AmiGetQword40FromLe (void FAR* pAddr_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void PUBLIC AmiSetQword48ToBe (void FAR* pAddr_p, QWORD qwQwordVal_p); void PUBLIC AmiSetQword48ToBe(void FAR * pAddr_p, QWORD qwQwordVal_p);
void PUBLIC AmiSetQword48ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p); void PUBLIC AmiSetQword48ToLe(void FAR * pAddr_p, QWORD qwQwordVal_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -262,9 +253,8 @@ void PUBLIC AmiSetQword48ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p); ...@@ -262,9 +253,8 @@ void PUBLIC AmiSetQword48ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
QWORD PUBLIC AmiGetQword48FromBe (void FAR* pAddr_p); QWORD PUBLIC AmiGetQword48FromBe(void FAR * pAddr_p);
QWORD PUBLIC AmiGetQword48FromLe (void FAR* pAddr_p); QWORD PUBLIC AmiGetQword48FromLe(void FAR * pAddr_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -279,9 +269,8 @@ QWORD PUBLIC AmiGetQword48FromLe (void FAR* pAddr_p); ...@@ -279,9 +269,8 @@ QWORD PUBLIC AmiGetQword48FromLe (void FAR* pAddr_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void PUBLIC AmiSetQword56ToBe (void FAR* pAddr_p, QWORD qwQwordVal_p); void PUBLIC AmiSetQword56ToBe(void FAR * pAddr_p, QWORD qwQwordVal_p);
void PUBLIC AmiSetQword56ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p); void PUBLIC AmiSetQword56ToLe(void FAR * pAddr_p, QWORD qwQwordVal_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -295,9 +284,8 @@ void PUBLIC AmiSetQword56ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p); ...@@ -295,9 +284,8 @@ void PUBLIC AmiSetQword56ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
QWORD PUBLIC AmiGetQword56FromBe (void FAR* pAddr_p); QWORD PUBLIC AmiGetQword56FromBe(void FAR * pAddr_p);
QWORD PUBLIC AmiGetQword56FromLe (void FAR* pAddr_p); QWORD PUBLIC AmiGetQword56FromLe(void FAR * pAddr_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -312,9 +300,8 @@ QWORD PUBLIC AmiGetQword56FromLe (void FAR* pAddr_p); ...@@ -312,9 +300,8 @@ QWORD PUBLIC AmiGetQword56FromLe (void FAR* pAddr_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void PUBLIC AmiSetQword64ToBe (void FAR* pAddr_p, QWORD qwQwordVal_p); void PUBLIC AmiSetQword64ToBe(void FAR * pAddr_p, QWORD qwQwordVal_p);
void PUBLIC AmiSetQword64ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p); void PUBLIC AmiSetQword64ToLe(void FAR * pAddr_p, QWORD qwQwordVal_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -328,9 +315,8 @@ void PUBLIC AmiSetQword64ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p); ...@@ -328,9 +315,8 @@ void PUBLIC AmiSetQword64ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
QWORD PUBLIC AmiGetQword64FromBe (void FAR* pAddr_p); QWORD PUBLIC AmiGetQword64FromBe(void FAR * pAddr_p);
QWORD PUBLIC AmiGetQword64FromLe (void FAR* pAddr_p); QWORD PUBLIC AmiGetQword64FromLe(void FAR * pAddr_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -345,8 +331,8 @@ QWORD PUBLIC AmiGetQword64FromLe (void FAR* pAddr_p); ...@@ -345,8 +331,8 @@ QWORD PUBLIC AmiGetQword64FromLe (void FAR* pAddr_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void PUBLIC AmiSetTimeOfDay (void FAR* pAddr_p, tTimeOfDay FAR* pTimeOfDay_p); void PUBLIC AmiSetTimeOfDay(void FAR * pAddr_p,
tTimeOfDay FAR * pTimeOfDay_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
...@@ -361,20 +347,16 @@ void PUBLIC AmiSetTimeOfDay (void FAR* pAddr_p, tTimeOfDay FAR* pTimeOfDay_p); ...@@ -361,20 +347,16 @@ void PUBLIC AmiSetTimeOfDay (void FAR* pAddr_p, tTimeOfDay FAR* pTimeOfDay_p);
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void PUBLIC AmiGetTimeOfDay (void FAR* pAddr_p, tTimeOfDay FAR* pTimeOfDay_p); void PUBLIC AmiGetTimeOfDay(void FAR * pAddr_p,
tTimeOfDay FAR * pTimeOfDay_p);
#endif #endif
#undef INLINE_ENABLED // disable actual inlining of functions #undef INLINE_ENABLED // disable actual inlining of functions
#define EPL_AMI_INCLUDED #define EPL_AMI_INCLUDED
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // ifndef _EPLAMI_H_ #endif // ifndef _EPLAMI_H_
// Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler// damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder).
// Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler
// damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder).
...@@ -66,20 +66,17 @@ ...@@ -66,20 +66,17 @@
2006/10/11 d.k.: start of the implementation, version 1.00 2006/10/11 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_API_LINUX_H_ #ifndef _EPL_API_LINUX_H_
#define _EPL_API_LINUX_H_ #define _EPL_API_LINUX_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#define EPLLIN_DEV_NAME "epl" // used for "/dev" and "/proc" entry #define EPLLIN_DEV_NAME "epl" // used for "/dev" and "/proc" entry
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Commands for <ioctl> // Commands for <ioctl>
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -98,45 +95,40 @@ ...@@ -98,45 +95,40 @@
#define EPLLIN_CMD_PI_SETUP 11 // ulArg_p ~ 0 #define EPLLIN_CMD_PI_SETUP 11 // ulArg_p ~ 0
#define EPLLIN_CMD_SHUTDOWN 12 // ulArg_p ~ 0 #define EPLLIN_CMD_SHUTDOWN 12 // ulArg_p ~ 0
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef struct typedef struct {
{
unsigned int m_uiEventArgSize; unsigned int m_uiEventArgSize;
tEplApiEventArg* m_pEventArg; tEplApiEventArg *m_pEventArg;
tEplApiEventType* m_pEventType; tEplApiEventType *m_pEventType;
tEplKernel m_RetCbEvent; tEplKernel m_RetCbEvent;
} tEplLinEvent; } tEplLinEvent;
typedef struct typedef struct {
{
tEplSdoComConHdl m_SdoComConHdl; tEplSdoComConHdl m_SdoComConHdl;
BOOL m_fValidSdoComConHdl; BOOL m_fValidSdoComConHdl;
unsigned int m_uiNodeId; unsigned int m_uiNodeId;
unsigned int m_uiIndex; unsigned int m_uiIndex;
unsigned int m_uiSubindex; unsigned int m_uiSubindex;
void* m_le_pData; void *m_le_pData;
unsigned int m_uiSize; unsigned int m_uiSize;
tEplSdoType m_SdoType; tEplSdoType m_SdoType;
void* m_pUserArg; void *m_pUserArg;
} tEplLinSdoObject; } tEplLinSdoObject;
typedef struct typedef struct {
{
unsigned int m_uiIndex; unsigned int m_uiIndex;
unsigned int m_uiSubindex; unsigned int m_uiSubindex;
void* m_pData; void *m_pData;
unsigned int m_uiSize; unsigned int m_uiSize;
} tEplLinLocalObject; } tEplLinLocalObject;
typedef struct typedef struct {
{
unsigned int m_uiNodeId; unsigned int m_uiNodeId;
tEplNmtNodeCommand m_NodeCommand; tEplNmtNodeCommand m_NodeCommand;
...@@ -146,8 +138,4 @@ typedef struct ...@@ -146,8 +138,4 @@ typedef struct
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPL_API_LINUX_H_ #endif // #ifndef _EPL_API_LINUX_H_
...@@ -71,9 +71,6 @@ ...@@ -71,9 +71,6 @@
#ifndef _EPLCFG_H_ #ifndef _EPLCFG_H_
#define _EPLCFG_H_ #define _EPLCFG_H_
// ========================================================================= // =========================================================================
// generic defines which for whole EPL Stack // generic defines which for whole EPL Stack
// ========================================================================= // =========================================================================
...@@ -113,7 +110,6 @@ ...@@ -113,7 +110,6 @@
// * EPL_DBGLVL_ERROR = 0x40000000L // * EPL_DBGLVL_ERROR = 0x40000000L
// * EPL_DBGLVL_ALWAYS = 0x80000000L // * EPL_DBGLVL_ALWAYS = 0x80000000L
// EPL_MODULE_INTEGRATION defines all modules which are included in // EPL_MODULE_INTEGRATION defines all modules which are included in
// EPL application. Please add or delete modules for your application. // EPL application. Please add or delete modules for your application.
#define EPL_MODULE_INTEGRATION EPL_MODULE_OBDK \ #define EPL_MODULE_INTEGRATION EPL_MODULE_OBDK \
...@@ -155,7 +151,6 @@ ...@@ -155,7 +151,6 @@
// number of used ethernet controller // number of used ethernet controller
//#define EDRV_USED_ETH_CTRL 1 //#define EDRV_USED_ETH_CTRL 1
// ========================================================================= // =========================================================================
// Data Link Layer (DLL) specific defines // Data Link Layer (DLL) specific defines
// ========================================================================= // =========================================================================
...@@ -170,7 +165,6 @@ ...@@ -170,7 +165,6 @@
#define EPL_DLL_PRES_READY_AFTER_SOA FALSE #define EPL_DLL_PRES_READY_AFTER_SOA FALSE
//#define EPL_DLL_PRES_READY_AFTER_SOA TRUE //#define EPL_DLL_PRES_READY_AFTER_SOA TRUE
// ========================================================================= // =========================================================================
// OBD specific defines // OBD specific defines
// ========================================================================= // =========================================================================
...@@ -188,7 +182,6 @@ ...@@ -188,7 +182,6 @@
#define EPL_OBD_USE_VARIABLE_SUBINDEX_TAB TRUE #define EPL_OBD_USE_VARIABLE_SUBINDEX_TAB TRUE
// ========================================================================= // =========================================================================
// Timer module specific defines // Timer module specific defines
// ========================================================================= // =========================================================================
...@@ -200,8 +193,4 @@ ...@@ -200,8 +193,4 @@
#define EPL_TIMER_USE_HIGHRES TRUE #define EPL_TIMER_USE_HIGHRES TRUE
//#define EPL_TIMER_USE_HIGHRES FALSE //#define EPL_TIMER_USE_HIGHRES FALSE
#endif //_EPLCFG_H_ #endif //_EPLCFG_H_
...@@ -66,13 +66,11 @@ ...@@ -66,13 +66,11 @@
2006/05/22 d.k.: start of the implementation, version 1.00 2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_DEF_H_ #ifndef _EPL_DEF_H_
#define _EPL_DEF_H_ #define _EPL_DEF_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -126,8 +124,6 @@ ...@@ -126,8 +124,6 @@
#define EPL_C_DLL_MAX_ASND_SERVICE_IDS 5 // see tEplDllAsndServiceId in EplDll.h #define EPL_C_DLL_MAX_ASND_SERVICE_IDS 5 // see tEplDllAsndServiceId in EplDll.h
// Default configuration // Default configuration
// ====================== // ======================
...@@ -352,11 +348,8 @@ ...@@ -352,11 +348,8 @@
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPL_DEF_H_ #endif // #ifndef _EPL_DEF_H_
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/06/08 d.k.: start of the implementation, version 1.00 2006/06/08 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_DLL_H_ #ifndef _EPL_DLL_H_
...@@ -79,7 +78,6 @@ ...@@ -79,7 +78,6 @@
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#ifndef EPL_DLL_MAX_ASND_SERVICE_ID #ifndef EPL_DLL_MAX_ASND_SERVICE_ID
#define EPL_DLL_MAX_ASND_SERVICE_ID (EPL_C_DLL_MAX_ASND_SERVICE_IDS + 1) // last is kEplDllAsndSdo == 5 #define EPL_DLL_MAX_ASND_SERVICE_ID (EPL_C_DLL_MAX_ASND_SERVICE_IDS + 1) // last is kEplDllAsndSdo == 5
#endif #endif
...@@ -88,36 +86,31 @@ ...@@ -88,36 +86,31 @@
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef enum typedef enum {
{
kEplDllAsndNotDefined = 0x00, kEplDllAsndNotDefined = 0x00,
kEplDllAsndIdentResponse = 0x01, kEplDllAsndIdentResponse = 0x01,
kEplDllAsndStatusResponse = 0x02, kEplDllAsndStatusResponse = 0x02,
kEplDllAsndNmtRequest = 0x03, kEplDllAsndNmtRequest = 0x03,
kEplDllAsndNmtCommand = 0x04, kEplDllAsndNmtCommand = 0x04,
kEplDllAsndSdo = 0x05 kEplDllAsndSdo = 0x05
} tEplDllAsndServiceId; } tEplDllAsndServiceId;
typedef enum typedef enum {
{
kEplDllAsndFilterNone = 0x00, kEplDllAsndFilterNone = 0x00,
kEplDllAsndFilterLocal = 0x01, // receive only ASnd frames with local or broadcast node ID kEplDllAsndFilterLocal = 0x01, // receive only ASnd frames with local or broadcast node ID
kEplDllAsndFilterAny = 0x02, // receive any ASnd frame kEplDllAsndFilterAny = 0x02, // receive any ASnd frame
} tEplDllAsndFilter; } tEplDllAsndFilter;
typedef enum typedef enum {
{
kEplDllReqServiceNo = 0x00, kEplDllReqServiceNo = 0x00,
kEplDllReqServiceIdent = 0x01, kEplDllReqServiceIdent = 0x01,
kEplDllReqServiceStatus = 0x02, kEplDllReqServiceStatus = 0x02,
kEplDllReqServiceNmtRequest = 0x03, kEplDllReqServiceNmtRequest = 0x03,
kEplDllReqServiceUnspecified= 0xFF, kEplDllReqServiceUnspecified = 0xFF,
} tEplDllReqServiceId; } tEplDllReqServiceId;
typedef enum typedef enum {
{
kEplDllAsyncReqPrioNmt = 0x07, // PRIO_NMT_REQUEST kEplDllAsyncReqPrioNmt = 0x07, // PRIO_NMT_REQUEST
kEplDllAsyncReqPrio6 = 0x06, kEplDllAsyncReqPrio6 = 0x06,
kEplDllAsyncReqPrio5 = 0x05, kEplDllAsyncReqPrio5 = 0x05,
...@@ -129,16 +122,14 @@ typedef enum ...@@ -129,16 +122,14 @@ typedef enum
} tEplDllAsyncReqPriority; } tEplDllAsyncReqPriority;
typedef struct typedef struct {
{
unsigned int m_uiFrameSize; unsigned int m_uiFrameSize;
tEplFrame * m_pFrame; tEplFrame *m_pFrame;
tEplNetTime m_NetTime; tEplNetTime m_NetTime;
} tEplFrameInfo; } tEplFrameInfo;
typedef struct typedef struct {
{
unsigned int m_uiSizeOfStruct; unsigned int m_uiSizeOfStruct;
BOOL m_fAsyncOnly; // do not need to register PRes-Frame BOOL m_fAsyncOnly; // do not need to register PRes-Frame
unsigned int m_uiNodeId; // local node ID unsigned int m_uiNodeId; // local node ID
...@@ -179,8 +170,7 @@ typedef struct ...@@ -179,8 +170,7 @@ typedef struct
} tEplDllConfigParam; } tEplDllConfigParam;
typedef struct typedef struct {
{
unsigned int m_uiSizeOfStruct; unsigned int m_uiSizeOfStruct;
DWORD m_dwDeviceType; // NMT_DeviceType_U32 DWORD m_dwDeviceType; // NMT_DeviceType_U32
DWORD m_dwVendorId; // NMT_IdentityObject_REC.VendorId_U32 DWORD m_dwVendorId; // NMT_IdentityObject_REC.VendorId_U32
...@@ -200,8 +190,7 @@ typedef struct ...@@ -200,8 +190,7 @@ typedef struct
} tEplDllIdentParam; } tEplDllIdentParam;
typedef struct typedef struct {
{
unsigned int m_uiNodeId; unsigned int m_uiNodeId;
WORD m_wPreqPayloadLimit; // object 0x1F8B: NMT_MNPReqPayloadLimitList_AU16 WORD m_wPreqPayloadLimit; // object 0x1F8B: NMT_MNPReqPayloadLimitList_AU16
WORD m_wPresPayloadLimit; // object 0x1F8D: NMT_PResPayloadLimitList_AU16 WORD m_wPresPayloadLimit; // object 0x1F8D: NMT_PResPayloadLimitList_AU16
...@@ -213,8 +202,4 @@ typedef struct ...@@ -213,8 +202,4 @@ typedef struct
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPL_DLL_H_ #endif // #ifndef _EPL_DLL_H_
...@@ -66,13 +66,11 @@ ...@@ -66,13 +66,11 @@
2006/06/20 d.k.: start of the implementation, version 1.00 2006/06/20 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_DLLCAL_H_ #ifndef _EPL_DLLCAL_H_
#define _EPL_DLLCAL_H_ #define _EPL_DLLCAL_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -105,15 +103,13 @@ ...@@ -105,15 +103,13 @@
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef struct typedef struct {
{
tEplDllAsndServiceId m_ServiceId; tEplDllAsndServiceId m_ServiceId;
tEplDllAsndFilter m_Filter; tEplDllAsndFilter m_Filter;
} tEplDllCalAsndServiceIdFilter; } tEplDllCalAsndServiceIdFilter;
typedef struct typedef struct {
{
tEplDllReqServiceId m_Service; tEplDllReqServiceId m_Service;
unsigned int m_uiNodeId; unsigned int m_uiNodeId;
BYTE m_bSoaFlag1; BYTE m_bSoaFlag1;
...@@ -124,8 +120,4 @@ typedef struct ...@@ -124,8 +120,4 @@ typedef struct
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPL_DLLKCAL_H_ #endif // #ifndef _EPL_DLLKCAL_H_
...@@ -71,13 +71,11 @@ ...@@ -71,13 +71,11 @@
#ifndef _EPL_ERRORDEF_H_ #ifndef _EPL_ERRORDEF_H_
#define _EPL_ERRORDEF_H_ #define _EPL_ERRORDEF_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// return codes // return codes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef enum typedef enum {
{
// area for generic errors 0x0000 - 0x000F // area for generic errors 0x0000 - 0x000F
kEplSuccessful = 0x0000, // no error/successful run kEplSuccessful = 0x0000, // no error/successful run
kEplIllegalInstance = 0x0001, // the called Instanz does not exist kEplIllegalInstance = 0x0001, // the called Instanz does not exist
...@@ -175,7 +173,7 @@ typedef enum ...@@ -175,7 +173,7 @@ typedef enum
// area for SDO Command Layer Module 0x0070 - 0x007F // area for SDO Command Layer Module 0x0070 - 0x007F
kEplSdoComUnsupportedProt = 0x0070, // unsupported Protocol selected kEplSdoComUnsupportedProt = 0x0070, // unsupported Protocol selected
kEplSdoComNoFreeHandle = 0x0071, // no free handle for connection kEplSdoComNoFreeHandle = 0x0071, // no free handle for connection
kEplSdoComInvalidServiceType= 0x0072, // invalid SDO service type specified kEplSdoComInvalidServiceType = 0x0072, // invalid SDO service type specified
kEplSdoComInvalidHandle = 0x0073, // handle invalid kEplSdoComInvalidHandle = 0x0073, // handle invalid
kEplSdoComInvalidSendType = 0x0074, // the stated to of frame to send is kEplSdoComInvalidSendType = 0x0074, // the stated to of frame to send is
// not possible // not possible
...@@ -189,8 +187,6 @@ typedef enum ...@@ -189,8 +187,6 @@ typedef enum
kEplEventUnknownSink = 0x0080, // unknown sink for event kEplEventUnknownSink = 0x0080, // unknown sink for event
kEplEventPostError = 0x0081, // error during post of event kEplEventPostError = 0x0081, // error during post of event
// area for EPL Timer Modul 0x0090 - 0x009F // area for EPL Timer Modul 0x0090 - 0x009F
kEplTimerInvalidHandle = 0x0090, // invalid handle for timer kEplTimerInvalidHandle = 0x0090, // invalid handle for timer
kEplTimerNoTimerCreated = 0x0091, // no timer was created caused by kEplTimerNoTimerCreated = 0x0091, // no timer was created caused by
...@@ -201,7 +197,6 @@ typedef enum ...@@ -201,7 +197,6 @@ typedef enum
kEplSdoAsndNoFreeHandle = 0x00A1, // no free handle for connection kEplSdoAsndNoFreeHandle = 0x00A1, // no free handle for connection
kEplSdoAsndInvalidHandle = 0x00A2, // handle for connection is invalid kEplSdoAsndInvalidHandle = 0x00A2, // handle for connection is invalid
// area for PDO module 0x00B0 - 0x00BF // area for PDO module 0x00B0 - 0x00BF
kEplPdoNotExist = 0x00B0, // selected PDO does not exist kEplPdoNotExist = 0x00B0, // selected PDO does not exist
kEplPdoLengthExceeded = 0x00B1, // length of PDO mapping exceedes 64 bis kEplPdoLengthExceeded = 0x00B1, // length of PDO mapping exceedes 64 bis
...@@ -248,7 +243,6 @@ typedef enum ...@@ -248,7 +243,6 @@ typedef enum
kEplCfgMaUnsuppDatatypeDcf = 0x00C7, // unsupported datatype found in dcf kEplCfgMaUnsuppDatatypeDcf = 0x00C7, // unsupported datatype found in dcf
// -> this entry was not configured // -> this entry was not configured
// area for LSS master module 0x00D0 - 0x00DF // area for LSS master module 0x00D0 - 0x00DF
/* kEplLssmIllegalMode = 0x00D0, // illegal LSS mode (operation / configuration) /* kEplLssmIllegalMode = 0x00D0, // illegal LSS mode (operation / configuration)
kEplLssmIllegalState = 0x00D1, // function was called in illegal state of LSS master kEplLssmIllegalState = 0x00D1, // function was called in illegal state of LSS master
...@@ -293,10 +287,8 @@ typedef enum ...@@ -293,10 +287,8 @@ typedef enum
} tEplKernel; } tEplKernel;
#endif #endif
//EOF //EOF
// Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler // Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler
// damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder). // damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder).
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/06/12 d.k.: start of the implementation, version 1.00 2006/06/12 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_EVENT_H_ #ifndef _EPL_EVENT_H_
...@@ -90,7 +89,6 @@ ...@@ -90,7 +89,6 @@
#define EPL_EVENT_SIZE_SHB_USER_TO_KERNEL 32768 // 32 kByte #define EPL_EVENT_SIZE_SHB_USER_TO_KERNEL 32768 // 32 kByte
#endif #endif
// max size of event argument // max size of event argument
#ifndef EPL_MAX_EVENT_ARG_SIZE #ifndef EPL_MAX_EVENT_ARG_SIZE
#define EPL_MAX_EVENT_ARG_SIZE 256 // because of PDO #define EPL_MAX_EVENT_ARG_SIZE 256 // because of PDO
...@@ -116,14 +114,12 @@ ...@@ -116,14 +114,12 @@
#define EPL_DLL_ERR_INVALID_FORMAT 0x00200000L // no object (NMT_GT6) #define EPL_DLL_ERR_INVALID_FORMAT 0x00200000L // no object (NMT_GT6)
#define EPL_DLL_ERR_ADDRESS_CONFLICT 0x00400000L // no object (remove CN from configuration) #define EPL_DLL_ERR_ADDRESS_CONFLICT 0x00400000L // no object (remove CN from configuration)
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// EventType determines the argument of the event // EventType determines the argument of the event
typedef enum typedef enum {
{
kEplEventTypeNmtEvent = 0x01, // NMT event kEplEventTypeNmtEvent = 0x01, // NMT event
// arg is pointer to tEplNmtEvent // arg is pointer to tEplNmtEvent
kEplEventTypePdoRx = 0x02, // PDO frame received event (PRes/PReq) kEplEventTypePdoRx = 0x02, // PDO frame received event (PRes/PReq)
...@@ -166,7 +162,7 @@ typedef enum ...@@ -166,7 +162,7 @@ typedef enum
// arg is pointer to tEplDllNodeInfo // arg is pointer to tEplDllNodeInfo
kEplEventTypeDllkDelNode = 0x15, // remove node from isochronous phase kEplEventTypeDllkDelNode = 0x15, // remove node from isochronous phase
// arg is pointer to unsigned int // arg is pointer to unsigned int
kEplEventTypeDllkSoftDelNode= 0x16, // remove node softly from isochronous phase kEplEventTypeDllkSoftDelNode = 0x16, // remove node softly from isochronous phase
// arg is pointer to unsigned int // arg is pointer to unsigned int
kEplEventTypeDllkStartReducedCycle = 0x17, // start reduced EPL cycle on MN kEplEventTypeDllkStartReducedCycle = 0x17, // start reduced EPL cycle on MN
// arg is pointer to nothing // arg is pointer to nothing
...@@ -175,10 +171,8 @@ typedef enum ...@@ -175,10 +171,8 @@ typedef enum
} tEplEventType; } tEplEventType;
// EventSink determines the consumer of the event // EventSink determines the consumer of the event
typedef enum typedef enum {
{
kEplEventSinkSync = 0x00, // Sync event for application or kernel EPL module kEplEventSinkSync = 0x00, // Sync event for application or kernel EPL module
kEplEventSinkNmtk = 0x01, // events for Nmtk module kEplEventSinkNmtk = 0x01, // events for Nmtk module
kEplEventSinkDllk = 0x02, // events for Dllk module kEplEventSinkDllk = 0x02, // events for Dllk module
...@@ -195,10 +189,8 @@ typedef enum ...@@ -195,10 +189,8 @@ typedef enum
} tEplEventSink; } tEplEventSink;
// EventSource determines the source of an errorevent // EventSource determines the source of an errorevent
typedef enum typedef enum {
{
// kernelspace modules // kernelspace modules
kEplEventSourceDllk = 0x01, // Dllk module kEplEventSourceDllk = 0x01, // Dllk module
kEplEventSourceNmtk = 0x02, // Nmtk module kEplEventSourceNmtk = 0x02, // Nmtk module
...@@ -227,44 +219,35 @@ typedef enum ...@@ -227,44 +219,35 @@ typedef enum
} tEplEventSource; } tEplEventSource;
// structure of EPL event (element order must not be changed!) // structure of EPL event (element order must not be changed!)
typedef struct typedef struct {
{ tEplEventType m_EventType /*:28 */ ; // event type
tEplEventType m_EventType /*:28*/; // event type tEplEventSink m_EventSink /*:4 */ ; // event sink
tEplEventSink m_EventSink /*:4*/; // event sink
tEplNetTime m_NetTime; // timestamp tEplNetTime m_NetTime; // timestamp
unsigned int m_uiSize; // size of argument unsigned int m_uiSize; // size of argument
void * m_pArg; // argument of event void *m_pArg; // argument of event
} tEplEvent; } tEplEvent;
// short structure of EPL event without argument and its size (element order must not be changed!) // short structure of EPL event without argument and its size (element order must not be changed!)
typedef struct typedef struct {
{ tEplEventType m_EventType /*:28 */ ; // event type
tEplEventType m_EventType /*:28*/; // event type tEplEventSink m_EventSink /*:4 */ ; // event sink
tEplEventSink m_EventSink /*:4*/; // event sink
tEplNetTime m_NetTime; // timestamp tEplNetTime m_NetTime; // timestamp
} tEplEventShort; } tEplEventShort;
typedef struct {
typedef struct
{
unsigned int m_uiIndex; unsigned int m_uiIndex;
unsigned int m_uiSubIndex; unsigned int m_uiSubIndex;
} tEplEventObdError; } tEplEventObdError;
// structure for kEplEventTypeError // structure for kEplEventTypeError
typedef struct typedef struct {
{
tEplEventSource m_EventSource; // module which posted this error event tEplEventSource m_EventSource; // module which posted this error event
tEplKernel m_EplError; // EPL error which occured tEplKernel m_EplError; // EPL error which occured
union union {
{
BYTE m_bArg; BYTE m_bArg;
DWORD m_dwArg; DWORD m_dwArg;
tEplEventSource m_EventSource; // from Eventk/u module (originating error source) tEplEventSource m_EventSource; // from Eventk/u module (originating error source)
...@@ -275,29 +258,22 @@ typedef struct ...@@ -275,29 +258,22 @@ typedef struct
} tEplEventError; } tEplEventError;
// structure for kEplEventTypeDllError // structure for kEplEventTypeDllError
typedef struct typedef struct {
{
unsigned long m_ulDllErrorEvents; // EPL_DLL_ERR_* unsigned long m_ulDllErrorEvents; // EPL_DLL_ERR_*
unsigned int m_uiNodeId; unsigned int m_uiNodeId;
tEplNmtState m_NmtState; tEplNmtState m_NmtState;
} tEplErrorHandlerkEvent; } tEplErrorHandlerkEvent;
// callback function to get informed about sync event // callback function to get informed about sync event
typedef tEplKernel (PUBLIC* tEplSyncCb) (void); typedef tEplKernel(PUBLIC * tEplSyncCb) (void);
// callback function for generic events // callback function for generic events
typedef tEplKernel (PUBLIC* tEplProcessEventCb) (tEplEvent* pEplEvent_p); typedef tEplKernel(PUBLIC * tEplProcessEventCb) (tEplEvent * pEplEvent_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPL_EVENT_H_ #endif // #ifndef _EPL_EVENT_H_
...@@ -66,18 +66,15 @@ ...@@ -66,18 +66,15 @@
2006/05/22 d.k.: start of the implementation, version 1.00 2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_FRAME_H_ #ifndef _EPL_FRAME_H_
#define _EPL_FRAME_H_ #define _EPL_FRAME_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// defines for EplFrame.m_wFlag // defines for EplFrame.m_wFlag
#define EPL_FRAME_FLAG1_RD 0x01 // ready (PReq, PRes) #define EPL_FRAME_FLAG1_RD 0x01 // ready (PReq, PRes)
#define EPL_FRAME_FLAG1_ER 0x02 // exception reset (error signalling) (SoA) #define EPL_FRAME_FLAG1_ER 0x02 // exception reset (error signalling) (SoA)
...@@ -107,12 +104,10 @@ ...@@ -107,12 +104,10 @@
#define EPL_VERSION_SUB 0x0F // sub version #define EPL_VERSION_SUB 0x0F // sub version
#define EPL_VERSION_MAIN 0xF0 // main version #define EPL_VERSION_MAIN 0xF0 // main version
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// $$$ d.k.: move this definition to global.h // $$$ d.k.: move this definition to global.h
// byte-align structures // byte-align structures
#ifdef _MSC_VER #ifdef _MSC_VER
...@@ -125,9 +120,7 @@ ...@@ -125,9 +120,7 @@
# error you must byte-align these structures with the appropriate compiler directives # error you must byte-align these structures with the appropriate compiler directives
#endif #endif
typedef struct {
typedef struct
{
// Offset 17 // Offset 17
BYTE m_le_bRes1; // reserved BYTE m_le_bRes1; // reserved
// Offset 18 // Offset 18
...@@ -141,8 +134,7 @@ typedef struct ...@@ -141,8 +134,7 @@ typedef struct
} PACK_STRUCT tEplSocFrame; } PACK_STRUCT tEplSocFrame;
typedef struct typedef struct {
{
// Offset 17 // Offset 17
BYTE m_le_bRes1; // reserved BYTE m_le_bRes1; // reserved
// Offset 18 // Offset 18
...@@ -156,12 +148,11 @@ typedef struct ...@@ -156,12 +148,11 @@ typedef struct
// Offset 22 // Offset 22
WORD m_le_wSize; WORD m_le_wSize;
// Offset 24 // Offset 24
BYTE m_le_abPayload[256 /*D_NMT_IsochrRxMaxPayload_U16*/]; BYTE m_le_abPayload[256 /*D_NMT_IsochrRxMaxPayload_U16 */ ];
} PACK_STRUCT tEplPreqFrame; } PACK_STRUCT tEplPreqFrame;
typedef struct typedef struct {
{
// Offset 17 // Offset 17
BYTE m_le_bNmtStatus; // NMT state BYTE m_le_bNmtStatus; // NMT state
// Offset 18 // Offset 18
...@@ -176,12 +167,11 @@ typedef struct ...@@ -176,12 +167,11 @@ typedef struct
WORD m_le_wSize; WORD m_le_wSize;
// Offset 24 // Offset 24
BYTE m_le_abPayload[256 /*D_NMT_IsochrRxMaxPayload_U16 BYTE m_le_abPayload[256 /*D_NMT_IsochrRxMaxPayload_U16
/ D_NMT_IsochrTxMaxPayload_U16*/]; / D_NMT_IsochrTxMaxPayload_U16 */ ];
} PACK_STRUCT tEplPresFrame; } PACK_STRUCT tEplPresFrame;
typedef struct typedef struct {
{
// Offset 17 // Offset 17
BYTE m_le_bNmtStatus; // NMT state BYTE m_le_bNmtStatus; // NMT state
// Offset 18 // Offset 18
...@@ -197,8 +187,7 @@ typedef struct ...@@ -197,8 +187,7 @@ typedef struct
} PACK_STRUCT tEplSoaFrame; } PACK_STRUCT tEplSoaFrame;
typedef struct typedef struct {
{
WORD m_wEntryType; WORD m_wEntryType;
WORD m_wErrorCode; WORD m_wErrorCode;
tEplNetTime m_TimeStamp; tEplNetTime m_TimeStamp;
...@@ -206,8 +195,7 @@ typedef struct ...@@ -206,8 +195,7 @@ typedef struct
} PACK_STRUCT tEplErrHistoryEntry; } PACK_STRUCT tEplErrHistoryEntry;
typedef struct typedef struct {
{
// Offset 18 // Offset 18
BYTE m_le_bFlag1; // Flags: EN, EC BYTE m_le_bFlag1; // Flags: EN, EC
BYTE m_le_bFlag2; // Flags: PR, RS BYTE m_le_bFlag2; // Flags: PR, RS
...@@ -218,8 +206,7 @@ typedef struct ...@@ -218,8 +206,7 @@ typedef struct
} PACK_STRUCT tEplStatusResponse; } PACK_STRUCT tEplStatusResponse;
typedef struct typedef struct {
{
// Offset 18 // Offset 18
BYTE m_le_bFlag1; // Flags: res BYTE m_le_bFlag1; // Flags: res
BYTE m_le_bFlag2; // Flags: PR, RS BYTE m_le_bFlag2; // Flags: PR, RS
...@@ -251,8 +238,7 @@ typedef struct ...@@ -251,8 +238,7 @@ typedef struct
} PACK_STRUCT tEplIdentResponse; } PACK_STRUCT tEplIdentResponse;
typedef struct typedef struct {
{
// Offset 18 // Offset 18
BYTE m_le_bNmtCommandId; BYTE m_le_bNmtCommandId;
BYTE m_le_bRes1; BYTE m_le_bRes1;
...@@ -260,8 +246,7 @@ typedef struct ...@@ -260,8 +246,7 @@ typedef struct
} PACK_STRUCT tEplNmtCommandService; } PACK_STRUCT tEplNmtCommandService;
typedef struct typedef struct {
{
BYTE m_le_bReserved; BYTE m_le_bReserved;
BYTE m_le_bTransactionId; BYTE m_le_bTransactionId;
BYTE m_le_bFlags; BYTE m_le_bFlags;
...@@ -270,12 +255,10 @@ typedef struct ...@@ -270,12 +255,10 @@ typedef struct
WORD m_le_wReserved; WORD m_le_wReserved;
BYTE m_le_abCommandData[8]; // just reserve a minimum number of bytes as a placeholder BYTE m_le_abCommandData[8]; // just reserve a minimum number of bytes as a placeholder
}PACK_STRUCT tEplAsySdoCom; } PACK_STRUCT tEplAsySdoCom;
// asynchronous SDO Sequence Header // asynchronous SDO Sequence Header
typedef struct typedef struct {
{
BYTE m_le_bRecSeqNumCon; BYTE m_le_bRecSeqNumCon;
BYTE m_le_bSendSeqNumCon; BYTE m_le_bSendSeqNumCon;
BYTE m_le_abReserved[2]; BYTE m_le_abReserved[2];
...@@ -283,8 +266,7 @@ typedef struct ...@@ -283,8 +266,7 @@ typedef struct
} PACK_STRUCT tEplAsySdoSeq; } PACK_STRUCT tEplAsySdoSeq;
typedef struct typedef struct {
{
// Offset 18 // Offset 18
BYTE m_le_bNmtCommandId; BYTE m_le_bNmtCommandId;
BYTE m_le_bTargetNodeId; BYTE m_le_bTargetNodeId;
...@@ -292,9 +274,7 @@ typedef struct ...@@ -292,9 +274,7 @@ typedef struct
} PACK_STRUCT tEplNmtRequestService; } PACK_STRUCT tEplNmtRequestService;
typedef union {
typedef union
{
// Offset 18 // Offset 18
tEplStatusResponse m_StatusResponse; tEplStatusResponse m_StatusResponse;
tEplIdentResponse m_IdentResponse; tEplIdentResponse m_IdentResponse;
...@@ -302,12 +282,11 @@ typedef union ...@@ -302,12 +282,11 @@ typedef union
tEplNmtRequestService m_NmtRequestService; tEplNmtRequestService m_NmtRequestService;
tEplAsySdoSeq m_SdoSequenceFrame; tEplAsySdoSeq m_SdoSequenceFrame;
BYTE m_le_abPayload[256 /*D_NMT_ASndTxMaxPayload_U16 BYTE m_le_abPayload[256 /*D_NMT_ASndTxMaxPayload_U16
/ D_NMT_ASndRxMaxPayload_U16*/]; / D_NMT_ASndRxMaxPayload_U16 */ ];
} tEplAsndPayload; } tEplAsndPayload;
typedef struct typedef struct {
{
// Offset 17 // Offset 17
BYTE m_le_bServiceId; BYTE m_le_bServiceId;
// Offset 18 // Offset 18
...@@ -315,8 +294,7 @@ typedef struct ...@@ -315,8 +294,7 @@ typedef struct
} PACK_STRUCT tEplAsndFrame; } PACK_STRUCT tEplAsndFrame;
typedef union typedef union {
{
// Offset 17 // Offset 17
tEplSocFrame m_Soc; tEplSocFrame m_Soc;
tEplPreqFrame m_Preq; tEplPreqFrame m_Preq;
...@@ -326,8 +304,7 @@ typedef union ...@@ -326,8 +304,7 @@ typedef union
} tEplFrameData; } tEplFrameData;
typedef struct typedef struct {
{
// Offset 0 // Offset 0
BYTE m_be_abDstMac[6]; // MAC address of the addressed nodes BYTE m_be_abDstMac[6]; // MAC address of the addressed nodes
// Offset 6 // Offset 6
...@@ -350,9 +327,7 @@ typedef struct ...@@ -350,9 +327,7 @@ typedef struct
# pragma pack( pop, packing ) # pragma pack( pop, packing )
#endif #endif
typedef enum {
typedef enum
{
kEplMsgTypeNonEpl = 0x00, kEplMsgTypeNonEpl = 0x00,
kEplMsgTypeSoc = 0x01, kEplMsgTypeSoc = 0x01,
kEplMsgTypePreq = 0x03, kEplMsgTypePreq = 0x03,
...@@ -362,13 +337,8 @@ typedef enum ...@@ -362,13 +337,8 @@ typedef enum
} tEplMsgType; } tEplMsgType;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPL_FRAME_H_ #endif // #ifndef _EPL_FRAME_H_
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/05/22 d.k.: start of the implementation, version 1.00 2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_INC_H_ #ifndef _EPL_INC_H_
...@@ -77,28 +76,28 @@ ...@@ -77,28 +76,28 @@
// ============================================================================ // ============================================================================
#if defined(WIN32) || defined(_WIN32) #if defined(WIN32) || defined(_WIN32)
#ifdef UNDER_RTSS #ifdef UNDER_RTSS
// RTX header // RTX header
#include <windows.h> #include <windows.h>
#include <process.h> #include <process.h>
#include <rtapi.h> #include <rtapi.h>
#elif __BORLANDC__ #elif __BORLANDC__
// borland C header // borland C header
#include <windows.h> #include <windows.h>
#include <process.h> #include <process.h>
#elif WINCE #elif WINCE
#include <windows.h> #include <windows.h>
#else #else
// MSVC needs to include windows.h at first // MSVC needs to include windows.h at first
// the following defines ar necessary for function prototypes for waitable timers // the following defines ar necessary for function prototypes for waitable timers
#define _WIN32_WINDOWS 0x0401 #define _WIN32_WINDOWS 0x0401
#define _WIN32_WINNT 0x0400 #define _WIN32_WINNT 0x0400
#include <windows.h> #include <windows.h>
#include <process.h> #include <process.h>
#endif #endif
#endif #endif
...@@ -140,14 +139,12 @@ ...@@ -140,14 +139,12 @@
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// IEEE 1588 conformant net time structure // IEEE 1588 conformant net time structure
typedef struct typedef struct {
{
DWORD m_dwSec; DWORD m_dwSec;
DWORD m_dwNanoSec; DWORD m_dwNanoSec;
} tEplNetTime; } tEplNetTime;
#include "EplTarget.h" // target specific functions and definitions #include "EplTarget.h" // target specific functions and definitions
#include "EplAmi.h" #include "EplAmi.h"
...@@ -179,54 +176,53 @@ typedef struct ...@@ -179,54 +176,53 @@ typedef struct
#define EPL_FEATURE_RT1 0x00001000 #define EPL_FEATURE_RT1 0x00001000
#define EPL_FEATURE_RT2 0x00002000 #define EPL_FEATURE_RT2 0x00002000
// generate EPL NMT_FeatureFlags_U32 // generate EPL NMT_FeatureFlags_U32
#ifndef EPL_DEF_FEATURE_ISOCHR #ifndef EPL_DEF_FEATURE_ISOCHR
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_DLLK)) != 0) #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_DLLK)) != 0)
#define EPL_DEF_FEATURE_ISOCHR (EPL_FEATURE_ISOCHR) #define EPL_DEF_FEATURE_ISOCHR (EPL_FEATURE_ISOCHR)
#else #else
#define EPL_DEF_FEATURE_ISOCHR 0 #define EPL_DEF_FEATURE_ISOCHR 0
#endif #endif
#endif #endif
#ifndef EPL_DEF_FEATURE_SDO_ASND #ifndef EPL_DEF_FEATURE_SDO_ASND
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_ASND)) != 0) #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_ASND)) != 0)
#define EPL_DEF_FEATURE_SDO_ASND (EPL_FEATURE_SDO_ASND) #define EPL_DEF_FEATURE_SDO_ASND (EPL_FEATURE_SDO_ASND)
#else #else
#define EPL_DEF_FEATURE_SDO_ASND 0 #define EPL_DEF_FEATURE_SDO_ASND 0
#endif #endif
#endif #endif
#ifndef EPL_DEF_FEATURE_SDO_UDP #ifndef EPL_DEF_FEATURE_SDO_UDP
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_UDP)) != 0) #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_UDP)) != 0)
#define EPL_DEF_FEATURE_SDO_UDP (EPL_FEATURE_SDO_UDP) #define EPL_DEF_FEATURE_SDO_UDP (EPL_FEATURE_SDO_UDP)
#else #else
#define EPL_DEF_FEATURE_SDO_UDP 0 #define EPL_DEF_FEATURE_SDO_UDP 0
#endif #endif
#endif #endif
#ifndef EPL_DEF_FEATURE_SDO_PDO #ifndef EPL_DEF_FEATURE_SDO_PDO
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_PDO)) != 0) #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_PDO)) != 0)
#define EPL_DEF_FEATURE_SDO_PDO (EPL_FEATURE_SDO_PDO) #define EPL_DEF_FEATURE_SDO_PDO (EPL_FEATURE_SDO_PDO)
#else #else
#define EPL_DEF_FEATURE_SDO_PDO 0 #define EPL_DEF_FEATURE_SDO_PDO 0
#endif #endif
#endif #endif
#ifndef EPL_DEF_FEATURE_PDO_DYN #ifndef EPL_DEF_FEATURE_PDO_DYN
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_PDOK)) != 0) #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_PDOK)) != 0)
#define EPL_DEF_FEATURE_PDO_DYN (EPL_FEATURE_PDO_DYN) #define EPL_DEF_FEATURE_PDO_DYN (EPL_FEATURE_PDO_DYN)
#else #else
#define EPL_DEF_FEATURE_PDO_DYN 0 #define EPL_DEF_FEATURE_PDO_DYN 0
#endif #endif
#endif #endif
#ifndef EPL_DEF_FEATURE_CFGMA #ifndef EPL_DEF_FEATURE_CFGMA
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_CFGMA)) != 0) #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_CFGMA)) != 0)
#define EPL_DEF_FEATURE_CFGMA (EPL_FEATURE_CFGMA) #define EPL_DEF_FEATURE_CFGMA (EPL_FEATURE_CFGMA)
#else #else
#define EPL_DEF_FEATURE_CFGMA 0 #define EPL_DEF_FEATURE_CFGMA 0
#endif #endif
#endif #endif
#define EPL_DEF_FEATURE_FLAGS (EPL_DEF_FEATURE_ISOCHR \ #define EPL_DEF_FEATURE_FLAGS (EPL_DEF_FEATURE_ISOCHR \
...@@ -236,12 +232,10 @@ typedef struct ...@@ -236,12 +232,10 @@ typedef struct
| EPL_DEF_FEATURE_PDO_DYN \ | EPL_DEF_FEATURE_PDO_DYN \
| EPL_DEF_FEATURE_CFGMA) | EPL_DEF_FEATURE_CFGMA)
#ifndef tabentries #ifndef tabentries
#define tabentries(a) (sizeof(a)/sizeof(*(a))) #define tabentries(a) (sizeof(a)/sizeof(*(a)))
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -249,15 +243,14 @@ typedef struct ...@@ -249,15 +243,14 @@ typedef struct
// definitions for DLL export // definitions for DLL export
#if ((DEV_SYSTEM == _DEV_WIN32_) || (DEV_SYSTEM == _DEV_WIN_CE_)) && defined (COP_LIB) #if ((DEV_SYSTEM == _DEV_WIN32_) || (DEV_SYSTEM == _DEV_WIN_CE_)) && defined (COP_LIB)
#define EPLDLLEXPORT __declspec (dllexport) #define EPLDLLEXPORT __declspec (dllexport)
#else #else
#define EPLDLLEXPORT #define EPLDLLEXPORT
#endif #endif
// ============================================================================ // ============================================================================
// common debug macros // common debug macros
// ============================================================================ // ============================================================================
...@@ -381,18 +374,12 @@ typedef struct ...@@ -381,18 +374,12 @@ typedef struct
#define EPL_DBGLVL_ALWAYS_TRACE3 DEBUG_LVL_ALWAYS_TRACE3 #define EPL_DBGLVL_ALWAYS_TRACE3 DEBUG_LVL_ALWAYS_TRACE3
#define EPL_DBGLVL_ALWAYS_TRACE4 DEBUG_LVL_ALWAYS_TRACE4 #define EPL_DBGLVL_ALWAYS_TRACE4 DEBUG_LVL_ALWAYS_TRACE4
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPL_INC_H_ #endif // #ifndef _EPL_INC_H_
...@@ -71,22 +71,19 @@ ...@@ -71,22 +71,19 @@
#ifndef _EPLINSTDEF_H_ #ifndef _EPLINSTDEF_H_
#define _EPLINSTDEF_H_ #define _EPLINSTDEF_H_
// ========================================================================= // =========================================================================
// types and macros for generating instances // types and macros for generating instances
// ========================================================================= // =========================================================================
typedef enum typedef enum {
{
kStateUnused = 0, kStateUnused = 0,
kStateDeleted = 1, kStateDeleted = 1,
kStateUsed = 0xFF kStateUsed = 0xFF
} tInstState; } tInstState;
//------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------
typedef void MEM* tEplPtrInstance; typedef void MEM *tEplPtrInstance;
typedef BYTE tEplInstanceHdl; typedef BYTE tEplInstanceHdl;
// define const for illegale values // define const for illegale values
...@@ -102,13 +99,12 @@ typedef BYTE tEplInstanceHdl; ...@@ -102,13 +99,12 @@ typedef BYTE tEplInstanceHdl;
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// memory attributes for instance table // memory attributes for instance table
#define INST_NEAR // faster access to variables #define INST_NEAR // faster access to variables
#define INST_FAR // variables wich have to located in xdata #define INST_FAR // variables wich have to located in xdata
#define STATIC // prevent warnings for variables with same name #define STATIC // prevent warnings for variables with same name
#define INSTANCE_TYPE_BEGIN typedef struct {
#define INSTANCE_TYPE_END } tEplInstanceInfo;
#define INSTANCE_TYPE_BEGIN typedef struct {
#define INSTANCE_TYPE_END } tEplInstanceInfo;
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// macro definition for API interface // macro definition for API interface
...@@ -117,53 +113,51 @@ typedef BYTE tEplInstanceHdl; ...@@ -117,53 +113,51 @@ typedef BYTE tEplInstanceHdl;
// declaration: // declaration:
// macros for declaration within function header or prototype of API functions // macros for declaration within function header or prototype of API functions
#define CCM_DECL_INSTANCE_HDL tEplInstanceHdl InstanceHandle #define CCM_DECL_INSTANCE_HDL tEplInstanceHdl InstanceHandle
#define CCM_DECL_INSTANCE_HDL_ tEplInstanceHdl InstanceHandle, #define CCM_DECL_INSTANCE_HDL_ tEplInstanceHdl InstanceHandle,
// macros for declaration of pointer to instance handle within function header or prototype of API functions // macros for declaration of pointer to instance handle within function header or prototype of API functions
#define CCM_DECL_PTR_INSTANCE_HDL tEplInstanceHdl MEM* pInstanceHandle #define CCM_DECL_PTR_INSTANCE_HDL tEplInstanceHdl MEM* pInstanceHandle
#define CCM_DECL_PTR_INSTANCE_HDL_ tEplInstanceHdl MEM* pInstanceHandle, #define CCM_DECL_PTR_INSTANCE_HDL_ tEplInstanceHdl MEM* pInstanceHandle,
// macros for declaration instance as lokacl variable within functions // macros for declaration instance as lokacl variable within functions
#define CCM_DECL_INSTANCE_PTR_LOCAL tCcmInstanceInfo MEM* pInstance; #define CCM_DECL_INSTANCE_PTR_LOCAL tCcmInstanceInfo MEM* pInstance;
#define CCM_DECL_PTR_INSTANCE_HDL_LOCAL tEplInstanceHdl MEM* pInstanceHandle; #define CCM_DECL_PTR_INSTANCE_HDL_LOCAL tEplInstanceHdl MEM* pInstanceHandle;
// reference: // reference:
// macros for reference of instance handle for function parameters // macros for reference of instance handle for function parameters
#define CCM_INSTANCE_HDL InstanceHandle #define CCM_INSTANCE_HDL InstanceHandle
#define CCM_INSTANCE_HDL_ InstanceHandle, #define CCM_INSTANCE_HDL_ InstanceHandle,
// macros for reference of instance parameter for function parameters // macros for reference of instance parameter for function parameters
#define CCM_INSTANCE_PARAM(par) par #define CCM_INSTANCE_PARAM(par) par
#define CCM_INSTANCE_PARAM_(par) par, #define CCM_INSTANCE_PARAM_(par) par,
// macros for reference of instance parameter for writing or reading values // macros for reference of instance parameter for writing or reading values
#define CCM_INST_ENTRY (*((tEplPtrInstance)pInstance)) #define CCM_INST_ENTRY (*((tEplPtrInstance)pInstance))
// processing: // processing:
// macros for process instance handle // macros for process instance handle
#define CCM_CHECK_INSTANCE_HDL() if (InstanceHandle >= EPL_MAX_INSTANCES) \ #define CCM_CHECK_INSTANCE_HDL() if (InstanceHandle >= EPL_MAX_INSTANCES) \
{return (kEplIllegalInstance);} {return (kEplIllegalInstance);}
// macros for process pointer to instance handle // macros for process pointer to instance handle
#define CCM_CHECK_PTR_INSTANCE_HDL() if (pInstanceHandle == NULL) \ #define CCM_CHECK_PTR_INSTANCE_HDL() if (pInstanceHandle == NULL) \
{return (kEplInvalidInstanceParam);} {return (kEplInvalidInstanceParam);}
// This macro returned the handle and pointer to next free instance. // This macro returned the handle and pointer to next free instance.
#define CCM_GET_FREE_INSTANCE_AND_HDL() pInstance = CcmGetFreeInstanceAndHandle (pInstanceHandle); \ #define CCM_GET_FREE_INSTANCE_AND_HDL() pInstance = CcmGetFreeInstanceAndHandle (pInstanceHandle); \
ASSERT (*pInstanceHandle != CCM_ILLINSTANCE_HDL); ASSERT (*pInstanceHandle != CCM_ILLINSTANCE_HDL);
#define CCM_CHECK_INSTANCE_PTR() if (pInstance == CCM_ILLINSTANCE) \ #define CCM_CHECK_INSTANCE_PTR() if (pInstance == CCM_ILLINSTANCE) \
{return (kEplNoFreeInstance);} {return (kEplNoFreeInstance);}
#define CCM_GET_INSTANCE_PTR() pInstance = CcmGetInstancePtr (InstanceHandle); #define CCM_GET_INSTANCE_PTR() pInstance = CcmGetInstancePtr (InstanceHandle);
#define CCM_GET_FREE_INSTANCE_PTR() pInstance = GetFreeInstance (); \ #define CCM_GET_FREE_INSTANCE_PTR() pInstance = GetFreeInstance (); \
ASSERT (pInstance != CCM_ILLINSTANCE); ASSERT (pInstance != CCM_ILLINSTANCE);
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// macro definition for stack interface // macro definition for stack interface
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
...@@ -171,52 +165,52 @@ typedef BYTE tEplInstanceHdl; ...@@ -171,52 +165,52 @@ typedef BYTE tEplInstanceHdl;
// macros for declaration within the function header, prototype or local var list // macros for declaration within the function header, prototype or local var list
// Declaration of pointers within function paramater list must defined as void MEM* // Declaration of pointers within function paramater list must defined as void MEM*
// pointer. // pointer.
#define EPL_MCO_DECL_INSTANCE_PTR void MEM* pInstance #define EPL_MCO_DECL_INSTANCE_PTR void MEM* pInstance
#define EPL_MCO_DECL_INSTANCE_PTR_ void MEM* pInstance, #define EPL_MCO_DECL_INSTANCE_PTR_ void MEM* pInstance,
#define EPL_MCO_DECL_INSTANCE_PTR_LOCAL tEplPtrInstance pInstance; #define EPL_MCO_DECL_INSTANCE_PTR_LOCAL tEplPtrInstance pInstance;
// macros for reference of pointer to instance // macros for reference of pointer to instance
// These macros are used for parameter passing to called function. // These macros are used for parameter passing to called function.
#define EPL_MCO_INSTANCE_PTR pInstance #define EPL_MCO_INSTANCE_PTR pInstance
#define EPL_MCO_INSTANCE_PTR_ pInstance, #define EPL_MCO_INSTANCE_PTR_ pInstance,
#define EPL_MCO_ADDR_INSTANCE_PTR_ &pInstance, #define EPL_MCO_ADDR_INSTANCE_PTR_ &pInstance,
// macro for access of struct members of one instance // macro for access of struct members of one instance
// An access to a member of instance table must be casted by the local // An access to a member of instance table must be casted by the local
// defined type of instance table. // defined type of instance table.
#define EPL_MCO_INST_ENTRY (*(tEplPtrInstance)pInstance) #define EPL_MCO_INST_ENTRY (*(tEplPtrInstance)pInstance)
#define EPL_MCO_GLB_VAR(var) (((tEplPtrInstance)pInstance)->var) #define EPL_MCO_GLB_VAR(var) (((tEplPtrInstance)pInstance)->var)
// macros for process pointer to instance // macros for process pointer to instance
#define EPL_MCO_GET_INSTANCE_PTR() pInstance = (tEplPtrInstance) GetInstancePtr (InstanceHandle); #define EPL_MCO_GET_INSTANCE_PTR() pInstance = (tEplPtrInstance) GetInstancePtr (InstanceHandle);
#define EPL_MCO_GET_FREE_INSTANCE_PTR() pInstance = (tEplPtrInstance) GetFreeInstance (); \ #define EPL_MCO_GET_FREE_INSTANCE_PTR() pInstance = (tEplPtrInstance) GetFreeInstance (); \
ASSERT (pInstance != CCM_ILLINSTANCE); ASSERT (pInstance != CCM_ILLINSTANCE);
// This macro should be used to check the passed pointer to an public function // This macro should be used to check the passed pointer to an public function
#define EPL_MCO_CHECK_INSTANCE_STATE() ASSERT (pInstance != NULL); \ #define EPL_MCO_CHECK_INSTANCE_STATE() ASSERT (pInstance != NULL); \
ASSERT (((tEplPtrInstance)pInstance)->m_InstState == kStateUsed); ASSERT (((tEplPtrInstance)pInstance)->m_InstState == kStateUsed);
// macros for declaration of pointer to instance pointer // macros for declaration of pointer to instance pointer
#define EPL_MCO_DECL_PTR_INSTANCE_PTR void MEM* MEM* pInstancePtr #define EPL_MCO_DECL_PTR_INSTANCE_PTR void MEM* MEM* pInstancePtr
#define EPL_MCO_DECL_PTR_INSTANCE_PTR_ void MEM* MEM* pInstancePtr, #define EPL_MCO_DECL_PTR_INSTANCE_PTR_ void MEM* MEM* pInstancePtr,
// macros for reference of pointer to instance pointer // macros for reference of pointer to instance pointer
// These macros are used for parameter passing to called function. // These macros are used for parameter passing to called function.
#define EPL_MCO_PTR_INSTANCE_PTR pInstancePtr #define EPL_MCO_PTR_INSTANCE_PTR pInstancePtr
#define EPL_MCO_PTR_INSTANCE_PTR_ pInstancePtr, #define EPL_MCO_PTR_INSTANCE_PTR_ pInstancePtr,
// macros for process pointer to instance pointer // macros for process pointer to instance pointer
#define EPL_MCO_CHECK_PTR_INSTANCE_PTR() ASSERT (pInstancePtr != NULL); #define EPL_MCO_CHECK_PTR_INSTANCE_PTR() ASSERT (pInstancePtr != NULL);
#define EPL_MCO_SET_PTR_INSTANCE_PTR() (*pInstancePtr = pInstance); #define EPL_MCO_SET_PTR_INSTANCE_PTR() (*pInstancePtr = pInstance);
#define EPL_MCO_INSTANCE_PARAM(a) (a) #define EPL_MCO_INSTANCE_PARAM(a) (a)
#define EPL_MCO_INSTANCE_PARAM_(a) (a), #define EPL_MCO_INSTANCE_PARAM_(a) (a),
#define EPL_MCO_INSTANCE_PARAM_IDX_() EPL_MCO_INSTANCE_PARAM_ (EPL_MCO_GLB_VAR (m_bInstIndex)) #define EPL_MCO_INSTANCE_PARAM_IDX_() EPL_MCO_INSTANCE_PARAM_ (EPL_MCO_GLB_VAR (m_bInstIndex))
#define EPL_MCO_INSTANCE_PARAM_IDX() EPL_MCO_INSTANCE_PARAM (EPL_MCO_GLB_VAR (m_bInstIndex)) #define EPL_MCO_INSTANCE_PARAM_IDX() EPL_MCO_INSTANCE_PARAM (EPL_MCO_GLB_VAR (m_bInstIndex))
#define EPL_MCO_WRITE_INSTANCE_STATE(a) EPL_MCO_GLB_VAR (m_InstState) = a; #define EPL_MCO_WRITE_INSTANCE_STATE(a) EPL_MCO_GLB_VAR (m_InstState) = a;
// this macro deletes all instance entries as unused // this macro deletes all instance entries as unused
#define EPL_MCO_DELETE_INSTANCE_TABLE() \ #define EPL_MCO_DELETE_INSTANCE_TABLE() \
{ \ { \
tEplInstanceInfo MEM* pInstance = &aEplInstanceTable_g[0]; \ tEplInstanceInfo MEM* pInstance = &aEplInstanceTable_g[0]; \
tFastByte InstNumber = 0; \ tFastByte InstNumber = 0; \
...@@ -229,10 +223,10 @@ typedef BYTE tEplInstanceHdl; ...@@ -229,10 +223,10 @@ typedef BYTE tEplInstanceHdl;
} }
// definition of functions which has to be defined in each module of CANopen stack // definition of functions which has to be defined in each module of CANopen stack
#define EPL_MCO_DEFINE_INSTANCE_FCT() \ #define EPL_MCO_DEFINE_INSTANCE_FCT() \
static tEplPtrInstance GetInstancePtr (tEplInstanceHdl InstHandle_p); \ static tEplPtrInstance GetInstancePtr (tEplInstanceHdl InstHandle_p); \
static tEplPtrInstance GetFreeInstance (void); static tEplPtrInstance GetFreeInstance (void);
#define EPL_MCO_DECL_INSTANCE_FCT() \ #define EPL_MCO_DECL_INSTANCE_FCT() \
static tEplPtrInstance GetInstancePtr (tEplInstanceHdl InstHandle_p) { \ static tEplPtrInstance GetInstancePtr (tEplInstanceHdl InstHandle_p) { \
return &aEplInstanceTable_g[InstHandle_p]; } \ return &aEplInstanceTable_g[InstHandle_p]; } \
static tEplPtrInstance GetFreeInstance (void) { \ static tEplPtrInstance GetFreeInstance (void) { \
...@@ -245,27 +239,27 @@ typedef BYTE tEplInstanceHdl; ...@@ -245,27 +239,27 @@ typedef BYTE tEplInstanceHdl;
return CCM_ILLINSTANCE; } return CCM_ILLINSTANCE; }
// this macro defines the instance table. Each entry is reserved for an instance of CANopen. // this macro defines the instance table. Each entry is reserved for an instance of CANopen.
#define EPL_MCO_DECL_INSTANCE_VAR() \ #define EPL_MCO_DECL_INSTANCE_VAR() \
static tEplInstanceInfo MEM aEplInstanceTable_g [EPL_MAX_INSTANCES]; static tEplInstanceInfo MEM aEplInstanceTable_g [EPL_MAX_INSTANCES];
// this macro defines member variables in instance table which are needed in // this macro defines member variables in instance table which are needed in
// all modules of Epl stack // all modules of Epl stack
#define EPL_MCO_DECL_INSTANCE_MEMBER() \ #define EPL_MCO_DECL_INSTANCE_MEMBER() \
STATIC BYTE m_InstState; \ STATIC BYTE m_InstState; \
STATIC BYTE m_bInstIndex; STATIC BYTE m_bInstIndex;
#define EPL_MCO_INSTANCE_PARAM_IDX_() EPL_MCO_INSTANCE_PARAM_ (EPL_MCO_GLB_VAR (m_bInstIndex)) #define EPL_MCO_INSTANCE_PARAM_IDX_() EPL_MCO_INSTANCE_PARAM_ (EPL_MCO_GLB_VAR (m_bInstIndex))
#define EPL_MCO_INSTANCE_PARAM_IDX() EPL_MCO_INSTANCE_PARAM (EPL_MCO_GLB_VAR (m_bInstIndex)) #define EPL_MCO_INSTANCE_PARAM_IDX() EPL_MCO_INSTANCE_PARAM (EPL_MCO_GLB_VAR (m_bInstIndex))
#else // only one instance is used #else // only one instance is used
// Memory attributes for instance table. // Memory attributes for instance table.
#define INST_NEAR NEAR // faster access to variables #define INST_NEAR NEAR // faster access to variables
#define INST_FAR MEM // variables wich have to located in xdata #define INST_FAR MEM // variables wich have to located in xdata
#define STATIC static // prevent warnings for variables with same name #define STATIC static // prevent warnings for variables with same name
#define INSTANCE_TYPE_BEGIN #define INSTANCE_TYPE_BEGIN
#define INSTANCE_TYPE_END #define INSTANCE_TYPE_END
// macros for declaration, initializing and member access for instance handle // macros for declaration, initializing and member access for instance handle
// This class of macros are used by API function to inform CCM-modul which // This class of macros are used by API function to inform CCM-modul which
...@@ -273,99 +267,98 @@ typedef BYTE tEplInstanceHdl; ...@@ -273,99 +267,98 @@ typedef BYTE tEplInstanceHdl;
// macros for reference of instance handle // macros for reference of instance handle
// These macros are used for parameter passing to CANopen API function. // These macros are used for parameter passing to CANopen API function.
#define CCM_INSTANCE_HDL #define CCM_INSTANCE_HDL
#define CCM_INSTANCE_HDL_ #define CCM_INSTANCE_HDL_
#define CCM_DECL_INSTANCE_PTR_LOCAL #define CCM_DECL_INSTANCE_PTR_LOCAL
// macros for declaration within the function header or prototype // macros for declaration within the function header or prototype
#define CCM_DECL_INSTANCE_HDL void #define CCM_DECL_INSTANCE_HDL void
#define CCM_DECL_INSTANCE_HDL_ #define CCM_DECL_INSTANCE_HDL_
// macros for process instance handle // macros for process instance handle
#define CCM_CHECK_INSTANCE_HDL() #define CCM_CHECK_INSTANCE_HDL()
// macros for declaration of pointer to instance handle // macros for declaration of pointer to instance handle
#define CCM_DECL_PTR_INSTANCE_HDL void #define CCM_DECL_PTR_INSTANCE_HDL void
#define CCM_DECL_PTR_INSTANCE_HDL_ #define CCM_DECL_PTR_INSTANCE_HDL_
// macros for process pointer to instance handle // macros for process pointer to instance handle
#define CCM_CHECK_PTR_INSTANCE_HDL() #define CCM_CHECK_PTR_INSTANCE_HDL()
// This macro returned the handle and pointer to next free instance. // This macro returned the handle and pointer to next free instance.
#define CCM_GET_FREE_INSTANCE_AND_HDL() #define CCM_GET_FREE_INSTANCE_AND_HDL()
#define CCM_CHECK_INSTANCE_PTR() #define CCM_CHECK_INSTANCE_PTR()
#define CCM_GET_INSTANCE_PTR() #define CCM_GET_INSTANCE_PTR()
#define CCM_GET_FREE_INSTANCE_PTR() #define CCM_GET_FREE_INSTANCE_PTR()
#define CCM_INSTANCE_PARAM(par) #define CCM_INSTANCE_PARAM(par)
#define CCM_INSTANCE_PARAM_(par) #define CCM_INSTANCE_PARAM_(par)
#define CCM_INST_ENTRY aCcmInstanceTable_g[0] #define CCM_INST_ENTRY aCcmInstanceTable_g[0]
// macros for declaration, initializing and member access for instance pointer // macros for declaration, initializing and member access for instance pointer
// This class of macros are used by CANopen internal function to point to one instance. // This class of macros are used by CANopen internal function to point to one instance.
// macros for declaration within the function header, prototype or local var list // macros for declaration within the function header, prototype or local var list
#define EPL_MCO_DECL_INSTANCE_PTR void #define EPL_MCO_DECL_INSTANCE_PTR void
#define EPL_MCO_DECL_INSTANCE_PTR_ #define EPL_MCO_DECL_INSTANCE_PTR_
#define EPL_MCO_DECL_INSTANCE_PTR_LOCAL #define EPL_MCO_DECL_INSTANCE_PTR_LOCAL
// macros for reference of pointer to instance // macros for reference of pointer to instance
// These macros are used for parameter passing to called function. // These macros are used for parameter passing to called function.
#define EPL_MCO_INSTANCE_PTR #define EPL_MCO_INSTANCE_PTR
#define EPL_MCO_INSTANCE_PTR_ #define EPL_MCO_INSTANCE_PTR_
#define EPL_MCO_ADDR_INSTANCE_PTR_ #define EPL_MCO_ADDR_INSTANCE_PTR_
// macros for process pointer to instance // macros for process pointer to instance
#define EPL_MCO_GET_INSTANCE_PTR() #define EPL_MCO_GET_INSTANCE_PTR()
#define EPL_MCO_GET_FREE_INSTANCE_PTR() #define EPL_MCO_GET_FREE_INSTANCE_PTR()
// This macro should be used to check the passed pointer to an public function // This macro should be used to check the passed pointer to an public function
#define EPL_MCO_CHECK_INSTANCE_STATE() #define EPL_MCO_CHECK_INSTANCE_STATE()
// macros for declaration of pointer to instance pointer // macros for declaration of pointer to instance pointer
#define EPL_MCO_DECL_PTR_INSTANCE_PTR void #define EPL_MCO_DECL_PTR_INSTANCE_PTR void
#define EPL_MCO_DECL_PTR_INSTANCE_PTR_ #define EPL_MCO_DECL_PTR_INSTANCE_PTR_
// macros for reference of pointer to instance pointer // macros for reference of pointer to instance pointer
// These macros are used for parameter passing to called function. // These macros are used for parameter passing to called function.
#define EPL_MCO_PTR_INSTANCE_PTR #define EPL_MCO_PTR_INSTANCE_PTR
#define EPL_MCO_PTR_INSTANCE_PTR_ #define EPL_MCO_PTR_INSTANCE_PTR_
// macros for process pointer to instance pointer // macros for process pointer to instance pointer
#define EPL_MCO_CHECK_PTR_INSTANCE_PTR() #define EPL_MCO_CHECK_PTR_INSTANCE_PTR()
#define EPL_MCO_SET_PTR_INSTANCE_PTR() #define EPL_MCO_SET_PTR_INSTANCE_PTR()
#define EPL_MCO_INSTANCE_PARAM(a) #define EPL_MCO_INSTANCE_PARAM(a)
#define EPL_MCO_INSTANCE_PARAM_(a) #define EPL_MCO_INSTANCE_PARAM_(a)
#define EPL_MCO_INSTANCE_PARAM_IDX_() #define EPL_MCO_INSTANCE_PARAM_IDX_()
#define EPL_MCO_INSTANCE_PARAM_IDX() #define EPL_MCO_INSTANCE_PARAM_IDX()
// macro for access of struct members of one instance // macro for access of struct members of one instance
#define EPL_MCO_INST_ENTRY aEplInstanceTable_g[0] #define EPL_MCO_INST_ENTRY aEplInstanceTable_g[0]
#define EPL_MCO_GLB_VAR(var) (var) #define EPL_MCO_GLB_VAR(var) (var)
#define EPL_MCO_WRITE_INSTANCE_STATE(a) #define EPL_MCO_WRITE_INSTANCE_STATE(a)
// this macro deletes all instance entries as unused // this macro deletes all instance entries as unused
#define EPL_MCO_DELETE_INSTANCE_TABLE() #define EPL_MCO_DELETE_INSTANCE_TABLE()
// definition of functions which has to be defined in each module of CANopen stack // definition of functions which has to be defined in each module of CANopen stack
#define EPL_MCO_DEFINE_INSTANCE_FCT() #define EPL_MCO_DEFINE_INSTANCE_FCT()
#define EPL_MCO_DECL_INSTANCE_FCT() #define EPL_MCO_DECL_INSTANCE_FCT()
// this macro defines the instance table. Each entry is reserved for an instance of CANopen. // this macro defines the instance table. Each entry is reserved for an instance of CANopen.
#define EPL_MCO_DECL_INSTANCE_VAR() #define EPL_MCO_DECL_INSTANCE_VAR()
// this macro defines member variables in instance table which are needed in // this macro defines member variables in instance table which are needed in
// all modules of CANopen stack // all modules of CANopen stack
#define EPL_MCO_DECL_INSTANCE_MEMBER() #define EPL_MCO_DECL_INSTANCE_MEMBER()
#endif #endif
/* /*
#if (CDRV_MAX_INSTANCES > 1) #if (CDRV_MAX_INSTANCES > 1)
...@@ -378,9 +371,7 @@ typedef BYTE tEplInstanceHdl; ...@@ -378,9 +371,7 @@ typedef BYTE tEplInstanceHdl;
#endif #endif
*/ */
#endif // _EPLINSTDEF_H_ #endif // _EPLINSTDEF_H_
// Die letzte Zeile muß unbedingt eine leere Zeile sein, weil manche Compiler // Die letzte Zeile muß unbedingt eine leere Zeile sein, weil manche Compiler
// damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder). // damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder).
...@@ -66,39 +66,27 @@ ...@@ -66,39 +66,27 @@
2008/11/17 d.k.: start of the implementation 2008/11/17 d.k.: start of the implementation
****************************************************************************/ ****************************************************************************/
#ifndef _EPLLED_H_ #ifndef _EPLLED_H_
#define _EPLLED_H_ #define _EPLLED_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef enum {
typedef enum
{
kEplLedTypeStatus = 0x00, kEplLedTypeStatus = 0x00,
kEplLedTypeError = 0x01, kEplLedTypeError = 0x01,
} tEplLedType; } tEplLedType;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPLLED_H_ #endif // #ifndef _EPLLED_H_
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/06/09 k.t.: start of the implementation 2006/06/09 k.t.: start of the implementation
****************************************************************************/ ****************************************************************************/
#ifndef _EPLNMT_H_ #ifndef _EPLNMT_H_
...@@ -106,8 +105,7 @@ ...@@ -106,8 +105,7 @@
// --> there are masks defined to indentify the // --> there are masks defined to indentify the
// super-states // super-states
typedef enum typedef enum {
{
kEplNmtGsOff = 0x0000, kEplNmtGsOff = 0x0000,
kEplNmtGsInitialising = 0x0019, kEplNmtGsInitialising = 0x0019,
kEplNmtGsResetApplication = 0x0029, kEplNmtGsResetApplication = 0x0029,
...@@ -126,12 +124,10 @@ typedef enum ...@@ -126,12 +124,10 @@ typedef enum
kEplNmtMsReadyToOperate = 0x026D, kEplNmtMsReadyToOperate = 0x026D,
kEplNmtMsOperational = 0x02FD, kEplNmtMsOperational = 0x02FD,
kEplNmtMsBasicEthernet = 0x021E kEplNmtMsBasicEthernet = 0x021E
} tEplNmtState; } tEplNmtState;
// NMT-events // NMT-events
typedef enum typedef enum {
{
// Events from DLL // Events from DLL
// Events defined by EPL V2 specification // Events defined by EPL V2 specification
kEplNmtEventNoEvent = 0x00, kEplNmtEventNoEvent = 0x00,
...@@ -154,8 +150,8 @@ typedef enum ...@@ -154,8 +150,8 @@ typedef enum
kEplNmtEventResetNode = 0x11, kEplNmtEventResetNode = 0x11,
kEplNmtEventResetCom = 0x12, kEplNmtEventResetCom = 0x12,
kEplNmtEventResetConfig = 0x13, kEplNmtEventResetConfig = 0x13,
kEplNmtEventEnterPreOperational2= 0x14, kEplNmtEventEnterPreOperational2 = 0x14,
kEplNmtEventEnableReadyToOperate= 0x15, kEplNmtEventEnableReadyToOperate = 0x15,
kEplNmtEventStartNode = 0x16, // NMT_CT7 kEplNmtEventStartNode = 0x16, // NMT_CT7
kEplNmtEventStopNode = 0x17, kEplNmtEventStopNode = 0x17,
...@@ -178,43 +174,35 @@ typedef enum ...@@ -178,43 +174,35 @@ typedef enum
} tEplNmtEvent; } tEplNmtEvent;
// type for argument of event kEplEventTypeNmtStateChange // type for argument of event kEplEventTypeNmtStateChange
typedef struct typedef struct {
{
tEplNmtState m_NewNmtState; tEplNmtState m_NewNmtState;
tEplNmtEvent m_NmtEvent; tEplNmtEvent m_NmtEvent;
} tEplEventNmtStateChange; } tEplEventNmtStateChange;
// structure for kEplEventTypeHeartbeat // structure for kEplEventTypeHeartbeat
typedef struct typedef struct {
{
unsigned int m_uiNodeId; // NodeId unsigned int m_uiNodeId; // NodeId
tEplNmtState m_NmtState; // NMT state (remember distinguish between MN / CN) tEplNmtState m_NmtState; // NMT state (remember distinguish between MN / CN)
WORD m_wErrorCode; // EPL error code in case of NMT state NotActive WORD m_wErrorCode; // EPL error code in case of NMT state NotActive
} tEplHeartbeatEvent; } tEplHeartbeatEvent;
typedef enum {
typedef enum
{
kEplNmtNodeEventFound = 0x00, kEplNmtNodeEventFound = 0x00,
kEplNmtNodeEventUpdateSw = 0x01, // application shall update software on CN kEplNmtNodeEventUpdateSw = 0x01, // application shall update software on CN
kEplNmtNodeEventCheckConf = 0x02, // application / Configuration Manager shall check and update configuration on CN kEplNmtNodeEventCheckConf = 0x02, // application / Configuration Manager shall check and update configuration on CN
kEplNmtNodeEventUpdateConf = 0x03, // application / Configuration Manager shall update configuration on CN (check was done by NmtMn module) kEplNmtNodeEventUpdateConf = 0x03, // application / Configuration Manager shall update configuration on CN (check was done by NmtMn module)
kEplNmtNodeEventVerifyConf = 0x04, // application / Configuration Manager shall verify configuration of CN kEplNmtNodeEventVerifyConf = 0x04, // application / Configuration Manager shall verify configuration of CN
kEplNmtNodeEventReadyToStart= 0x05, // issued if EPL_NMTST_NO_STARTNODE set kEplNmtNodeEventReadyToStart = 0x05, // issued if EPL_NMTST_NO_STARTNODE set
// application must call EplNmtMnuSendNmtCommand(kEplNmtCmdStartNode) manually // application must call EplNmtMnuSendNmtCommand(kEplNmtCmdStartNode) manually
kEplNmtNodeEventNmtState = 0x06, kEplNmtNodeEventNmtState = 0x06,
kEplNmtNodeEventError = 0x07, // NMT error of CN kEplNmtNodeEventError = 0x07, // NMT error of CN
} tEplNmtNodeEvent; } tEplNmtNodeEvent;
typedef enum {
typedef enum
{
kEplNmtNodeCommandBoot = 0x01, // if EPL_NODEASSIGN_START_CN not set it must be issued after kEplNmtNodeEventFound kEplNmtNodeCommandBoot = 0x01, // if EPL_NODEASSIGN_START_CN not set it must be issued after kEplNmtNodeEventFound
kEplNmtNodeCommandSwOk = 0x02, // application updated software on CN successfully kEplNmtNodeCommandSwOk = 0x02, // application updated software on CN successfully
kEplNmtNodeCommandSwUpdated = 0x03, // application updated software on CN successfully kEplNmtNodeCommandSwUpdated = 0x03, // application updated software on CN successfully
...@@ -226,9 +214,7 @@ typedef enum ...@@ -226,9 +214,7 @@ typedef enum
} tEplNmtNodeCommand; } tEplNmtNodeCommand;
typedef enum {
typedef enum
{
kEplNmtBootEventBootStep1Finish = 0x00, // PreOp2 is possible kEplNmtBootEventBootStep1Finish = 0x00, // PreOp2 is possible
kEplNmtBootEventBootStep2Finish = 0x01, // ReadyToOp is possible kEplNmtBootEventBootStep2Finish = 0x01, // ReadyToOp is possible
kEplNmtBootEventCheckComFinish = 0x02, // Operational is possible kEplNmtBootEventCheckComFinish = 0x02, // Operational is possible
...@@ -237,12 +223,8 @@ typedef enum ...@@ -237,12 +223,8 @@ typedef enum
} tEplNmtBootEvent; } tEplNmtBootEvent;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPLNMT_H_ #endif // #ifndef _EPLNMT_H_
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/06/02 k.t.: start of the implementation, version 1.00 2006/06/02 k.t.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#include "EplInc.h" #include "EplInc.h"
...@@ -74,7 +73,6 @@ ...@@ -74,7 +73,6 @@
#ifndef _EPLOBD_H_ #ifndef _EPLOBD_H_
#define _EPLOBD_H_ #define _EPLOBD_H_
// ============================================================================ // ============================================================================
// defines // defines
// ============================================================================ // ============================================================================
...@@ -97,19 +95,16 @@ ...@@ -97,19 +95,16 @@
// ============================================================================ // ============================================================================
// directions for access to object dictionary // directions for access to object dictionary
typedef enum typedef enum {
{
kEplObdDirInit = 0x00, // initialising after power on kEplObdDirInit = 0x00, // initialising after power on
kEplObdDirStore = 0x01, // store all object values to non volatile memory kEplObdDirStore = 0x01, // store all object values to non volatile memory
kEplObdDirLoad = 0x02, // load all object values from non volatile memory kEplObdDirLoad = 0x02, // load all object values from non volatile memory
kEplObdDirRestore = 0x03, // deletes non volatile memory (restore) kEplObdDirRestore = 0x03, // deletes non volatile memory (restore)
kEplObdDirOBKCheck = 0xFF // reserved kEplObdDirOBKCheck = 0xFF // reserved
} tEplObdDir;
}tEplObdDir;
// commands for store // commands for store
typedef enum typedef enum {
{
kEplObdCommNothing = 0x00, kEplObdCommNothing = 0x00,
kEplObdCommOpenWrite = 0x01, kEplObdCommOpenWrite = 0x01,
kEplObdCommWriteObj = 0x02, kEplObdCommWriteObj = 0x02,
...@@ -119,12 +114,11 @@ typedef enum ...@@ -119,12 +114,11 @@ typedef enum
kEplObdCommCloseRead = 0x06, kEplObdCommCloseRead = 0x06,
kEplObdCommClear = 0x07, kEplObdCommClear = 0x07,
kEplObdCommUnknown = 0xFF kEplObdCommUnknown = 0xFF
}tEplObdCommand; } tEplObdCommand;
//----------------------------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------------------------
// events of object callback function // events of object callback function
typedef enum typedef enum {
{
// m_pArg points to // m_pArg points to
// --------------------- // ---------------------
kEplObdEvCheckExist = 0x06, // checking if object does exist (reading and writing) NULL kEplObdEvCheckExist = 0x06, // checking if object does exist (reading and writing) NULL
...@@ -205,19 +199,15 @@ typedef unsigned int tEplObdAccess; ...@@ -205,19 +199,15 @@ typedef unsigned int tEplObdAccess;
#define kEplObdAccSVGPW (kEplObdAccStore | kEplObdAccVar | kEplObdAccRange | kEplObdAccPdo | 0 | kEplObdAccWrite | 0 ) #define kEplObdAccSVGPW (kEplObdAccStore | kEplObdAccVar | kEplObdAccRange | kEplObdAccPdo | 0 | kEplObdAccWrite | 0 )
#define kEplObdAccSVGPRW (kEplObdAccStore | kEplObdAccVar | kEplObdAccRange | kEplObdAccPdo | 0 | kEplObdAccWrite | kEplObdAccRead) #define kEplObdAccSVGPRW (kEplObdAccStore | kEplObdAccVar | kEplObdAccRange | kEplObdAccPdo | 0 | kEplObdAccWrite | kEplObdAccRead)
typedef unsigned int tEplObdSize; // For all objects as objects size are used an unsigned int. typedef unsigned int tEplObdSize; // For all objects as objects size are used an unsigned int.
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// types for data types defined in DS301 // types for data types defined in DS301
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// types of objects in object dictionary // types of objects in object dictionary
// DS-301 defines these types as WORD // DS-301 defines these types as WORD
typedef enum typedef enum {
{
// types which are always supported // types which are always supported
kEplObdTypBool = 0x0001, kEplObdTypBool = 0x0001,
...@@ -246,11 +236,9 @@ typedef enum ...@@ -246,11 +236,9 @@ typedef enum
kEplObdTypUInt64 = 0x001B, kEplObdTypUInt64 = 0x001B,
kEplObdTypTimeOfDay = 0x000C, kEplObdTypTimeOfDay = 0x000C,
kEplObdTypTimeDiff = 0x000D kEplObdTypTimeDiff = 0x000D
} tEplObdType;
}tEplObdType;
// other types are not supported in this version // other types are not supported in this version
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// types for data types defined in DS301 // types for data types defined in DS301
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -282,41 +270,35 @@ typedef double tEplObdReal64; // 0011 ...@@ -282,41 +270,35 @@ typedef double tEplObdReal64; // 0011
typedef tTimeOfDay tEplObdTimeOfDay; // 000C typedef tTimeOfDay tEplObdTimeOfDay; // 000C
typedef tTimeOfDay tEplObdTimeDifference; // 000D typedef tTimeOfDay tEplObdTimeDifference; // 000D
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// structur for defining a variable // structur for defining a variable
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
typedef enum typedef enum {
{
kVarValidSize = 0x01, kVarValidSize = 0x01,
kVarValidData = 0x02, kVarValidData = 0x02,
// kVarValidCallback = 0x04, // kVarValidCallback = 0x04,
// kVarValidArg = 0x08, // kVarValidArg = 0x08,
kVarValidAll = 0x03 // currently only size and data are implemented and used kVarValidAll = 0x03 // currently only size and data are implemented and used
} tEplVarParamValid;
}tEplVarParamValid; typedef tEplKernel(PUBLIC ROM * tEplVarCallback) (CCM_DECL_INSTANCE_HDL_
void *pParam_p);
typedef tEplKernel (PUBLIC ROM* tEplVarCallback) (CCM_DECL_INSTANCE_HDL_ typedef struct {
void * pParam_p);
typedef struct
{
tEplVarParamValid m_ValidFlag; tEplVarParamValid m_ValidFlag;
unsigned int m_uiIndex; unsigned int m_uiIndex;
unsigned int m_uiSubindex; unsigned int m_uiSubindex;
tEplObdSize m_Size; tEplObdSize m_Size;
void MEM* m_pData; void MEM *m_pData;
// tEplVarCallback m_fpCallback; // tEplVarCallback m_fpCallback;
// void * m_pArg; // void * m_pArg;
} tEplVarParam; } tEplVarParam;
typedef struct typedef struct {
{ void MEM *m_pData;
void MEM* m_pData;
tEplObdSize m_Size; tEplObdSize m_Size;
/* /*
#if (EPL_PDO_USE_STATIC_MAPPING == FALSE) #if (EPL_PDO_USE_STATIC_MAPPING == FALSE)
...@@ -326,46 +308,39 @@ typedef struct ...@@ -326,46 +308,39 @@ typedef struct
*/ */
} tEplObdVarEntry; } tEplObdVarEntry;
typedef struct typedef struct {
{
tEplObdSize m_Size; tEplObdSize m_Size;
BYTE * m_pString; BYTE *m_pString;
} tEplObdOString; // 000C } tEplObdOString; // 000C
typedef struct typedef struct {
{
tEplObdSize m_Size; tEplObdSize m_Size;
char * m_pString; char *m_pString;
} tEplObdVString; // 000D } tEplObdVString; // 000D
typedef struct {
typedef struct
{
tEplObdSize m_Size; tEplObdSize m_Size;
char * m_pDefString; // $$$ d.k. it is unused, so we could delete it char *m_pDefString; // $$$ d.k. it is unused, so we could delete it
char * m_pString; char *m_pString;
} tEplObdVStringDef; } tEplObdVStringDef;
typedef struct typedef struct {
{
tEplObdSize m_Size; tEplObdSize m_Size;
BYTE * m_pDefString; // $$$ d.k. it is unused, so we could delete it BYTE *m_pDefString; // $$$ d.k. it is unused, so we could delete it
BYTE * m_pString; BYTE *m_pString;
} tEplObdOStringDef; } tEplObdOStringDef;
//r.d. parameter struct for changing object size and/or pointer to data of Strings or Domains //r.d. parameter struct for changing object size and/or pointer to data of Strings or Domains
typedef struct typedef struct {
{
tEplObdSize m_DownloadSize; // download size from SDO or APP tEplObdSize m_DownloadSize; // download size from SDO or APP
tEplObdSize m_ObjSize; // current object size from OD - should be changed from callback function tEplObdSize m_ObjSize; // current object size from OD - should be changed from callback function
void * m_pData; // current object ptr from OD - should be changed from callback function void *m_pData; // current object ptr from OD - should be changed from callback function
} tEplObdVStringDomain; // 000D } tEplObdVStringDomain; // 000D
// ============================================================================ // ============================================================================
// types // types
// ============================================================================ // ============================================================================
...@@ -374,42 +349,40 @@ typedef struct ...@@ -374,42 +349,40 @@ typedef struct
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// Change not the order for this struct!!! // Change not the order for this struct!!!
typedef struct typedef struct {
{
unsigned int m_uiSubIndex; unsigned int m_uiSubIndex;
tEplObdType m_Type; tEplObdType m_Type;
tEplObdAccess m_Access; tEplObdAccess m_Access;
void * m_pDefault; void *m_pDefault;
void MEM* m_pCurrent; // points always to RAM void MEM *m_pCurrent; // points always to RAM
} tEplObdSubEntry; } tEplObdSubEntry;
// r.d.: has always to be because new OBD-Macros for arrays // r.d.: has always to be because new OBD-Macros for arrays
typedef tEplObdSubEntry * tEplObdSubEntryPtr; typedef tEplObdSubEntry *tEplObdSubEntryPtr;
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// callback function for objdictionary modul // callback function for objdictionary modul
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// parameters for callback function // parameters for callback function
typedef struct typedef struct {
{
tEplObdEvent m_ObdEvent; tEplObdEvent m_ObdEvent;
unsigned int m_uiIndex; unsigned int m_uiIndex;
unsigned int m_uiSubIndex; unsigned int m_uiSubIndex;
void * m_pArg; void *m_pArg;
DWORD m_dwAbortCode; DWORD m_dwAbortCode;
} tEplObdCbParam; } tEplObdCbParam;
// define type for callback function: pParam_p points to tEplObdCbParam // define type for callback function: pParam_p points to tEplObdCbParam
typedef tEplKernel (PUBLIC ROM* tEplObdCallback) (CCM_DECL_INSTANCE_HDL_ typedef tEplKernel(PUBLIC ROM * tEplObdCallback) (CCM_DECL_INSTANCE_HDL_
tEplObdCbParam MEM* pParam_p); tEplObdCbParam MEM *
pParam_p);
// do not change the order for this struct!!! // do not change the order for this struct!!!
typedef struct typedef struct {
{
unsigned int m_uiIndex; unsigned int m_uiIndex;
tEplObdSubEntryPtr m_pSubIndex; tEplObdSubEntryPtr m_pSubIndex;
unsigned int m_uiCount; unsigned int m_uiCount;
...@@ -417,61 +390,55 @@ typedef struct ...@@ -417,61 +390,55 @@ typedef struct
} tEplObdEntry; } tEplObdEntry;
// allways pointer // allways pointer
typedef tEplObdEntry * tEplObdEntryPtr; typedef tEplObdEntry *tEplObdEntryPtr;
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// structur to initialize OBD module // structur to initialize OBD module
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
typedef struct typedef struct {
{
tEplObdEntryPtr m_pPart; tEplObdEntryPtr m_pPart;
tEplObdEntryPtr m_pManufacturerPart; tEplObdEntryPtr m_pManufacturerPart;
tEplObdEntryPtr m_pDevicePart; tEplObdEntryPtr m_pDevicePart;
#if (defined (EPL_OBD_USER_OD) && (EPL_OBD_USER_OD != FALSE)) #if (defined (EPL_OBD_USER_OD) && (EPL_OBD_USER_OD != FALSE))
tEplObdEntryPtr m_pUserPart; tEplObdEntryPtr m_pUserPart;
#endif #endif
} tEplObdInitParam; } tEplObdInitParam;
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// structur for parameters of STORE RESTORE command // structur for parameters of STORE RESTORE command
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
typedef struct typedef struct {
{
tEplObdCommand m_bCommand; tEplObdCommand m_bCommand;
tEplObdPart m_bCurrentOdPart; tEplObdPart m_bCurrentOdPart;
void MEM* m_pData; void MEM *m_pData;
tEplObdSize m_ObjSize; tEplObdSize m_ObjSize;
} tEplObdCbStoreParam; } tEplObdCbStoreParam;
typedef tEplKernel(PUBLIC ROM * tInitTabEntryCallback) (void MEM * pTabEntry_p,
unsigned int
uiObjIndex_p);
typedef tEplKernel (PUBLIC ROM* tInitTabEntryCallback) ( typedef tEplKernel(PUBLIC ROM *
void MEM* pTabEntry_p, tEplObdStoreLoadObjCallback) (CCM_DECL_INSTANCE_HDL_
unsigned int uiObjIndex_p); tEplObdCbStoreParam MEM *
pCbStoreParam_p);
typedef tEplKernel (PUBLIC ROM* tEplObdStoreLoadObjCallback) (CCM_DECL_INSTANCE_HDL_
tEplObdCbStoreParam MEM* pCbStoreParam_p);
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// this stucture is used for parameters for function ObdInitModuleTab() // this stucture is used for parameters for function ObdInitModuleTab()
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
typedef struct typedef struct {
{
unsigned int m_uiLowerObjIndex; // lower limit of ObjIndex unsigned int m_uiLowerObjIndex; // lower limit of ObjIndex
unsigned int m_uiUpperObjIndex; // upper limit of ObjIndex unsigned int m_uiUpperObjIndex; // upper limit of ObjIndex
tInitTabEntryCallback m_fpInitTabEntry; // will be called if ObjIndex was found tInitTabEntryCallback m_fpInitTabEntry; // will be called if ObjIndex was found
void MEM* m_pTabBase; // base address of table void MEM *m_pTabBase; // base address of table
unsigned int m_uiEntrySize; // size of table entry // 25-feb-2005 r.d.: expansion from BYTE to WORD necessary for PDO bit mapping unsigned int m_uiEntrySize; // size of table entry // 25-feb-2005 r.d.: expansion from BYTE to WORD necessary for PDO bit mapping
unsigned int m_uiMaxEntries; // max. tabel entries unsigned int m_uiMaxEntries; // max. tabel entries
...@@ -480,25 +447,18 @@ typedef struct ...@@ -480,25 +447,18 @@ typedef struct
//------------------------------------------------------------------- //-------------------------------------------------------------------
// enum for function EplObdSetNodeId // enum for function EplObdSetNodeId
//------------------------------------------------------------------- //-------------------------------------------------------------------
typedef enum typedef enum {
{
kEplObdNodeIdUnknown = 0x00, // unknown how the node id was set kEplObdNodeIdUnknown = 0x00, // unknown how the node id was set
kEplObdNodeIdSoftware = 0x01, // node id set by software kEplObdNodeIdSoftware = 0x01, // node id set by software
kEplObdNodeIdHardware = 0x02 // node id set by hardware kEplObdNodeIdHardware = 0x02 // node id set by hardware
} tEplObdNodeIdType;
}tEplObdNodeIdType;
// ============================================================================ // ============================================================================
// global variables // global variables
// ============================================================================ // ============================================================================
// ============================================================================ // ============================================================================
// public functions // public functions
// ============================================================================ // ============================================================================
#endif // #ifndef _EPLOBD_H_ #endif // #ifndef _EPLOBD_H_
...@@ -67,11 +67,8 @@ ...@@ -67,11 +67,8 @@
2006/06/05 k.t.: start of the implementation 2006/06/05 k.t.: start of the implementation
-> based on CANopen ObdMacro.h -> based on CANopen ObdMacro.h
****************************************************************************/ ****************************************************************************/
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -79,284 +76,279 @@ ...@@ -79,284 +76,279 @@
#if defined (EPL_OBD_DEFINE_MACRO) #if defined (EPL_OBD_DEFINE_MACRO)
//------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------
#if defined (EPL_OBD_CREATE_ROM_DATA) #if defined (EPL_OBD_CREATE_ROM_DATA)
// #pragma message ("EPL_OBD_CREATE_ROM_DATA") // #pragma message ("EPL_OBD_CREATE_ROM_DATA")
#define EPL_OBD_BEGIN() static DWORD dwObd_OBK_g = 0x0000; #define EPL_OBD_BEGIN() static DWORD dwObd_OBK_g = 0x0000;
#define EPL_OBD_END() #define EPL_OBD_END()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_PART_GENERIC() #define EPL_OBD_BEGIN_PART_GENERIC()
#define EPL_OBD_BEGIN_PART_MANUFACTURER() #define EPL_OBD_BEGIN_PART_MANUFACTURER()
#define EPL_OBD_BEGIN_PART_DEVICE() #define EPL_OBD_BEGIN_PART_DEVICE()
#define EPL_OBD_END_PART() #define EPL_OBD_END_PART()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) #define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call)
#define EPL_OBD_END_INDEX(ind) #define EPL_OBD_END_INDEX(ind)
#define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdUnsigned8 xDef##ind##_0x00_g = (cnt); \ #define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdUnsigned8 xDef##ind##_0x00_g = (cnt); \
static dtyp xDef##ind##_0x01_g = (def); static dtyp xDef##ind##_0x01_g = (def);
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdUnsigned8 xDef##ind##_0x00_g = (cnt); \ #define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdUnsigned8 xDef##ind##_0x00_g = (cnt); \
static dtyp xDef##ind##_0x01_g = (def); static dtyp xDef##ind##_0x01_g = (def);
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) static tEplObdUnsigned8 xDef##ind##_0x00_g = (cnt); #define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) static tEplObdUnsigned8 xDef##ind##_0x00_g = (cnt);
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) static dtyp xDef##ind##_##sub##_g = val; #define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) static dtyp xDef##ind##_##sub##_g = val;
#define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) static dtyp xDef##ind##_##sub##_g[3] = {val,low,high}; #define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) static dtyp xDef##ind##_##sub##_g[3] = {val,low,high};
#define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name)
#define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) static char MEM szCur##ind##_##sub##_g[size+1]; \ #define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) static char MEM szCur##ind##_##sub##_g[size+1]; \
static tEplObdVStringDef xDef##ind##_##sub##_g = {size, val, szCur##ind##_##sub##_g}; static tEplObdVStringDef xDef##ind##_##sub##_g = {size, val, szCur##ind##_##sub##_g};
#define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) static BYTE MEM bCur##ind##_##sub##_g[size]; \ #define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) static BYTE MEM bCur##ind##_##sub##_g[size]; \
static tEplObdOStringDef xDef##ind##_##sub##_g = {size, ((BYTE*)""), bCur##ind##_##sub##_g}; static tEplObdOStringDef xDef##ind##_##sub##_g = {size, ((BYTE*)""), bCur##ind##_##sub##_g};
#define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) #define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name)
#define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) static dtyp xDef##ind##_##sub##_g = val; #define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) static dtyp xDef##ind##_##sub##_g = val;
#define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) static dtyp xDef##ind##_##sub##_g[3] = {val,low,high}; #define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) static dtyp xDef##ind##_##sub##_g[3] = {val,low,high};
#define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name)
//------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------
#elif defined (EPL_OBD_CREATE_RAM_DATA) #elif defined (EPL_OBD_CREATE_RAM_DATA)
// #pragma message ("EPL_OBD_CREATE_RAM_DATA") // #pragma message ("EPL_OBD_CREATE_RAM_DATA")
#define EPL_OBD_BEGIN() #define EPL_OBD_BEGIN()
#define EPL_OBD_END() #define EPL_OBD_END()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_PART_GENERIC() #define EPL_OBD_BEGIN_PART_GENERIC()
#define EPL_OBD_BEGIN_PART_MANUFACTURER() #define EPL_OBD_BEGIN_PART_MANUFACTURER()
#define EPL_OBD_BEGIN_PART_DEVICE() #define EPL_OBD_BEGIN_PART_DEVICE()
#define EPL_OBD_END_PART() #define EPL_OBD_END_PART()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) #define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call)
#define EPL_OBD_END_INDEX(ind) #define EPL_OBD_END_INDEX(ind)
#define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static dtyp MEM axCur##ind##_g[cnt]; #define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static dtyp MEM axCur##ind##_g[cnt];
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdVarEntry MEM aVarEntry##ind##_g[cnt]; #define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdVarEntry MEM aVarEntry##ind##_g[cnt];
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) static tEplObdVarEntry MEM aVarEntry##ind##_g[cnt]; #define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) static tEplObdVarEntry MEM aVarEntry##ind##_g[cnt];
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) static dtyp MEM xCur##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) static dtyp MEM xCur##ind##_##sub##_g;
#define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) static dtyp MEM xCur##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) static dtyp MEM xCur##ind##_##sub##_g;
#define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) static tEplObdVString MEM xCur##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) static tEplObdVString MEM xCur##ind##_##sub##_g;
#define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) static tEplObdOString MEM xCur##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) static tEplObdOString MEM xCur##ind##_##sub##_g;
#define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) static dtyp MEM xCur##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) static dtyp MEM xCur##ind##_##sub##_g;
#define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) static tEplObdVarEntry MEM VarEntry##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) static tEplObdVarEntry MEM VarEntry##ind##_##sub##_g;
#define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) static tEplObdVarEntry MEM VarEntry##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) static tEplObdVarEntry MEM VarEntry##ind##_##sub##_g;
#define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) static tEplObdVarEntry MEM VarEntry##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) static tEplObdVarEntry MEM VarEntry##ind##_##sub##_g;
#define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) static tEplObdVarEntry MEM VarEntry##ind##_##sub##_g; #define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) static tEplObdVarEntry MEM VarEntry##ind##_##sub##_g;
//------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------
#elif defined (EPL_OBD_CREATE_SUBINDEX_TAB) #elif defined (EPL_OBD_CREATE_SUBINDEX_TAB)
// #pragma message ("EPL_OBD_CREATE_SUBINDEX_TAB") // #pragma message ("EPL_OBD_CREATE_SUBINDEX_TAB")
#define EPL_OBD_BEGIN() #define EPL_OBD_BEGIN()
#define EPL_OBD_END() #define EPL_OBD_END()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_PART_GENERIC() #define EPL_OBD_BEGIN_PART_GENERIC()
#define EPL_OBD_BEGIN_PART_MANUFACTURER() #define EPL_OBD_BEGIN_PART_MANUFACTURER()
#define EPL_OBD_BEGIN_PART_DEVICE() #define EPL_OBD_BEGIN_PART_DEVICE()
#define EPL_OBD_END_PART() #define EPL_OBD_END_PART()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) static tEplObdSubEntry MEM aObdSubEntry##ind##Ram_g[cnt]= { #define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) static tEplObdSubEntry MEM aObdSubEntry##ind##Ram_g[cnt]= {
#define EPL_OBD_END_INDEX(ind) EPL_OBD_END_SUBINDEX()}; #define EPL_OBD_END_INDEX(ind) EPL_OBD_END_SUBINDEX()};
#define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdSubEntry MEM aObdSubEntry##ind##Ram_g[]= { \ #define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdSubEntry MEM aObdSubEntry##ind##Ram_g[]= { \
{0, kEplObdTypUInt8, kEplObdAccCR, &xDef##ind##_0x00_g, NULL}, \ {0, kEplObdTypUInt8, kEplObdAccCR, &xDef##ind##_0x00_g, NULL}, \
{1, typ, (acc)|kEplObdAccArray, &xDef##ind##_0x01_g, &axCur##ind##_g[0]}, \ {1, typ, (acc)|kEplObdAccArray, &xDef##ind##_0x01_g, &axCur##ind##_g[0]}, \
EPL_OBD_END_SUBINDEX()}; EPL_OBD_END_SUBINDEX()};
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdSubEntry MEM aObdSubEntry##ind##Ram_g[]= { \ #define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) static tEplObdSubEntry MEM aObdSubEntry##ind##Ram_g[]= { \
{0, kEplObdTypUInt8, kEplObdAccCR, &xDef##ind##_0x00_g, NULL}, \ {0, kEplObdTypUInt8, kEplObdAccCR, &xDef##ind##_0x00_g, NULL}, \
{1, typ, (acc)|kEplObdAccArray|kEplObdAccVar, &xDef##ind##_0x01_g, &aVarEntry##ind##_g[0]}, \ {1, typ, (acc)|kEplObdAccArray|kEplObdAccVar, &xDef##ind##_0x01_g, &aVarEntry##ind##_g[0]}, \
EPL_OBD_END_SUBINDEX()}; EPL_OBD_END_SUBINDEX()};
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) static tEplObdSubEntry MEM aObdSubEntry##ind##Ram_g[]= { \ #define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) static tEplObdSubEntry MEM aObdSubEntry##ind##Ram_g[]= { \
{0, kEplObdTypUInt8, kEplObdAccCR, &xDef##ind##_0x00_g, NULL}, \ {0, kEplObdTypUInt8, kEplObdAccCR, &xDef##ind##_0x00_g, NULL}, \
{1, typ, (acc)|kEplObdAccArray|kEplObdAccVar, NULL, &aVarEntry##ind##_g[0]}, \ {1, typ, (acc)|kEplObdAccArray|kEplObdAccVar, NULL, &aVarEntry##ind##_g[0]}, \
EPL_OBD_END_SUBINDEX()}; EPL_OBD_END_SUBINDEX()};
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) {sub,typ, (acc), &xDef##ind##_##sub##_g, &xCur##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) {sub,typ, (acc), &xDef##ind##_##sub##_g, &xCur##ind##_##sub##_g},
#define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) {sub,typ, (acc)|kEplObdAccRange, &xDef##ind##_##sub##_g[0],&xCur##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) {sub,typ, (acc)|kEplObdAccRange, &xDef##ind##_##sub##_g[0],&xCur##ind##_##sub##_g},
#define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) {sub,typ, (acc), NULL, &xCur##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) {sub,typ, (acc), NULL, &xCur##ind##_##sub##_g},
#define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) {sub,kEplObdTypVString,(acc)/*|kEplObdAccVar*/, &xDef##ind##_##sub##_g, &xCur##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) {sub,kEplObdTypVString,(acc)/*|kEplObdAccVar*/, &xDef##ind##_##sub##_g, &xCur##ind##_##sub##_g},
#define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) {sub,kEplObdTypOString,(acc)/*|kEplObdAccVar*/, &xDef##ind##_##sub##_g, &xCur##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) {sub,kEplObdTypOString,(acc)/*|kEplObdAccVar*/, &xDef##ind##_##sub##_g, &xCur##ind##_##sub##_g},
#define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) {sub,kEplObdTypDomain, (acc)|kEplObdAccVar, NULL, &VarEntry##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) {sub,kEplObdTypDomain, (acc)|kEplObdAccVar, NULL, &VarEntry##ind##_##sub##_g},
#define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) {sub,typ, (acc)|kEplObdAccVar, &xDef##ind##_##sub##_g, &VarEntry##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) {sub,typ, (acc)|kEplObdAccVar, &xDef##ind##_##sub##_g, &VarEntry##ind##_##sub##_g},
#define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) {sub,typ, (acc)|kEplObdAccVar|kEplObdAccRange,&xDef##ind##_##sub##_g[0],&VarEntry##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) {sub,typ, (acc)|kEplObdAccVar|kEplObdAccRange,&xDef##ind##_##sub##_g[0],&VarEntry##ind##_##sub##_g},
#define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) {sub,typ, (acc)|kEplObdAccVar, NULL, &VarEntry##ind##_##sub##_g}, #define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) {sub,typ, (acc)|kEplObdAccVar, NULL, &VarEntry##ind##_##sub##_g},
//------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------
#elif defined (EPL_OBD_CREATE_INDEX_TAB) #elif defined (EPL_OBD_CREATE_INDEX_TAB)
// #pragma message ("EPL_OBD_CREATE_INDEX_TAB") // #pragma message ("EPL_OBD_CREATE_INDEX_TAB")
#define EPL_OBD_BEGIN() #define EPL_OBD_BEGIN()
#define EPL_OBD_END() #define EPL_OBD_END()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_PART_GENERIC() static tEplObdEntry aObdTab_g[] = { #define EPL_OBD_BEGIN_PART_GENERIC() static tEplObdEntry aObdTab_g[] = {
#define EPL_OBD_BEGIN_PART_MANUFACTURER() static tEplObdEntry aObdTabManufacturer_g[] = { #define EPL_OBD_BEGIN_PART_MANUFACTURER() static tEplObdEntry aObdTabManufacturer_g[] = {
#define EPL_OBD_BEGIN_PART_DEVICE() static tEplObdEntry aObdTabDevice_g[] = { #define EPL_OBD_BEGIN_PART_DEVICE() static tEplObdEntry aObdTabDevice_g[] = {
#define EPL_OBD_END_PART() {EPL_OBD_TABLE_INDEX_END,(tEplObdSubEntryPtr)&dwObd_OBK_g,0,NULL}}; #define EPL_OBD_END_PART() {EPL_OBD_TABLE_INDEX_END,(tEplObdSubEntryPtr)&dwObd_OBK_g,0,NULL}};
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) {ind,(tEplObdSubEntryPtr)&aObdSubEntry##ind##Ram_g[0],cnt,(tEplObdCallback)call}, #define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) {ind,(tEplObdSubEntryPtr)&aObdSubEntry##ind##Ram_g[0],cnt,(tEplObdCallback)call},
#define EPL_OBD_END_INDEX(ind) #define EPL_OBD_END_INDEX(ind)
#define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) {ind,(tEplObdSubEntryPtr)&aObdSubEntry##ind##Ram_g[0],(cnt)+1,(tEplObdCallback)call}, #define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) {ind,(tEplObdSubEntryPtr)&aObdSubEntry##ind##Ram_g[0],(cnt)+1,(tEplObdCallback)call},
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) {ind,(tEplObdSubEntryPtr)&aObdSubEntry##ind##Ram_g[0],(cnt)+1,(tEplObdCallback)call}, #define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) {ind,(tEplObdSubEntryPtr)&aObdSubEntry##ind##Ram_g[0],(cnt)+1,(tEplObdCallback)call},
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) {ind,(tEplObdSubEntryPtr)&aObdSubEntry##ind##Ram_g[0],(cnt)+1,(tEplObdCallback)call}, #define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) {ind,(tEplObdSubEntryPtr)&aObdSubEntry##ind##Ram_g[0],(cnt)+1,(tEplObdCallback)call},
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) #define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val)
#define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) #define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high)
#define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) #define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val)
#define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) #define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size)
#define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name)
#define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) #define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name)
#define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) #define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val)
#define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) #define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high)
#define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name)
//------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------
#elif defined (EPL_OBD_CREATE_INIT_FUNCTION) #elif defined (EPL_OBD_CREATE_INIT_FUNCTION)
// #pragma message ("EPL_OBD_CREATE_INIT_FUNCTION") // #pragma message ("EPL_OBD_CREATE_INIT_FUNCTION")
#define EPL_OBD_BEGIN() #define EPL_OBD_BEGIN()
#define EPL_OBD_END() #define EPL_OBD_END()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_PART_GENERIC() pInitParam->m_pPart = (tEplObdEntryPtr) &aObdTab_g[0]; #define EPL_OBD_BEGIN_PART_GENERIC() pInitParam->m_pPart = (tEplObdEntryPtr) &aObdTab_g[0];
#define EPL_OBD_BEGIN_PART_MANUFACTURER() pInitParam->m_pManufacturerPart = (tEplObdEntryPtr) &aObdTabManufacturer_g[0]; #define EPL_OBD_BEGIN_PART_MANUFACTURER() pInitParam->m_pManufacturerPart = (tEplObdEntryPtr) &aObdTabManufacturer_g[0];
#define EPL_OBD_BEGIN_PART_DEVICE() pInitParam->m_pDevicePart = (tEplObdEntryPtr) &aObdTabDevice_g[0]; #define EPL_OBD_BEGIN_PART_DEVICE() pInitParam->m_pDevicePart = (tEplObdEntryPtr) &aObdTabDevice_g[0];
#define EPL_OBD_END_PART() #define EPL_OBD_END_PART()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) #define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call)
#define EPL_OBD_END_INDEX(ind) #define EPL_OBD_END_INDEX(ind)
#define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) #define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def)
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) #define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def)
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) #define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name)
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) #define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val)
#define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) #define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high)
#define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) #define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val)
#define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) #define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size)
#define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name)
#define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) #define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name)
#define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) #define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val)
#define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) #define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high)
#define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name)
//------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------
#elif defined (EPL_OBD_CREATE_INIT_SUBINDEX) #elif defined (EPL_OBD_CREATE_INIT_SUBINDEX)
// #pragma message ("EPL_OBD_CREATE_INIT_SUBINDEX") // #pragma message ("EPL_OBD_CREATE_INIT_SUBINDEX")
#define EPL_OBD_BEGIN() #define EPL_OBD_BEGIN()
#define EPL_OBD_END() #define EPL_OBD_END()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_PART_GENERIC() #define EPL_OBD_BEGIN_PART_GENERIC()
#define EPL_OBD_BEGIN_PART_MANUFACTURER() #define EPL_OBD_BEGIN_PART_MANUFACTURER()
#define EPL_OBD_BEGIN_PART_DEVICE() #define EPL_OBD_BEGIN_PART_DEVICE()
#define EPL_OBD_END_PART() #define EPL_OBD_END_PART()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) //CCM_SUBINDEX_RAM_ONLY (EPL_MEMCPY (&aObdSubEntry##ind##Ram_g[0],&aObdSubEntry##ind##Rom_g[0],sizeof(aObdSubEntry##ind##Ram_g))); #define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) //CCM_SUBINDEX_RAM_ONLY (EPL_MEMCPY (&aObdSubEntry##ind##Ram_g[0],&aObdSubEntry##ind##Rom_g[0],sizeof(aObdSubEntry##ind##Ram_g)));
#define EPL_OBD_END_INDEX(ind) #define EPL_OBD_END_INDEX(ind)
#define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) //EPL_MEMCPY (&aObdSubEntry##ind##Ram_g[0],&aObdSubEntry##ind##Rom_g[0],sizeof(aObdSubEntry##ind##Ram_g)); #define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) //EPL_MEMCPY (&aObdSubEntry##ind##Ram_g[0],&aObdSubEntry##ind##Rom_g[0],sizeof(aObdSubEntry##ind##Ram_g));
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) //EPL_MEMCPY (&aObdSubEntry##ind##Ram_g[0],&aObdSubEntry##ind##Rom_g[0],sizeof(aObdSubEntry##ind##Ram_g)); #define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) //EPL_MEMCPY (&aObdSubEntry##ind##Ram_g[0],&aObdSubEntry##ind##Rom_g[0],sizeof(aObdSubEntry##ind##Ram_g));
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) //EPL_MEMCPY (&aObdSubEntry##ind##Ram_g[0],&aObdSubEntry##ind##Rom_g[0],sizeof(aObdSubEntry##ind##Ram_g)); #define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) //EPL_MEMCPY (&aObdSubEntry##ind##Ram_g[0],&aObdSubEntry##ind##Rom_g[0],sizeof(aObdSubEntry##ind##Ram_g));
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) #define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val)
#define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) #define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high)
#define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val) #define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,size,val)
#define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) #define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size)
#define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name)
#define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) #define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name)
#define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) #define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val)
#define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) #define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high)
#define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name)
//------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------
#else #else
// #pragma message ("ELSE OF DEFINE") // #pragma message ("ELSE OF DEFINE")
#define EPL_OBD_BEGIN() #define EPL_OBD_BEGIN()
#define EPL_OBD_END() #define EPL_OBD_END()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_PART_GENERIC() #define EPL_OBD_BEGIN_PART_GENERIC()
#define EPL_OBD_BEGIN_PART_MANUFACTURER() #define EPL_OBD_BEGIN_PART_MANUFACTURER()
#define EPL_OBD_BEGIN_PART_DEVICE() #define EPL_OBD_BEGIN_PART_DEVICE()
#define EPL_OBD_END_PART() #define EPL_OBD_END_PART()
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call) #define EPL_OBD_BEGIN_INDEX_RAM(ind,cnt,call)
#define EPL_OBD_END_INDEX(ind) #define EPL_OBD_END_INDEX(ind)
#define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def) #define EPL_OBD_RAM_INDEX_RAM_ARRAY(ind,cnt,call,typ,acc,dtyp,name,def)
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def) #define EPL_OBD_RAM_INDEX_RAM_VARARRAY(ind,cnt,call,typ,acc,dtyp,name,def)
#define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name) #define EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT(ind,cnt,call,typ,acc,dtyp,name)
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val) #define EPL_OBD_SUBINDEX_RAM_VAR(ind,sub,typ,acc,dtyp,name,val)
#define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high) #define EPL_OBD_SUBINDEX_RAM_VAR_RG(ind,sub,typ,acc,dtyp,name,val,low,high)
#define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,sizes,val) #define EPL_OBD_SUBINDEX_RAM_VSTRING(ind,sub,acc,name,sizes,val)
#define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size) #define EPL_OBD_SUBINDEX_RAM_OSTRING(ind,sub,acc,name,size)
#define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_VAR_NOINIT(ind,sub,typ,acc,dtyp,name)
#define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name) #define EPL_OBD_SUBINDEX_RAM_DOMAIN(ind,sub,acc,name)
#define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val) #define EPL_OBD_SUBINDEX_RAM_USERDEF(ind,sub,typ,acc,dtyp,name,val)
#define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high) #define EPL_OBD_SUBINDEX_RAM_USERDEF_RG(ind,sub,typ,acc,dtyp,name,val,low,high)
#define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name) #define EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT(ind,sub,typ,acc,dtyp,name)
#endif #endif
//------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------
#elif defined (EPL_OBD_UNDEFINE_MACRO) #elif defined (EPL_OBD_UNDEFINE_MACRO)
// #pragma message ("EPL_OBD_UNDEFINE_MACRO") // #pragma message ("EPL_OBD_UNDEFINE_MACRO")
#undef EPL_OBD_BEGIN #undef EPL_OBD_BEGIN
#undef EPL_OBD_END #undef EPL_OBD_END
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#undef EPL_OBD_BEGIN_PART_GENERIC #undef EPL_OBD_BEGIN_PART_GENERIC
#undef EPL_OBD_BEGIN_PART_MANUFACTURER #undef EPL_OBD_BEGIN_PART_MANUFACTURER
#undef EPL_OBD_BEGIN_PART_DEVICE #undef EPL_OBD_BEGIN_PART_DEVICE
#undef EPL_OBD_END_PART #undef EPL_OBD_END_PART
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#undef EPL_OBD_BEGIN_INDEX_RAM #undef EPL_OBD_BEGIN_INDEX_RAM
#undef EPL_OBD_END_INDEX #undef EPL_OBD_END_INDEX
#undef EPL_OBD_RAM_INDEX_RAM_ARRAY #undef EPL_OBD_RAM_INDEX_RAM_ARRAY
#undef EPL_OBD_RAM_INDEX_RAM_VARARRAY #undef EPL_OBD_RAM_INDEX_RAM_VARARRAY
#undef EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT #undef EPL_OBD_RAM_INDEX_RAM_VARARRAY_NOINIT
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
#undef EPL_OBD_SUBINDEX_RAM_VAR #undef EPL_OBD_SUBINDEX_RAM_VAR
#undef EPL_OBD_SUBINDEX_RAM_VAR_RG #undef EPL_OBD_SUBINDEX_RAM_VAR_RG
#undef EPL_OBD_SUBINDEX_RAM_VSTRING #undef EPL_OBD_SUBINDEX_RAM_VSTRING
#undef EPL_OBD_SUBINDEX_RAM_OSTRING #undef EPL_OBD_SUBINDEX_RAM_OSTRING
#undef EPL_OBD_SUBINDEX_RAM_VAR_NOINIT #undef EPL_OBD_SUBINDEX_RAM_VAR_NOINIT
#undef EPL_OBD_SUBINDEX_RAM_DOMAIN #undef EPL_OBD_SUBINDEX_RAM_DOMAIN
#undef EPL_OBD_SUBINDEX_RAM_USERDEF #undef EPL_OBD_SUBINDEX_RAM_USERDEF
#undef EPL_OBD_SUBINDEX_RAM_USERDEF_RG #undef EPL_OBD_SUBINDEX_RAM_USERDEF_RG
#undef EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT #undef EPL_OBD_SUBINDEX_RAM_USERDEF_NOINIT
#else #else
#error "nothing defined" #error "nothing defined"
#endif #endif
...@@ -71,48 +71,43 @@ ...@@ -71,48 +71,43 @@
#ifndef _EPLOBJDEF_H_ #ifndef _EPLOBJDEF_H_
#define _EPLOBJDEF_H_ #define _EPLOBJDEF_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// security checks // security checks
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// macros to help building OD // macros to help building OD
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#if (defined (EPL_OBD_USE_VARIABLE_SUBINDEX_TAB) && (EPL_OBD_USE_VARIABLE_SUBINDEX_TAB != FALSE)) #if (defined (EPL_OBD_USE_VARIABLE_SUBINDEX_TAB) && (EPL_OBD_USE_VARIABLE_SUBINDEX_TAB != FALSE))
#define CCM_SUBINDEX_RAM_ONLY(a) a; #define CCM_SUBINDEX_RAM_ONLY(a) a;
#define CCM_SUBINDEX_RAM_ONEOF(a,b) a #define CCM_SUBINDEX_RAM_ONEOF(a,b) a
#else #else
#define CCM_SUBINDEX_RAM_ONLY(a) #define CCM_SUBINDEX_RAM_ONLY(a)
#define CCM_SUBINDEX_RAM_ONEOF(a,b) b #define CCM_SUBINDEX_RAM_ONEOF(a,b) b
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// To prevent unused memory in subindex tables we need this macro. // To prevent unused memory in subindex tables we need this macro.
// But not all compilers support to preset the last struct value followed by a comma. // But not all compilers support to preset the last struct value followed by a comma.
// Compilers which does not support a comma after last struct value has to place in a dummy subindex. // Compilers which does not support a comma after last struct value has to place in a dummy subindex.
#if ((DEV_SYSTEM & _DEV_COMMA_EXT_) != 0) #if ((DEV_SYSTEM & _DEV_COMMA_EXT_) != 0)
#define EPL_OBD_END_SUBINDEX() #define EPL_OBD_END_SUBINDEX()
#define EPL_OBD_MAX_ARRAY_SUBENTRIES 2 #define EPL_OBD_MAX_ARRAY_SUBENTRIES 2
#else #else
#define EPL_OBD_END_SUBINDEX() {0,0,0,NULL,NULL} #define EPL_OBD_END_SUBINDEX() {0,0,0,NULL,NULL}
#define EPL_OBD_MAX_ARRAY_SUBENTRIES 3 #define EPL_OBD_MAX_ARRAY_SUBENTRIES 3
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// globale vars // globale vars
...@@ -123,37 +118,33 @@ ...@@ -123,37 +118,33 @@
// creation of data in ROM memory // creation of data in ROM memory
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
#define EPL_OBD_CREATE_ROM_DATA #define EPL_OBD_CREATE_ROM_DATA
#include "objdict.h" #include "objdict.h"
#undef EPL_OBD_CREATE_ROM_DATA #undef EPL_OBD_CREATE_ROM_DATA
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// creation of data in RAM memory // creation of data in RAM memory
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
#define EPL_OBD_CREATE_RAM_DATA #define EPL_OBD_CREATE_RAM_DATA
#include "objdict.h" #include "objdict.h"
#undef EPL_OBD_CREATE_RAM_DATA #undef EPL_OBD_CREATE_RAM_DATA
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// creation of subindex tables in ROM and RAM // creation of subindex tables in ROM and RAM
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
#define EPL_OBD_CREATE_SUBINDEX_TAB #define EPL_OBD_CREATE_SUBINDEX_TAB
#include "objdict.h" #include "objdict.h"
#undef EPL_OBD_CREATE_SUBINDEX_TAB #undef EPL_OBD_CREATE_SUBINDEX_TAB
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// creation of index tables for generic, manufacturer and device part // creation of index tables for generic, manufacturer and device part
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
#define EPL_OBD_CREATE_INDEX_TAB #define EPL_OBD_CREATE_INDEX_TAB
#include "objdict.h" #include "objdict.h"
#undef EPL_OBD_CREATE_INDEX_TAB #undef EPL_OBD_CREATE_INDEX_TAB
//=========================================================================// //=========================================================================//
// // // //
// P U B L I C F U N C T I O N S // // P U B L I C F U N C T I O N S //
...@@ -174,47 +165,44 @@ ...@@ -174,47 +165,44 @@
// //
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
EPLDLLEXPORT tEplKernel PUBLIC EPL_OBD_INIT_RAM_NAME (tEplObdInitParam MEM* pInitParam_p) EPLDLLEXPORT tEplKernel PUBLIC EPL_OBD_INIT_RAM_NAME(tEplObdInitParam MEM *
pInitParam_p)
{ {
tEplObdInitParam MEM* pInitParam = pInitParam_p; tEplObdInitParam MEM *pInitParam = pInitParam_p;
// check if pointer to parameter structure is valid // check if pointer to parameter structure is valid
// if not then only copy subindex tables below // if not then only copy subindex tables below
if (pInitParam != NULL) if (pInitParam != NULL) {
{
// at first delete all parameters (all pointers will be set zu NULL) // at first delete all parameters (all pointers will be set zu NULL)
EPL_MEMSET (pInitParam, 0, sizeof (tEplObdInitParam)); EPL_MEMSET(pInitParam, 0, sizeof(tEplObdInitParam));
#define EPL_OBD_CREATE_INIT_FUNCTION #define EPL_OBD_CREATE_INIT_FUNCTION
{ {
// inserts code to init pointer to index tables // inserts code to init pointer to index tables
#include "objdict.h" #include "objdict.h"
} }
#undef EPL_OBD_CREATE_INIT_FUNCTION #undef EPL_OBD_CREATE_INIT_FUNCTION
#if (defined (EPL_OBD_USER_OD) && (EPL_OBD_USER_OD != FALSE)) #if (defined (EPL_OBD_USER_OD) && (EPL_OBD_USER_OD != FALSE))
{ {
// to begin no user OD is defined // to begin no user OD is defined
pInitParam_p->m_pUserPart = NULL; pInitParam_p->m_pUserPart = NULL;
} }
#endif #endif
} }
#define EPL_OBD_CREATE_INIT_SUBINDEX
#define EPL_OBD_CREATE_INIT_SUBINDEX
{ {
// inserts code to copy subindex tables // inserts code to copy subindex tables
#include "objdict.h" #include "objdict.h"
} }
#undef EPL_OBD_CREATE_INIT_SUBINDEX #undef EPL_OBD_CREATE_INIT_SUBINDEX
return kEplSuccessful; return kEplSuccessful;
} }
#endif // _EPLOBJDEF_H_ #endif // _EPLOBJDEF_H_
// Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler // Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler
// damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder). // damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder).
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/05/22 d.k.: start of the implementation, version 1.00 2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPL_PDO_H_ #ifndef _EPL_PDO_H_
...@@ -85,22 +84,19 @@ ...@@ -85,22 +84,19 @@
// NodeId for PRes TPDO // NodeId for PRes TPDO
#define EPL_PDO_PRES_NODE_ID 0x00 #define EPL_PDO_PRES_NODE_ID 0x00
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef struct typedef struct {
{ void *m_pVar;
void* m_pVar;
WORD m_wOffset; // in Bits WORD m_wOffset; // in Bits
WORD m_wSize; // in Bits WORD m_wSize; // in Bits
BOOL m_fNumeric; // numeric value -> use AMI functions BOOL m_fNumeric; // numeric value -> use AMI functions
} tEplPdoMapping; } tEplPdoMapping;
typedef struct typedef struct {
{
unsigned int m_uiSizeOfStruct; unsigned int m_uiSizeOfStruct;
unsigned int m_uiPdoId; unsigned int m_uiPdoId;
unsigned int m_uiNodeId; unsigned int m_uiNodeId;
...@@ -114,13 +110,8 @@ typedef struct ...@@ -114,13 +110,8 @@ typedef struct
} tEplPdoParam; } tEplPdoParam;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPL_PDO_H_ #endif // #ifndef _EPL_PDO_H_
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/06/26 k.t.: start of the implementation 2006/06/26 k.t.: start of the implementation
****************************************************************************/ ****************************************************************************/
#include "EplInc.h" #include "EplInc.h"
...@@ -76,7 +75,6 @@ ...@@ -76,7 +75,6 @@
#ifndef _EPLSDO_H_ #ifndef _EPLSDO_H_
#define _EPLSDO_H_ #define _EPLSDO_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -118,9 +116,9 @@ typedef unsigned int tEplSdoConHdl; ...@@ -118,9 +116,9 @@ typedef unsigned int tEplSdoConHdl;
// callback function pointer for Protocol Abstraction Layer to call // callback function pointer for Protocol Abstraction Layer to call
// asynchronuus SDO Sequence Layer // asynchronuus SDO Sequence Layer
typedef tEplKernel (PUBLIC* tEplSequLayerReceiveCb ) ( typedef tEplKernel(PUBLIC * tEplSequLayerReceiveCb) (tEplSdoConHdl ConHdl_p,
tEplSdoConHdl ConHdl_p, tEplAsySdoSeq *
tEplAsySdoSeq* pSdoSeqData_p, pSdoSeqData_p,
unsigned int uiDataSize_p); unsigned int uiDataSize_p);
// handle between asynchronuus SDO Sequence Layer and SDO Command layer // handle between asynchronuus SDO Sequence Layer and SDO Command layer
...@@ -128,51 +126,45 @@ typedef unsigned int tEplSdoSeqConHdl; ...@@ -128,51 +126,45 @@ typedef unsigned int tEplSdoSeqConHdl;
// callback function pointer for asynchronuus SDO Sequence Layer to call // callback function pointer for asynchronuus SDO Sequence Layer to call
// SDO Command layer for received data // SDO Command layer for received data
typedef tEplKernel (PUBLIC* tEplSdoComReceiveCb) ( typedef tEplKernel(PUBLIC *
tEplSdoSeqConHdl SdoSeqConHdl_p, tEplSdoComReceiveCb) (tEplSdoSeqConHdl SdoSeqConHdl_p,
tEplAsySdoCom* pAsySdoCom_p, tEplAsySdoCom * pAsySdoCom_p,
unsigned int uiDataSize_p); unsigned int uiDataSize_p);
// status of connection // status of connection
typedef enum typedef enum {
{
kAsySdoConStateConnected = 0x00, kAsySdoConStateConnected = 0x00,
kAsySdoConStateInitError = 0x01, kAsySdoConStateInitError = 0x01,
kAsySdoConStateConClosed = 0x02, kAsySdoConStateConClosed = 0x02,
kAsySdoConStateAckReceived = 0x03, kAsySdoConStateAckReceived = 0x03,
kAsySdoConStateFrameSended = 0x04, kAsySdoConStateFrameSended = 0x04,
kAsySdoConStateTimeout = 0x05 kAsySdoConStateTimeout = 0x05
} tEplAsySdoConState;
}tEplAsySdoConState;
// callback function pointer for asynchronuus SDO Sequence Layer to call // callback function pointer for asynchronuus SDO Sequence Layer to call
// SDO Command layer for connection status // SDO Command layer for connection status
typedef tEplKernel (PUBLIC* tEplSdoComConCb) ( typedef tEplKernel(PUBLIC * tEplSdoComConCb) (tEplSdoSeqConHdl SdoSeqConHdl_p,
tEplSdoSeqConHdl SdoSeqConHdl_p, tEplAsySdoConState
tEplAsySdoConState AsySdoConState_p); AsySdoConState_p);
// handle between SDO Command layer and application // handle between SDO Command layer and application
typedef unsigned int tEplSdoComConHdl; typedef unsigned int tEplSdoComConHdl;
// status of connection // status of connection
typedef enum typedef enum {
{
kEplSdoComTransferNotActive = 0x00, kEplSdoComTransferNotActive = 0x00,
kEplSdoComTransferRunning = 0x01, kEplSdoComTransferRunning = 0x01,
kEplSdoComTransferTxAborted = 0x02, kEplSdoComTransferTxAborted = 0x02,
kEplSdoComTransferRxAborted = 0x03, kEplSdoComTransferRxAborted = 0x03,
kEplSdoComTransferFinished = 0x04, kEplSdoComTransferFinished = 0x04,
kEplSdoComTransferLowerLayerAbort = 0x05 kEplSdoComTransferLowerLayerAbort = 0x05
} tEplSdoComConState; } tEplSdoComConState;
// SDO Services and Command-Ids from DS 1.0.0 p.152 // SDO Services and Command-Ids from DS 1.0.0 p.152
typedef enum typedef enum {
{
kEplSdoServiceNIL = 0x00, kEplSdoServiceNIL = 0x00,
kEplSdoServiceWriteByIndex = 0x01, kEplSdoServiceWriteByIndex = 0x01,
kEplSdoServiceReadByIndex = 0x02 kEplSdoServiceReadByIndex = 0x02
//-------------------------------- //--------------------------------
// the following services are optional and // the following services are optional and
// not supported now // not supported now
...@@ -196,35 +188,26 @@ typedef enum ...@@ -196,35 +188,26 @@ typedef enum
} tEplSdoServiceType; } tEplSdoServiceType;
// describes if read or write access // describes if read or write access
typedef enum typedef enum {
{
kEplSdoAccessTypeRead = 0x00, kEplSdoAccessTypeRead = 0x00,
kEplSdoAccessTypeWrite = 0x01 kEplSdoAccessTypeWrite = 0x01
} tEplSdoAccessType; } tEplSdoAccessType;
typedef enum typedef enum {
{
kEplSdoTypeAuto = 0x00, kEplSdoTypeAuto = 0x00,
kEplSdoTypeUdp = 0x01, kEplSdoTypeUdp = 0x01,
kEplSdoTypeAsnd = 0x02, kEplSdoTypeAsnd = 0x02,
kEplSdoTypePdo = 0x03 kEplSdoTypePdo = 0x03
} tEplSdoType;
}tEplSdoType; typedef enum {
typedef enum
{
kEplSdoTransAuto = 0x00, kEplSdoTransAuto = 0x00,
kEplSdoTransExpedited = 0x01, kEplSdoTransExpedited = 0x01,
kEplSdoTransSegmented = 0x02 kEplSdoTransSegmented = 0x02
} tEplSdoTransType; } tEplSdoTransType;
// structure to inform application about finish of SDO transfer // structure to inform application about finish of SDO transfer
typedef struct typedef struct {
{
tEplSdoComConHdl m_SdoComConHdl; tEplSdoComConHdl m_SdoComConHdl;
tEplSdoComConState m_SdoComConState; tEplSdoComConState m_SdoComConState;
DWORD m_dwAbortCode; DWORD m_dwAbortCode;
...@@ -233,39 +216,30 @@ typedef struct ...@@ -233,39 +216,30 @@ typedef struct
unsigned int m_uiTargetIndex; // index which was accessed unsigned int m_uiTargetIndex; // index which was accessed
unsigned int m_uiTargetSubIndex; // subindex which was accessed unsigned int m_uiTargetSubIndex; // subindex which was accessed
unsigned int m_uiTransferredByte; // number of bytes transferred unsigned int m_uiTransferredByte; // number of bytes transferred
void* m_pUserArg; // user definable argument pointer void *m_pUserArg; // user definable argument pointer
} tEplSdoComFinished; } tEplSdoComFinished;
// callback function pointer to inform application about connection // callback function pointer to inform application about connection
typedef tEplKernel (PUBLIC* tEplSdoFinishedCb) ( typedef tEplKernel(PUBLIC * tEplSdoFinishedCb) (tEplSdoComFinished *
tEplSdoComFinished* pSdoComFinished_p); pSdoComFinished_p);
// structure to init SDO transfer to Read or Write by Index // structure to init SDO transfer to Read or Write by Index
typedef struct typedef struct {
{
tEplSdoComConHdl m_SdoComConHdl; tEplSdoComConHdl m_SdoComConHdl;
unsigned int m_uiIndex; unsigned int m_uiIndex;
unsigned int m_uiSubindex; unsigned int m_uiSubindex;
void* m_pData; void *m_pData;
unsigned int m_uiDataSize; unsigned int m_uiDataSize;
unsigned int m_uiTimeout; // not used in this version unsigned int m_uiTimeout; // not used in this version
tEplSdoAccessType m_SdoAccessType; tEplSdoAccessType m_SdoAccessType;
tEplSdoFinishedCb m_pfnSdoFinishedCb; tEplSdoFinishedCb m_pfnSdoFinishedCb;
void* m_pUserArg; // user definable argument pointer void *m_pUserArg; // user definable argument pointer
} tEplSdoComTransParamByIndex; } tEplSdoComTransParamByIndex;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPLSDO_H_ #endif // #ifndef _EPLSDO_H_
...@@ -71,7 +71,6 @@ ...@@ -71,7 +71,6 @@
#ifndef _EPLSDOAC_H_ #ifndef _EPLSDOAC_H_
#define _EPLSDOAC_H_ #define _EPLSDOAC_H_
// ========================================================================= // =========================================================================
// SDO abort codes // SDO abort codes
// ========================================================================= // =========================================================================
...@@ -106,7 +105,6 @@ ...@@ -106,7 +105,6 @@
#define EPL_SDOAC_OBJECT_DICTIONARY_NOT_EXIST 0x08000023L #define EPL_SDOAC_OBJECT_DICTIONARY_NOT_EXIST 0x08000023L
#define EPL_SDOAC_CONFIG_DATA_EMPTY 0x08000024L #define EPL_SDOAC_CONFIG_DATA_EMPTY 0x08000024L
#endif // _EPLSDOAC_H_ #endif // _EPLSDOAC_H_
// Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler // Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler
......
...@@ -66,13 +66,11 @@ ...@@ -66,13 +66,11 @@
2005/12/05 -as: start of the implementation, version 1.00 2005/12/05 -as: start of the implementation, version 1.00
****************************************************************************/ ****************************************************************************/
#ifndef _EPLTARGET_H_ #ifndef _EPLTARGET_H_
#define _EPLTARGET_H_ #define _EPLTARGET_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -87,126 +85,122 @@ ...@@ -87,126 +85,122 @@
#if (TARGET_SYSTEM == _WIN32_) #if (TARGET_SYSTEM == _WIN32_)
#define _WIN32_WINDOWS 0x0401 #define _WIN32_WINDOWS 0x0401
#define _WIN32_WINNT 0x0400 #define _WIN32_WINNT 0x0400
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
//29.11.2004 f.j. sonst ist memcpy und memset unbekannt //29.11.2004 f.j. sonst ist memcpy und memset unbekannt
#include <string.h> #include <string.h>
#define EPL_MEMCPY(dst,src,siz) memcpy((void*)(dst),(const void*)(src),(size_t)(siz)); #define EPL_MEMCPY(dst,src,siz) memcpy((void*)(dst),(const void*)(src),(size_t)(siz));
#define EPL_MEMSET(dst,val,siz) memset((void*)(dst),(int)(val),(size_t)(siz)); #define EPL_MEMSET(dst,val,siz) memset((void*)(dst),(int)(val),(size_t)(siz));
// f.j.: die Funktionen fr <MemAlloc> und <MemFree> sind in WinMem.c definiert // f.j.: die Funktionen fr <MemAlloc> und <MemFree> sind in WinMem.c definiert
//definition der Prototypen //definition der Prototypen
void FAR* MemAlloc (DWORD dwMemSize_p); void FAR *MemAlloc(DWORD dwMemSize_p);
void MemFree (void FAR* pMem_p); void MemFree(void FAR * pMem_p);
#define EPL_MALLOC(siz) malloc((size_t)(siz)) #define EPL_MALLOC(siz) malloc((size_t)(siz))
#define EPL_FREE(ptr) free((void *)ptr) #define EPL_FREE(ptr) free((void *)ptr)
#ifndef PRINTF0 #ifndef PRINTF0
void trace (const char* fmt, ...); void trace(const char *fmt, ...);
#define PRINTF TRACE #define PRINTF TRACE
#define PRINTF0(arg) TRACE0(arg) #define PRINTF0(arg) TRACE0(arg)
#define PRINTF1(arg,p1) TRACE1(arg,p1) #define PRINTF1(arg,p1) TRACE1(arg,p1)
#define PRINTF2(arg,p1,p2) TRACE2(arg,p1,p2) #define PRINTF2(arg,p1,p2) TRACE2(arg,p1,p2)
#define PRINTF3(arg,p1,p2,p3) TRACE3(arg,p1,p2,p3) #define PRINTF3(arg,p1,p2,p3) TRACE3(arg,p1,p2,p3)
#define PRINTF4(arg,p1,p2,p3,p4) TRACE4(arg,p1,p2,p3,p4) #define PRINTF4(arg,p1,p2,p3,p4) TRACE4(arg,p1,p2,p3,p4)
//#define PRINTF printf //#define PRINTF printf
//#define PRINTF0(arg) PRINTF(arg) //#define PRINTF0(arg) PRINTF(arg)
//#define PRINTF1(arg,p1) PRINTF(arg,p1) //#define PRINTF1(arg,p1) PRINTF(arg,p1)
//#define PRINTF2(arg,p1,p2) PRINTF(arg,p1,p2) //#define PRINTF2(arg,p1,p2) PRINTF(arg,p1,p2)
//#define PRINTF3(arg,p1,p2,p3) PRINTF(arg,p1,p2,p3) //#define PRINTF3(arg,p1,p2,p3) PRINTF(arg,p1,p2,p3)
//#define PRINTF4(arg,p1,p2,p3,p4) PRINTF(arg,p1,p2,p3,p4) //#define PRINTF4(arg,p1,p2,p3,p4) PRINTF(arg,p1,p2,p3,p4)
#endif #endif
#ifdef ASSERTMSG #ifdef ASSERTMSG
#undef ASSERTMSG #undef ASSERTMSG
#endif #endif
#define ASSERTMSG(expr,string) if (!(expr)) { \ #define ASSERTMSG(expr,string) if (!(expr)) { \
MessageBox (NULL, string, "Assertion failed", MB_OK | MB_ICONERROR); \ MessageBox (NULL, string, "Assertion failed", MB_OK | MB_ICONERROR); \
exit (-1);} exit (-1);}
#elif (TARGET_SYSTEM == _NO_OS_) #elif (TARGET_SYSTEM == _NO_OS_)
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
//29.11.2004 f.j. sonst ist memcpy und memset unbekannt //29.11.2004 f.j. sonst ist memcpy und memset unbekannt
// #include <string.h> // #include <string.h>
#define EPL_MEMCPY(dst,src,siz) memcpy((void*)(dst),(const void*)(src),(size_t)(siz)); #define EPL_MEMCPY(dst,src,siz) memcpy((void*)(dst),(const void*)(src),(size_t)(siz));
#define EPL_MEMSET(dst,val,siz) memset((void*)(dst),(int)(val),(size_t)(siz)); #define EPL_MEMSET(dst,val,siz) memset((void*)(dst),(int)(val),(size_t)(siz));
#define EPL_MALLOC(siz) malloc((size_t)(siz)) #define EPL_MALLOC(siz) malloc((size_t)(siz))
#define EPL_FREE(ptr) free((void *)ptr) #define EPL_FREE(ptr) free((void *)ptr)
#ifndef PRINTF0 #ifndef PRINTF0
#define PRINTF TRACE #define PRINTF TRACE
#define PRINTF0(arg) TRACE0(arg) #define PRINTF0(arg) TRACE0(arg)
#define PRINTF1(arg,p1) TRACE1(arg,p1) #define PRINTF1(arg,p1) TRACE1(arg,p1)
#define PRINTF2(arg,p1,p2) TRACE2(arg,p1,p2) #define PRINTF2(arg,p1,p2) TRACE2(arg,p1,p2)
#define PRINTF3(arg,p1,p2,p3) TRACE3(arg,p1,p2,p3) #define PRINTF3(arg,p1,p2,p3) TRACE3(arg,p1,p2,p3)
#define PRINTF4(arg,p1,p2,p3,p4) TRACE4(arg,p1,p2,p3,p4) #define PRINTF4(arg,p1,p2,p3,p4) TRACE4(arg,p1,p2,p3,p4)
//#define PRINTF printf //#define PRINTF printf
//#define PRINTF0(arg) PRINTF(arg) //#define PRINTF0(arg) PRINTF(arg)
//#define PRINTF1(arg,p1) PRINTF(arg,p1) //#define PRINTF1(arg,p1) PRINTF(arg,p1)
//#define PRINTF2(arg,p1,p2) PRINTF(arg,p1,p2) //#define PRINTF2(arg,p1,p2) PRINTF(arg,p1,p2)
//#define PRINTF3(arg,p1,p2,p3) PRINTF(arg,p1,p2,p3) //#define PRINTF3(arg,p1,p2,p3) PRINTF(arg,p1,p2,p3)
//#define PRINTF4(arg,p1,p2,p3,p4) PRINTF(arg,p1,p2,p3,p4) //#define PRINTF4(arg,p1,p2,p3,p4) PRINTF(arg,p1,p2,p3,p4)
#endif #endif
#elif (TARGET_SYSTEM == _LINUX_) #elif (TARGET_SYSTEM == _LINUX_)
#ifndef __KERNEL__ #ifndef __KERNEL__
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#else #else
// #include <linux/config.h> // #include <linux/config.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/major.h> #include <linux/major.h>
#include <linux/version.h> #include <linux/version.h>
#endif #endif
//29.11.2004 f.j. sonst ist memcpy und memset unbekannt //29.11.2004 f.j. sonst ist memcpy und memset unbekannt
// #include <string.h> // #include <string.h>
#define EPL_MEMCPY(dst,src,siz) memcpy((void*)(dst),(const void*)(src),(size_t)(siz)); #define EPL_MEMCPY(dst,src,siz) memcpy((void*)(dst),(const void*)(src),(size_t)(siz));
#define EPL_MEMSET(dst,val,siz) memset((void*)(dst),(int)(val),(size_t)(siz)); #define EPL_MEMSET(dst,val,siz) memset((void*)(dst),(int)(val),(size_t)(siz));
#ifndef __KERNEL__ #ifndef __KERNEL__
#define EPL_MALLOC(siz) malloc((size_t)(siz)) #define EPL_MALLOC(siz) malloc((size_t)(siz))
#define EPL_FREE(ptr) free((void *)ptr) #define EPL_FREE(ptr) free((void *)ptr)
#else #else
#define EPL_MALLOC(siz) kmalloc((size_t)(siz), GFP_KERNEL) #define EPL_MALLOC(siz) kmalloc((size_t)(siz), GFP_KERNEL)
#define EPL_FREE(ptr) kfree((void *)ptr) #define EPL_FREE(ptr) kfree((void *)ptr)
#endif #endif
#ifndef PRINTF0 #ifndef PRINTF0
#define PRINTF TRACE #define PRINTF TRACE
#define PRINTF0(arg) TRACE0(arg) #define PRINTF0(arg) TRACE0(arg)
#define PRINTF1(arg,p1) TRACE1(arg,p1) #define PRINTF1(arg,p1) TRACE1(arg,p1)
#define PRINTF2(arg,p1,p2) TRACE2(arg,p1,p2) #define PRINTF2(arg,p1,p2) TRACE2(arg,p1,p2)
#define PRINTF3(arg,p1,p2,p3) TRACE3(arg,p1,p2,p3) #define PRINTF3(arg,p1,p2,p3) TRACE3(arg,p1,p2,p3)
#define PRINTF4(arg,p1,p2,p3,p4) TRACE4(arg,p1,p2,p3,p4) #define PRINTF4(arg,p1,p2,p3,p4) TRACE4(arg,p1,p2,p3,p4)
//#define PRINTF printf //#define PRINTF printf
//#define PRINTF0(arg) PRINTF(arg) //#define PRINTF0(arg) PRINTF(arg)
//#define PRINTF1(arg,p1) PRINTF(arg,p1) //#define PRINTF1(arg,p1) PRINTF(arg,p1)
//#define PRINTF2(arg,p1,p2) PRINTF(arg,p1,p2) //#define PRINTF2(arg,p1,p2) PRINTF(arg,p1,p2)
//#define PRINTF3(arg,p1,p2,p3) PRINTF(arg,p1,p2,p3) //#define PRINTF3(arg,p1,p2,p3) PRINTF(arg,p1,p2,p3)
//#define PRINTF4(arg,p1,p2,p3,p4) PRINTF(arg,p1,p2,p3,p4) //#define PRINTF4(arg,p1,p2,p3,p4) PRINTF(arg,p1,p2,p3,p4)
#endif #endif
#endif #endif
...@@ -217,7 +211,6 @@ ...@@ -217,7 +211,6 @@
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -232,9 +225,9 @@ ...@@ -232,9 +225,9 @@
tEplKernel PUBLIC TgtInitEthIsr(void); tEplKernel PUBLIC TgtInitEthIsr(void);
void PUBLIC TgtFreeEthIsr(void); void PUBLIC TgtFreeEthIsr(void);
void PUBLIC TgtEnableGlobalInterrupt(BYTE fEnable_p); void PUBLIC TgtEnableGlobalInterrupt(BYTE fEnable_p);
void PUBLIC TgtEnableEthInterrupt0(BYTE fEnable_p, unsigned int uiInterruptMask_p); void PUBLIC TgtEnableEthInterrupt0(BYTE fEnable_p,
void PUBLIC TgtEnableEthInterrupt1(BYTE fEnable_p, unsigned int uiInterruptMask_p); unsigned int uiInterruptMask_p);
void PUBLIC TgtEnableEthInterrupt1(BYTE fEnable_p,
unsigned int uiInterruptMask_p);
#endif // #ifndef _EPLTARGET_H_ #endif // #ifndef _EPLTARGET_H_
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
2006/07/06 k.t.: start of the implementation 2006/07/06 k.t.: start of the implementation
****************************************************************************/ ****************************************************************************/
#include "EplInc.h" #include "EplInc.h"
...@@ -75,12 +74,10 @@ ...@@ -75,12 +74,10 @@
#ifndef _EPLTIMER_H_ #ifndef _EPLTIMER_H_
#define _EPLTIMER_H_ #define _EPLTIMER_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -88,8 +85,7 @@ ...@@ -88,8 +85,7 @@
// type for timer handle // type for timer handle
typedef unsigned long tEplTimerHdl; typedef unsigned long tEplTimerHdl;
typedef struct typedef struct {
{
tEplEventSink m_EventSink; tEplEventSink m_EventSink;
unsigned long m_ulArg; // d.k.: converted to unsigned long because unsigned long m_ulArg; // d.k.: converted to unsigned long because
// it is never accessed as a pointer by the // it is never accessed as a pointer by the
...@@ -101,8 +97,7 @@ typedef struct ...@@ -101,8 +97,7 @@ typedef struct
} tEplTimerArg; } tEplTimerArg;
typedef struct typedef struct {
{
tEplTimerHdl m_TimerHdl; tEplTimerHdl m_TimerHdl;
unsigned long m_ulArg; // d.k.: converted to unsigned long because unsigned long m_ulArg; // d.k.: converted to unsigned long because
// it is never accessed as a pointer by the // it is never accessed as a pointer by the
...@@ -112,14 +107,11 @@ typedef struct ...@@ -112,14 +107,11 @@ typedef struct
} tEplTimerEventArg; } tEplTimerEventArg;
typedef tEplKernel (PUBLIC * tEplTimerkCallback) ( typedef tEplKernel(PUBLIC * tEplTimerkCallback) (tEplTimerEventArg *
tEplTimerEventArg* pEventArg_p); pEventArg_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _EPLTIMER_H_ #endif // #ifndef _EPLTIMER_H_
...@@ -70,7 +70,6 @@ ...@@ -70,7 +70,6 @@
#ifndef _EPL_VERSION_H_ #ifndef _EPL_VERSION_H_
#define _EPL_VERSION_H_ #define _EPL_VERSION_H_
// NOTE: // NOTE:
// All version macros should contain the same version number. But do not use // All version macros should contain the same version number. But do not use
// defines instead of the numbers. Because the macro EPL_STRING_VERSION() can not // defines instead of the numbers. Because the macro EPL_STRING_VERSION() can not
...@@ -85,14 +84,13 @@ ...@@ -85,14 +84,13 @@
#define DEFINED_OBJ1018_VERSION EPL_OBJ1018_VERSION (1, 3, 0) #define DEFINED_OBJ1018_VERSION EPL_OBJ1018_VERSION (1, 3, 0)
#define DEFINED_STRING_VERSION EPL_STRING_VERSION (1, 3, 0) #define DEFINED_STRING_VERSION EPL_STRING_VERSION (1, 3, 0)
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
#define EPL_PRODUCT_NAME "EPL V2" #define EPL_PRODUCT_NAME "EPL V2"
#define EPL_PRODUCT_VERSION DEFINED_STRING_VERSION #define EPL_PRODUCT_VERSION DEFINED_STRING_VERSION
#define EPL_PRODUCT_MANUFACTURER "SYS TEC electronic GmbH" #define EPL_PRODUCT_MANUFACTURER "SYS TEC electronic GmbH"
#define EPL_PRODUCT_KEY "SO-1083" #define EPL_PRODUCT_KEY "SO-1083"
#define EPL_PRODUCT_DESCRIPTION "openPOWERLINK Protocol Stack Source" #define EPL_PRODUCT_DESCRIPTION "openPOWERLINK Protocol Stack Source"
#endif // _EPL_VERSION_H_ #endif // _EPL_VERSION_H_
......
...@@ -57,14 +57,11 @@ ...@@ -57,14 +57,11 @@
#ifndef _SHAREDBUFF_H_ #ifndef _SHAREDBUFF_H_
#define _SHAREDBUFF_H_ #define _SHAREDBUFF_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Type definitions // Type definitions
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef enum typedef enum {
{
kShbOk = 0, kShbOk = 0,
kShbNoReadableData = 1, kShbNoReadableData = 1,
kShbDataTruncated = 2, kShbDataTruncated = 2,
...@@ -83,19 +80,14 @@ typedef enum ...@@ -83,19 +80,14 @@ typedef enum
} tShbError; } tShbError;
// 2006/08/24 d.k.: Priority for threads (new data, job signaling) // 2006/08/24 d.k.: Priority for threads (new data, job signaling)
typedef enum typedef enum {
{
kShbPriorityLow = 0, kShbPriorityLow = 0,
kShbPriorityNormal = 1, kShbPriorityNormal = 1,
kshbPriorityHigh = 2 kshbPriorityHigh = 2
} tShbPriority; } tShbPriority;
typedef struct {
typedef struct
{
unsigned int m_uiFullBlockSize; // real size of allocated block (incl. alignment fill bytes) unsigned int m_uiFullBlockSize; // real size of allocated block (incl. alignment fill bytes)
unsigned long m_ulAvailableSize; // still available size for data unsigned long m_ulAvailableSize; // still available size for data
unsigned long m_ulWrIndex; // current write index unsigned long m_ulWrIndex; // current write index
...@@ -103,14 +95,12 @@ typedef struct ...@@ -103,14 +95,12 @@ typedef struct
} tShbCirChunk; } tShbCirChunk;
typedef void *tShbInstance;
typedef void* tShbInstance; typedef void (*tShbCirSigHndlrNewData) (tShbInstance pShbInstance_p,
unsigned long ulDataBlockSize_p);
typedef void (*tShbCirSigHndlrReset) (tShbInstance pShbInstance_p,
typedef void (*tShbCirSigHndlrNewData) (tShbInstance pShbInstance_p, unsigned long ulDataBlockSize_p); unsigned int fTimeOut_p);
typedef void (*tShbCirSigHndlrReset) (tShbInstance pShbInstance_p, unsigned int fTimeOut_p);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Prototypes // Prototypes
...@@ -129,45 +119,79 @@ extern "C" { ...@@ -129,45 +119,79 @@ extern "C" {
#endif #endif
*/ */
tShbError ShbInit (void); tShbError ShbInit(void);
tShbError ShbExit (void); tShbError ShbExit(void);
// Circular Shared Buffer // Circular Shared Buffer
tShbError ShbCirAllocBuffer (unsigned long ulBufferSize_p, const char* pszBufferID_p, tShbInstance* ppShbInstance_p, unsigned int* pfShbNewCreated_p); tShbError ShbCirAllocBuffer(unsigned long ulBufferSize_p,
tShbError ShbCirReleaseBuffer (tShbInstance pShbInstance_p); const char *pszBufferID_p,
tShbInstance * ppShbInstance_p,
unsigned int *pfShbNewCreated_p);
tShbError ShbCirReleaseBuffer(tShbInstance pShbInstance_p);
#if !defined(INLINE_ENABLED) #if !defined(INLINE_ENABLED)
tShbError ShbCirResetBuffer (tShbInstance pShbInstance_p, unsigned long ulTimeOut_p, tShbCirSigHndlrReset pfnSignalHandlerReset_p); tShbError ShbCirResetBuffer(tShbInstance pShbInstance_p,
tShbError ShbCirWriteDataBlock (tShbInstance pShbInstance_p, const void* pSrcDataBlock_p, unsigned long ulDataBlockSize_p); unsigned long ulTimeOut_p,
tShbError ShbCirAllocDataBlock (tShbInstance pShbInstance_p, tShbCirChunk* pShbCirChunk_p, unsigned long ulDataBufferSize_p); tShbCirSigHndlrReset
tShbError ShbCirWriteDataChunk (tShbInstance pShbInstance_p, tShbCirChunk* pShbCirChunk_p, const void* pSrcDataChunk_p, unsigned long ulDataChunkSize_p, unsigned int* pfBufferCompleted_p); pfnSignalHandlerReset_p);
tShbError ShbCirReadDataBlock (tShbInstance pShbInstance_p, void* pDstDataBlock_p, unsigned long ulRdBuffSize_p, unsigned long* pulDataBlockSize_p); tShbError ShbCirWriteDataBlock(tShbInstance pShbInstance_p,
tShbError ShbCirGetReadDataSize (tShbInstance pShbInstance_p, unsigned long* pulDataBlockSize_p); const void *pSrcDataBlock_p,
tShbError ShbCirGetReadBlockCount (tShbInstance pShbInstance_p, unsigned long* pulDataBlockCount_p); unsigned long ulDataBlockSize_p);
tShbError ShbCirSetSignalHandlerNewData (tShbInstance pShbInstance_p, tShbCirSigHndlrNewData pfnShbSignalHandlerNewData_p, tShbPriority ShbPriority_p); tShbError ShbCirAllocDataBlock(tShbInstance pShbInstance_p,
tShbCirChunk * pShbCirChunk_p,
unsigned long ulDataBufferSize_p);
tShbError ShbCirWriteDataChunk(tShbInstance pShbInstance_p,
tShbCirChunk * pShbCirChunk_p,
const void *pSrcDataChunk_p,
unsigned long ulDataChunkSize_p,
unsigned int *pfBufferCompleted_p);
tShbError ShbCirReadDataBlock(tShbInstance pShbInstance_p,
void *pDstDataBlock_p,
unsigned long ulRdBuffSize_p,
unsigned long *pulDataBlockSize_p);
tShbError ShbCirGetReadDataSize(tShbInstance pShbInstance_p,
unsigned long *pulDataBlockSize_p);
tShbError ShbCirGetReadBlockCount(tShbInstance pShbInstance_p,
unsigned long *pulDataBlockCount_p);
tShbError ShbCirSetSignalHandlerNewData(tShbInstance pShbInstance_p,
tShbCirSigHndlrNewData
pfnShbSignalHandlerNewData_p,
tShbPriority ShbPriority_p);
#endif #endif
// Linear Shared Buffer // Linear Shared Buffer
tShbError ShbLinAllocBuffer (unsigned long ulBufferSize_p, const char* pszBufferID_p, tShbInstance* ppShbInstance_p, unsigned int* pfShbNewCreated_p); tShbError ShbLinAllocBuffer(unsigned long ulBufferSize_p,
tShbError ShbLinReleaseBuffer (tShbInstance pShbInstance_p); const char *pszBufferID_p,
tShbInstance * ppShbInstance_p,
unsigned int *pfShbNewCreated_p);
tShbError ShbLinReleaseBuffer(tShbInstance pShbInstance_p);
#if !defined(INLINE_ENABLED) #if !defined(INLINE_ENABLED)
tShbError ShbLinWriteDataBlock (tShbInstance pShbInstance_p, unsigned long ulDstBufferOffs_p, const void* pSrcDataBlock_p, unsigned long ulDataBlockSize_p); tShbError ShbLinWriteDataBlock(tShbInstance pShbInstance_p,
tShbError ShbLinReadDataBlock (tShbInstance pShbInstance_p, void* pDstDataBlock_p, unsigned long ulSrcBufferOffs_p, unsigned long ulDataBlockSize_p); unsigned long ulDstBufferOffs_p,
const void *pSrcDataBlock_p,
unsigned long ulDataBlockSize_p);
tShbError ShbLinReadDataBlock(tShbInstance pShbInstance_p,
void *pDstDataBlock_p,
unsigned long ulSrcBufferOffs_p,
unsigned long ulDataBlockSize_p);
#endif #endif
#ifndef NDEBUG #ifndef NDEBUG
tShbError ShbCirTraceBuffer (tShbInstance pShbInstance_p); tShbError ShbCirTraceBuffer(tShbInstance pShbInstance_p);
tShbError ShbLinTraceBuffer (tShbInstance pShbInstance_p); tShbError ShbLinTraceBuffer(tShbInstance pShbInstance_p);
tShbError ShbTraceDump (const unsigned char* pabStartAddr_p, unsigned long ulDataSize_p, unsigned long ulAddrOffset_p, const char* pszInfoText_p); tShbError ShbTraceDump(const unsigned char *pabStartAddr_p,
unsigned long ulDataSize_p,
unsigned long ulAddrOffset_p,
const char *pszInfoText_p);
#else #else
#define ShbCirTraceBuffer(p0) #define ShbCirTraceBuffer(p0)
#define ShbLinTraceBuffer(p0) #define ShbLinTraceBuffer(p0)
#define ShbTraceDump(p0, p1, p2, p3) #define ShbTraceDump(p0, p1, p2, p3)
#endif #endif
#undef INLINE_ENABLED // disable actual inlining of functions #undef INLINE_ENABLED // disable actual inlining of functions
...@@ -177,7 +201,4 @@ tShbError ShbLinReadDataBlock (tShbInstance pShbInstance_p, void* pDs ...@@ -177,7 +201,4 @@ tShbError ShbLinReadDataBlock (tShbInstance pShbInstance_p, void* pDs
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // #ifndef _SHAREDBUFF_H_ #endif // #ifndef _SHAREDBUFF_H_
...@@ -57,59 +57,65 @@ ...@@ -57,59 +57,65 @@
#ifndef _SHBIPC_H_ #ifndef _SHBIPC_H_
#define _SHBIPC_H_ #define _SHBIPC_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Type definitions // Type definitions
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef int (*tSigHndlrNewData) (tShbInstance pShbInstance_p); typedef int (*tSigHndlrNewData) (tShbInstance pShbInstance_p);
typedef void (*tSigHndlrJobReady) (tShbInstance pShbInstance_p, unsigned int fTimeOut_p); typedef void (*tSigHndlrJobReady) (tShbInstance pShbInstance_p,
unsigned int fTimeOut_p);
#if (TARGET_SYSTEM == _WIN32_) #if (TARGET_SYSTEM == _WIN32_)
#if defined(INLINE_FUNCTION_DEF) #if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION #undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF #define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define SHBIPC_INLINE_ENABLED TRUE #define SHBIPC_INLINE_ENABLED TRUE
#define SHBIPC_INLINED #define SHBIPC_INLINED
#include "ShbIpc-Win32.c" #include "ShbIpc-Win32.c"
#endif #endif
#elif (TARGET_SYSTEM == _LINUX_) #elif (TARGET_SYSTEM == _LINUX_)
#if defined(INLINE_FUNCTION_DEF) #if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION #undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF #define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define SHBIPC_INLINE_ENABLED TRUE #define SHBIPC_INLINE_ENABLED TRUE
#define SHBIPC_INLINED #define SHBIPC_INLINED
#include "ShbIpc-LinuxKernel.c" #include "ShbIpc-LinuxKernel.c"
#endif #endif
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Prototypes // Prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
tShbError ShbIpcInit (void); tShbError ShbIpcInit(void);
tShbError ShbIpcExit (void); tShbError ShbIpcExit(void);
tShbError ShbIpcAllocBuffer (unsigned long ulBufferSize_p, const char* pszBufferID_p, tShbInstance* ppShbInstance_p, unsigned int* pfShbNewCreated_p); tShbError ShbIpcAllocBuffer(unsigned long ulBufferSize_p,
tShbError ShbIpcReleaseBuffer (tShbInstance pShbInstance_p); const char *pszBufferID_p,
tShbInstance * ppShbInstance_p,
unsigned int *pfShbNewCreated_p);
tShbError ShbIpcReleaseBuffer(tShbInstance pShbInstance_p);
#if !defined(SHBIPC_INLINE_ENABLED) #if !defined(SHBIPC_INLINE_ENABLED)
tShbError ShbIpcEnterAtomicSection (tShbInstance pShbInstance_p); tShbError ShbIpcEnterAtomicSection(tShbInstance pShbInstance_p);
tShbError ShbIpcLeaveAtomicSection (tShbInstance pShbInstance_p); tShbError ShbIpcLeaveAtomicSection(tShbInstance pShbInstance_p);
tShbError ShbIpcStartSignalingNewData (tShbInstance pShbInstance_p, tSigHndlrNewData pfnSignalHandlerNewData_p, tShbPriority ShbPriority_p); tShbError ShbIpcStartSignalingNewData(tShbInstance pShbInstance_p,
tShbError ShbIpcStopSignalingNewData (tShbInstance pShbInstance_p); tSigHndlrNewData
tShbError ShbIpcSignalNewData (tShbInstance pShbInstance_p); pfnSignalHandlerNewData_p,
tShbPriority ShbPriority_p);
tShbError ShbIpcStopSignalingNewData(tShbInstance pShbInstance_p);
tShbError ShbIpcSignalNewData(tShbInstance pShbInstance_p);
tShbError ShbIpcStartSignalingJobReady (tShbInstance pShbInstance_p, unsigned long ulTimeOut_p, tSigHndlrJobReady pfnSignalHandlerJobReady_p); tShbError ShbIpcStartSignalingJobReady(tShbInstance pShbInstance_p,
tShbError ShbIpcSignalJobReady (tShbInstance pShbInstance_p); unsigned long ulTimeOut_p,
tSigHndlrJobReady
pfnSignalHandlerJobReady_p);
tShbError ShbIpcSignalJobReady(tShbInstance pShbInstance_p);
void* ShbIpcGetShMemPtr (tShbInstance pShbInstance_p); void *ShbIpcGetShMemPtr(tShbInstance pShbInstance_p);
#endif #endif
#undef SHBIPC_INLINE_ENABLED // disable actual inlining of functions #undef SHBIPC_INLINE_ENABLED // disable actual inlining of functions
...@@ -117,4 +123,3 @@ void* ShbIpcGetShMemPtr (tShbInstance pShbInstance_p); ...@@ -117,4 +123,3 @@ void* ShbIpcGetShMemPtr (tShbInstance pShbInstance_p);
#define INLINE_FUNCTION // define INLINE_FUNCTION to nothing #define INLINE_FUNCTION // define INLINE_FUNCTION to nothing
#endif // #ifndef _SHBIPC_H_ #endif // #ifndef _SHBIPC_H_
...@@ -57,9 +57,9 @@ ...@@ -57,9 +57,9 @@
#ifndef _SHBLINUXKERNEL_H_ #ifndef _SHBLINUXKERNEL_H_
#define _SHBLINUXKERNEL_H_ #define _SHBLINUXKERNEL_H_
struct sShbMemTable{ struct sShbMemTable {
int m_iBufferId; int m_iBufferId;
void* m_pBuffer; void *m_pBuffer;
struct sShbMemTable *m_psNextMemTableElement; struct sShbMemTable *m_psNextMemTableElement;
}; };
......
...@@ -66,17 +66,14 @@ ...@@ -66,17 +66,14 @@
2006/08/25 d.k.: start of the implementation 2006/08/25 d.k.: start of the implementation
****************************************************************************/ ****************************************************************************/
#ifndef _SOCKETLINUXKERNEL_H_ #ifndef _SOCKETLINUXKERNEL_H_
#define _SOCKETLINUXKERNEL_H_ #define _SOCKETLINUXKERNEL_H_
#include <linux/net.h> #include <linux/net.h>
#include <linux/in.h> #include <linux/in.h>
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -87,7 +84,7 @@ ...@@ -87,7 +84,7 @@
// typedef // typedef
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
typedef struct socket* SOCKET; typedef struct socket *SOCKET;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
...@@ -97,12 +94,12 @@ int bind(SOCKET s, const struct sockaddr *addr, int addrlen); ...@@ -97,12 +94,12 @@ int bind(SOCKET s, const struct sockaddr *addr, int addrlen);
int closesocket(SOCKET s); int closesocket(SOCKET s);
int recvfrom(SOCKET s, char* buf, int len, int flags, struct sockaddr *from, int * fromlen); int recvfrom(SOCKET s, char *buf, int len, int flags, struct sockaddr *from,
int *fromlen);
int sendto(SOCKET s, const char* buf, int len, int flags, const struct sockaddr *to, int tolen); int sendto(SOCKET s, const char *buf, int len, int flags,
const struct sockaddr *to, int tolen);
SOCKET socket(int af, int type, int protocol); SOCKET socket(int af, int type, int protocol);
#endif // #ifndef _SOCKETLINUXKERNEL_H_ #endif // #ifndef _SOCKETLINUXKERNEL_H_
...@@ -87,55 +87,45 @@ ...@@ -87,55 +87,45 @@
#define ETH_CRC_SIZE 4 // size of Ethernet CRC, i.e. FCS #define ETH_CRC_SIZE 4 // size of Ethernet CRC, i.e. FCS
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// types // types
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// position of a buffer in an ethernet-frame // position of a buffer in an ethernet-frame
typedef enum typedef enum {
{
kEdrvBufferFirstInFrame = 0x01, // first data buffer in an ethernet frame kEdrvBufferFirstInFrame = 0x01, // first data buffer in an ethernet frame
kEdrvBufferMiddleInFrame = 0x02, // a middle data buffer in an ethernet frame kEdrvBufferMiddleInFrame = 0x02, // a middle data buffer in an ethernet frame
kEdrvBufferLastInFrame = 0x04 // last data buffer in an ethernet frame kEdrvBufferLastInFrame = 0x04 // last data buffer in an ethernet frame
} tEdrvBufferInFrame; } tEdrvBufferInFrame;
// format of a tx-buffer // format of a tx-buffer
typedef struct _tEdrvTxBuffer typedef struct _tEdrvTxBuffer {
{
tEplMsgType m_EplMsgType; // IN: type of EPL message, set by calling function tEplMsgType m_EplMsgType; // IN: type of EPL message, set by calling function
unsigned int m_uiTxMsgLen; // IN: length of message to be send (set for each transmit call) unsigned int m_uiTxMsgLen; // IN: length of message to be send (set for each transmit call)
// ---------------------- // ----------------------
unsigned int m_uiBufferNumber; // OUT: number of the buffer, set by ethernetdriver unsigned int m_uiBufferNumber; // OUT: number of the buffer, set by ethernetdriver
BYTE * m_pbBuffer; // OUT: pointer to the buffer, set by ethernetdriver BYTE *m_pbBuffer; // OUT: pointer to the buffer, set by ethernetdriver
tEplNetTime m_NetTime; // OUT: Timestamp of end of transmission, set by ethernetdriver tEplNetTime m_NetTime; // OUT: Timestamp of end of transmission, set by ethernetdriver
// ---------------------- // ----------------------
unsigned int m_uiMaxBufferLen; // IN/OUT: maximum length of the buffer unsigned int m_uiMaxBufferLen; // IN/OUT: maximum length of the buffer
} tEdrvTxBuffer; } tEdrvTxBuffer;
// format of a rx-buffer // format of a rx-buffer
typedef struct _tEdrvRxBuffer typedef struct _tEdrvRxBuffer {
{
tEdrvBufferInFrame m_BufferInFrame; // OUT position of received buffer in an ethernet-frame tEdrvBufferInFrame m_BufferInFrame; // OUT position of received buffer in an ethernet-frame
unsigned int m_uiRxMsgLen; // OUT: length of received buffer (without CRC) unsigned int m_uiRxMsgLen; // OUT: length of received buffer (without CRC)
BYTE * m_pbBuffer; // OUT: pointer to the buffer, set by ethernetdriver BYTE *m_pbBuffer; // OUT: pointer to the buffer, set by ethernetdriver
tEplNetTime m_NetTime; // OUT: Timestamp of end of receiption tEplNetTime m_NetTime; // OUT: Timestamp of end of receiption
} tEdrvRxBuffer; } tEdrvRxBuffer;
//typedef void (*tEdrvRxHandler) (BYTE bBufferInFrame_p, tBufferDescr * pbBuffer_p); //typedef void (*tEdrvRxHandler) (BYTE bBufferInFrame_p, tBufferDescr * pbBuffer_p);
//typedef void (*tEdrvRxHandler) (BYTE bBufferInFrame_p, BYTE * pbEthernetData_p, WORD wDataLen_p); //typedef void (*tEdrvRxHandler) (BYTE bBufferInFrame_p, BYTE * pbEthernetData_p, WORD wDataLen_p);
typedef void (*tEdrvRxHandler) (tEdrvRxBuffer * pRxBuffer_p); typedef void (*tEdrvRxHandler) (tEdrvRxBuffer * pRxBuffer_p);
typedef void (*tEdrvTxHandler) (tEdrvTxBuffer * pTxBuffer_p); typedef void (*tEdrvTxHandler) (tEdrvTxBuffer * pTxBuffer_p);
// format of init structure // format of init structure
typedef struct typedef struct {
{
BYTE m_abMyMacAddr[6]; // the own MAC address BYTE m_abMyMacAddr[6]; // the own MAC address
// BYTE m_bNoOfRxBuffDescr; // number of entries in rx bufferdescriptor table // BYTE m_bNoOfRxBuffDescr; // number of entries in rx bufferdescriptor table
...@@ -147,37 +137,31 @@ typedef struct ...@@ -147,37 +137,31 @@ typedef struct
} tEdrvInitParam; } tEdrvInitParam;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
tEplKernel EdrvInit(tEdrvInitParam * pEdrvInitParam_p);
tEplKernel EdrvInit (tEdrvInitParam* pEdrvInitParam_p); tEplKernel EdrvShutdown(void);
tEplKernel EdrvShutdown (void);
tEplKernel EdrvDefineRxMacAddrEntry (BYTE * pbMacAddr_p); tEplKernel EdrvDefineRxMacAddrEntry(BYTE * pbMacAddr_p);
tEplKernel EdrvUndefineRxMacAddrEntry (BYTE * pbMacAddr_p); tEplKernel EdrvUndefineRxMacAddrEntry(BYTE * pbMacAddr_p);
//tEplKernel EdrvDefineUnicastEntry (BYTE * pbUCEntry_p); //tEplKernel EdrvDefineUnicastEntry (BYTE * pbUCEntry_p);
//tEplKernel EdrvUndfineUnicastEntry (BYTE * pbUCEntry_p); //tEplKernel EdrvUndfineUnicastEntry (BYTE * pbUCEntry_p);
tEplKernel EdrvAllocTxMsgBuffer (tEdrvTxBuffer * pBuffer_p); tEplKernel EdrvAllocTxMsgBuffer(tEdrvTxBuffer * pBuffer_p);
tEplKernel EdrvReleaseTxMsgBuffer (tEdrvTxBuffer * pBuffer_p); tEplKernel EdrvReleaseTxMsgBuffer(tEdrvTxBuffer * pBuffer_p);
//tEplKernel EdrvWriteMsg (tBufferDescr * pbBuffer_p); //tEplKernel EdrvWriteMsg (tBufferDescr * pbBuffer_p);
tEplKernel EdrvSendTxMsg (tEdrvTxBuffer * pBuffer_p); tEplKernel EdrvSendTxMsg(tEdrvTxBuffer * pBuffer_p);
tEplKernel EdrvTxMsgReady (tEdrvTxBuffer * pBuffer_p); tEplKernel EdrvTxMsgReady(tEdrvTxBuffer * pBuffer_p);
tEplKernel EdrvTxMsgStart (tEdrvTxBuffer * pBuffer_p); tEplKernel EdrvTxMsgStart(tEdrvTxBuffer * pBuffer_p);
//tEplKernel EdrvReadMsg (void); //tEplKernel EdrvReadMsg (void);
// interrupt handler called by target specific interrupt handler // interrupt handler called by target specific interrupt handler
void EdrvInterruptHandler (void); void EdrvInterruptHandler(void);
#endif // #ifndef _EDRV_H_ #endif // #ifndef _EDRV_H_
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#ifndef _GLOBAL_H_ #ifndef _GLOBAL_H_
#define _GLOBAL_H_ #define _GLOBAL_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// elements of defines for development system // elements of defines for development system
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -73,7 +72,6 @@ ...@@ -73,7 +72,6 @@
#define _DEV_MASK_ADDSUPPORT 0x0000F000L #define _DEV_MASK_ADDSUPPORT 0x0000F000L
#define _DEV_MASK_ALIGNMENT 0x00F00000L #define _DEV_MASK_ALIGNMENT 0x00F00000L
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// defines for development system (DEV_SYSTEM) including previous elements // defines for development system (DEV_SYSTEM) including previous elements
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -120,7 +118,6 @@ ...@@ -120,7 +118,6 @@
#define CHECK_IF_ONLY_INT_MAIN() (DEV_SYSTEM & _DEV_ONLY_INT_MAIN_) #define CHECK_IF_ONLY_INT_MAIN() (DEV_SYSTEM & _DEV_ONLY_INT_MAIN_)
#define CHECK_MEMORY_ALINMENT() (DEV_SYSTEM & _DEV_MASK_ALIGNMENT) #define CHECK_MEMORY_ALINMENT() (DEV_SYSTEM & _DEV_MASK_ALIGNMENT)
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// defines for target system (TARGET_SYSTEM) // defines for target system (TARGET_SYSTEM)
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -134,7 +131,6 @@ ...@@ -134,7 +131,6 @@
#define _PXROS_ 2 #define _PXROS_ 2
#define _ECOSPRO_ 3 #define _ECOSPRO_ 3
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for function inlining // definitions for function inlining
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -149,35 +145,34 @@ ...@@ -149,35 +145,34 @@
#ifdef __C51__ #ifdef __C51__
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_KEIL_C51X_ #define DEV_SYSTEM _DEV_KEIL_C51X_
#pragma DEBUG OBJECTEXTEND #pragma DEBUG OBJECTEXTEND
#pragma WARNINGLEVEL(2) // maximum warning level #pragma WARNINGLEVEL(2) // maximum warning level
#define NEAR idata // variables mapped to internal data storage location #define NEAR idata // variables mapped to internal data storage location
#define FAR xdata // variables mapped to external data storage location #define FAR xdata // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM code // code or variables mapped to ROM (i.e. flash) #define ROM code // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC xdata // hardware access through external memory (i.e. CAN) #define HWACC xdata // hardware access through external memory (i.e. CAN)
#define LARGE large // functions set parameters to external data storage location #define LARGE large // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM xdata // Memory attribute to optimize speed and code of pointer access. #define MEM xdata // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT reentrant #define REENTRANT reentrant
#define PUBLIC #define PUBLIC
#ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf
#endif
#ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf
#endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for GNU Compiler for Infineon C16x // definitions for GNU Compiler for Infineon C16x
...@@ -185,36 +180,36 @@ ...@@ -185,36 +180,36 @@
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif defined (__GNUC__) && defined (__C166__) #elif defined (__GNUC__) && defined (__C166__)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_GNU_C16X_ #define DEV_SYSTEM _DEV_GNU_C16X_
// #define NEAR idata // variables mapped to internal data storage location // #define NEAR idata // variables mapped to internal data storage location
#define NEAR near // variables mapped to internal data storage location #define NEAR near // variables mapped to internal data storage location
// #define FAR xhuge // variables mapped to external data storage location // #define FAR xhuge // variables mapped to external data storage location
#define FAR huge // variables mapped to external data storage location #define FAR huge // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
// #define HWACC sdata // hardware access through external memory (i.e. CAN) // #define HWACC sdata // hardware access through external memory (i.e. CAN)
#define HWACC huge // hardware access through external memory (i.e. CAN) #define HWACC huge // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
// #define GENERIC xhuge // generic pointer to point to application data // #define GENERIC xhuge // generic pointer to point to application data
#define GENERIC huge // generic pointer to point to application data #define GENERIC huge // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#define ASSERT(p) \ #define ASSERT(p) \
if (p) \ if (p) \
{ \ { \
; \ ; \
...@@ -224,213 +219,213 @@ ...@@ -224,213 +219,213 @@
PRINTF0("Assert failed: " #p " (file %s line %d)\n", __FILE__, (int) __LINE__ ); \ PRINTF0("Assert failed: " #p " (file %s line %d)\n", __FILE__, (int) __LINE__ ); \
while (1); \ while (1); \
} }
#else #else
#define ASSERT(p) #define ASSERT(p)
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for Keil C166 // definitions for Keil C166
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif defined (__C166__) // 24.01.2005 r.d.: Keil ARM7 needs directive 'defined' #elif defined (__C166__) // 24.01.2005 r.d.: Keil ARM7 needs directive 'defined'
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_KEIL_C16X_ #define DEV_SYSTEM _DEV_KEIL_C16X_
#pragma CODE #pragma CODE
#pragma MOD167 #pragma MOD167
#pragma NOINIT #pragma NOINIT
#pragma DEBUG #pragma DEBUG
#pragma WARNINGLEVEL(3) // maximum warning level #pragma WARNINGLEVEL(3) // maximum warning level
#pragma WARNING DISABLE = 47 // warning <unreferenced parameter> = OFF #pragma WARNING DISABLE = 47 // warning <unreferenced parameter> = OFF
#pragma WARNING DISABLE = 38 // warning <empty translation unit> = OFF #pragma WARNING DISABLE = 38 // warning <empty translation unit> = OFF
// #pragma WARNING DISABLE = 102 // warning <different const/volatile qualifiers> = OFF // #pragma WARNING DISABLE = 102 // warning <different const/volatile qualifiers> = OFF
#pragma WARNING DISABLE = 174 // warning <unreferenced 'static' function> = OFF #pragma WARNING DISABLE = 174 // warning <unreferenced 'static' function> = OFF
#pragma WARNING DISABLE = 183 // warning <dead assignement eliminated> = OFF #pragma WARNING DISABLE = 183 // warning <dead assignement eliminated> = OFF
#define NEAR idata // variables mapped to internal data storage location #define NEAR idata // variables mapped to internal data storage location
#define FAR xhuge // variables mapped to external data storage location #define FAR xhuge // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
// #define HWACC sdata // hardware access through external memory (i.e. CAN) // #define HWACC sdata // hardware access through external memory (i.e. CAN)
#define HWACC huge // hardware access through external memory (i.e. CAN) #define HWACC huge // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC xhuge // generic pointer to point to application data #define GENERIC xhuge // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for MPLAB C30 for dsPIC33F series // definitions for MPLAB C30 for dsPIC33F series
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif defined (__C30__) #elif defined (__C30__)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_MPLAB_DSPIC33F_ #define DEV_SYSTEM _DEV_MPLAB_DSPIC33F_
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
// #ifndef QWORD // #ifndef QWORD
// #define QWORD long long // #define QWORD long long
// #endif // #endif
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for Keil ARM // definitions for Keil ARM
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif defined (__CA__) #elif defined (__CA__)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_KEIL_CARM_ #define DEV_SYSTEM _DEV_KEIL_CARM_
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef QWORD #ifndef QWORD
#define QWORD long long #define QWORD long long
#endif #endif
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for RealView ARM compilation tools (provided by recent Keil Microcontroller Development Kits) // definitions for RealView ARM compilation tools (provided by recent Keil Microcontroller Development Kits)
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif defined (__ARMCC_VERSION) #elif defined (__ARMCC_VERSION)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_RVCT_CARM_ #define DEV_SYSTEM _DEV_RVCT_CARM_
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef QWORD #ifndef QWORD
#define QWORD long long #define QWORD long long
#endif #endif
#ifndef NDEBUG #ifndef NDEBUG
#define ASSERT(expr) if (!(expr)) {\ #define ASSERT(expr) if (!(expr)) {\
TRACE0 ("Assertion failed: " #expr );\ TRACE0 ("Assertion failed: " #expr );\
while (1);} while (1);}
#else #else
#define ASSERT(expr) #define ASSERT(expr)
#endif #endif
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for ARM IAR C Compiler // definitions for ARM IAR C Compiler
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif defined (__ICCARM__) #elif defined (__ICCARM__)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_IAR_CARM_ #define DEV_SYSTEM _DEV_IAR_CARM_
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef QWORD #ifndef QWORD
#define QWORD long long #define QWORD long long
#endif #endif
// Workaround: // Workaround:
// If we use IAR and want to debug but don't want to use C-Spy Debugger // If we use IAR and want to debug but don't want to use C-Spy Debugger
// assert() doesn't work in debug mode because it needs support for FILE descriptors // assert() doesn't work in debug mode because it needs support for FILE descriptors
// (_DLIB_FILE_DESCRIPTOR == 1). // (_DLIB_FILE_DESCRIPTOR == 1).
#ifndef NDEBUG #ifndef NDEBUG
#define ASSERT(expr) if (!(expr)) {\ #define ASSERT(expr) if (!(expr)) {\
TRACE0 ("Assertion failed: " #expr );\ TRACE0 ("Assertion failed: " #expr );\
while (1);} while (1);}
#else #else
#define ASSERT(expr) #define ASSERT(expr)
#endif #endif
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
// #define TRACE PRINTF4 // #define TRACE PRINTF4
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for Tasking 8051 // definitions for Tasking 8051
...@@ -438,34 +433,33 @@ ...@@ -438,34 +433,33 @@
#elif defined (_CC51) #elif defined (_CC51)
#include <cc51.h> #include <cc51.h>
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_TASKING_C51X_ #define DEV_SYSTEM _DEV_TASKING_C51X_
#define NEAR _data // variables mapped to internal data storage location #define NEAR _data // variables mapped to internal data storage location
#define FAR _xdat // variables mapped to external data storage location #define FAR _xdat // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC _xdat // hardware access through external memory (i.e. CAN) #define HWACC _xdat // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM _xdat // Memory attribute to optimize speed and code of pointer access. #define MEM _xdat // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT _reentrant #define REENTRANT _reentrant
#define PUBLIC #define PUBLIC
#ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf
#endif
#ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf
#endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for Tasking C167CR and C164CI // definitions for Tasking C167CR and C164CI
...@@ -473,35 +467,34 @@ ...@@ -473,35 +467,34 @@
#elif defined (_C166) #elif defined (_C166)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_TASKING_C16X_ #define DEV_SYSTEM _DEV_TASKING_C16X_
#define NEAR near // variables mapped to internal data storage location #define NEAR near // variables mapped to internal data storage location
#define FAR far // variables mapped to external data storage location #define FAR far // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC /* to be defined */ // hardware access through external memory (i.e. CAN) #define HWACC /* to be defined */ // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
// Stdio.h has to be alway included here. If printf() is used stdio.h defines NULL // Stdio.h has to be alway included here. If printf() is used stdio.h defines NULL
// without checking if it is already included. So an error occurs while compiling. // without checking if it is already included. So an error occurs while compiling.
// (r.d.) // (r.d.)
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#ifndef NDEBUG #ifndef NDEBUG
#define TRACE printf #define TRACE printf
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for FUJITSU FFMC-16LX MB90590 // definitions for FUJITSU FFMC-16LX MB90590
...@@ -510,34 +503,33 @@ ...@@ -510,34 +503,33 @@
//#elif (defined (F590) || defined (F543) || defined (F598) || defined (F495) || defined (F350)) //#elif (defined (F590) || defined (F543) || defined (F598) || defined (F495) || defined (F350))
#elif defined(__COMPILER_FCC907__) #elif defined(__COMPILER_FCC907__)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_FUJITSU_F590_ #define DEV_SYSTEM _DEV_FUJITSU_F590_
#define NEAR /* to be defined */ // variables mapped to internal data storage location #define NEAR /* to be defined */ // variables mapped to internal data storage location
#define FAR /* to be defined */ // variables mapped to external data storage location #define FAR /* to be defined */ // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM /* to be defined */ // code or variables mapped to ROM (i.e. flash) #define ROM /* to be defined */ // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC /* to be defined */ // hardware access through external memory (i.e. CAN) #define HWACC /* to be defined */ // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
// softune is not able to support 64 bit variables QWORD !!! // softune is not able to support 64 bit variables QWORD !!!
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf
#endif
#ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf
#endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for Mitsubishi M16C family for TASKING Compiler CM16 // definitions for Mitsubishi M16C family for TASKING Compiler CM16
...@@ -545,36 +537,35 @@ ...@@ -545,36 +537,35 @@
#elif defined (_CM16C) #elif defined (_CM16C)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_TASKING_M16C_ #define DEV_SYSTEM _DEV_TASKING_M16C_
#define NEAR _near // variables mapped to internal data storage location #define NEAR _near // variables mapped to internal data storage location
#define FAR _far // variables mapped to external data storage location #define FAR _far // variables mapped to external data storage location
#define CONST _farrom // variables mapped to ROM (i.e. flash) #define CONST _farrom // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC _near // hardware access through external memory (i.e. CAN) #define HWACC _near // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC _far // generic pointer to point to application data #define GENERIC _far // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
// do you use memory model SMALL, than you have to set _far // do you use memory model SMALL, than you have to set _far
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
// Stdio.h has to be alway included here. If printf() is used stdio.h defines NULL // Stdio.h has to be alway included here. If printf() is used stdio.h defines NULL
// without checking if it is already included. So an error occurs while compiling. // without checking if it is already included. So an error occurs while compiling.
// (r.d.) // (r.d.)
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#ifndef NDEBUG #ifndef NDEBUG
#define TRACE printf #define TRACE printf
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for Mitsubishi M16C family for Mitsubishi Compiler NC30 // definitions for Mitsubishi M16C family for Mitsubishi Compiler NC30
...@@ -582,61 +573,61 @@ ...@@ -582,61 +573,61 @@
// name NC30, andere Form will der Compiler nicht !! // name NC30, andere Form will der Compiler nicht !!
#elif defined (NC30) #elif defined (NC30)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_MITSUBISHI_M16C_ #define DEV_SYSTEM _DEV_MITSUBISHI_M16C_
#define NEAR near // variables mapped to internal data storage location #define NEAR near // variables mapped to internal data storage location
#define FAR far // variables mapped to external data storage location #define FAR far // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC near // hardware access through external memory (i.e. CAN) #define HWACC near // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC far // generic pointer to point to application data #define GENERIC far // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for Renesas M32C family for Renesas Compiler // definitions for Renesas M32C family for Renesas Compiler
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif defined (NC308) #elif defined (NC308)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_RENESAS_M32C_ #define DEV_SYSTEM _DEV_RENESAS_M32C_
#define NEAR near // variables mapped to internal data storage location #define NEAR near // variables mapped to internal data storage location
#define FAR far // variables mapped to external data storage location #define FAR far // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM far // Memory attribute to optimize speed and code of pointer access. #define MEM far // Memory attribute to optimize speed and code of pointer access.
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#endif #endif
// #error ("RENESAS o.k.") // #error ("RENESAS o.k.")
...@@ -646,37 +637,36 @@ ...@@ -646,37 +637,36 @@
#elif defined(__GNUC__) && defined(__arm__) && !defined(__LINUX_ARM_ARCH__) #elif defined(__GNUC__) && defined(__arm__) && !defined(__LINUX_ARM_ARCH__)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_GNU_ARM7_ #define DEV_SYSTEM _DEV_GNU_ARM7_
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef QWORD #ifndef QWORD
#define QWORD long long // i.A. durch Herr Kuschel #define QWORD long long // i.A. durch Herr Kuschel
#endif #endif
#ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf
#endif
#ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf
#endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for Motorola PowerPC family 5x5 (555/565) // definitions for Motorola PowerPC family 5x5 (555/565)
...@@ -685,261 +675,253 @@ ...@@ -685,261 +675,253 @@
#elif defined (__GNUC__) #elif defined (__GNUC__)
#if defined (LINUX) || defined (linux) || defined (__linux__) #if defined (LINUX) || defined (linux) || defined (__linux__)
#define LINUX_SYSTEM // define 'LINUX_SYSTEM' uniform for all Linux based systems #define LINUX_SYSTEM // define 'LINUX_SYSTEM' uniform for all Linux based systems
// r.d.: We will need an other solution here! There are two sections here which do check the preproc-definitions: // r.d.: We will need an other solution here! There are two sections here which do check the preproc-definitions:
// LINUX and __linux__ . The first one was Linux for PC, the second one is this section for embedded Linux (MCF5xxx). // LINUX and __linux__ . The first one was Linux for PC, the second one is this section for embedded Linux (MCF5xxx).
// But Linux for PC does not need the definitions for embedded Linux. // But Linux for PC does not need the definitions for embedded Linux.
#endif #endif
// GNU C compiler supports function inlining // GNU C compiler supports function inlining
#define INLINE_FUNCTION_DEF extern inline #define INLINE_FUNCTION_DEF extern inline
// to actually enable inlining just include the following three lines // to actually enable inlining just include the following three lines
// #undef INLINE_FUNCTION // #undef INLINE_FUNCTION
// #define INLINE_FUNCTION INLINE_FUNCTION_DEF // #define INLINE_FUNCTION INLINE_FUNCTION_DEF
// #define INLINE_ENABLED TRUE // #define INLINE_ENABLED TRUE
#ifdef PXROS #ifdef PXROS
#define TARGET_SYSTEM _PXROS_ #define TARGET_SYSTEM _PXROS_
#ifdef __i386__ #ifdef __i386__
#undef LINUX // this define seems to be set from compiler #undef LINUX // this define seems to be set from compiler
#define DEV_SYSTEM _DEV_HIGHTEC_X86_ #define DEV_SYSTEM _DEV_HIGHTEC_X86_
#elif defined (__tricore__) #elif defined (__tricore__)
#define DEV_SYSTEM _DEV_GNU_TRICORE_ #define DEV_SYSTEM _DEV_GNU_TRICORE_
#else // MPC5x5 #else // MPC5x5
#define DEV_SYSTEM _DEV_GNU_MPC5X5_ #define DEV_SYSTEM _DEV_GNU_MPC5X5_
#endif #endif
#elif defined (LINUX) || defined (__linux__)
#define TARGET_SYSTEM _LINUX_ // Linux definition
#define DEV_SYSTEM _DEV_LINUX_
#elif defined (GNU_CF5282)
#define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_GNU_CF5282_
#elif defined (ECOSPRO_I386_PEAK_PCI) #elif defined (LINUX) || defined (__linux__)
#define TARGET_SYSTEM _ECOSPRO_ #define TARGET_SYSTEM _LINUX_ // Linux definition
#define DEV_SYSTEM _DEV_GNU_I386_ #define DEV_SYSTEM _DEV_LINUX_
#elif defined (GNU_CF548X) #elif defined (GNU_CF5282)
#define TARGET_SYSTEM _NO_OS_ #define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_GNU_CF548X_ #define DEV_SYSTEM _DEV_GNU_CF5282_
#else
#error 'ERROR: DEV_SYSTEM not found!'
#endif
#elif defined (ECOSPRO_I386_PEAK_PCI)
#define TARGET_SYSTEM _ECOSPRO_
#define DEV_SYSTEM _DEV_GNU_I386_
#ifndef QWORD #elif defined (GNU_CF548X)
#define QWORD long long int #define TARGET_SYSTEM _NO_OS_
#endif #define DEV_SYSTEM _DEV_GNU_CF548X_
#else
#error 'ERROR: DEV_SYSTEM not found!'
#endif
#if (TARGET_SYSTEM == _PXROS_) #ifndef QWORD
#define QWORD long long int
#endif
#ifndef __KERNEL__ #if (TARGET_SYSTEM == _PXROS_)
#include <string.h>
#endif
#ifndef __KERNEL__
#include <string.h>
#endif
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM /* to be defined */ // code or variables mapped to ROM (i.e. flash) #define ROM /* to be defined */ // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef QWORD #ifndef QWORD
#define QWORD long long int #define QWORD long long int
#endif #endif
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#endif #endif
#endif #endif
// ------------------ GNUC for I386 --------------------------------------------- // ------------------ GNUC for I386 ---------------------------------------------
#if (TARGET_SYSTEM == _LINUX_) || (TARGET_SYSTEM == _ECOSPRO_) #if (TARGET_SYSTEM == _LINUX_) || (TARGET_SYSTEM == _ECOSPRO_)
#ifndef __KERNEL__ #ifndef __KERNEL__
#include <string.h> #include <string.h>
#endif #endif
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#ifndef NEAR #ifndef NEAR
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#endif #endif
#ifndef FAR #ifndef FAR
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#endif #endif
#ifndef CONST #ifndef CONST
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#endif #endif
#define LARGE #define LARGE
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG #ifndef NDEBUG
#ifndef __KERNEL__ #ifndef __KERNEL__
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#else #else
#define TRACE printk #define TRACE printk
#endif #endif
#endif #endif
#endif #endif
// ------------------ GNU without OS --------------------------------------------- // ------------------ GNU without OS ---------------------------------------------
#if (TARGET_SYSTEM == _NO_OS_) #if (TARGET_SYSTEM == _NO_OS_)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#ifndef NEAR #ifndef NEAR
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#endif #endif
#ifndef FAR #ifndef FAR
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#endif #endif
#ifndef CONST #ifndef CONST
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#endif #endif
#define LARGE #define LARGE
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG #ifndef NDEBUG
// #include "xuartdrv.h" // #include "xuartdrv.h"
// #include <stdio.h> // prototype printf() (for TRACE) // #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
// #define TRACE mprintf // #define TRACE mprintf
// #ifndef TRACE // #ifndef TRACE
// #define TRACE trace // #define TRACE trace
// void trace (char *fmt, ...); // void trace (char *fmt, ...);
// #endif // #endif
#endif #endif
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for MPC565 // definitions for MPC565
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif __MWERKS__ #elif __MWERKS__
#ifdef __MC68K__ #ifdef __MC68K__
#define TARGET_SYSTEM = _MCF548X_ #define TARGET_SYSTEM = _MCF548X_
#define DEV_SYSTEM _DEV_MCW_MCF5XXX_ #define DEV_SYSTEM _DEV_MCW_MCF5XXX_
#else #else
#define TARGET_SYSTEM = _MPC565_ #define TARGET_SYSTEM = _MPC565_
#define DEV_SYSTEM _DEV_MCW_MPC5X5_ #define DEV_SYSTEM _DEV_MCW_MPC5X5_
#endif #endif
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define LARGE // functions set parameters to external data storage location #define LARGE // functions set parameters to external data storage location
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG #ifndef NDEBUG
#include <stdio.h> // prototype printf() (for TRACE) #include <stdio.h> // prototype printf() (for TRACE)
#define TRACE printf #define TRACE printf
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for BECK 1x3 // definitions for BECK 1x3
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#elif defined (__BORLANDC__) && defined (__PARADIGM__) #elif defined (__BORLANDC__) && defined (__PARADIGM__)
#define TARGET_SYSTEM _NO_OS_
#define DEV_SYSTEM _DEV_PAR_BECK1X3_
#define TARGET_SYSTEM _NO_OS_ #define ROM // code or variables mapped to ROM (i.e. flash)
#define DEV_SYSTEM _DEV_PAR_BECK1X3_
#define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define NEAR __near // variables mapped to internal data storage location #define NEAR __near // variables mapped to internal data storage location
#define FAR __far // variables mapped to external data storage location #define FAR __far // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define LARGE #define LARGE
#define REENTRANT
#define PUBLIC
#ifndef NDEBUG
#ifndef TRACE
#include <stdio.h>
#define TRACE printf
#endif
#endif
#define REENTRANT
#define PUBLIC
#ifndef NDEBUG
#ifndef TRACE
#include <stdio.h>
#define TRACE printf
#endif
#endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for PC // definitions for PC
...@@ -949,113 +931,111 @@ ...@@ -949,113 +931,111 @@
// ------------------ definition target system -------------------------- // ------------------ definition target system --------------------------
#ifdef _WIN32 #ifdef _WIN32
#define TARGET_SYSTEM _WIN32_ // WIN32 definition #define TARGET_SYSTEM _WIN32_ // WIN32 definition
#define DEV_SYSTEM _DEV_WIN32_ #define DEV_SYSTEM _DEV_WIN32_
#else #else
#define TARGET_SYSTEM _DOS_ #define TARGET_SYSTEM _DOS_
#define DEV_SYSTEM _DEV_BORLAND_DOS_ #define DEV_SYSTEM _DEV_BORLAND_DOS_
#endif #endif
// ------------------ WIN32 --------------------------------------------- // ------------------ WIN32 ---------------------------------------------
#if (TARGET_SYSTEM == _WIN32_) #if (TARGET_SYSTEM == _WIN32_)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#ifndef NEAR #ifndef NEAR
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#endif #endif
#ifndef FAR #ifndef FAR
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#endif #endif
#ifndef CONST #ifndef CONST
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#endif #endif
#define LARGE #define LARGE
#define REENTRANT #define REENTRANT
#define PUBLIC __stdcall #define PUBLIC __stdcall
#ifndef NDEBUG #ifndef NDEBUG
#ifndef TRACE #ifndef TRACE
#include <stdio.h> #include <stdio.h>
#define TRACE printf #define TRACE printf
#endif #endif
#endif #endif
#elif (TARGET_SYSTEM == _DOS_) #elif (TARGET_SYSTEM == _DOS_)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define NEAR near // variables mapped to internal data storage location #define NEAR near // variables mapped to internal data storage location
#define FAR far // variables mapped to external data storage location #define FAR far // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define LARGE #define LARGE
#define REENTRANT #define REENTRANT
#define PUBLIC #define PUBLIC
#ifndef NDEBUG #ifndef NDEBUG
#ifndef TRACE #ifndef TRACE
#include <stdio.h> #include <stdio.h>
#define TRACE printf #define TRACE printf
#endif #endif
#endif #endif
#endif #endif
#elif (_MSC_VER == 800) // PC MS Visual C/C++ for DOS applications #elif (_MSC_VER == 800) // PC MS Visual C/C++ for DOS applications
#define TARGET_SYSTEM _DOS_ #define TARGET_SYSTEM _DOS_
#define DEV_SYSTEM _DEV_MSVC_DOS_ #define DEV_SYSTEM _DEV_MSVC_DOS_
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC near // hardware access through external memory (i.e. CAN) #define HWACC near // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#define NEAR near // variables mapped to internal data storage location #define NEAR near // variables mapped to internal data storage location
#define FAR far // variables mapped to external data storage location #define FAR far // variables mapped to external data storage location
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#define LARGE #define LARGE
#define REENTRANT
#define PUBLIC
#ifndef NDEBUG #define REENTRANT
#ifndef TRACE #define PUBLIC
#include <stdio.h>
#define TRACE printf
#endif
#endif
#ifndef NDEBUG
#ifndef TRACE
#include <stdio.h>
#define TRACE printf
#endif
#endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for RTX under WIN32 // definitions for RTX under WIN32
...@@ -1063,42 +1043,42 @@ ...@@ -1063,42 +1043,42 @@
#elif (defined (UNDER_RTSS) && defined (WIN32)) #elif (defined (UNDER_RTSS) && defined (WIN32))
// ------------------ definition target system -------------------------- // ------------------ definition target system --------------------------
#define TARGET_SYSTEM _WIN32_RTX_ #define TARGET_SYSTEM _WIN32_RTX_
#define DEV_SYSTEM _DEV_WIN32_RTX_ #define DEV_SYSTEM _DEV_WIN32_RTX_
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#ifndef NEAR #ifndef NEAR
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#endif #endif
#ifndef FAR #ifndef FAR
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#endif #endif
#ifndef CONST #ifndef CONST
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#endif #endif
#define LARGE #define LARGE
#define REENTRANT #define REENTRANT
#define PUBLIC __stdcall #define PUBLIC __stdcall
#ifndef NDEBUG #ifndef NDEBUG
#ifndef TRACE #ifndef TRACE
#define TRACE RtPrintf #define TRACE RtPrintf
#endif #endif
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definitions for WinCE // definitions for WinCE
...@@ -1106,341 +1086,288 @@ ...@@ -1106,341 +1086,288 @@
#elif defined (_WIN32_WCE) #elif defined (_WIN32_WCE)
// ------------------ definition target system -------------------------- // ------------------ definition target system --------------------------
#define TARGET_SYSTEM _WINCE_ #define TARGET_SYSTEM _WINCE_
#define DEV_SYSTEM _DEV_WIN_CE_ #define DEV_SYSTEM _DEV_WIN_CE_
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#ifndef NEAR #ifndef NEAR
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#endif #endif
#ifndef FAR #ifndef FAR
#define FAR // variables mapped to external data storage location #define FAR // variables mapped to external data storage location
#endif #endif
#ifndef CONST #ifndef CONST
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#endif #endif
#define LARGE #define LARGE
#ifndef QWORD #ifndef QWORD
//#define QWORD long long int // MSVC .NET can use "long long int" too (like GNU) //#define QWORD long long int // MSVC .NET can use "long long int" too (like GNU)
#define QWORD __int64 #define QWORD __int64
#endif #endif
#define REENTRANT #define REENTRANT
#define PUBLIC __cdecl #define PUBLIC __cdecl
#ifdef ASSERTMSG #ifdef ASSERTMSG
#undef ASSERTMSG #undef ASSERTMSG
#endif #endif
#ifndef NDEBUG #ifndef NDEBUG
#ifndef TRACE #ifndef TRACE
#define TRACE printf #define TRACE printf
// void trace (char *fmt, ...); // void trace (char *fmt, ...);
#endif #endif
#endif #endif
#else // ===> PC MS Visual C/C++ #else // ===> PC MS Visual C/C++
// ------------------ definition target system -------------------------- // ------------------ definition target system --------------------------
#ifdef _WIN32 #ifdef _WIN32
#define TARGET_SYSTEM _WIN32_ // WIN32 definition #define TARGET_SYSTEM _WIN32_ // WIN32 definition
#define DEV_SYSTEM _DEV_WIN32_ #define DEV_SYSTEM _DEV_WIN32_
#else #else
#define TARGET_SYSTEM _WIN16_ // WIN16 definition #define TARGET_SYSTEM _WIN16_ // WIN16 definition
#define DEV_SYSTEM _DEV_WIN16_ #define DEV_SYSTEM _DEV_WIN16_
#endif #endif
// ------------------ WIN16 --------------------------------------------- // ------------------ WIN16 ---------------------------------------------
#if (TARGET_SYSTEM == _WIN16_) #if (TARGET_SYSTEM == _WIN16_)
#define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external
// or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access.
#ifndef NEAR
#define NEAR // variables mapped to internal data storage location
#endif
#ifndef FAR
#define FAR far // variables mapped to external data storage location
#endif
#ifndef CONST
#define CONST const // variables mapped to ROM (i.e. flash)
#endif
#define LARGE
#define REENTRANT
#define PUBLIC _far _pascal _export
#ifndef NDEBUG
#ifndef TRACE
#define TRACE trace
#ifdef __cplusplus
extern "C"
{
#endif
void trace (const char *fmt, ...);
#ifdef __cplusplus
}
#endif
#endif
#endif
#endif
// ------------------ WIN32 ---------------------------------------------
#if (TARGET_SYSTEM == _WIN32_)
#define ROM // code or variables mapped to ROM (i.e. flash) #define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00; // usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN) #define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to // These types can be adjusted by users to match application requirements. The goal is to
// minimize code memory and maximize speed. // minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data #define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external // Variables with this attribute can be located in external
// or internal data memory. // or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access. #define MEM // Memory attribute to optimize speed and code of pointer access.
#ifndef NEAR #ifndef NEAR
#define NEAR // variables mapped to internal data storage location #define NEAR // variables mapped to internal data storage location
#endif #endif
#ifndef FAR #ifndef FAR
#define FAR // variables mapped to external data storage location #define FAR far // variables mapped to external data storage location
#endif #endif
#ifndef CONST #ifndef CONST
#define CONST const // variables mapped to ROM (i.e. flash) #define CONST const // variables mapped to ROM (i.e. flash)
#endif #endif
#define LARGE #define LARGE
#define REENTRANT #define REENTRANT
#define PUBLIC __stdcall #define PUBLIC _far _pascal _export
#ifndef QWORD #ifndef NDEBUG
#ifndef TRACE
#define TRACE trace
#ifdef __cplusplus
extern "C" {
#endif
void trace(const char *fmt, ...);
#ifdef __cplusplus
}
#endif
#endif
#endif
#endif
// ------------------ WIN32 ---------------------------------------------
#if (TARGET_SYSTEM == _WIN32_)
#define ROM // code or variables mapped to ROM (i.e. flash)
// usage: CONST BYTE ROM foo = 0x00;
#define HWACC // hardware access through external memory (i.e. CAN)
// These types can be adjusted by users to match application requirements. The goal is to// minimize code memory and maximize speed.
#define GENERIC // generic pointer to point to application data
// Variables with this attribute can be located in external// or internal data memory.
#define MEM // Memory attribute to optimize speed and code of pointer access.
#ifndef NEAR
#define NEAR // variables mapped to internal data storage location
#endif
#ifndef FAR
#define FAR // variables mapped to external data storage location
#endif
#ifndef CONST
#define CONST const // variables mapped to ROM (i.e. flash)
#endif
#define LARGE
#define REENTRANT
#define PUBLIC __stdcall
#ifndef QWORD
//#define QWORD long long int // MSVC .NET can use "long long int" too (like GNU) //#define QWORD long long int // MSVC .NET can use "long long int" too (like GNU)
#define QWORD __int64 #define QWORD __int64
#endif #endif
#ifndef NDEBUG
#ifndef NDEBUG #ifndef TRACE
#ifndef TRACE #define TRACE trace
#define TRACE trace #ifdef __cplusplus
#ifdef __cplusplus extern "C" {
extern "C" #endif
{ void trace(const char *fmt, ...);
#endif #ifdef __cplusplus
void trace (const char *fmt, ...); }
#ifdef __cplusplus #endif
} #endif
#endif #endif
#endif
#endif
// MS Visual C++ compiler supports function inlining // MS Visual C++ compiler supports function inlining
#define INLINE_FUNCTION_DEF __forceinline #define INLINE_FUNCTION_DEF __forceinline
// to actually enable inlining just include the following two lines// #define INLINE_FUNCTION INLINE_FUNCTION_DEF// #define INLINE_ENABLED TRUE
// to actually enable inlining just include the following two lines #endif
// #define INLINE_FUNCTION INLINE_FUNCTION_DEF
// #define INLINE_ENABLED TRUE
#endif
#endif // ===> PC #endif // ===> PC
//---------------------------------------------------------------------------// definitions of basic types//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// definitions of basic types
//---------------------------------------------------------------------------
#ifndef _WINDEF_ // defined in WINDEF.H, included by <windows.h> #ifndef _WINDEF_ // defined in WINDEF.H, included by <windows.h>
// --- arithmetic types --- // --- arithmetic types ---
#ifndef SHORT #ifndef SHORT
#define SHORT short int #define SHORT short int
#endif #endif
#ifndef USHORT
#ifndef USHORT #define USHORT unsigned short int
#define USHORT unsigned short int #endif
#endif #ifndef INT
#define INT int
#ifndef INT #endif
#define INT int #ifndef UINT
#endif #define UINT unsigned int
#endif
#ifndef UINT #ifndef LONG
#define UINT unsigned int #define LONG long int
#endif #endif
#ifndef ULONG
#ifndef LONG #define ULONG unsigned long int
#define LONG long int #endif
#endif
#ifndef ULONG
#define ULONG unsigned long int
#endif
// --- logic types --- // --- logic types ---
#ifndef BYTE #ifndef BYTE
#define BYTE unsigned char #define BYTE unsigned char
#endif #endif
#ifndef WORD
#ifndef WORD #define WORD unsigned short int
#define WORD unsigned short int #endif
#endif #ifndef DWORD
#define DWORD unsigned long int
#ifndef DWORD #endif
#define DWORD unsigned long int #ifndef BOOL
#endif #define BOOL unsigned char
#endif
#ifndef BOOL
#define BOOL unsigned char
#endif
// --- alias types --- // --- alias types ---
#ifndef TRUE #ifndef TRUE
#define TRUE 0xFF #define TRUE 0xFF
#endif #endif
#ifndef FALSE
#ifndef FALSE #define FALSE 0x00
#define FALSE 0x00 #endif
#endif #ifndef NULL
#define NULL ((void *) 0)
#ifndef NULL #endif
#define NULL ((void *) 0)
#endif
#endif #endif
#ifndef _TIME_OF_DAY_DEFINED_ #ifndef _TIME_OF_DAY_DEFINED_
typedef struct {
typedef struct
{
unsigned long int m_dwMs; unsigned long int m_dwMs;
unsigned short int m_wDays; unsigned short int m_wDays;
} tTimeOfDay; } tTimeOfDay;
#define _TIME_OF_DAY_DEFINED_ #define _TIME_OF_DAY_DEFINED_
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Definition von TRACE // Definition von TRACE
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#ifndef NDEBUG #ifndef NDEBUG
#ifndef TRACE0 #ifndef TRACE0
#define TRACE0(p0) TRACE(p0) #define TRACE0(p0) TRACE(p0)
#endif #endif
#ifndef TRACE1 #ifndef TRACE1
#define TRACE1(p0, p1) TRACE(p0, p1) #define TRACE1(p0, p1) TRACE(p0, p1)
#endif #endif
#ifndef TRACE2 #ifndef TRACE2
#define TRACE2(p0, p1, p2) TRACE(p0, p1, p2) #define TRACE2(p0, p1, p2) TRACE(p0, p1, p2)
#endif #endif
#ifndef TRACE3 #ifndef TRACE3
#define TRACE3(p0, p1, p2, p3) TRACE(p0, p1, p2, p3) #define TRACE3(p0, p1, p2, p3) TRACE(p0, p1, p2, p3)
#endif #endif
#ifndef TRACE4 #ifndef TRACE4
#define TRACE4(p0, p1, p2, p3, p4) TRACE(p0, p1, p2, p3, p4) #define TRACE4(p0, p1, p2, p3, p4) TRACE(p0, p1, p2, p3, p4)
#endif #endif
#ifndef TRACE5 #ifndef TRACE5
#define TRACE5(p0, p1, p2, p3, p4, p5) TRACE(p0, p1, p2, p3, p4, p5) #define TRACE5(p0, p1, p2, p3, p4, p5) TRACE(p0, p1, p2, p3, p4, p5)
#endif #endif
#ifndef TRACE6 #ifndef TRACE6
#define TRACE6(p0, p1, p2, p3, p4, p5, p6) TRACE(p0, p1, p2, p3, p4, p5, p6) #define TRACE6(p0, p1, p2, p3, p4, p5, p6) TRACE(p0, p1, p2, p3, p4, p5, p6)
#endif #endif
#else #else
#ifndef TRACE0 #ifndef TRACE0
#define TRACE0(p0) #define TRACE0(p0)
#endif #endif
#ifndef TRACE1
#define TRACE1(p0, p1)
#endif
#ifndef TRACE2
#define TRACE2(p0, p1, p2)
#endif
#ifndef TRACE3 #ifndef TRACE1
#define TRACE3(p0, p1, p2, p3) #define TRACE1(p0, p1)
#endif #endif
#ifndef TRACE4 #ifndef TRACE2
#define TRACE4(p0, p1, p2, p3, p4) #define TRACE2(p0, p1, p2)
#endif #endif
#ifndef TRACE5 #ifndef TRACE3
#define TRACE5(p0, p1, p2, p3, p4, p5) #define TRACE3(p0, p1, p2, p3)
#endif #endif
#ifndef TRACE6 #ifndef TRACE4
#define TRACE6(p0, p1, p2, p3, p4, p5, p6) #define TRACE4(p0, p1, p2, p3, p4)
#endif #endif
#ifndef TRACE5
#define TRACE5(p0, p1, p2, p3, p4, p5)
#endif #endif
#ifndef TRACE6
#define TRACE6(p0, p1, p2, p3, p4, p5, p6)
#endif
#endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// definition of ASSERT // definition of ASSERT
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#ifndef ASSERT #ifndef ASSERT
#if !defined (__linux__) && !defined (__KERNEL__) #if !defined (__linux__) && !defined (__KERNEL__)
#include <assert.h> #include <assert.h>
#ifndef ASSERT #ifndef ASSERT
#define ASSERT(p) assert(p) #define ASSERT(p) assert(p)
#endif #endif
#else #else
#define ASSERT(p) #define ASSERT(p)
#endif #endif
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// SYS TEC extensions // SYS TEC extensions
...@@ -1450,19 +1377,15 @@ ...@@ -1450,19 +1377,15 @@
// but a string, which exactly names the mistake. // but a string, which exactly names the mistake.
#ifndef NDEBUG #ifndef NDEBUG
#define ASSERTMSG(expr,string) if (!(expr)) {\ #define ASSERTMSG(expr,string) if (!(expr)) {\
PRINTF0 ("Assertion failed: " string );\ PRINTF0 ("Assertion failed: " string );\
while (1);} while (1);}
#else #else
#define ASSERTMSG(expr,string) #define ASSERTMSG(expr,string)
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif // #ifndef _GLOBAL_H_ #endif // #ifndef _GLOBAL_H_
// Please keep an empty line at the end of this file. // Please keep an empty line at the end of this file.
...@@ -71,7 +71,6 @@ ...@@ -71,7 +71,6 @@
#ifndef _EPLPROCFS_H_ #ifndef _EPLPROCFS_H_
#define _EPLPROCFS_H_ #define _EPLPROCFS_H_
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// const defines // const defines
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -80,7 +79,6 @@ ...@@ -80,7 +79,6 @@
// types // types
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// function prototypes // function prototypes
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -88,7 +86,4 @@ ...@@ -88,7 +86,4 @@
tEplKernel EplLinProcInit(void); tEplKernel EplLinProcInit(void);
tEplKernel EplLinProcFree(void); tEplKernel EplLinProcFree(void);
#endif // #ifndef _EPLPROCFS_H_ #endif // #ifndef _EPLPROCFS_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment