📄 gsm.h
字号:
D_SDU(D) = &((D)->sdu);\
D_SDU_LEN(D) = (BSIZE_##M);\
D_SDU_OFF(D) = ENCODE_OFFSET;\
xxxNotify(ACT_PALLOC_MSG,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#define PALLOC_SDU(D,T,N) T_##T *D = (T_##T*)P2D(P_ALL_SDU(T_##T,N));\
D_OPC(D) = (T);\
D_OPC2(D) = 0;\
D_LEN(D) = SIZ(T_##T);\
D_SDU(D) = &((D)->sdu);\
D_SDU_LEN(D) = (N);\
D_SDU_OFF(D) = ENCODE_OFFSET;\
xxxNotify(ACT_PALLOC_SDU,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#define PREUSE(D0,D,T) T_##T *D = (T_##T*)P2D_AC(D2P(D0),T);\
D_OPC(D) = (T);\
D_OPC2(D) = 0;\
D_LEN(D) = SIZ(T_##T);\
D_SDU(D) = 0;\
xxxNotify(ACT_REUSE,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#define PREUSE_MSG(D,T,M) T_##T *D = (T_##T*)P2D_AC(D2P(D0),T);\
D_OPC(D) = (T);\
D_OPC2(D) = 0;\
D_LEN(D) = SIZ(T_##T);\
D_SDU(D) = &((D)->sdu);\
D_SDU_LEN(D) = (BSIZE_##M);\
D_SDU_OFF(D) = ENCODE_OFFSET;\
xxxNotify(ACT_PREUSE_MSG,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#define PREUSE_SDU(D,T,N) T_##T *D = (T_##T*)P2D_AC(D2P(D0),T);\
USHORT BSIZE_##N;\
D_OPC(D) = (T);\
D_OPC2(D) = 0;\
D_LEN(D) = SIZ(T_##T);\
D_SDU(D) = &((D)->sdu);\
D_SDU_LEN(D) = (N);\
D_SDU_OFF(D) = ENCODE_OFFSET;\
xxxNotify(ACT_PREUSE_SDU,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#define PFREE(D) { void *z=(void*)D2P(D);\
vsi_c_free(VSI_CALLER (void **)&z);\
xxxNotify(ACT_PFREE,VSI_CALLER,__FILE__,__LINE__,D2P(D)); }
#define PSEND(E,D) PTRACE_OUT(D_OPC(D));\
vsi_c_send (VSI_CALLER hComm##E, D2P(D), (T_VSI_CSIZE) PSIZE(D));\
xxxNotify(ACT_PSEND,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#define PPASS(D0,D,T) T_##T *D = (T_##T*)P2D_AC(D2P(D0),T);\
D_OPC(D) = (T);\
xxxNotify(ACT_PPASS,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#define PACCESS(D) xxxNotify(ACT_PACCESS,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#endif /* NEW_FRAME */
/*
* to achieve backward compatibility
*/
#if defined (NEW_FRAME)
#define PSENDX(A,B) PSEND(hComm##A,B)
#else
#define PSENDX PSEND
#endif
#define PRETRIEVE /* NOT DEFINED YET */
#define MCAST(D,T) MSG_CAST(D,T_##T)
#define PCAST(P,D,T) T_##T *D = (T_##T*)P2D_AC(P,T);\
P_OPC(P)=T;\
xxxNotify(ACT_PCAST,VSI_CALLER,__FILE__,__LINE__,D2P(D))
#define PCOPY(DEST,SOURCE) memcpy(DEST,SOURCE,PSIZE(SOURCE)-sizeof(T_PRIM_HEADER))
/*** trace primitive, trace state ***/
#ifndef NEW_FRAME
#ifdef NTRACE
#define SET_STATE(PROCESS,STATE) ENTITY_DATA->state[PROCESS] = STATE
#define GET_STATE(PROCESS) ENTITY_DATA->state[PROCESS]
#define PTRACE_IN(OPC)
#define PTRACE_OUT(OPC)
#else
#define SET_STATE(PROCESS,STATE)\
ENTITY_DATA->state[PROCESS] =\
vsi_o_strace (VSI_CALLER\
PROCESS_NAME[PROCESS],\
PROCESS##_NAME [ ENTITY_DATA->state[PROCESS] ],\
PROCESS##_NAME [ STATE ],\
STATE )
#define GET_STATE(PROCESS)\
vsi_o_strace (VSI_CALLER\
PROCESS_NAME[PROCESS],\
PROCESS##_NAME [ ENTITY_DATA->state[PROCESS] ],\
NULL ,\
ENTITY_DATA->state[PROCESS] )
#define PTRACE_IN(OPC) vsi_o_ptrace (VSI_CALLER OPC, 0)
#define PTRACE_OUT(OPC) vsi_o_ptrace (VSI_CALLER OPC, 1)
#endif
#endif /* NEW_FRAME */
/*
* Timer, Jump Table, Configuration
*/
#ifdef OPTION_TIMER
#define TSTART(i,h,v) tim_start_timer(i,h,v)
#else
#define TSTART(i,h,v) vsi_t_start(VSI_CALLER h,v)
#endif
#ifdef OPTION_RELATIVE
#define JUMP(a) (a+offset)
#else
#define JUMP(a) (a)
#endif
#ifdef OPTION_SET_CONFIG_ONLY
#define GET_CONFIG(s,i)
#else
#define GET_CONFIG(s,i) pei_get_config(s,i)
#endif
/* Cause Concept (begin) */
/*
* For a definition of the cause concept please refer to document number
* 8443.711, named in February 2002 "cause_concept.doc"
*/
/* definitions for calling the macros */
/* DefinedBy bit */
#define DEFBY_STD 0
#define DEFBY_CONDAT 1
/* OriginatingSide bit */
#define ORIGSIDE_NET 0
#define ORIGSIDE_MS 1
/*
* note that OriginatingEntity definitions are in the SAP GSMCOM, which is a
* central (pseudo) SAP and the definitions are referenced in the using
* "real" SAPs, like e.g. MNSS SAP for the originating entity SS
*/
/* need to decide whether to mask ORIGIN_ENTITY (max. 6 bits) in the following macro */
#define CAUSE_MAKE(DEFINED_BY, ORIGIN_SIDE, ORIGIN_ENTITY, CAUSE_VALUE) \
(USHORT)(((CAUSE_VALUE) & 0x00FF) |\
((DEFINED_BY) << 15) |\
((ORIGIN_SIDE) << 14) |\
((ORIGIN_ENTITY) << 8))
/* Get the cause value without the originating entity */
#define GET_CAUSE_VALUE(cause) (UBYTE)((cause) & 0xFF)
/* Get the entity originating the cause */
#define GET_CAUSE_ORIGIN_ENTITY(cause) (UBYTE)(((cause) >> 8) & 0x3F)
/* Get the DefinedBy bit */
#define GET_CAUSE_DEFBY(cause) (UBYTE)((cause) >> 15)
/* Get the OriginatingSide bit */
#define GET_CAUSE_ORIGSIDE(cause) (UBYTE)(((cause) >> 14) & 0x01)
/* Determine if a cause is invalid */
#define IS_CAUSE_INVALID(cause) (((cause) & 0x80FF) EQ 0x80FF)
/* Cause Concept (end) */
/*==== TYPES ======================================================*/
#if defined (_TMS470) && defined (NWARN)
typedef struct
{
UBYTE x [MAX_PSTRUCT_LEN
+ (
L3_CODING_OFFSET
+ MAX_BITSTREAM_LEN
) / 8 + 1
];
} T_PARAMETER;
typedef struct
{
T_PRIM_HEADER custom;
T_PARAMETER data;
} T_PRIM;
#else
typedef struct
{
T_PRIM_HEADER custom;
UBYTE data [MAX_PSTRUCT_LEN
+ (
L3_CODING_OFFSET
+ MAX_BITSTREAM_LEN
) / 8 + 1
];
} T_PRIM;
#endif
/*==== EXPORT =====================================================*/
/*
* Testmobile
*/
/*
* DB: not yet used. (2000-11-22)
#define FF_TESTMOBILE
*/
/*
* Multithreading
*/
#ifdef OPTION_MULTITHREAD
#if defined (ENTITY_CST)
#define _ENTITY_PREFIXED(N) cst_##N
#elif defined (ENTITY_ACI)
#define _ENTITY_PREFIXED(N) aci_##N
#elif defined (ENTITY_MFW)
#define _ENTITY_PREFIXED(N) aci_##N
#elif defined (ENTITY_MMI)
#define _ENTITY_PREFIXED(N) aci_##N
#elif defined (ENTITY_SMI)
#define _ENTITY_PREFIXED(N) aci_##N
#elif defined (ENTITY_SIM)
#define _ENTITY_PREFIXED(N) sim_##N
#elif defined (ENTITY_PL)
#define _ENTITY_PREFIXED(N) pl_##N
#elif defined (ENTITY_L1)
#define _ENTITY_PREFIXED(N) l1_##N
#elif defined (ENTITY_CC)
#define _ENTITY_PREFIXED(N) cc_##N
#elif defined (ENTITY_SS)
#define _ENTITY_PREFIXED(N) ss_##N
#elif defined (ENTITY_SMS)
#define _ENTITY_PREFIXED(N) sms_##N
#elif defined (ENTITY_MM)
#define _ENTITY_PREFIXED(N) mm_##N
#elif defined (ENTITY_RR)
#define _ENTITY_PREFIXED(N) rr_##N
#elif defined (ENTITY_DL)
#define _ENTITY_PREFIXED(N) dl_##N
#elif defined (ENTITY_L2R)
#define _ENTITY_PREFIXED(N) l2r_##N
#elif defined (ENTITY_TRA)
#define _ENTITY_PREFIXED(N) tra_##N
#elif defined (ENTITY_RLP)
#define _ENTITY_PREFIXED(N) rlp_##N
#elif defined (ENTITY_T30)
#define _ENTITY_PREFIXED(N) t30_##N
#elif defined (ENTITY_FAD)
#define _ENTITY_PREFIXED(N) fad_##N
#elif defined (ENTITY_RA)
#define _ENTITY_PREFIXED(N) ra_##N
#elif defined (ENTITY_WAP)
#define _ENTITY_PREFIXED(N) wap_##N
#elif defined (ENTITY_UDP)
#define _ENTITY_PREFIXED(N) udp_##N
#elif defined (ENTITY_IP)
#define _ENTITY_PREFIXED(N) ip_##N
#elif defined (ENTITY_RRLP)
#define _ENTITY_PREFIXED(N) rrlp_##N
#elif defined (ENTITY_PPP)
#define _ENTITY_PREFIXED(N) ppp_##N
#elif defined (ENTITY_BTI)
#define _ENTITY_PREFIXED(N) bti_##N
#elif defined (ENTITY_L1)
#ifdef NEW_FRAME
#include "ofe.h"
#endif
#elif defined (ENTITY_TAP)
#define _ENTITY_PREFIXED(N) tap_##N
#elif defined (ENTITY_PCO)
#define _ENTITY_PREFIXED(N) pco_##N
#elif defined (ENTITY_PAN)
#define _ENTITY_PREFIXED(N) pan_##N
#elif defined (ENTITY_TST)
#define _ENTITY_PREFIXED(N) tst_##N
#endif
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -