diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-22 19:54:53 (GMT) |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-22 20:01:40 (GMT) |
commit | ae19ffbadc1b2100285a5b5b3d0a4e0a11390904 (patch) | |
tree | 3c2086ab67398a019089a47ca3f362a4bc6db74f /drivers/staging/epl/EplInstDef.h | |
parent | 34e84f39a27d059a3e6ec6e8b94aafa702e6f220 (diff) | |
parent | 9173a8ef24a6b1b8031507b35b8ffe5f85a87692 (diff) | |
download | linux-fsl-qoriq-ae19ffbadc1b2100285a5b5b3d0a4e0a11390904.tar.xz |
Merge branch 'master' into for-linus
Diffstat (limited to 'drivers/staging/epl/EplInstDef.h')
-rw-r--r-- | drivers/staging/epl/EplInstDef.h | 363 |
1 files changed, 0 insertions, 363 deletions
diff --git a/drivers/staging/epl/EplInstDef.h b/drivers/staging/epl/EplInstDef.h deleted file mode 100644 index 29ab7fb..0000000 --- a/drivers/staging/epl/EplInstDef.h +++ /dev/null @@ -1,363 +0,0 @@ -/**************************************************************************** - - (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29 - www.systec-electronic.com - - Project: openPOWERLINK - - Description: definitions for generating instances - - License: - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of SYSTEC electronic GmbH nor the names of its - contributors may be used to endorse or promote products derived - from this software without prior written permission. For written - permission, please contact info@systec-electronic.com. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - Severability Clause: - - If a provision of this License is or becomes illegal, invalid or - unenforceable in any jurisdiction, that shall not affect: - 1. the validity or enforceability in that jurisdiction of any other - provision of this License; or - 2. the validity or enforceability in other jurisdictions of that or - any other provision of this License. - - ------------------------------------------------------------------------- - - $RCSfile: EplInstDef.h,v $ - - $Author: D.Krueger $ - - $Revision: 1.4 $ $Date: 2008/04/17 21:36:32 $ - - $State: Exp $ - - Build Environment: - ... - - ------------------------------------------------------------------------- - - Revision History: - - r.d.: first implementation - -****************************************************************************/ - -#ifndef _EPLINSTDEF_H_ -#define _EPLINSTDEF_H_ - -#include <linux/kernel.h> - -// ========================================================================= -// types and macros for generating instances -// ========================================================================= - -typedef enum { - kStateUnused = 0, - kStateDeleted = 1, - kStateUsed = 0xFF -} tInstState; - -//------------------------------------------------------------------------------------------ - -typedef void *tEplPtrInstance; -typedef u8 tEplInstanceHdl; - -// define const for illegale values -#define CCM_ILLINSTANCE NULL -#define CCM_ILLINSTANCE_HDL 0xFF - -//------------------------------------------------------------------------------------------ -// if more than one instance then use this macros -#if (EPL_MAX_INSTANCES > 1) - - //-------------------------------------------------------------------------------------- - // macro definition for instance table definition - //-------------------------------------------------------------------------------------- - - // memory attributes for instance table -#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 - //-------------------------------------------------------------------------------------- - - // 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, - - // macros for declaration of pointer to instance handle within function header or prototype of API functions -#define CCM_DECL_PTR_INSTANCE_HDL tEplInstanceHdl *pInstanceHandle -#define CCM_DECL_PTR_INSTANCE_HDL_ tEplInstanceHdl *pInstanceHandle, - - // macros for declaration instance as lokacl variable within functions -#define CCM_DECL_INSTANCE_PTR_LOCAL tCcmInstanceInfo *pInstance; -#define CCM_DECL_PTR_INSTANCE_HDL_LOCAL tEplInstanceHdl *pInstanceHandle; - - // reference: - - // macros for reference of instance handle for function parameters -#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, - - // macros for reference of instance parameter for writing or reading values -#define CCM_INST_ENTRY (*((tEplPtrInstance)pInstance)) - - // processing: - - // macros for process instance handle -#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) \ - {return (kEplInvalidInstanceParam);} - - // This macro returned the handle and pointer to next free instance. -#define CCM_GET_FREE_INSTANCE_AND_HDL() pInstance = CcmGetFreeInstanceAndHandle (pInstanceHandle); \ - ASSERT (*pInstanceHandle != CCM_ILLINSTANCE_HDL); - -#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 (); \ - ASSERT (pInstance != CCM_ILLINSTANCE); - - //-------------------------------------------------------------------------------------- - // macro definition for stack interface - //-------------------------------------------------------------------------------------- - - // macros for declaration within the function header, prototype or local var list - // Declaration of pointers within function paramater list must defined as void * - // pointer. -#define EPL_MCO_DECL_INSTANCE_PTR void *pInstance -#define EPL_MCO_DECL_INSTANCE_PTR_ void *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, - - // 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) - - // 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 (); \ - 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); \ - ASSERT (((tEplPtrInstance)pInstance)->m_InstState == kStateUsed); - - // macros for declaration of pointer to instance pointer -#define EPL_MCO_DECL_PTR_INSTANCE_PTR void **pInstancePtr -#define EPL_MCO_DECL_PTR_INSTANCE_PTR_ void **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, - - // 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_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() \ - { \ - tEplInstanceInfo * pInstance = &aEplInstanceTable_g[0]; \ - tFastByte InstNumber = 0; \ - tFastByte i = EPL_MAX_INSTANCES; \ - do { \ - pInstance->m_InstState = (u8) kStateUnused; \ - pInstance->m_bInstIndex = (u8) InstNumber; \ - pInstance++; InstNumber++; i--; \ - } while (i != 0); \ - } - - // definition of functions which has to be defined in each module of CANopen stack -#define EPL_MCO_DEFINE_INSTANCE_FCT() \ - static tEplPtrInstance GetInstancePtr (tEplInstanceHdl InstHandle_p); \ - static tEplPtrInstance GetFreeInstance (void); -#define EPL_MCO_DECL_INSTANCE_FCT() \ - static tEplPtrInstance GetInstancePtr (tEplInstanceHdl InstHandle_p) { \ - return &aEplInstanceTable_g[InstHandle_p]; } \ - static tEplPtrInstance GetFreeInstance (void) { \ - tEplInstanceInfo *pInstance = &aEplInstanceTable_g[0]; \ - tFastByte i = EPL_MAX_INSTANCES; \ - do { if (pInstance->m_InstState != kStateUsed) { \ - return (tEplPtrInstance) pInstance; } \ - pInstance++; i--; } \ - while (i != 0); \ - return CCM_ILLINSTANCE; } - - // this macro defines the instance table. Each entry is reserved for an instance of CANopen. -#define EPL_MCO_DECL_INSTANCE_VAR() \ - static tEplInstanceInfo 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() \ - STATIC u8 m_InstState; \ - STATIC u8 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 STATIC static // prevent warnings for variables with same name - -#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 -// instance is to be used. - - // 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_DECL_INSTANCE_PTR_LOCAL - - // macros for declaration within the function header or prototype -#define CCM_DECL_INSTANCE_HDL void -#define CCM_DECL_INSTANCE_HDL_ - - // macros for process instance handle -#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_ - - // macros for process pointer to instance handle -#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_CHECK_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_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 - - // 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_ - - // macros for process pointer to instance -#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() - - // macros for declaration of pointer to instance pointer -#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_ - - // macros for process pointer to instance pointer -#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() - - // 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) - - // this macro deletes all instance entries as unused -#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() - - // this macro defines the instance table. Each entry is reserved for an instance of CANopen. -#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() - -#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). |