提交 e0ca0595 编写于 作者: G 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: NGreg Kroah-Hartman <gregkh@suse.de>
上级 bd5cd82d
......@@ -73,31 +73,30 @@
#include "global.h"
#if (TARGET_SYSTEM == _NO_OS_) && (DEV_SYSTEM == _DEV_GNU_CF548X_)
#include "common.h"
#include "common.h"
#elif (TARGET_SYSTEM == _LINUX_) && defined(__KERNEL__)
// #include <linux/config.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#ifdef CONFIG_COLDFIRE
#include <asm/coldfire.h>
#include <asm/m5485gpio.h>
#ifdef CONFIG_COLDFIRE
#include <asm/coldfire.h>
#include <asm/m5485gpio.h>
#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_TOGGLE(x) MCF_GPIO_PODR_PCIBR ^= (1 << (x - 5))
#else
#undef BENCHMARK_MODULES
#define BENCHMARK_MODULES 0x00000000
#endif
#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_TOGGLE(x) MCF_GPIO_PODR_PCIBR ^= (1 << (x - 5))
#else
#undef BENCHMARK_MODULES
#define BENCHMARK_MODULES 0x00000000
#endif
#else
// disable Benchmarking
#undef BENCHMARK_MODULES
#define BENCHMARK_MODULES 0x00000000
#undef BENCHMARK_MODULES
#define BENCHMARK_MODULES 0x00000000
#endif
/***************************************************************************/
......@@ -149,295 +148,290 @@
#define BENCHMARK_MOD_31 0x40000000
#define BENCHMARK_MOD_32 0x80000000
#if (BENCHMARK_MODULES & BENCHMARK_MOD_01)
#define BENCHMARK_MOD_01_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_01_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_01_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_01_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_01_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_01_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_01_SET(x)
#define BENCHMARK_MOD_01_RESET(x)
#define BENCHMARK_MOD_01_TOGGLE(x)
#define BENCHMARK_MOD_01_SET(x)
#define BENCHMARK_MOD_01_RESET(x)
#define BENCHMARK_MOD_01_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_02)
#define BENCHMARK_MOD_02_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_02_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_02_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_02_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_02_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_02_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_02_SET(x)
#define BENCHMARK_MOD_02_RESET(x)
#define BENCHMARK_MOD_02_TOGGLE(x)
#define BENCHMARK_MOD_02_SET(x)
#define BENCHMARK_MOD_02_RESET(x)
#define BENCHMARK_MOD_02_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_03)
#define BENCHMARK_MOD_03_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_03_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_03_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_03_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_03_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_03_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_03_SET(x)
#define BENCHMARK_MOD_03_RESET(x)
#define BENCHMARK_MOD_03_TOGGLE(x)
#define BENCHMARK_MOD_03_SET(x)
#define BENCHMARK_MOD_03_RESET(x)
#define BENCHMARK_MOD_03_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_04)
#define BENCHMARK_MOD_04_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_04_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_04_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_04_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_04_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_04_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_04_SET(x)
#define BENCHMARK_MOD_04_RESET(x)
#define BENCHMARK_MOD_04_TOGGLE(x)
#define BENCHMARK_MOD_04_SET(x)
#define BENCHMARK_MOD_04_RESET(x)
#define BENCHMARK_MOD_04_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_05)
#define BENCHMARK_MOD_05_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_05_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_05_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_05_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_05_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_05_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_05_SET(x)
#define BENCHMARK_MOD_05_RESET(x)
#define BENCHMARK_MOD_05_TOGGLE(x)
#define BENCHMARK_MOD_05_SET(x)
#define BENCHMARK_MOD_05_RESET(x)
#define BENCHMARK_MOD_05_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_06)
#define BENCHMARK_MOD_06_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_06_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_06_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_06_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_06_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_06_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_06_SET(x)
#define BENCHMARK_MOD_06_RESET(x)
#define BENCHMARK_MOD_06_TOGGLE(x)
#define BENCHMARK_MOD_06_SET(x)
#define BENCHMARK_MOD_06_RESET(x)
#define BENCHMARK_MOD_06_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_07)
#define BENCHMARK_MOD_07_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_07_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_07_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_07_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_07_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_07_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_07_SET(x)
#define BENCHMARK_MOD_07_RESET(x)
#define BENCHMARK_MOD_07_TOGGLE(x)
#define BENCHMARK_MOD_07_SET(x)
#define BENCHMARK_MOD_07_RESET(x)
#define BENCHMARK_MOD_07_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_08)
#define BENCHMARK_MOD_08_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_08_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_08_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_08_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_08_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_08_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_08_SET(x)
#define BENCHMARK_MOD_08_RESET(x)
#define BENCHMARK_MOD_08_TOGGLE(x)
#define BENCHMARK_MOD_08_SET(x)
#define BENCHMARK_MOD_08_RESET(x)
#define BENCHMARK_MOD_08_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_09)
#define BENCHMARK_MOD_09_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_09_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_09_TOGGLE(x) BENCHMARK_TOGGLE(x)
#define BENCHMARK_MOD_09_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_09_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_09_TOGGLE(x) BENCHMARK_TOGGLE(x)
#else
#define BENCHMARK_MOD_09_SET(x)
#define BENCHMARK_MOD_09_RESET(x)
#define BENCHMARK_MOD_09_TOGGLE(x)
#define BENCHMARK_MOD_09_SET(x)
#define BENCHMARK_MOD_09_RESET(x)
#define BENCHMARK_MOD_09_TOGGLE(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_10)
#define BENCHMARK_MOD_10_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_10_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_10_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_10_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_10_SET(x)
#define BENCHMARK_MOD_10_RESET(x)
#define BENCHMARK_MOD_10_SET(x)
#define BENCHMARK_MOD_10_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_11)
#define BENCHMARK_MOD_11_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_11_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_11_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_11_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_11_SET(x)
#define BENCHMARK_MOD_11_RESET(x)
#define BENCHMARK_MOD_11_SET(x)
#define BENCHMARK_MOD_11_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_12)
#define BENCHMARK_MOD_12_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_12_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_12_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_12_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_12_SET(x)
#define BENCHMARK_MOD_12_RESET(x)
#define BENCHMARK_MOD_12_SET(x)
#define BENCHMARK_MOD_12_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_13)
#define BENCHMARK_MOD_13_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_13_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_13_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_13_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_13_SET(x)
#define BENCHMARK_MOD_13_RESET(x)
#define BENCHMARK_MOD_13_SET(x)
#define BENCHMARK_MOD_13_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_14)
#define BENCHMARK_MOD_14_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_14_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_14_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_14_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_14_SET(x)
#define BENCHMARK_MOD_14_RESET(x)
#define BENCHMARK_MOD_14_SET(x)
#define BENCHMARK_MOD_14_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_15)
#define BENCHMARK_MOD_15_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_15_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_15_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_15_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_15_SET(x)
#define BENCHMARK_MOD_15_RESET(x)
#define BENCHMARK_MOD_15_SET(x)
#define BENCHMARK_MOD_15_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_16)
#define BENCHMARK_MOD_16_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_16_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_16_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_16_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_16_SET(x)
#define BENCHMARK_MOD_16_RESET(x)
#define BENCHMARK_MOD_16_SET(x)
#define BENCHMARK_MOD_16_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_17)
#define BENCHMARK_MOD_17_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_17_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_17_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_17_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_17_SET(x)
#define BENCHMARK_MOD_17_RESET(x)
#define BENCHMARK_MOD_17_SET(x)
#define BENCHMARK_MOD_17_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_18)
#define BENCHMARK_MOD_18_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_18_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_18_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_18_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_18_SET(x)
#define BENCHMARK_MOD_18_RESET(x)
#define BENCHMARK_MOD_18_SET(x)
#define BENCHMARK_MOD_18_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_19)
#define BENCHMARK_MOD_19_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_19_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_19_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_19_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_19_SET(x)
#define BENCHMARK_MOD_19_RESET(x)
#define BENCHMARK_MOD_19_SET(x)
#define BENCHMARK_MOD_19_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_20)
#define BENCHMARK_MOD_20_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_20_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_20_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_20_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_20_SET(x)
#define BENCHMARK_MOD_20_RESET(x)
#define BENCHMARK_MOD_20_SET(x)
#define BENCHMARK_MOD_20_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_21)
#define BENCHMARK_MOD_21_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_21_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_21_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_21_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_21_SET(x)
#define BENCHMARK_MOD_21_RESET(x)
#define BENCHMARK_MOD_21_SET(x)
#define BENCHMARK_MOD_21_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_22)
#define BENCHMARK_MOD_22_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_22_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_22_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_22_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_22_SET(x)
#define BENCHMARK_MOD_22_RESET(x)
#define BENCHMARK_MOD_22_SET(x)
#define BENCHMARK_MOD_22_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_23)
#define BENCHMARK_MOD_23_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_23_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_23_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_23_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_23_SET(x)
#define BENCHMARK_MOD_23_RESET(x)
#define BENCHMARK_MOD_23_SET(x)
#define BENCHMARK_MOD_23_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_24)
#define BENCHMARK_MOD_24_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_24_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_24_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_24_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_24_SET(x)
#define BENCHMARK_MOD_24_RESET(x)
#define BENCHMARK_MOD_24_SET(x)
#define BENCHMARK_MOD_24_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_25)
#define BENCHMARK_MOD_25_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_25_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_25_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_25_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_25_SET(x)
#define BENCHMARK_MOD_25_RESET(x)
#define BENCHMARK_MOD_25_SET(x)
#define BENCHMARK_MOD_25_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_26)
#define BENCHMARK_MOD_26_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_26_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_26_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_26_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_26_SET(x)
#define BENCHMARK_MOD_26_RESET(x)
#define BENCHMARK_MOD_26_SET(x)
#define BENCHMARK_MOD_26_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_27)
#define BENCHMARK_MOD_27_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_27_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_27_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_27_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_27_SET(x)
#define BENCHMARK_MOD_27_RESET(x)
#define BENCHMARK_MOD_27_SET(x)
#define BENCHMARK_MOD_27_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_28)
#define BENCHMARK_MOD_28_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_28_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_28_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_28_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_28_SET(x)
#define BENCHMARK_MOD_28_RESET(x)
#define BENCHMARK_MOD_28_SET(x)
#define BENCHMARK_MOD_28_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_29)
#define BENCHMARK_MOD_29_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_29_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_29_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_29_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_29_SET(x)
#define BENCHMARK_MOD_29_RESET(x)
#define BENCHMARK_MOD_29_SET(x)
#define BENCHMARK_MOD_29_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_30)
#define BENCHMARK_MOD_30_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_30_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_30_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_30_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_30_SET(x)
#define BENCHMARK_MOD_30_RESET(x)
#define BENCHMARK_MOD_30_SET(x)
#define BENCHMARK_MOD_30_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_31)
#define BENCHMARK_MOD_31_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_31_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_31_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_31_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_31_SET(x)
#define BENCHMARK_MOD_31_RESET(x)
#define BENCHMARK_MOD_31_SET(x)
#define BENCHMARK_MOD_31_RESET(x)
#endif
#if (BENCHMARK_MODULES & BENCHMARK_MOD_32)
#define BENCHMARK_MOD_32_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_32_RESET(x) BENCHMARK_RESET(x)
#define BENCHMARK_MOD_32_SET(x) BENCHMARK_SET(x)
#define BENCHMARK_MOD_32_RESET(x) BENCHMARK_RESET(x)
#else
#define BENCHMARK_MOD_32_SET(x)
#define BENCHMARK_MOD_32_RESET(x)
#define BENCHMARK_MOD_32_SET(x)
#define BENCHMARK_MOD_32_RESET(x)
#endif
//---------------------------------------------------------------------------
// modul global types
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// local vars
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// local function prototypes
//---------------------------------------------------------------------------
#endif // _BENCHMARK_H_
此差异已折叠。
......@@ -73,40 +73,32 @@
#ifndef _EDRVFEC_H_
#define _EDRVFEC_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
// do this in config header
#define TARGET_HARDWARE TGTHW_SPLC_CF54
// base addresses
#if ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5282)
#elif ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5485)
#else
#error 'ERROR: Target was never implemented!'
#error 'ERROR: Target was never implemented!'
#endif
//---------------------------------------------------------------------------
// types
//---------------------------------------------------------------------------
// 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_wLength; // transfer length
BYTE * m_pbData; // buffer address
BYTE *m_pbData; // buffer address
} tBufferDescr;
#if ((TARGET_HARDWARE & TGT_CPU_MASK_) == TGT_CPU_5282)
......@@ -119,8 +111,4 @@ typedef struct
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EDRV_FEC_H_
......@@ -73,7 +73,6 @@
#ifndef _EDRVFEC_H_
#define _EDRVFEC_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
......@@ -315,11 +314,10 @@
//---------------------------------------------------------------------------
// 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_wLength; // transfer length
BYTE * m_pbData; // buffer address
BYTE *m_pbData; // buffer address
} tBufferDescr;
//---------------------------------------------------------------------------
......@@ -327,21 +325,16 @@ typedef struct
//---------------------------------------------------------------------------
#if (NO_OF_INSTANCES > 1)
#define ECI_WRITE_DW_REG(off,val) (*(DWORD *)(void *)(&__IPSBAR[off]) = val)
#define ECI_READ_DW_REG(off) (*(DWORD *)(void *)(&__IPSBAR[off]))
#define ECI_WRITE_DW_REG(off,val) (*(DWORD *)(void *)(&__IPSBAR[off]) = val)
#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
#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
#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
#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 // #ifndef _EDRV_FEC_H_
......@@ -71,7 +71,6 @@
#ifndef _EDRVSIM_H_
#define _EDRVSIM_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
......@@ -80,15 +79,11 @@
// types
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// 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_
......@@ -66,7 +66,6 @@
2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_API_H_
......@@ -82,14 +81,11 @@
// const defines
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// typedef
//---------------------------------------------------------------------------
typedef struct
{
typedef struct {
unsigned int m_uiNodeId;
tEplNmtState m_NmtState;
tEplNmtNodeEvent m_NodeEvent;
......@@ -98,26 +94,20 @@ typedef struct
} tEplApiEventNode;
typedef struct
{
typedef struct {
tEplNmtState m_NmtState; // local NMT state
tEplNmtBootEvent m_BootEvent;
WORD m_wErrorCode; // EPL error code if m_BootEvent == kEplNmtBootEventError
} tEplApiEventBoot;
typedef struct
{
typedef struct {
tEplLedType m_LedType; // type of the LED (e.g. Status or Error)
BOOL m_fOn; // state of the LED (e.g. on or off)
} tEplApiEventLed;
typedef enum
{
typedef enum {
kEplApiEventNmtStateChange = 0x10, // m_NmtStateChange
// kEplApiEventRequestNmt = 0x11, // m_bNmtCmd
kEplApiEventCriticalError = 0x12, // m_InternalError, Stack halted
......@@ -130,9 +120,7 @@ typedef enum
} tEplApiEventType;
typedef union
{
typedef union {
tEplEventNmtStateChange m_NmtStateChange;
tEplEventError m_InternalError;
tEplSdoComFinished m_Sdo;
......@@ -143,15 +131,11 @@ typedef union
} 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) (
tEplApiEventType EventType_p, // IN: event type (enum)
tEplApiEventArg* pEventArg_p, // IN: event argument (union)
void GENERIC* pUserArg_p);
typedef struct
{
typedef struct {
unsigned int m_uiSizeOfStruct;
BOOL m_fAsyncOnly; // do not need to register PRes
unsigned int m_uiNodeId; // local node ID
......@@ -208,97 +192,82 @@ typedef struct
BYTE m_sHostname[32];
BYTE m_abVendorSpecificExt2[48];
char* m_pszDevName; // NMT_ManufactDevName_VS (0x1008/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_pszDevName; // NMT_ManufactDevName_VS (0x1008/0 local OD)
char *m_pszHwVersion; // NMT_ManufactHwVers_VS (0x1009/0 local OD)
char *m_pszSwVersion; // NMT_ManufactSwVers_VS (0x100A/0 local OD)
tEplApiCbEvent m_pfnCbEvent;
void* m_pEventUserArg;
void *m_pEventUserArg;
tEplSyncCb m_pfnCbSync;
} tEplApiInitParam;
typedef struct
{
void* m_pImage;
typedef struct {
void *m_pImage;
unsigned int m_uiSize;
} tEplApiProcessImage;
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
tEplKernel PUBLIC EplApiInitialize(tEplApiInitParam* pInitParam_p);
tEplKernel PUBLIC EplApiInitialize(tEplApiInitParam * pInitParam_p);
tEplKernel PUBLIC EplApiShutdown(void);
tEplKernel PUBLIC EplApiReadObject(
tEplSdoComConHdl* pSdoComConHdl_p,
tEplKernel PUBLIC EplApiReadObject(tEplSdoComConHdl * pSdoComConHdl_p,
unsigned int uiNodeId_p,
unsigned int uiIndex_p,
unsigned int uiSubindex_p,
void* pDstData_le_p,
unsigned int* puiSize_p,
tEplSdoType SdoType_p,
void* pUserArg_p);
void *pDstData_le_p,
unsigned int *puiSize_p,
tEplSdoType SdoType_p, void *pUserArg_p);
tEplKernel PUBLIC EplApiWriteObject(
tEplSdoComConHdl* pSdoComConHdl_p,
tEplKernel PUBLIC EplApiWriteObject(tEplSdoComConHdl * pSdoComConHdl_p,
unsigned int uiNodeId_p,
unsigned int uiIndex_p,
unsigned int uiSubindex_p,
void* pSrcData_le_p,
void *pSrcData_le_p,
unsigned int uiSize_p,
tEplSdoType SdoType_p,
void* pUserArg_p);
tEplSdoType SdoType_p, void *pUserArg_p);
tEplKernel PUBLIC EplApiFreeSdoChannel(
tEplSdoComConHdl SdoComConHdl_p);
tEplKernel PUBLIC EplApiFreeSdoChannel(tEplSdoComConHdl SdoComConHdl_p);
tEplKernel PUBLIC EplApiReadLocalObject(
unsigned int uiIndex_p,
tEplKernel PUBLIC EplApiReadLocalObject(unsigned int uiIndex_p,
unsigned int uiSubindex_p,
void* pDstData_p,
unsigned int* puiSize_p);
void *pDstData_p,
unsigned int *puiSize_p);
tEplKernel PUBLIC EplApiWriteLocalObject(
unsigned int uiIndex_p,
tEplKernel PUBLIC EplApiWriteLocalObject(unsigned int uiIndex_p,
unsigned int uiSubindex_p,
void* pSrcData_p,
void *pSrcData_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,
void* pVar_p,
unsigned int* puiVarEntries_p,
tEplObdSize* pEntrySize_p,
tEplKernel PUBLIC EplApiLinkObject(unsigned int uiObjIndex_p,
void *pVar_p,
unsigned int *puiVarEntries_p,
tEplObdSize * pEntrySize_p,
unsigned int uiFirstSubindex_p);
tEplKernel PUBLIC EplApiExecNmtCommand(tEplNmtEvent NmtEvent_p);
tEplKernel PUBLIC EplApiProcess(void);
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_NMT_MN)) != 0)
tEplKernel PUBLIC EplApiMnTriggerStateChange(unsigned int uiNodeId_p,
tEplNmtNodeCommand NodeCommand_p);
#endif
tEplKernel PUBLIC EplApiGetIdentResponse(
unsigned int uiNodeId_p,
tEplIdentResponse** ppIdentResponse_p);
tEplKernel PUBLIC EplApiGetIdentResponse(unsigned int uiNodeId_p,
tEplIdentResponse **
ppIdentResponse_p);
// functions for process image will be implemented in separate file
tEplKernel PUBLIC EplApiProcessImageSetup(void);
tEplKernel PUBLIC EplApiProcessImageExchangeIn(tEplApiProcessImage* pPI_p);
tEplKernel PUBLIC EplApiProcessImageExchangeOut(tEplApiProcessImage* pPI_p);
tEplKernel PUBLIC EplApiProcessImageExchangeIn(tEplApiProcessImage * pPI_p);
tEplKernel PUBLIC EplApiProcessImageExchangeOut(tEplApiProcessImage * pPI_p);
#endif // #ifndef _EPL_API_H_
......@@ -86,46 +86,43 @@
#ifndef _EPLAMI_H_
#define _EPLAMI_H_
#if ((DEV_SYSTEM & _DEV_64BIT_SUPPORT_) == 0)
// #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
//---------------------------------------------------------------------------
// types
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Prototypen
//---------------------------------------------------------------------------
#ifdef __cplusplus
extern "C" {
extern "C" {
#endif
#if (TARGET_SYSTEM == _WIN32_)
#if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define INLINE_ENABLED TRUE
#define EPL_AMI_INLINED
#include "../EplStack/amix86.c"
#endif
#if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define INLINE_ENABLED TRUE
#define EPL_AMI_INLINED
#include "../EplStack/amix86.c"
#endif
#elif (TARGET_SYSTEM == _LINUX_)
#if defined(__m68k__) // it is an big endian machine
#if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define INLINE_ENABLED TRUE
#define EPL_AMI_INLINED
#include "../EplStack/amibe.c"
#endif
#endif
#if defined(__m68k__) // it is an big endian machine
#if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define INLINE_ENABLED TRUE
#define EPL_AMI_INLINED
#include "../EplStack/amibe.c"
#endif
#endif
#endif
//---------------------------------------------------------------------------
......@@ -140,13 +137,12 @@
#define AmiSetByteToLe(pAddr_p, bByteVal_p) {*(BYTE FAR*)(pAddr_p) = (bByteVal_p);}
#if !defined(INLINE_ENABLED)
void PUBLIC AmiSetWordToBe (void FAR* pAddr_p, WORD wWordVal_p);
void PUBLIC AmiSetDwordToBe (void FAR* pAddr_p, DWORD dwDwordVal_p);
void PUBLIC AmiSetWordToLe (void FAR* pAddr_p, WORD wWordVal_p);
void PUBLIC AmiSetDwordToLe (void FAR* pAddr_p, DWORD dwDwordVal_p);
void PUBLIC AmiSetWordToBe(void FAR * pAddr_p, WORD wWordVal_p);
void PUBLIC AmiSetDwordToBe(void FAR * pAddr_p, DWORD dwDwordVal_p);
void PUBLIC AmiSetWordToLe(void FAR * pAddr_p, WORD wWordVal_p);
void PUBLIC AmiSetDwordToLe(void FAR * pAddr_p, DWORD dwDwordVal_p);
#endif
//---------------------------------------------------------------------------
//
// read functions
......@@ -160,10 +156,10 @@ void PUBLIC AmiSetDwordToLe (void FAR* pAddr_p, DWORD dwDwordVal_p);
#if !defined(INLINE_ENABLED)
WORD PUBLIC AmiGetWordFromBe (void FAR* pAddr_p);
DWORD PUBLIC AmiGetDwordFromBe (void FAR* pAddr_p);
WORD PUBLIC AmiGetWordFromLe (void FAR* pAddr_p);
DWORD PUBLIC AmiGetDwordFromLe (void FAR* pAddr_p);
WORD PUBLIC AmiGetWordFromBe(void FAR * pAddr_p);
DWORD PUBLIC AmiGetDwordFromBe(void FAR * pAddr_p);
WORD PUBLIC AmiGetWordFromLe(void FAR * pAddr_p);
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 AmiSetDword24ToLe (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);
//---------------------------------------------------------------------------
//
......@@ -194,9 +189,8 @@ void PUBLIC AmiSetDword24ToLe (void FAR* pAddr_p, DWORD dwDwordVal_p);
//
//---------------------------------------------------------------------------
DWORD PUBLIC AmiGetDword24FromBe (void FAR* pAddr_p);
DWORD PUBLIC AmiGetDword24FromLe (void FAR* pAddr_p);
DWORD PUBLIC AmiGetDword24FromBe(void FAR * pAddr_p);
DWORD PUBLIC AmiGetDword24FromLe(void FAR * pAddr_p);
//#ifdef USE_VAR64
......@@ -213,9 +207,8 @@ DWORD PUBLIC AmiGetDword24FromLe (void FAR* pAddr_p);
//
//---------------------------------------------------------------------------
void PUBLIC AmiSetQword40ToBe (void FAR* pAddr_p, QWORD qwQwordVal_p);
void PUBLIC AmiSetQword40ToLe (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);
//---------------------------------------------------------------------------
//
......@@ -229,9 +222,8 @@ void PUBLIC AmiSetQword40ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p);
//
//---------------------------------------------------------------------------
QWORD PUBLIC AmiGetQword40FromBe (void FAR* pAddr_p);
QWORD PUBLIC AmiGetQword40FromLe (void FAR* pAddr_p);
QWORD PUBLIC AmiGetQword40FromBe(void FAR * pAddr_p);
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 AmiSetQword48ToLe (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);
//---------------------------------------------------------------------------
//
......@@ -262,9 +253,8 @@ void PUBLIC AmiSetQword48ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p);
//
//---------------------------------------------------------------------------
QWORD PUBLIC AmiGetQword48FromBe (void FAR* pAddr_p);
QWORD PUBLIC AmiGetQword48FromLe (void FAR* pAddr_p);
QWORD PUBLIC AmiGetQword48FromBe(void FAR * pAddr_p);
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 AmiSetQword56ToLe (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);
//---------------------------------------------------------------------------
//
......@@ -295,9 +284,8 @@ void PUBLIC AmiSetQword56ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p);
//
//---------------------------------------------------------------------------
QWORD PUBLIC AmiGetQword56FromBe (void FAR* pAddr_p);
QWORD PUBLIC AmiGetQword56FromLe (void FAR* pAddr_p);
QWORD PUBLIC AmiGetQword56FromBe(void FAR * pAddr_p);
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 AmiSetQword64ToLe (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);
//---------------------------------------------------------------------------
//
......@@ -328,9 +315,8 @@ void PUBLIC AmiSetQword64ToLe (void FAR* pAddr_p, QWORD qwQwordVal_p);
//
//---------------------------------------------------------------------------
QWORD PUBLIC AmiGetQword64FromBe (void FAR* pAddr_p);
QWORD PUBLIC AmiGetQword64FromLe (void FAR* pAddr_p);
QWORD PUBLIC AmiGetQword64FromBe(void FAR * pAddr_p);
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);
//
//---------------------------------------------------------------------------
void PUBLIC AmiGetTimeOfDay (void FAR* pAddr_p, tTimeOfDay FAR* pTimeOfDay_p);
void PUBLIC AmiGetTimeOfDay(void FAR * pAddr_p,
tTimeOfDay FAR * pTimeOfDay_p);
#endif
#undef INLINE_ENABLED // disable actual inlining of functions
#define EPL_AMI_INCLUDED
#ifdef __cplusplus
}
}
#endif
#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 @@
2006/10/11 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_API_LINUX_H_
#define _EPL_API_LINUX_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
#define EPLLIN_DEV_NAME "epl" // used for "/dev" and "/proc" entry
//---------------------------------------------------------------------------
// Commands for <ioctl>
//---------------------------------------------------------------------------
......@@ -98,45 +95,40 @@
#define EPLLIN_CMD_PI_SETUP 11 // ulArg_p ~ 0
#define EPLLIN_CMD_SHUTDOWN 12 // ulArg_p ~ 0
//---------------------------------------------------------------------------
// typedef
//---------------------------------------------------------------------------
typedef struct
{
typedef struct {
unsigned int m_uiEventArgSize;
tEplApiEventArg* m_pEventArg;
tEplApiEventType* m_pEventType;
tEplApiEventArg *m_pEventArg;
tEplApiEventType *m_pEventType;
tEplKernel m_RetCbEvent;
} tEplLinEvent;
typedef struct
{
typedef struct {
tEplSdoComConHdl m_SdoComConHdl;
BOOL m_fValidSdoComConHdl;
unsigned int m_uiNodeId;
unsigned int m_uiIndex;
unsigned int m_uiSubindex;
void* m_le_pData;
void *m_le_pData;
unsigned int m_uiSize;
tEplSdoType m_SdoType;
void* m_pUserArg;
void *m_pUserArg;
} tEplLinSdoObject;
typedef struct
{
typedef struct {
unsigned int m_uiIndex;
unsigned int m_uiSubindex;
void* m_pData;
void *m_pData;
unsigned int m_uiSize;
} tEplLinLocalObject;
typedef struct
{
typedef struct {
unsigned int m_uiNodeId;
tEplNmtNodeCommand m_NodeCommand;
......@@ -146,8 +138,4 @@ typedef struct
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPL_API_LINUX_H_
......@@ -71,9 +71,6 @@
#ifndef _EPLCFG_H_
#define _EPLCFG_H_
// =========================================================================
// generic defines which for whole EPL Stack
// =========================================================================
......@@ -113,7 +110,6 @@
// * EPL_DBGLVL_ERROR = 0x40000000L
// * EPL_DBGLVL_ALWAYS = 0x80000000L
// EPL_MODULE_INTEGRATION defines all modules which are included in
// EPL application. Please add or delete modules for your application.
#define EPL_MODULE_INTEGRATION EPL_MODULE_OBDK \
......@@ -155,7 +151,6 @@
// number of used ethernet controller
//#define EDRV_USED_ETH_CTRL 1
// =========================================================================
// Data Link Layer (DLL) specific defines
// =========================================================================
......@@ -170,7 +165,6 @@
#define EPL_DLL_PRES_READY_AFTER_SOA FALSE
//#define EPL_DLL_PRES_READY_AFTER_SOA TRUE
// =========================================================================
// OBD specific defines
// =========================================================================
......@@ -188,7 +182,6 @@
#define EPL_OBD_USE_VARIABLE_SUBINDEX_TAB TRUE
// =========================================================================
// Timer module specific defines
// =========================================================================
......@@ -200,8 +193,4 @@
#define EPL_TIMER_USE_HIGHRES TRUE
//#define EPL_TIMER_USE_HIGHRES FALSE
#endif //_EPLCFG_H_
......@@ -66,13 +66,11 @@
2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_DEF_H_
#define _EPL_DEF_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
......@@ -126,8 +124,6 @@
#define EPL_C_DLL_MAX_ASND_SERVICE_IDS 5 // see tEplDllAsndServiceId in EplDll.h
// Default configuration
// ======================
......@@ -352,11 +348,8 @@
// typedef
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPL_DEF_H_
......@@ -66,7 +66,6 @@
2006/06/08 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_DLL_H_
......@@ -79,7 +78,6 @@
// const defines
//---------------------------------------------------------------------------
#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
#endif
......@@ -88,36 +86,31 @@
// typedef
//---------------------------------------------------------------------------
typedef enum
{
typedef enum {
kEplDllAsndNotDefined = 0x00,
kEplDllAsndIdentResponse = 0x01,
kEplDllAsndStatusResponse = 0x02,
kEplDllAsndNmtRequest = 0x03,
kEplDllAsndNmtCommand = 0x04,
kEplDllAsndSdo = 0x05
} tEplDllAsndServiceId;
typedef enum
{
typedef enum {
kEplDllAsndFilterNone = 0x00,
kEplDllAsndFilterLocal = 0x01, // receive only ASnd frames with local or broadcast node ID
kEplDllAsndFilterAny = 0x02, // receive any ASnd frame
} tEplDllAsndFilter;
typedef enum
{
typedef enum {
kEplDllReqServiceNo = 0x00,
kEplDllReqServiceIdent = 0x01,
kEplDllReqServiceStatus = 0x02,
kEplDllReqServiceNmtRequest = 0x03,
kEplDllReqServiceUnspecified= 0xFF,
kEplDllReqServiceUnspecified = 0xFF,
} tEplDllReqServiceId;
typedef enum
{
typedef enum {
kEplDllAsyncReqPrioNmt = 0x07, // PRIO_NMT_REQUEST
kEplDllAsyncReqPrio6 = 0x06,
kEplDllAsyncReqPrio5 = 0x05,
......@@ -129,16 +122,14 @@ typedef enum
} tEplDllAsyncReqPriority;
typedef struct
{
typedef struct {
unsigned int m_uiFrameSize;
tEplFrame * m_pFrame;
tEplFrame *m_pFrame;
tEplNetTime m_NetTime;
} tEplFrameInfo;
typedef struct
{
typedef struct {
unsigned int m_uiSizeOfStruct;
BOOL m_fAsyncOnly; // do not need to register PRes-Frame
unsigned int m_uiNodeId; // local node ID
......@@ -179,8 +170,7 @@ typedef struct
} tEplDllConfigParam;
typedef struct
{
typedef struct {
unsigned int m_uiSizeOfStruct;
DWORD m_dwDeviceType; // NMT_DeviceType_U32
DWORD m_dwVendorId; // NMT_IdentityObject_REC.VendorId_U32
......@@ -200,8 +190,7 @@ typedef struct
} tEplDllIdentParam;
typedef struct
{
typedef struct {
unsigned int m_uiNodeId;
WORD m_wPreqPayloadLimit; // object 0x1F8B: NMT_MNPReqPayloadLimitList_AU16
WORD m_wPresPayloadLimit; // object 0x1F8D: NMT_PResPayloadLimitList_AU16
......@@ -213,8 +202,4 @@ typedef struct
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPL_DLL_H_
......@@ -66,13 +66,11 @@
2006/06/20 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_DLLCAL_H_
#define _EPL_DLLCAL_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
......@@ -105,15 +103,13 @@
// typedef
//---------------------------------------------------------------------------
typedef struct
{
typedef struct {
tEplDllAsndServiceId m_ServiceId;
tEplDllAsndFilter m_Filter;
} tEplDllCalAsndServiceIdFilter;
typedef struct
{
typedef struct {
tEplDllReqServiceId m_Service;
unsigned int m_uiNodeId;
BYTE m_bSoaFlag1;
......@@ -124,8 +120,4 @@ typedef struct
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPL_DLLKCAL_H_
......@@ -71,13 +71,11 @@
#ifndef _EPL_ERRORDEF_H_
#define _EPL_ERRORDEF_H_
//---------------------------------------------------------------------------
// return codes
//---------------------------------------------------------------------------
typedef enum
{
typedef enum {
// area for generic errors 0x0000 - 0x000F
kEplSuccessful = 0x0000, // no error/successful run
kEplIllegalInstance = 0x0001, // the called Instanz does not exist
......@@ -175,7 +173,7 @@ typedef enum
// area for SDO Command Layer Module 0x0070 - 0x007F
kEplSdoComUnsupportedProt = 0x0070, // unsupported Protocol selected
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
kEplSdoComInvalidSendType = 0x0074, // the stated to of frame to send is
// not possible
......@@ -189,8 +187,6 @@ typedef enum
kEplEventUnknownSink = 0x0080, // unknown sink for event
kEplEventPostError = 0x0081, // error during post of event
// area for EPL Timer Modul 0x0090 - 0x009F
kEplTimerInvalidHandle = 0x0090, // invalid handle for timer
kEplTimerNoTimerCreated = 0x0091, // no timer was created caused by
......@@ -201,7 +197,6 @@ typedef enum
kEplSdoAsndNoFreeHandle = 0x00A1, // no free handle for connection
kEplSdoAsndInvalidHandle = 0x00A2, // handle for connection is invalid
// area for PDO module 0x00B0 - 0x00BF
kEplPdoNotExist = 0x00B0, // selected PDO does not exist
kEplPdoLengthExceeded = 0x00B1, // length of PDO mapping exceedes 64 bis
......@@ -248,7 +243,6 @@ typedef enum
kEplCfgMaUnsuppDatatypeDcf = 0x00C7, // unsupported datatype found in dcf
// -> this entry was not configured
// area for LSS master module 0x00D0 - 0x00DF
/* kEplLssmIllegalMode = 0x00D0, // illegal LSS mode (operation / configuration)
kEplLssmIllegalState = 0x00D1, // function was called in illegal state of LSS master
......@@ -293,10 +287,8 @@ typedef enum
} tEplKernel;
#endif
//EOF
// 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,7 +66,6 @@
2006/06/12 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_EVENT_H_
......@@ -90,7 +89,6 @@
#define EPL_EVENT_SIZE_SHB_USER_TO_KERNEL 32768 // 32 kByte
#endif
// max size of event argument
#ifndef EPL_MAX_EVENT_ARG_SIZE
#define EPL_MAX_EVENT_ARG_SIZE 256 // because of PDO
......@@ -116,14 +114,12 @@
#define EPL_DLL_ERR_INVALID_FORMAT 0x00200000L // no object (NMT_GT6)
#define EPL_DLL_ERR_ADDRESS_CONFLICT 0x00400000L // no object (remove CN from configuration)
//---------------------------------------------------------------------------
// typedef
//---------------------------------------------------------------------------
// EventType determines the argument of the event
typedef enum
{
typedef enum {
kEplEventTypeNmtEvent = 0x01, // NMT event
// arg is pointer to tEplNmtEvent
kEplEventTypePdoRx = 0x02, // PDO frame received event (PRes/PReq)
......@@ -166,7 +162,7 @@ typedef enum
// arg is pointer to tEplDllNodeInfo
kEplEventTypeDllkDelNode = 0x15, // remove node from isochronous phase
// 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
kEplEventTypeDllkStartReducedCycle = 0x17, // start reduced EPL cycle on MN
// arg is pointer to nothing
......@@ -175,10 +171,8 @@ typedef enum
} tEplEventType;
// EventSink determines the consumer of the event
typedef enum
{
typedef enum {
kEplEventSinkSync = 0x00, // Sync event for application or kernel EPL module
kEplEventSinkNmtk = 0x01, // events for Nmtk module
kEplEventSinkDllk = 0x02, // events for Dllk module
......@@ -195,10 +189,8 @@ typedef enum
} tEplEventSink;
// EventSource determines the source of an errorevent
typedef enum
{
typedef enum {
// kernelspace modules
kEplEventSourceDllk = 0x01, // Dllk module
kEplEventSourceNmtk = 0x02, // Nmtk module
......@@ -227,44 +219,35 @@ typedef enum
} tEplEventSource;
// structure of EPL event (element order must not be changed!)
typedef struct
{
tEplEventType m_EventType /*:28*/; // event type
tEplEventSink m_EventSink /*:4*/; // event sink
typedef struct {
tEplEventType m_EventType /*:28 */ ; // event type
tEplEventSink m_EventSink /*:4 */ ; // event sink
tEplNetTime m_NetTime; // timestamp
unsigned int m_uiSize; // size of argument
void * m_pArg; // argument of event
void *m_pArg; // argument of event
} tEplEvent;
// short structure of EPL event without argument and its size (element order must not be changed!)
typedef struct
{
tEplEventType m_EventType /*:28*/; // event type
tEplEventSink m_EventSink /*:4*/; // event sink
typedef struct {
tEplEventType m_EventType /*:28 */ ; // event type
tEplEventSink m_EventSink /*:4 */ ; // event sink
tEplNetTime m_NetTime; // timestamp
} tEplEventShort;
typedef struct
{
typedef struct {
unsigned int m_uiIndex;
unsigned int m_uiSubIndex;
} tEplEventObdError;
// structure for kEplEventTypeError
typedef struct
{
typedef struct {
tEplEventSource m_EventSource; // module which posted this error event
tEplKernel m_EplError; // EPL error which occured
union
{
union {
BYTE m_bArg;
DWORD m_dwArg;
tEplEventSource m_EventSource; // from Eventk/u module (originating error source)
......@@ -275,29 +258,22 @@ typedef struct
} tEplEventError;
// structure for kEplEventTypeDllError
typedef struct
{
typedef struct {
unsigned long m_ulDllErrorEvents; // EPL_DLL_ERR_*
unsigned int m_uiNodeId;
tEplNmtState m_NmtState;
} tEplErrorHandlerkEvent;
// callback function to get informed about sync event
typedef tEplKernel (PUBLIC* tEplSyncCb) (void);
typedef tEplKernel(PUBLIC * tEplSyncCb) (void);
// callback function for generic events
typedef tEplKernel (PUBLIC* tEplProcessEventCb) (tEplEvent* pEplEvent_p);
typedef tEplKernel(PUBLIC * tEplProcessEventCb) (tEplEvent * pEplEvent_p);
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPL_EVENT_H_
......@@ -66,18 +66,15 @@
2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_FRAME_H_
#define _EPL_FRAME_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
// defines for EplFrame.m_wFlag
#define EPL_FRAME_FLAG1_RD 0x01 // ready (PReq, PRes)
#define EPL_FRAME_FLAG1_ER 0x02 // exception reset (error signalling) (SoA)
......@@ -107,12 +104,10 @@
#define EPL_VERSION_SUB 0x0F // sub version
#define EPL_VERSION_MAIN 0xF0 // main version
//---------------------------------------------------------------------------
// typedef
//---------------------------------------------------------------------------
// $$$ d.k.: move this definition to global.h
// byte-align structures
#ifdef _MSC_VER
......@@ -125,9 +120,7 @@
# error you must byte-align these structures with the appropriate compiler directives
#endif
typedef struct
{
typedef struct {
// Offset 17
BYTE m_le_bRes1; // reserved
// Offset 18
......@@ -141,8 +134,7 @@ typedef struct
} PACK_STRUCT tEplSocFrame;
typedef struct
{
typedef struct {
// Offset 17
BYTE m_le_bRes1; // reserved
// Offset 18
......@@ -156,12 +148,11 @@ typedef struct
// Offset 22
WORD m_le_wSize;
// Offset 24
BYTE m_le_abPayload[256 /*D_NMT_IsochrRxMaxPayload_U16*/];
BYTE m_le_abPayload[256 /*D_NMT_IsochrRxMaxPayload_U16 */ ];
} PACK_STRUCT tEplPreqFrame;
typedef struct
{
typedef struct {
// Offset 17
BYTE m_le_bNmtStatus; // NMT state
// Offset 18
......@@ -176,12 +167,11 @@ typedef struct
WORD m_le_wSize;
// Offset 24
BYTE m_le_abPayload[256 /*D_NMT_IsochrRxMaxPayload_U16
/ D_NMT_IsochrTxMaxPayload_U16*/];
/ D_NMT_IsochrTxMaxPayload_U16 */ ];
} PACK_STRUCT tEplPresFrame;
typedef struct
{
typedef struct {
// Offset 17
BYTE m_le_bNmtStatus; // NMT state
// Offset 18
......@@ -197,8 +187,7 @@ typedef struct
} PACK_STRUCT tEplSoaFrame;
typedef struct
{
typedef struct {
WORD m_wEntryType;
WORD m_wErrorCode;
tEplNetTime m_TimeStamp;
......@@ -206,8 +195,7 @@ typedef struct
} PACK_STRUCT tEplErrHistoryEntry;
typedef struct
{
typedef struct {
// Offset 18
BYTE m_le_bFlag1; // Flags: EN, EC
BYTE m_le_bFlag2; // Flags: PR, RS
......@@ -218,8 +206,7 @@ typedef struct
} PACK_STRUCT tEplStatusResponse;
typedef struct
{
typedef struct {
// Offset 18
BYTE m_le_bFlag1; // Flags: res
BYTE m_le_bFlag2; // Flags: PR, RS
......@@ -251,8 +238,7 @@ typedef struct
} PACK_STRUCT tEplIdentResponse;
typedef struct
{
typedef struct {
// Offset 18
BYTE m_le_bNmtCommandId;
BYTE m_le_bRes1;
......@@ -260,8 +246,7 @@ typedef struct
} PACK_STRUCT tEplNmtCommandService;
typedef struct
{
typedef struct {
BYTE m_le_bReserved;
BYTE m_le_bTransactionId;
BYTE m_le_bFlags;
......@@ -270,12 +255,10 @@ typedef struct
WORD m_le_wReserved;
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
typedef struct
{
typedef struct {
BYTE m_le_bRecSeqNumCon;
BYTE m_le_bSendSeqNumCon;
BYTE m_le_abReserved[2];
......@@ -283,8 +266,7 @@ typedef struct
} PACK_STRUCT tEplAsySdoSeq;
typedef struct
{
typedef struct {
// Offset 18
BYTE m_le_bNmtCommandId;
BYTE m_le_bTargetNodeId;
......@@ -292,9 +274,7 @@ typedef struct
} PACK_STRUCT tEplNmtRequestService;
typedef union
{
typedef union {
// Offset 18
tEplStatusResponse m_StatusResponse;
tEplIdentResponse m_IdentResponse;
......@@ -302,12 +282,11 @@ typedef union
tEplNmtRequestService m_NmtRequestService;
tEplAsySdoSeq m_SdoSequenceFrame;
BYTE m_le_abPayload[256 /*D_NMT_ASndTxMaxPayload_U16
/ D_NMT_ASndRxMaxPayload_U16*/];
/ D_NMT_ASndRxMaxPayload_U16 */ ];
} tEplAsndPayload;
typedef struct
{
typedef struct {
// Offset 17
BYTE m_le_bServiceId;
// Offset 18
......@@ -315,8 +294,7 @@ typedef struct
} PACK_STRUCT tEplAsndFrame;
typedef union
{
typedef union {
// Offset 17
tEplSocFrame m_Soc;
tEplPreqFrame m_Preq;
......@@ -326,8 +304,7 @@ typedef union
} tEplFrameData;
typedef struct
{
typedef struct {
// Offset 0
BYTE m_be_abDstMac[6]; // MAC address of the addressed nodes
// Offset 6
......@@ -350,9 +327,7 @@ typedef struct
# pragma pack( pop, packing )
#endif
typedef enum
{
typedef enum {
kEplMsgTypeNonEpl = 0x00,
kEplMsgTypeSoc = 0x01,
kEplMsgTypePreq = 0x03,
......@@ -362,13 +337,8 @@ typedef enum
} tEplMsgType;
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPL_FRAME_H_
......@@ -66,7 +66,6 @@
2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_INC_H_
......@@ -77,28 +76,28 @@
// ============================================================================
#if defined(WIN32) || defined(_WIN32)
#ifdef UNDER_RTSS
#ifdef UNDER_RTSS
// RTX header
#include <windows.h>
#include <process.h>
#include <rtapi.h>
#include <windows.h>
#include <process.h>
#include <rtapi.h>
#elif __BORLANDC__
#elif __BORLANDC__
// borland C header
#include <windows.h>
#include <process.h>
#include <windows.h>
#include <process.h>
#elif WINCE
#include <windows.h>
#elif WINCE
#include <windows.h>
#else
#else
// MSVC needs to include windows.h at first
// the following defines ar necessary for function prototypes for waitable timers
#define _WIN32_WINDOWS 0x0401
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <process.h>
#endif
#define _WIN32_WINDOWS 0x0401
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <process.h>
#endif
#endif
......@@ -140,14 +139,12 @@
//---------------------------------------------------------------------------
// IEEE 1588 conformant net time structure
typedef struct
{
typedef struct {
DWORD m_dwSec;
DWORD m_dwNanoSec;
} tEplNetTime;
#include "EplTarget.h" // target specific functions and definitions
#include "EplAmi.h"
......@@ -179,54 +176,53 @@ typedef struct
#define EPL_FEATURE_RT1 0x00001000
#define EPL_FEATURE_RT2 0x00002000
// generate EPL NMT_FeatureFlags_U32
#ifndef EPL_DEF_FEATURE_ISOCHR
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_DLLK)) != 0)
#define EPL_DEF_FEATURE_ISOCHR (EPL_FEATURE_ISOCHR)
#else
#define EPL_DEF_FEATURE_ISOCHR 0
#endif
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_DLLK)) != 0)
#define EPL_DEF_FEATURE_ISOCHR (EPL_FEATURE_ISOCHR)
#else
#define EPL_DEF_FEATURE_ISOCHR 0
#endif
#endif
#ifndef EPL_DEF_FEATURE_SDO_ASND
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_ASND)) != 0)
#define EPL_DEF_FEATURE_SDO_ASND (EPL_FEATURE_SDO_ASND)
#else
#define EPL_DEF_FEATURE_SDO_ASND 0
#endif
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_ASND)) != 0)
#define EPL_DEF_FEATURE_SDO_ASND (EPL_FEATURE_SDO_ASND)
#else
#define EPL_DEF_FEATURE_SDO_ASND 0
#endif
#endif
#ifndef EPL_DEF_FEATURE_SDO_UDP
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_UDP)) != 0)
#define EPL_DEF_FEATURE_SDO_UDP (EPL_FEATURE_SDO_UDP)
#else
#define EPL_DEF_FEATURE_SDO_UDP 0
#endif
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_UDP)) != 0)
#define EPL_DEF_FEATURE_SDO_UDP (EPL_FEATURE_SDO_UDP)
#else
#define EPL_DEF_FEATURE_SDO_UDP 0
#endif
#endif
#ifndef EPL_DEF_FEATURE_SDO_PDO
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_PDO)) != 0)
#define EPL_DEF_FEATURE_SDO_PDO (EPL_FEATURE_SDO_PDO)
#else
#define EPL_DEF_FEATURE_SDO_PDO 0
#endif
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_SDO_PDO)) != 0)
#define EPL_DEF_FEATURE_SDO_PDO (EPL_FEATURE_SDO_PDO)
#else
#define EPL_DEF_FEATURE_SDO_PDO 0
#endif
#endif
#ifndef EPL_DEF_FEATURE_PDO_DYN
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_PDOK)) != 0)
#define EPL_DEF_FEATURE_PDO_DYN (EPL_FEATURE_PDO_DYN)
#else
#define EPL_DEF_FEATURE_PDO_DYN 0
#endif
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_PDOK)) != 0)
#define EPL_DEF_FEATURE_PDO_DYN (EPL_FEATURE_PDO_DYN)
#else
#define EPL_DEF_FEATURE_PDO_DYN 0
#endif
#endif
#ifndef EPL_DEF_FEATURE_CFGMA
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_CFGMA)) != 0)
#define EPL_DEF_FEATURE_CFGMA (EPL_FEATURE_CFGMA)
#else
#define EPL_DEF_FEATURE_CFGMA 0
#endif
#if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_CFGMA)) != 0)
#define EPL_DEF_FEATURE_CFGMA (EPL_FEATURE_CFGMA)
#else
#define EPL_DEF_FEATURE_CFGMA 0
#endif
#endif
#define EPL_DEF_FEATURE_FLAGS (EPL_DEF_FEATURE_ISOCHR \
......@@ -236,12 +232,10 @@ typedef struct
| EPL_DEF_FEATURE_PDO_DYN \
| EPL_DEF_FEATURE_CFGMA)
#ifndef tabentries
#define tabentries(a) (sizeof(a)/sizeof(*(a)))
#endif
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
......@@ -249,15 +243,14 @@ typedef struct
// definitions for DLL export
#if ((DEV_SYSTEM == _DEV_WIN32_) || (DEV_SYSTEM == _DEV_WIN_CE_)) && defined (COP_LIB)
#define EPLDLLEXPORT __declspec (dllexport)
#define EPLDLLEXPORT __declspec (dllexport)
#else
#define EPLDLLEXPORT
#define EPLDLLEXPORT
#endif
// ============================================================================
// common debug macros
// ============================================================================
......@@ -381,18 +374,12 @@ typedef struct
#define EPL_DBGLVL_ALWAYS_TRACE3 DEBUG_LVL_ALWAYS_TRACE3
#define EPL_DBGLVL_ALWAYS_TRACE4 DEBUG_LVL_ALWAYS_TRACE4
//---------------------------------------------------------------------------
// typedef
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPL_INC_H_
......@@ -71,22 +71,19 @@
#ifndef _EPLINSTDEF_H_
#define _EPLINSTDEF_H_
// =========================================================================
// types and macros for generating instances
// =========================================================================
typedef enum
{
typedef enum {
kStateUnused = 0,
kStateDeleted = 1,
kStateUsed = 0xFF
} tInstState;
//------------------------------------------------------------------------------------------
typedef void MEM* tEplPtrInstance;
typedef void MEM *tEplPtrInstance;
typedef BYTE tEplInstanceHdl;
// define const for illegale values
......@@ -102,13 +99,12 @@ typedef BYTE tEplInstanceHdl;
//--------------------------------------------------------------------------------------
// memory attributes for instance table
#define INST_NEAR // faster access to variables
#define INST_FAR // variables wich have to located in xdata
#define STATIC // prevent warnings for variables with same name
#define INSTANCE_TYPE_BEGIN typedef struct {
#define INSTANCE_TYPE_END } tEplInstanceInfo;
#define INST_NEAR // faster access to variables
#define INST_FAR // variables wich have to located in xdata
#define STATIC // prevent warnings for variables with same name
#define INSTANCE_TYPE_BEGIN typedef struct {
#define INSTANCE_TYPE_END } tEplInstanceInfo;
//--------------------------------------------------------------------------------------
// macro definition for API interface
......@@ -117,53 +113,51 @@ typedef BYTE tEplInstanceHdl;
// declaration:
// 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
#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
#define CCM_DECL_INSTANCE_PTR_LOCAL tCcmInstanceInfo MEM* pInstance;
#define CCM_DECL_PTR_INSTANCE_HDL_LOCAL tEplInstanceHdl MEM* pInstanceHandle;
#define CCM_DECL_INSTANCE_PTR_LOCAL tCcmInstanceInfo MEM* pInstance;
#define CCM_DECL_PTR_INSTANCE_HDL_LOCAL tEplInstanceHdl MEM* pInstanceHandle;
// reference:
// 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
#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
#define CCM_INST_ENTRY (*((tEplPtrInstance)pInstance))
#define CCM_INST_ENTRY (*((tEplPtrInstance)pInstance))
// processing:
// 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);}
// 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);}
// 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);
#define CCM_CHECK_INSTANCE_PTR() if (pInstance == CCM_ILLINSTANCE) \
#define CCM_CHECK_INSTANCE_PTR() if (pInstance == CCM_ILLINSTANCE) \
{return (kEplNoFreeInstance);}
#define CCM_GET_INSTANCE_PTR() pInstance = CcmGetInstancePtr (InstanceHandle);
#define CCM_GET_FREE_INSTANCE_PTR() pInstance = GetFreeInstance (); \
#define CCM_GET_INSTANCE_PTR() pInstance = CcmGetInstancePtr (InstanceHandle);
#define CCM_GET_FREE_INSTANCE_PTR() pInstance = GetFreeInstance (); \
ASSERT (pInstance != CCM_ILLINSTANCE);
//--------------------------------------------------------------------------------------
// macro definition for stack interface
//--------------------------------------------------------------------------------------
......@@ -171,52 +165,52 @@ typedef BYTE tEplInstanceHdl;
// macros for declaration within the function header, prototype or local var list
// Declaration of pointers within function paramater list must defined as void MEM*
// 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_LOCAL tEplPtrInstance 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;
// macros for reference of pointer to instance
// 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_ADDR_INSTANCE_PTR_ &pInstance,
#define EPL_MCO_INSTANCE_PTR pInstance
#define EPL_MCO_INSTANCE_PTR_ pInstance,
#define EPL_MCO_ADDR_INSTANCE_PTR_ &pInstance,
// macro for access of struct members of one instance
// An access to a member of instance table must be casted by the local
// defined type of instance table.
#define EPL_MCO_INST_ENTRY (*(tEplPtrInstance)pInstance)
#define EPL_MCO_GLB_VAR(var) (((tEplPtrInstance)pInstance)->var)
#define EPL_MCO_INST_ENTRY (*(tEplPtrInstance)pInstance)
#define EPL_MCO_GLB_VAR(var) (((tEplPtrInstance)pInstance)->var)
// macros for process pointer to instance
#define EPL_MCO_GET_INSTANCE_PTR() pInstance = (tEplPtrInstance) GetInstancePtr (InstanceHandle);
#define EPL_MCO_GET_FREE_INSTANCE_PTR() pInstance = (tEplPtrInstance) GetFreeInstance (); \
#define EPL_MCO_GET_INSTANCE_PTR() pInstance = (tEplPtrInstance) GetInstancePtr (InstanceHandle);
#define EPL_MCO_GET_FREE_INSTANCE_PTR() pInstance = (tEplPtrInstance) GetFreeInstance (); \
ASSERT (pInstance != CCM_ILLINSTANCE);
// 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);
// 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
// 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
#define EPL_MCO_CHECK_PTR_INSTANCE_PTR() ASSERT (pInstancePtr != NULL);
#define EPL_MCO_SET_PTR_INSTANCE_PTR() (*pInstancePtr = pInstance);
#define EPL_MCO_CHECK_PTR_INSTANCE_PTR() ASSERT (pInstancePtr != NULL);
#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_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_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_WRITE_INSTANCE_STATE(a) EPL_MCO_GLB_VAR (m_InstState) = a;
// 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]; \
tFastByte InstNumber = 0; \
......@@ -229,10 +223,10 @@ typedef BYTE tEplInstanceHdl;
}
// 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 GetFreeInstance (void);
#define EPL_MCO_DECL_INSTANCE_FCT() \
#define EPL_MCO_DECL_INSTANCE_FCT() \
static tEplPtrInstance GetInstancePtr (tEplInstanceHdl InstHandle_p) { \
return &aEplInstanceTable_g[InstHandle_p]; } \
static tEplPtrInstance GetFreeInstance (void) { \
......@@ -245,27 +239,27 @@ typedef BYTE tEplInstanceHdl;
return CCM_ILLINSTANCE; }
// 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];
// this macro defines member variables in instance table which are needed in
// all modules of Epl stack
#define EPL_MCO_DECL_INSTANCE_MEMBER() \
#define EPL_MCO_DECL_INSTANCE_MEMBER() \
STATIC BYTE m_InstState; \
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
// Memory attributes for instance table.
#define INST_NEAR NEAR // faster access to variables
#define INST_FAR MEM // variables wich have to located in xdata
#define STATIC static // prevent warnings for variables with same name
#define INST_NEAR NEAR // faster access to variables
#define INST_FAR MEM // variables wich have to located in xdata
#define STATIC static // prevent warnings for variables with same name
#define INSTANCE_TYPE_BEGIN
#define INSTANCE_TYPE_END
#define INSTANCE_TYPE_BEGIN
#define INSTANCE_TYPE_END
// macros for declaration, initializing and member access for instance handle
// This class of macros are used by API function to inform CCM-modul which
......@@ -273,99 +267,98 @@ typedef BYTE tEplInstanceHdl;
// macros for reference of instance handle
// 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
#define CCM_DECL_INSTANCE_HDL void
#define CCM_DECL_INSTANCE_HDL_
#define CCM_DECL_INSTANCE_HDL void
#define CCM_DECL_INSTANCE_HDL_
// macros for process instance handle
#define CCM_CHECK_INSTANCE_HDL()
#define CCM_CHECK_INSTANCE_HDL()
// macros for declaration of pointer to instance handle
#define CCM_DECL_PTR_INSTANCE_HDL void
#define CCM_DECL_PTR_INSTANCE_HDL_
#define CCM_DECL_PTR_INSTANCE_HDL void
#define CCM_DECL_PTR_INSTANCE_HDL_
// 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.
#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_FREE_INSTANCE_PTR()
#define CCM_GET_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
// 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
#define EPL_MCO_DECL_INSTANCE_PTR void
#define EPL_MCO_DECL_INSTANCE_PTR_
#define EPL_MCO_DECL_INSTANCE_PTR_LOCAL
#define EPL_MCO_DECL_INSTANCE_PTR void
#define EPL_MCO_DECL_INSTANCE_PTR_
#define EPL_MCO_DECL_INSTANCE_PTR_LOCAL
// macros for reference of pointer to instance
// These macros are used for parameter passing to called function.
#define EPL_MCO_INSTANCE_PTR
#define EPL_MCO_INSTANCE_PTR_
#define EPL_MCO_ADDR_INSTANCE_PTR_
#define EPL_MCO_INSTANCE_PTR
#define EPL_MCO_INSTANCE_PTR_
#define EPL_MCO_ADDR_INSTANCE_PTR_
// macros for process pointer to instance
#define EPL_MCO_GET_INSTANCE_PTR()
#define EPL_MCO_GET_FREE_INSTANCE_PTR()
#define EPL_MCO_GET_INSTANCE_PTR()
#define EPL_MCO_GET_FREE_INSTANCE_PTR()
// 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
#define EPL_MCO_DECL_PTR_INSTANCE_PTR void
#define EPL_MCO_DECL_PTR_INSTANCE_PTR_
#define EPL_MCO_DECL_PTR_INSTANCE_PTR void
#define EPL_MCO_DECL_PTR_INSTANCE_PTR_
// macros for reference of pointer to instance pointer
// 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
#define EPL_MCO_CHECK_PTR_INSTANCE_PTR()
#define EPL_MCO_SET_PTR_INSTANCE_PTR()
#define EPL_MCO_CHECK_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_IDX_()
#define EPL_MCO_INSTANCE_PARAM_IDX()
#define EPL_MCO_INSTANCE_PARAM(a)
#define EPL_MCO_INSTANCE_PARAM_(a)
#define EPL_MCO_INSTANCE_PARAM_IDX_()
#define EPL_MCO_INSTANCE_PARAM_IDX()
// macro for access of struct members of one instance
#define EPL_MCO_INST_ENTRY aEplInstanceTable_g[0]
#define EPL_MCO_GLB_VAR(var) (var)
#define EPL_MCO_WRITE_INSTANCE_STATE(a)
#define EPL_MCO_INST_ENTRY aEplInstanceTable_g[0]
#define EPL_MCO_GLB_VAR(var) (var)
#define EPL_MCO_WRITE_INSTANCE_STATE(a)
// 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
#define EPL_MCO_DEFINE_INSTANCE_FCT()
#define EPL_MCO_DECL_INSTANCE_FCT()
#define EPL_MCO_DEFINE_INSTANCE_FCT()
#define EPL_MCO_DECL_INSTANCE_FCT()
// 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
// all modules of CANopen stack
#define EPL_MCO_DECL_INSTANCE_MEMBER()
#define EPL_MCO_DECL_INSTANCE_MEMBER()
#endif
/*
#if (CDRV_MAX_INSTANCES > 1)
......@@ -378,9 +371,7 @@ typedef BYTE tEplInstanceHdl;
#endif
*/
#endif // _EPLINSTDEF_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).
......@@ -66,39 +66,27 @@
2008/11/17 d.k.: start of the implementation
****************************************************************************/
#ifndef _EPLLED_H_
#define _EPLLED_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// typedef
//---------------------------------------------------------------------------
typedef enum
{
typedef enum {
kEplLedTypeStatus = 0x00,
kEplLedTypeError = 0x01,
} tEplLedType;
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPLLED_H_
......@@ -66,7 +66,6 @@
2006/06/09 k.t.: start of the implementation
****************************************************************************/
#ifndef _EPLNMT_H_
......@@ -106,8 +105,7 @@
// --> there are masks defined to indentify the
// super-states
typedef enum
{
typedef enum {
kEplNmtGsOff = 0x0000,
kEplNmtGsInitialising = 0x0019,
kEplNmtGsResetApplication = 0x0029,
......@@ -126,12 +124,10 @@ typedef enum
kEplNmtMsReadyToOperate = 0x026D,
kEplNmtMsOperational = 0x02FD,
kEplNmtMsBasicEthernet = 0x021E
} tEplNmtState;
// NMT-events
typedef enum
{
typedef enum {
// Events from DLL
// Events defined by EPL V2 specification
kEplNmtEventNoEvent = 0x00,
......@@ -154,8 +150,8 @@ typedef enum
kEplNmtEventResetNode = 0x11,
kEplNmtEventResetCom = 0x12,
kEplNmtEventResetConfig = 0x13,
kEplNmtEventEnterPreOperational2= 0x14,
kEplNmtEventEnableReadyToOperate= 0x15,
kEplNmtEventEnterPreOperational2 = 0x14,
kEplNmtEventEnableReadyToOperate = 0x15,
kEplNmtEventStartNode = 0x16, // NMT_CT7
kEplNmtEventStopNode = 0x17,
......@@ -178,43 +174,35 @@ typedef enum
} tEplNmtEvent;
// type for argument of event kEplEventTypeNmtStateChange
typedef struct
{
typedef struct {
tEplNmtState m_NewNmtState;
tEplNmtEvent m_NmtEvent;
} tEplEventNmtStateChange;
// structure for kEplEventTypeHeartbeat
typedef struct
{
typedef struct {
unsigned int m_uiNodeId; // NodeId
tEplNmtState m_NmtState; // NMT state (remember distinguish between MN / CN)
WORD m_wErrorCode; // EPL error code in case of NMT state NotActive
} tEplHeartbeatEvent;
typedef enum
{
typedef enum {
kEplNmtNodeEventFound = 0x00,
kEplNmtNodeEventUpdateSw = 0x01, // application shall update software 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)
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
kEplNmtNodeEventNmtState = 0x06,
kEplNmtNodeEventError = 0x07, // NMT error of CN
} tEplNmtNodeEvent;
typedef enum
{
typedef enum {
kEplNmtNodeCommandBoot = 0x01, // if EPL_NODEASSIGN_START_CN not set it must be issued after kEplNmtNodeEventFound
kEplNmtNodeCommandSwOk = 0x02, // application updated software on CN successfully
kEplNmtNodeCommandSwUpdated = 0x03, // application updated software on CN successfully
......@@ -226,9 +214,7 @@ typedef enum
} tEplNmtNodeCommand;
typedef enum
{
typedef enum {
kEplNmtBootEventBootStep1Finish = 0x00, // PreOp2 is possible
kEplNmtBootEventBootStep2Finish = 0x01, // ReadyToOp is possible
kEplNmtBootEventCheckComFinish = 0x02, // Operational is possible
......@@ -237,12 +223,8 @@ typedef enum
} tEplNmtBootEvent;
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPLNMT_H_
......@@ -66,7 +66,6 @@
2006/06/02 k.t.: start of the implementation, version 1.00
****************************************************************************/
#include "EplInc.h"
......@@ -74,7 +73,6 @@
#ifndef _EPLOBD_H_
#define _EPLOBD_H_
// ============================================================================
// defines
// ============================================================================
......@@ -97,19 +95,16 @@
// ============================================================================
// directions for access to object dictionary
typedef enum
{
typedef enum {
kEplObdDirInit = 0x00, // initialising after power on
kEplObdDirStore = 0x01, // store all object values to non volatile memory
kEplObdDirLoad = 0x02, // load all object values from non volatile memory
kEplObdDirRestore = 0x03, // deletes non volatile memory (restore)
kEplObdDirOBKCheck = 0xFF // reserved
}tEplObdDir;
} tEplObdDir;
// commands for store
typedef enum
{
typedef enum {
kEplObdCommNothing = 0x00,
kEplObdCommOpenWrite = 0x01,
kEplObdCommWriteObj = 0x02,
......@@ -119,12 +114,11 @@ typedef enum
kEplObdCommCloseRead = 0x06,
kEplObdCommClear = 0x07,
kEplObdCommUnknown = 0xFF
}tEplObdCommand;
} tEplObdCommand;
//-----------------------------------------------------------------------------------------------------------
// events of object callback function
typedef enum
{
typedef enum {
// m_pArg points to
// ---------------------
kEplObdEvCheckExist = 0x06, // checking if object does exist (reading and writing) NULL
......@@ -205,19 +199,15 @@ typedef unsigned int tEplObdAccess;
#define kEplObdAccSVGPW (kEplObdAccStore | kEplObdAccVar | kEplObdAccRange | kEplObdAccPdo | 0 | kEplObdAccWrite | 0 )
#define kEplObdAccSVGPRW (kEplObdAccStore | kEplObdAccVar | kEplObdAccRange | kEplObdAccPdo | 0 | kEplObdAccWrite | kEplObdAccRead)
typedef unsigned int tEplObdSize; // For all objects as objects size are used an unsigned int.
// -------------------------------------------------------------------------
// types for data types defined in DS301
// -------------------------------------------------------------------------
// types of objects in object dictionary
// DS-301 defines these types as WORD
typedef enum
{
typedef enum {
// types which are always supported
kEplObdTypBool = 0x0001,
......@@ -246,11 +236,9 @@ typedef enum
kEplObdTypUInt64 = 0x001B,
kEplObdTypTimeOfDay = 0x000C,
kEplObdTypTimeDiff = 0x000D
}tEplObdType;
} tEplObdType;
// other types are not supported in this version
// -------------------------------------------------------------------------
// types for data types defined in DS301
// -------------------------------------------------------------------------
......@@ -282,41 +270,35 @@ typedef double tEplObdReal64; // 0011
typedef tTimeOfDay tEplObdTimeOfDay; // 000C
typedef tTimeOfDay tEplObdTimeDifference; // 000D
// -------------------------------------------------------------------------
// structur for defining a variable
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
typedef enum
{
typedef enum {
kVarValidSize = 0x01,
kVarValidData = 0x02,
// kVarValidCallback = 0x04,
// kVarValidArg = 0x08,
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_
void * pParam_p);
typedef struct
{
typedef struct {
tEplVarParamValid m_ValidFlag;
unsigned int m_uiIndex;
unsigned int m_uiSubindex;
tEplObdSize m_Size;
void MEM* m_pData;
void MEM *m_pData;
// tEplVarCallback m_fpCallback;
// void * m_pArg;
} tEplVarParam;
typedef struct
{
void MEM* m_pData;
typedef struct {
void MEM *m_pData;
tEplObdSize m_Size;
/*
#if (EPL_PDO_USE_STATIC_MAPPING == FALSE)
......@@ -326,46 +308,39 @@ typedef struct
*/
} tEplObdVarEntry;
typedef struct
{
typedef struct {
tEplObdSize m_Size;
BYTE * m_pString;
BYTE *m_pString;
} tEplObdOString; // 000C
typedef struct
{
typedef struct {
tEplObdSize m_Size;
char * m_pString;
char *m_pString;
} tEplObdVString; // 000D
typedef struct
{
typedef struct {
tEplObdSize m_Size;
char * m_pDefString; // $$$ d.k. it is unused, so we could delete it
char * m_pString;
char *m_pDefString; // $$$ d.k. it is unused, so we could delete it
char *m_pString;
} tEplObdVStringDef;
typedef struct
{
typedef struct {
tEplObdSize m_Size;
BYTE * m_pDefString; // $$$ d.k. it is unused, so we could delete it
BYTE * m_pString;
BYTE *m_pDefString; // $$$ d.k. it is unused, so we could delete it
BYTE *m_pString;
} tEplObdOStringDef;
//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_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
// ============================================================================
// types
// ============================================================================
......@@ -374,42 +349,40 @@ typedef struct
// -------------------------------------------------------------------------
// Change not the order for this struct!!!
typedef struct
{
typedef struct {
unsigned int m_uiSubIndex;
tEplObdType m_Type;
tEplObdAccess m_Access;
void * m_pDefault;
void MEM* m_pCurrent; // points always to RAM
void *m_pDefault;
void MEM *m_pCurrent; // points always to RAM
} tEplObdSubEntry;
// r.d.: has always to be because new OBD-Macros for arrays
typedef tEplObdSubEntry * tEplObdSubEntryPtr;
typedef tEplObdSubEntry *tEplObdSubEntryPtr;
// -------------------------------------------------------------------------
// callback function for objdictionary modul
// -------------------------------------------------------------------------
// parameters for callback function
typedef struct
{
typedef struct {
tEplObdEvent m_ObdEvent;
unsigned int m_uiIndex;
unsigned int m_uiSubIndex;
void * m_pArg;
void *m_pArg;
DWORD m_dwAbortCode;
} tEplObdCbParam;
// define type for callback function: pParam_p points to tEplObdCbParam
typedef tEplKernel (PUBLIC ROM* tEplObdCallback) (CCM_DECL_INSTANCE_HDL_
tEplObdCbParam MEM* pParam_p);
typedef tEplKernel(PUBLIC ROM * tEplObdCallback) (CCM_DECL_INSTANCE_HDL_
tEplObdCbParam MEM *
pParam_p);
// do not change the order for this struct!!!
typedef struct
{
typedef struct {
unsigned int m_uiIndex;
tEplObdSubEntryPtr m_pSubIndex;
unsigned int m_uiCount;
......@@ -417,61 +390,55 @@ typedef struct
} tEplObdEntry;
// allways pointer
typedef tEplObdEntry * tEplObdEntryPtr;
typedef tEplObdEntry *tEplObdEntryPtr;
// -------------------------------------------------------------------------
// structur to initialize OBD module
// -------------------------------------------------------------------------
typedef struct
{
typedef struct {
tEplObdEntryPtr m_pPart;
tEplObdEntryPtr m_pManufacturerPart;
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;
#endif
#endif
} tEplObdInitParam;
// -------------------------------------------------------------------------
// structur for parameters of STORE RESTORE command
// -------------------------------------------------------------------------
typedef struct
{
typedef struct {
tEplObdCommand m_bCommand;
tEplObdPart m_bCurrentOdPart;
void MEM* m_pData;
void MEM *m_pData;
tEplObdSize m_ObjSize;
} tEplObdCbStoreParam;
typedef tEplKernel(PUBLIC ROM * tInitTabEntryCallback) (void MEM * pTabEntry_p,
unsigned int
uiObjIndex_p);
typedef tEplKernel (PUBLIC ROM* tInitTabEntryCallback) (
void MEM* pTabEntry_p,
unsigned int uiObjIndex_p);
typedef tEplKernel (PUBLIC ROM* tEplObdStoreLoadObjCallback) (CCM_DECL_INSTANCE_HDL_
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()
// -------------------------------------------------------------------------
typedef struct
{
typedef struct {
unsigned int m_uiLowerObjIndex; // lower limit of ObjIndex
unsigned int m_uiUpperObjIndex; // upper limit of ObjIndex
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_uiMaxEntries; // max. tabel entries
......@@ -480,25 +447,18 @@ typedef struct
//-------------------------------------------------------------------
// enum for function EplObdSetNodeId
//-------------------------------------------------------------------
typedef enum
{
typedef enum {
kEplObdNodeIdUnknown = 0x00, // unknown how the node id was set
kEplObdNodeIdSoftware = 0x01, // node id set by software
kEplObdNodeIdHardware = 0x02 // node id set by hardware
}tEplObdNodeIdType;
} tEplObdNodeIdType;
// ============================================================================
// global variables
// ============================================================================
// ============================================================================
// public functions
// ============================================================================
#endif // #ifndef _EPLOBD_H_
此差异已折叠。
......@@ -71,48 +71,43 @@
#ifndef _EPLOBJDEF_H_
#define _EPLOBJDEF_H_
//---------------------------------------------------------------------------
// security checks
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// macros to help building OD
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#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_ONEOF(a,b) a
#define CCM_SUBINDEX_RAM_ONLY(a) a;
#define CCM_SUBINDEX_RAM_ONEOF(a,b) a
#else
#define CCM_SUBINDEX_RAM_ONLY(a)
#define CCM_SUBINDEX_RAM_ONEOF(a,b) b
#define CCM_SUBINDEX_RAM_ONLY(a)
#define CCM_SUBINDEX_RAM_ONEOF(a,b) b
#endif
//---------------------------------------------------------------------------
// 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.
// 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)
#define EPL_OBD_END_SUBINDEX()
#define EPL_OBD_MAX_ARRAY_SUBENTRIES 2
#define EPL_OBD_END_SUBINDEX()
#define EPL_OBD_MAX_ARRAY_SUBENTRIES 2
#else
#define EPL_OBD_END_SUBINDEX() {0,0,0,NULL,NULL}
#define EPL_OBD_MAX_ARRAY_SUBENTRIES 3
#define EPL_OBD_END_SUBINDEX() {0,0,0,NULL,NULL}
#define EPL_OBD_MAX_ARRAY_SUBENTRIES 3
#endif
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// globale vars
......@@ -123,37 +118,33 @@
// creation of data in ROM memory
// -------------------------------------------------------------------------
#define EPL_OBD_CREATE_ROM_DATA
#include "objdict.h"
#include "objdict.h"
#undef EPL_OBD_CREATE_ROM_DATA
// -------------------------------------------------------------------------
// creation of data in RAM memory
// -------------------------------------------------------------------------
#define EPL_OBD_CREATE_RAM_DATA
#include "objdict.h"
#include "objdict.h"
#undef EPL_OBD_CREATE_RAM_DATA
// -------------------------------------------------------------------------
// creation of subindex tables in ROM and RAM
// -------------------------------------------------------------------------
#define EPL_OBD_CREATE_SUBINDEX_TAB
#include "objdict.h"
#include "objdict.h"
#undef EPL_OBD_CREATE_SUBINDEX_TAB
// -------------------------------------------------------------------------
// creation of index tables for generic, manufacturer and device part
// -------------------------------------------------------------------------
#define EPL_OBD_CREATE_INDEX_TAB
#include "objdict.h"
#include "objdict.h"
#undef EPL_OBD_CREATE_INDEX_TAB
//=========================================================================//
// //
// P U B L I C F U N C T I O N S //
......@@ -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
// 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)
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
#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
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
#include "objdict.h"
#include "objdict.h"
}
#undef EPL_OBD_CREATE_INIT_SUBINDEX
#undef EPL_OBD_CREATE_INIT_SUBINDEX
return kEplSuccessful;
}
#endif // _EPLOBJDEF_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).
......@@ -66,7 +66,6 @@
2006/05/22 d.k.: start of the implementation, version 1.00
****************************************************************************/
#ifndef _EPL_PDO_H_
......@@ -85,22 +84,19 @@
// NodeId for PRes TPDO
#define EPL_PDO_PRES_NODE_ID 0x00
//---------------------------------------------------------------------------
// typedef
//---------------------------------------------------------------------------
typedef struct
{
void* m_pVar;
typedef struct {
void *m_pVar;
WORD m_wOffset; // in Bits
WORD m_wSize; // in Bits
BOOL m_fNumeric; // numeric value -> use AMI functions
} tEplPdoMapping;
typedef struct
{
typedef struct {
unsigned int m_uiSizeOfStruct;
unsigned int m_uiPdoId;
unsigned int m_uiNodeId;
......@@ -114,13 +110,8 @@ typedef struct
} tEplPdoParam;
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPL_PDO_H_
......@@ -66,7 +66,6 @@
2006/06/26 k.t.: start of the implementation
****************************************************************************/
#include "EplInc.h"
......@@ -76,7 +75,6 @@
#ifndef _EPLSDO_H_
#define _EPLSDO_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
......@@ -118,9 +116,9 @@ typedef unsigned int tEplSdoConHdl;
// callback function pointer for Protocol Abstraction Layer to call
// asynchronuus SDO Sequence Layer
typedef tEplKernel (PUBLIC* tEplSequLayerReceiveCb ) (
tEplSdoConHdl ConHdl_p,
tEplAsySdoSeq* pSdoSeqData_p,
typedef tEplKernel(PUBLIC * tEplSequLayerReceiveCb) (tEplSdoConHdl ConHdl_p,
tEplAsySdoSeq *
pSdoSeqData_p,
unsigned int uiDataSize_p);
// handle between asynchronuus SDO Sequence Layer and SDO Command layer
......@@ -128,51 +126,45 @@ typedef unsigned int tEplSdoSeqConHdl;
// callback function pointer for asynchronuus SDO Sequence Layer to call
// SDO Command layer for received data
typedef tEplKernel (PUBLIC* tEplSdoComReceiveCb) (
tEplSdoSeqConHdl SdoSeqConHdl_p,
tEplAsySdoCom* pAsySdoCom_p,
typedef tEplKernel(PUBLIC *
tEplSdoComReceiveCb) (tEplSdoSeqConHdl SdoSeqConHdl_p,
tEplAsySdoCom * pAsySdoCom_p,
unsigned int uiDataSize_p);
// status of connection
typedef enum
{
typedef enum {
kAsySdoConStateConnected = 0x00,
kAsySdoConStateInitError = 0x01,
kAsySdoConStateConClosed = 0x02,
kAsySdoConStateAckReceived = 0x03,
kAsySdoConStateFrameSended = 0x04,
kAsySdoConStateTimeout = 0x05
}tEplAsySdoConState;
} tEplAsySdoConState;
// callback function pointer for asynchronuus SDO Sequence Layer to call
// SDO Command layer for connection status
typedef tEplKernel (PUBLIC* tEplSdoComConCb) (
tEplSdoSeqConHdl SdoSeqConHdl_p,
tEplAsySdoConState AsySdoConState_p);
typedef tEplKernel(PUBLIC * tEplSdoComConCb) (tEplSdoSeqConHdl SdoSeqConHdl_p,
tEplAsySdoConState
AsySdoConState_p);
// handle between SDO Command layer and application
typedef unsigned int tEplSdoComConHdl;
// status of connection
typedef enum
{
typedef enum {
kEplSdoComTransferNotActive = 0x00,
kEplSdoComTransferRunning = 0x01,
kEplSdoComTransferTxAborted = 0x02,
kEplSdoComTransferRxAborted = 0x03,
kEplSdoComTransferFinished = 0x04,
kEplSdoComTransferLowerLayerAbort = 0x05
} tEplSdoComConState;
// SDO Services and Command-Ids from DS 1.0.0 p.152
typedef enum
{
typedef enum {
kEplSdoServiceNIL = 0x00,
kEplSdoServiceWriteByIndex = 0x01,
kEplSdoServiceReadByIndex = 0x02
//--------------------------------
// the following services are optional and
// not supported now
......@@ -196,35 +188,26 @@ typedef enum
} tEplSdoServiceType;
// describes if read or write access
typedef enum
{
typedef enum {
kEplSdoAccessTypeRead = 0x00,
kEplSdoAccessTypeWrite = 0x01
} tEplSdoAccessType;
typedef enum
{
typedef enum {
kEplSdoTypeAuto = 0x00,
kEplSdoTypeUdp = 0x01,
kEplSdoTypeAsnd = 0x02,
kEplSdoTypePdo = 0x03
} tEplSdoType;
}tEplSdoType;
typedef enum
{
typedef enum {
kEplSdoTransAuto = 0x00,
kEplSdoTransExpedited = 0x01,
kEplSdoTransSegmented = 0x02
} tEplSdoTransType;
// structure to inform application about finish of SDO transfer
typedef struct
{
typedef struct {
tEplSdoComConHdl m_SdoComConHdl;
tEplSdoComConState m_SdoComConState;
DWORD m_dwAbortCode;
......@@ -233,39 +216,30 @@ typedef struct
unsigned int m_uiTargetIndex; // index which was accessed
unsigned int m_uiTargetSubIndex; // subindex which was accessed
unsigned int m_uiTransferredByte; // number of bytes transferred
void* m_pUserArg; // user definable argument pointer
void *m_pUserArg; // user definable argument pointer
} tEplSdoComFinished;
// callback function pointer to inform application about connection
typedef tEplKernel (PUBLIC* tEplSdoFinishedCb) (
tEplSdoComFinished* pSdoComFinished_p);
typedef tEplKernel(PUBLIC * tEplSdoFinishedCb) (tEplSdoComFinished *
pSdoComFinished_p);
// structure to init SDO transfer to Read or Write by Index
typedef struct
{
typedef struct {
tEplSdoComConHdl m_SdoComConHdl;
unsigned int m_uiIndex;
unsigned int m_uiSubindex;
void* m_pData;
void *m_pData;
unsigned int m_uiDataSize;
unsigned int m_uiTimeout; // not used in this version
tEplSdoAccessType m_SdoAccessType;
tEplSdoFinishedCb m_pfnSdoFinishedCb;
void* m_pUserArg; // user definable argument pointer
void *m_pUserArg; // user definable argument pointer
} tEplSdoComTransParamByIndex;
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPLSDO_H_
......@@ -71,7 +71,6 @@
#ifndef _EPLSDOAC_H_
#define _EPLSDOAC_H_
// =========================================================================
// SDO abort codes
// =========================================================================
......@@ -106,7 +105,6 @@
#define EPL_SDOAC_OBJECT_DICTIONARY_NOT_EXIST 0x08000023L
#define EPL_SDOAC_CONFIG_DATA_EMPTY 0x08000024L
#endif // _EPLSDOAC_H_
// Die letzte Zeile mu unbedingt eine leere Zeile sein, weil manche Compiler
......
此差异已折叠。
......@@ -66,7 +66,6 @@
2006/07/06 k.t.: start of the implementation
****************************************************************************/
#include "EplInc.h"
......@@ -75,12 +74,10 @@
#ifndef _EPLTIMER_H_
#define _EPLTIMER_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// typedef
//---------------------------------------------------------------------------
......@@ -88,8 +85,7 @@
// type for timer handle
typedef unsigned long tEplTimerHdl;
typedef struct
{
typedef struct {
tEplEventSink m_EventSink;
unsigned long m_ulArg; // d.k.: converted to unsigned long because
// it is never accessed as a pointer by the
......@@ -101,8 +97,7 @@ typedef struct
} tEplTimerArg;
typedef struct
{
typedef struct {
tEplTimerHdl m_TimerHdl;
unsigned long m_ulArg; // d.k.: converted to unsigned long because
// it is never accessed as a pointer by the
......@@ -112,14 +107,11 @@ typedef struct
} tEplTimerEventArg;
typedef tEplKernel (PUBLIC * tEplTimerkCallback) (
tEplTimerEventArg* pEventArg_p);
typedef tEplKernel(PUBLIC * tEplTimerkCallback) (tEplTimerEventArg *
pEventArg_p);
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
#endif // #ifndef _EPLTIMER_H_
......@@ -70,7 +70,6 @@
#ifndef _EPL_VERSION_H_
#define _EPL_VERSION_H_
// NOTE:
// 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
......@@ -85,14 +84,13 @@
#define DEFINED_OBJ1018_VERSION EPL_OBJ1018_VERSION (1, 3, 0)
#define DEFINED_STRING_VERSION EPL_STRING_VERSION (1, 3, 0)
// -----------------------------------------------------------------------------
#define EPL_PRODUCT_NAME "EPL V2"
#define EPL_PRODUCT_VERSION DEFINED_STRING_VERSION
#define EPL_PRODUCT_MANUFACTURER "SYS TEC electronic GmbH"
#define EPL_PRODUCT_KEY "SO-1083"
#define EPL_PRODUCT_DESCRIPTION "openPOWERLINK Protocol Stack Source"
#define EPL_PRODUCT_KEY "SO-1083"
#define EPL_PRODUCT_DESCRIPTION "openPOWERLINK Protocol Stack Source"
#endif // _EPL_VERSION_H_
......
此差异已折叠。
......@@ -57,59 +57,65 @@
#ifndef _SHBIPC_H_
#define _SHBIPC_H_
//---------------------------------------------------------------------------
// Type definitions
//---------------------------------------------------------------------------
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 defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define SHBIPC_INLINE_ENABLED TRUE
#define SHBIPC_INLINED
#include "ShbIpc-Win32.c"
#endif
#if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define SHBIPC_INLINE_ENABLED TRUE
#define SHBIPC_INLINED
#include "ShbIpc-Win32.c"
#endif
#elif (TARGET_SYSTEM == _LINUX_)
#if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define SHBIPC_INLINE_ENABLED TRUE
#define SHBIPC_INLINED
#include "ShbIpc-LinuxKernel.c"
#endif
#if defined(INLINE_FUNCTION_DEF)
#undef INLINE_FUNCTION
#define INLINE_FUNCTION INLINE_FUNCTION_DEF
#define SHBIPC_INLINE_ENABLED TRUE
#define SHBIPC_INLINED
#include "ShbIpc-LinuxKernel.c"
#endif
#endif
//---------------------------------------------------------------------------
// Prototypes
//---------------------------------------------------------------------------
tShbError ShbIpcInit (void);
tShbError ShbIpcExit (void);
tShbError ShbIpcInit(void);
tShbError ShbIpcExit(void);
tShbError ShbIpcAllocBuffer (unsigned long ulBufferSize_p, const char* pszBufferID_p, tShbInstance* ppShbInstance_p, unsigned int* pfShbNewCreated_p);
tShbError ShbIpcReleaseBuffer (tShbInstance pShbInstance_p);
tShbError ShbIpcAllocBuffer(unsigned long ulBufferSize_p,
const char *pszBufferID_p,
tShbInstance * ppShbInstance_p,
unsigned int *pfShbNewCreated_p);
tShbError ShbIpcReleaseBuffer(tShbInstance pShbInstance_p);
#if !defined(SHBIPC_INLINE_ENABLED)
tShbError ShbIpcEnterAtomicSection (tShbInstance pShbInstance_p);
tShbError ShbIpcLeaveAtomicSection (tShbInstance pShbInstance_p);
tShbError ShbIpcEnterAtomicSection(tShbInstance pShbInstance_p);
tShbError ShbIpcLeaveAtomicSection(tShbInstance pShbInstance_p);
tShbError ShbIpcStartSignalingNewData (tShbInstance pShbInstance_p, tSigHndlrNewData pfnSignalHandlerNewData_p, tShbPriority ShbPriority_p);
tShbError ShbIpcStopSignalingNewData (tShbInstance pShbInstance_p);
tShbError ShbIpcSignalNewData (tShbInstance pShbInstance_p);
tShbError ShbIpcStartSignalingNewData(tShbInstance pShbInstance_p,
tSigHndlrNewData
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 ShbIpcSignalJobReady (tShbInstance pShbInstance_p);
tShbError ShbIpcStartSignalingJobReady(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
#undef SHBIPC_INLINE_ENABLED // disable actual inlining of functions
......@@ -117,4 +123,3 @@ void* ShbIpcGetShMemPtr (tShbInstance pShbInstance_p);
#define INLINE_FUNCTION // define INLINE_FUNCTION to nothing
#endif // #ifndef _SHBIPC_H_
......@@ -57,9 +57,9 @@
#ifndef _SHBLINUXKERNEL_H_
#define _SHBLINUXKERNEL_H_
struct sShbMemTable{
struct sShbMemTable {
int m_iBufferId;
void* m_pBuffer;
void *m_pBuffer;
struct sShbMemTable *m_psNextMemTableElement;
};
......
此差异已折叠。
此差异已折叠。
......@@ -71,7 +71,6 @@
#ifndef _EPLPROCFS_H_
#define _EPLPROCFS_H_
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
......@@ -80,7 +79,6 @@
// types
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
......@@ -88,7 +86,4 @@
tEplKernel EplLinProcInit(void);
tEplKernel EplLinProcFree(void);
#endif // #ifndef _EPLPROCFS_H_
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册