📄 pccdef.hem
字号:
/******************************************************************************/
/* SCCS: %Z% Name: %M% Date US: %G% %U% Ver.: %I% */
/******************************************************************************/
/*F(***************************************************************************
* File name : %M%
* Project : ROAD RUNNER
* Module : SVC : Services
* Date : (US) %G% %U%
* Version : %I%
* Compiler name and release(s) :
*----------------------------------------------------------------------------*
*----------------------------------------------------------------------------*
* DESCRIPTION
* Common constant definitions
*----------------------------------------------------------------------------*
*----------------------------------------------------------------------------*
* FUNCTIONS DEFINED IN THIS FILE
*----------------------------------------------------------------------------*
* Name | Object
*----------------------------------------------------------------------------*
*
*----------------------------------------------------------------------------*
*----------------------------------------------------------------------------*
* EVOLUTION
*----------------------------------------------------------------------------*
* Date | Author | Arnb | Description
*----------------------------------------------------------------------------*
* 07/04/97 | J.Thomas | xxxxx | - Creation from 'SERVICES-RR17.1.8' for rtke
***************************************************************************)F*/
/* #*/
#ifndef PCCDEF_HEM
#define PCCDEF_HEM
/*
** =========================================================================
** Memory alignment tools
** =========================================================================
*/
#if defined _MCC68K || defined PC_U16
#define MC_PCC_FILL_STRUCT1 u8:0; u8:8; u8:0;
#define MC_PCC_FILL_STRUCT2
#define MC_PCC_FILL_STRUCT3 u8:0; u8:8; u8:0;
#define MC_PCC_FILL_MEMSTRUCT1(v_MemberU8) MC_PCC_FILL_STRUCT1
#define MC_PCC_FILL_MEMSTRUCT2(v_MemberU16)
#define MC_PCC_FILL_MEMSTRUCT3(v_MemberU8,v_MemberU16) MC_PCC_FILL_STRUCT3
#define MC_PCC_FILL_INISTRUCT1
#define MC_PCC_FILL_INISTRUCT2
#define MC_PCC_FILL_INISTRUCT3
#elif defined __arm
#define MC_PCC_FILL_STRUCT1 u8:0; u8:8; u8:0;
#define MC_PCC_FILL_STRUCT2 u8:0; u8:8; u8:8; u8:0;
#define MC_PCC_FILL_STRUCT3 u8:0; u8:8; u8:8; u8:8; u8:0;
#define MC_PCC_FILL_MEMSTRUCT1(v_MemberU8) MC_PCC_FILL_STRUCT1
#define MC_PCC_FILL_MEMSTRUCT2(v_MemberU16) MC_PCC_FILL_STRUCT2
#define MC_PCC_FILL_MEMSTRUCT3(v_MemberU8,v_MemberU16) MC_PCC_FILL_STRUCT3
#define MC_PCC_FILL_INISTRUCT1
#define MC_PCC_FILL_INISTRUCT2
#define MC_PCC_FILL_INISTRUCT3
#elif defined PC_U32
#define MC_PCC_FILL_STRUCT1 u8 v_FillerU8;
#define MC_PCC_FILL_STRUCT2 u16 v_FillerU16;
#define MC_PCC_FILL_STRUCT3 u8 v_FillerU8 ; u16 v_FillerU16;
#define MC_PCC_FILL_MEMSTRUCT1(v_MemberU8) u8 v_MemberU8 ;
#define MC_PCC_FILL_MEMSTRUCT2(v_MemberU16) u16 v_MemberU16 ;
#define MC_PCC_FILL_MEMSTRUCT3(v_MemberU8,v_MemberU16) u8 v_MemberU8 ; u16 v_MemberU16;
#define MC_PCC_FILL_INISTRUCT1 0,
#define MC_PCC_FILL_INISTRUCT2 0,
#define MC_PCC_FILL_INISTRUCT3 0,0,
#elif (defined (UNIX) || defined (__unix)) && defined (L1S_SIMU_PCC)
#define MC_PCC_FILL_STRUCT1 u8 v_FillerU8;
#define MC_PCC_FILL_STRUCT2 u8 v_Filler0U8; u8 v_Filler1U8;
#define MC_PCC_FILL_STRUCT3 u8 v_Filler0U8 ; u8 v_Filler1U8 ; u8 v_Filler2U8 ;
#define MC_PCC_FILL_MEMSTRUCT1(v_MemberU8) u8 v_MemberU8 ;
#define MC_PCC_FILL_MEMSTRUCT2(v_MemberU16) u16 v_MemberU16 ;
#define MC_PCC_FILL_MEMSTRUCT3(v_MemberU8,v_MemberU16) u8 v_MemberU8 ; u16 v_MemberU16;
#define MC_PCC_FILL_INISTRUCT1
#define MC_PCC_FILL_INISTRUCT2
#define MC_PCC_FILL_INISTRUCT3
#elif defined (UNIX) || defined (__unix)
#define MC_PCC_FILL_STRUCT1 u8:0; u8:8; u8:0;
#define MC_PCC_FILL_STRUCT2 u8:0; u8:8; u8:8; u8:0;
#define MC_PCC_FILL_STRUCT3 u8:0; u8:8; u8:8; u8:8; u8:0;
#define MC_PCC_FILL_MEMSTRUCT1(v_MemberU8) MC_PCC_FILL_STRUCT1
#define MC_PCC_FILL_MEMSTRUCT2(v_MemberU16) MC_PCC_FILL_STRUCT2
#define MC_PCC_FILL_MEMSTRUCT3(v_MemberU8,v_MemberU16) MC_PCC_FILL_STRUCT3
#define MC_PCC_FILL_INISTRUCT1
#define MC_PCC_FILL_INISTRUCT2
#define MC_PCC_FILL_INISTRUCT3
#else
#define MC_PCC_FILL_STRUCT1
#define MC_PCC_FILL_STRUCT2
#define MC_PCC_FILL_STRUCT3
#define MC_PCC_FILL_MEMSTRUCT1(v_MemberU8)
#define MC_PCC_FILL_MEMSTRUCT2(v_MemberU16)
#define MC_PCC_FILL_MEMSTRUCT3(v_MemberU8,v_MemberU16)
#define MC_PCC_FILL_INISTRUCT1
#define MC_PCC_FILL_INISTRUCT2
#define MC_PCC_FILL_INISTRUCT3
#endif
/* IF WITH_PACKED is defined when filling macros must be empty */
#if defined WITH_PACKED
/* undef all defined macros */
#undef MC_PCC_FILL_STRUCT1
#undef MC_PCC_FILL_STRUCT2
#undef MC_PCC_FILL_STRUCT3
#undef MC_PCC_FILL_MEMSTRUCT1
#undef MC_PCC_FILL_MEMSTRUCT2
#undef MC_PCC_FILL_MEMSTRUCT3
#undef MC_PCC_FILL_INISTRUCT1
#undef MC_PCC_FILL_INISTRUCT2
#undef MC_PCC_FILL_INISTRUCT3
/* redefine these empty */
#define MC_PCC_FILL_STRUCT1
#define MC_PCC_FILL_STRUCT2
#define MC_PCC_FILL_STRUCT3
#define MC_PCC_FILL_MEMSTRUCT1(v_MemberU8)
#define MC_PCC_FILL_MEMSTRUCT2(v_MemberU16)
#define MC_PCC_FILL_MEMSTRUCT3(v_MemberU8,v_MemberU16)
#define MC_PCC_FILL_INISTRUCT1
#define MC_PCC_FILL_INISTRUCT2
#define MC_PCC_FILL_INISTRUCT3
#endif
typedef struct __alg { char c; MC_PCC_FILL_STRUCT3 void * p; } __alg_t;
#define MC_PPC_DISTANCE_OF(S,F) (unsigned) (&(((S *) 0)->F))
#define ALIGNMENT (MC_PPC_DISTANCE_OF(__alg_t, p) - 1)
#define ALIGN(P) ( (u32) ((char *)(P) + ALIGNMENT) & ~ALIGNMENT)
/*---------- */
#define MC_PCC_HEADER( ProcessTx, ProcessRx, EventName, Event_id ) \
enum { EventName = Event_id };
#define MC_PCC_TAT_HEADER( ProcessTx, ProcessRx, EventName, Cmd )
#define MC_PCC_TYPE( StrucName )
/* Structure definition
-------------------- */
#define MC_PCC_BEGIN_NO_HEAD_STRUC( StrucName ) \
typedef struct {
#define MC_PCC_BEGIN_API_STRUC( HeaderType, StrucName ) \
typedef struct { \
HeaderType s_MsgHeader;
#define MC_PCC_BEGIN_API_STRUC_PKD( HeaderType, StrucName ) \
typedef PKD struct { \
HeaderType s_MsgHeader;
#define MC_PCC_BEGIN_STRUC( StrucName ) \
MC_PCC_BEGIN_API_STRUC( t_MsgHeader, StrucName)
#define MC_PCC_BEGIN_STRUC_PKD( StrucName ) \
MC_PCC_BEGIN_API_STRUC_PKD( t_MsgHeader, StrucName)
#define MC_PCC_END_STRUC( StrucName ) \
} StrucName;
/* Field definitions
----------------- */
#define MC_PCC_FIELD( FieldType, FieldName ) \
FieldType FieldName;
#define MC_PCC_GAP( FieldName ) \
u8 FieldName;
#define MC_PCC_ARRAY( FieldType, FieldName, ArraySize ) \
FieldType FieldName[ArraySize];
#define MC_PCC_VAR_LEN( FieldLength, FieldName, MaxSize ) \
u16 FieldLength; \
u8 FieldName;
/* Sub array
--------- */
#define MC_PCC_BEGIN_STRUC_ARRAY( StrucName, ArraySize ) \
struct {
#define MC_PCC_END_STRUC_ARRAY( StrucName, ArraySize ) \
} StrucName[ArraySize];
/* External structure
------------------ */
#define MC_PCC_BEGIN_EXT_TYPE( StrucName ) \
typedef struct {
#define MC_PCC_END_EXT_TYPE( StrucName ) \
} StrucName;
/* Union and bit-field
------------------- */
#define MC_PCC_BEGIN_UNION( StructName ) \
typedef union {
#define MC_PCC_END_UNION( StructName ) \
} StructName;
#define MC_PCC_BIT_FIELD( FieldType, FieldName, NbByte ) \
FieldType FieldName : NbByte;
/* Modify the operation type of a message
-------------------------------------- */
#define MC_PCC_MESSAGE_REQ( OpType ) ( ( OpType & PCC_T_MASK ) | PCC_T_REQ )
#define MC_PCC_MESSAGE_ERR( OpType ) ( ( OpType & PCC_T_MASK ) | PCC_T_ERR )
#define MC_PCC_MESSAGE_CNF( OpType ) ( ( OpType & PCC_T_MASK ) | PCC_T_CNF )
#define MC_PCC_MESSAGE_IND( OpType ) ( ( OpType & PCC_T_MASK ) | PCC_T_IND )
#define MC_PCC_MESSAGE_RSP( OpType ) ( ( OpType & PCC_T_MASK ) | PCC_T_RSP )
#define MC_PCC_MESSAGE_RJT( OpType ) ( ( OpType & PCC_T_MASK ) | PCC_T_RJT )
/********************************************/
/* New PCC functions to allow 128 processes */
/********************************************/
/* New operation type encoding */
/*-------------------------------*/
/*
15 9 8 3 2 0
---------------------------------------------------------------------------------
| Interface ( 7 bits ) | Function ( 6 bits ) | Type ( 3 bits ) |
---------------------------------------------------------------------------------
*/
/* definition of the operation type and acces to some of it's fields */
/*--------------------------------------------------------------------*/
#define MC_PCC_FUNCTION_TYPE( Function, Type ) ( ( Function << 3 ) | Type )
#define MC_PCC_PROCESS_OPERATION( Interface, Function ) \
( ( ( Interface ) << 9) | ( ( Function ) & 0x01FF ) )
#define MC_PCC_GET_INTERFACE(OpType) ( ( ( OpType ) >> 9 ) & 0x007F )
#define MC_PCC_GET_FUNCTION(OpType) ( ( ( OpType ) >> 3 ) & 0x003F )
#define MC_PCC_GET_TYPE(OpType) ( ( OpType ) & 0x0007 )
#define MC_PCC_GET_FUNCT_TYPE(OpType) ( ( OpType ) & 0x01FF )
/******************************************/
/* Old PCC functions ( max 64 processes ) */
/******************************************/
/* #define MC_PCC_FUNCTION_TYPE( Function, Type ) ( ( Function << 3 ) | Type ) */
/* #define MC_PCC_PROCESS_OPERATION( Interface, Function ) \
( ((Function << 6) & 0xC000) | ((Interface) << 8) | (Function & 0x00FF) ) */
/* #define MC_PCC_GET_INTERFACE(OpType) (( (OpType) >>8 ) & 0x3F) */
/********************************************************
* *
* MACRO translation for ascendent compatibility *
* *
*********************************************************/
#define MC_RTK_PROCESS_OPERATION MC_PCC_PROCESS_OPERATION
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -