FreeCalypso > hg > fc-tourmaline
comparison src/condat/com/include/gsm.h @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:23:26 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4e78acac3d88 |
---|---|
1 /* | |
2 +----------------------------------------------------------------------------- | |
3 | Project : GSM-PS (6147) | |
4 | Modul : GSM | |
5 +----------------------------------------------------------------------------- | |
6 | Copyright 2002 Texas Instruments Berlin, AG | |
7 | All rights reserved. | |
8 | | |
9 | This file is confidential and a trade secret of Texas | |
10 | Instruments Berlin, AG | |
11 | The receipt of or possession of this file does not convey | |
12 | any rights to reproduce or disclose its contents or to | |
13 | manufacture, use, or sell anything it may describe, in | |
14 | whole, or in part, without the specific written consent of | |
15 | Texas Instruments Berlin, AG. | |
16 +----------------------------------------------------------------------------- | |
17 | Purpose : Definition of global constants, types, and macros | |
18 | for the GSM Protocol Stack | |
19 +----------------------------------------------------------------------------- | |
20 */ | |
21 | |
22 #ifndef GSM_H | |
23 #define GSM_H | |
24 | |
25 #ifndef CCONST_CDG | |
26 #include "mconst.cdg" /* MAX_BITSTREAM_LEN */ | |
27 #endif /* CCONST_CDG */ | |
28 #ifndef PCONST_CDG | |
29 #include "pconst.cdg" /* MAX_PSTRUCT_LEN */ | |
30 #endif /* PCONST_CDG */ | |
31 | |
32 /*==== CONSTANTS ==================================================*/ | |
33 | |
34 #define MAX_2_PRM 1 | |
35 #define MAX_4_PRM 3 | |
36 #define MAX_8_PRM 7 | |
37 #define MAX_16_PRM 15 | |
38 #define MAX_32_PRM 31 | |
39 | |
40 #define PRM_MASK 0x00FF /* protocol primitive mask*/ | |
41 #define OPC_MASK 0xFF00 /* entity mask */ | |
42 #define SYS_MASK 0x8000 /* system primitive mask */ | |
43 | |
44 #define SYS_CONFIG_REQ 0xF000 | |
45 | |
46 #define L3_CODING_OFFSET 32 /* coding offset in bits */ | |
47 | |
48 /* | |
49 * Not Present Value | |
50 */ | |
51 | |
52 #define NOT_PRESENT_8BIT 0xFF | |
53 #define NOT_PRESENT_CHAR (CHAR)0xFF | |
54 #define NOT_PRESENT_16BIT 0xFFFF | |
55 #define NOT_PRESENT_32BIT 0xFFFFFFFFL | |
56 #define INVALID_ADDRESS 0xFFFFFFFFL | |
57 #define SET_NOT_PRESENT(A) ((A) = ((sizeof ((A)) EQ 1)\ | |
58 ? NOT_PRESENT_8BIT\ | |
59 : (sizeof ((A)) EQ 2)\ | |
60 ? NOT_PRESENT_16BIT\ | |
61 : NOT_PRESENT_32BIT)) | |
62 | |
63 #define IS_PRESENT(A) ((A) NEQ ((sizeof ((A)) EQ 1)\ | |
64 ? NOT_PRESENT_8BIT\ | |
65 : (sizeof ((A)) EQ 2)\ | |
66 ? NOT_PRESENT_16BIT\ | |
67 : NOT_PRESENT_32BIT)) /* VK 09-12-96 */ | |
68 | |
69 #ifndef NEW_FRAME | |
70 /* | |
71 * Static Configurations | |
72 */ | |
73 | |
74 #ifndef TC_FUNC | |
75 #define TC_FUNC 1 | |
76 #endif | |
77 | |
78 #ifdef TRACE_FKT | |
79 #define TRACE_FUNCTION(a) vsi_o_trace(VSI_CALLER TC_FUNC,a); | |
80 #else | |
81 // China change HM 6.07.00, one of this commented out | |
82 #define TRACE_FUNCTION(a) | |
83 //#define TRACE_FUNCTION(a) vsi_o_mtrace(a); | |
84 #endif | |
85 | |
86 #ifndef TC_EVE | |
87 #define TC_EVE 2 | |
88 #endif | |
89 | |
90 #ifdef TRACE_EVE | |
91 #define TRACE_EVENT(a) vsi_o_trace(VSI_CALLER TC_EVENT,a); | |
92 #else | |
93 #define TRACE_EVENT(a) | |
94 #endif | |
95 | |
96 #ifndef TC_ERROR | |
97 #define TC_ERROR 4 | |
98 #endif | |
99 #ifdef TRACE_ERR | |
100 #define TRACE_ERROR(a) vsi_o_trace(VSI_CALLER TC_ERROR,a); | |
101 #else | |
102 #define TRACE_ERROR(a) | |
103 #endif | |
104 | |
105 #ifndef TC_PRIM | |
106 #define TC_PRIM 8 | |
107 #endif | |
108 | |
109 #ifdef TRACE_PRIM | |
110 #define TRACE_PRIMITIVE(a) vsi_o_trace(VSI_CALLER TC_PRIM,a); | |
111 #else | |
112 #define TRACE_PRIMITIVE(a) | |
113 #endif | |
114 | |
115 #ifndef TC_SYSTEM | |
116 #define TC_SYSTEM 16 | |
117 #endif | |
118 | |
119 /* | |
120 * Assert wrapper | |
121 */ | |
122 | |
123 #if defined NDEBUG | |
124 #define TRACE_ASSERT(e) ((void)0) | |
125 #else | |
126 #ifdef SHARED_VSI | |
127 #define TRACE_ASSERT(e) if ( !(e) ) vsi_o_assert("",#e,__FILE__,__LINE__) | |
128 #else | |
129 #define TRACE_ASSERT(e) if ( !(e) ) vsi_o_assert(#e,__FILE__,__LINE__) | |
130 #endif | |
131 #endif | |
132 | |
133 #ifdef assert | |
134 #undef assert | |
135 #endif | |
136 #define assert TRACE_ASSERT | |
137 | |
138 #endif /* NEW_FRAME */ | |
139 | |
140 /* | |
141 * Memory Management(I) | |
142 */ | |
143 | |
144 #ifdef OPTION_REF | |
145 #define FREE_BUFFER(p) vsi_c_free(VSI_CALLER (void **)&p) | |
146 /*lint -e773 Expression-like macro not parenthesized*/ | |
147 #define NEW_BUFFER(p,s) T_PRIM *p = vsi_c_new(VSI_CALLER (T_VSI_CSIZE)((s)+sizeof(T_PRIM_HEADER))) | |
148 /*lint +e773*/ | |
149 #else | |
150 #define FREE_BUFFER(p) | |
151 #define NEW_BUFFER(p,s) UBYTE buf_##p [(s)+sizeof(T_PRIM_HEADER)]; T_PRIM *p=(T_PRIM*)p1 | |
152 #endif | |
153 | |
154 #if !defined (_TMS470) | |
155 #define Sprintf sprintf | |
156 #else | |
157 int sprintf( char *buffer, const char *format, ... ); | |
158 #endif | |
159 | |
160 #ifndef NEW_FRAME | |
161 | |
162 #ifdef _TMS470 | |
163 #define SET_PRIM_OPCODE(P,O) P->custom.opc = O; P->custom.opc2 = 0 | |
164 #else | |
165 #define SET_PRIM_OPCODE(P,O) P->custom.opc = O | |
166 #endif | |
167 | |
168 #ifdef OPTION_LENGTH | |
169 #define SEND_PRIM(E,P,O,T) SET_PRIM_OPCODE (P,O); vsi_c_send (VSI_CALLER hComm##E, P, sizeof(T_PRIM_HEADER) + sizeof (T)) | |
170 #define SEND_PRIM_0(E,P,O) SET_PRIM_OPCODE (P,O); vsi_c_send (VSI_CALLER hComm##E, P, sizeof(T_PRIM_HEADER)) | |
171 #define SEND_PRIM_SDU(E,P,O,T,L) SET_PRIM_OPCODE (P,O); vsi_c_send (VSI_CALLER hComm##E, P, (T_VSI_CSIZE) (sizeof(T_PRIM_HEADER) + sizeof (T) + (L) - SDU_TRAIL)) | |
172 #else | |
173 #define SEND_PRIM(E,P,O,T) SET_PRIM_OPCODE (P,O); vsi_c_send (VSI_CALLER hComm##E, P, sizeof(T_PRIM_HEADER) + sizeof (T)) | |
174 #define SEND_PRIM_0(E,P,O) SET_PRIM_OPCODE (P,O); vsi_c_send (VSI_CALLER hComm##E, P, sizeof(T_PRIM_HEADER)) | |
175 #define SEND_PRIM_SDU(E,P,O,T,L) SET_PRIM_OPCODE (P,O); vsi_c_send (VSI_CALLER hComm##E, P, (T_VSI_CSIZE) (sizeof(T_PRIM_HEADER) + sizeof (T) + (L) - SDU_TRAIL)) | |
176 #endif | |
177 | |
178 #endif /* NEW_FRAME */ | |
179 /* | |
180 * declares a pointer variable (D) of the type T | |
181 * and initialize it with the startaddress of the data part | |
182 * of the primitive P | |
183 */ | |
184 #ifndef ALLOC_CHECK | |
185 #if defined (_TMS470) AND defined (NWARN) | |
186 #define PRIM_ACCESS(P,S) &P->data | |
187 #else | |
188 #define PRIM_ACCESS(P,S) P->data | |
189 #endif | |
190 #else | |
191 #define PRIM_ACCESS(P,S) vsi_c_access(VSI_CALLER P,S) | |
192 #endif | |
193 /*lint -e773 Expression-like macro not parenthesized*/ | |
194 #define PRIM_CAST(P,D,T) T *D = (T *) PRIM_ACCESS (P, sizeof (T)) | |
195 /*lint +e773*/ | |
196 /* | |
197 * declares a pointer variable (D) of the type T and | |
198 * initialize it with the start address of the global declared | |
199 * buffer _decodedMsg[] wich contains the decoded message | |
200 * structure before encoding or after decoding the message | |
201 * with CCD. | |
202 */ | |
203 /*lint -e773 Expression-like macro not parenthesized*/ | |
204 #define MSG_CAST(D,T) T *D = (T *) _decodedMsg | |
205 /*lint +e773*/ | |
206 /* | |
207 * Memory Management(II) | |
208 */ | |
209 | |
210 #ifndef NEW_FRAME | |
211 | |
212 #if defined (_TMS470) AND defined (NWARN) | |
213 #define P2D(P) (&(P)->data) | |
214 #else | |
215 #define P2D(P) ((P)->data) | |
216 #endif | |
217 #define D2P(D) ((T_PRIM*)((T_PRIM_HEADER*)(D)-1)) | |
218 | |
219 #ifdef ALLOC_CHECK | |
220 #define P2D_AC(P,T) PRIM_ACCESS(P,sizeof(T)) | |
221 #else | |
222 #define P2D_AC(P,T) P2D(P) | |
223 #endif | |
224 | |
225 #define PRIM_TO_DATA P2D | |
226 #define DATA_TO_PRIM D2P | |
227 | |
228 #define P_OPC(P) (P)->custom.opc | |
229 #define P_OPC2(P) (P)->custom.opc2 | |
230 #define P_LEN(P) (P)->custom.len | |
231 #define P_TID(P) (P)->custom.tid | |
232 #define P_SDU(P) (P)->custom.sdu | |
233 | |
234 #define D_OPC(D) P_OPC(D2P(D)) | |
235 #define D_OPC2(D) P_OPC2(D2P(D)) | |
236 #define D_LEN(D) P_LEN(D2P(D)) | |
237 #define D_TID(D) P_TID(D2P(D)) | |
238 #define D_SDU(D) P_SDU(D2P(D)) | |
239 | |
240 #define D_SDU_LEN(D) D_SDU(D)->l_buf | |
241 #define D_SDU_OFF(D) D_SDU(D)->o_buf | |
242 | |
243 #define BITS_PER_BYTE 8 | |
244 #define BYTELEN(BITLEN) ((BITLEN)<=0?0:((((BITLEN)-1)/BITS_PER_BYTE)+1)) | |
245 | |
246 #define PRIM_SIZE(D) (sizeof(T_PRIM_HEADER)+sizeof(*(D))) | |
247 #define PRIM_SIZE_SDU(D) (PRIM_SIZE(D)+BYTELEN((D)->sdu.o_buf+(D)->sdu.l_buf)) | |
248 | |
249 #define PSIZE(D) (D_LEN(D)+((D_SDU(D)==0)?0:(BYTELEN(D_SDU_LEN(D)+D_SDU_OFF(D))-SDU_TRAIL))) | |
250 | |
251 #define SIZ(T) (sizeof(T_PRIM_HEADER)+sizeof(T)) | |
252 | |
253 #define SIZ_SDU(T,M) (SIZ(T)+BYTELEN((M)+ENCODE_OFFSET)-SDU_TRAIL) | |
254 | |
255 #define P_ALL(T) (T_PRIM *) vsi_c_new(VSI_CALLER (T_VSI_CSIZE)SIZ(T) ) | |
256 #define P_ALL_SDU(T,M) (T_PRIM *) vsi_c_new(VSI_CALLER (T_VSI_CSIZE)SIZ_SDU(T,M)) | |
257 | |
258 #endif /* NEW_FRAME */ | |
259 | |
260 #define OFFSETOF(P,C) ((char*)&(P->C) - (char*)P) | |
261 | |
262 #ifdef NTRACE | |
263 #define xxxNotify(A,B,C,D,E) | |
264 #else | |
265 #define xxxNotify(A,B,C,D,E) /* not used yet */ | |
266 #endif | |
267 | |
268 | |
269 #define ACT_PALLOC 0x01 | |
270 #define ACT_PALLOC_SDU 0x02 | |
271 #define ACT_PALLOC_MSG 0x03 | |
272 #define ACT_PREUSE 0x04 | |
273 #define ACT_PREUSE_SDU 0x05 | |
274 #define ACT_PREUSE_MSG 0x06 | |
275 #define ACT_PFREE 0x07 | |
276 #define ACT_PSEND 0x08 | |
277 #define ACT_PSTORE 0x09 | |
278 #define ACT_PRETRIEVE 0x0A | |
279 #define ACT_PACCESS 0x0B | |
280 #define ACT_PPASS 0x0C | |
281 #define ACT_PCAST 0x0D | |
282 | |
283 /*** memory alloction ***/ | |
284 | |
285 | |
286 #ifndef NEW_FRAME | |
287 | |
288 #define PSENDX PSEND | |
289 | |
290 #define PALLOC(D,T) T_##T *D = (T_##T*)P2D(P_ALL(T_##T));\ | |
291 D_OPC(D) = (T);\ | |
292 D_OPC2(D) = 0;\ | |
293 D_LEN(D) = SIZ(T_##T);\ | |
294 D_SDU(D) = 0;\ | |
295 xxxNotify(ACT_PALLOC,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
296 | |
297 #define PALLOC_MSG(D,T,M) T_##T *D = (T_##T*)P2D(P_ALL_SDU(T_##T,BSIZE_##M));\ | |
298 D_OPC(D) = (T);\ | |
299 D_OPC2(D) = 0;\ | |
300 D_LEN(D) = SIZ(T_##T);\ | |
301 D_SDU(D) = &((D)->sdu);\ | |
302 D_SDU_LEN(D) = (BSIZE_##M);\ | |
303 D_SDU_OFF(D) = ENCODE_OFFSET;\ | |
304 xxxNotify(ACT_PALLOC_MSG,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
305 | |
306 #define PALLOC_SDU(D,T,N) T_##T *D = (T_##T*)P2D(P_ALL_SDU(T_##T,N));\ | |
307 D_OPC(D) = (T);\ | |
308 D_OPC2(D) = 0;\ | |
309 D_LEN(D) = SIZ(T_##T);\ | |
310 D_SDU(D) = &((D)->sdu);\ | |
311 D_SDU_LEN(D) = (N);\ | |
312 D_SDU_OFF(D) = ENCODE_OFFSET;\ | |
313 xxxNotify(ACT_PALLOC_SDU,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
314 | |
315 #define PREUSE(D0,D,T) T_##T *D = (T_##T*)P2D_AC(D2P(D0),T);\ | |
316 D_OPC(D) = (T);\ | |
317 D_OPC2(D) = 0;\ | |
318 D_LEN(D) = SIZ(T_##T);\ | |
319 D_SDU(D) = 0;\ | |
320 xxxNotify(ACT_REUSE,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
321 | |
322 #define PREUSE_MSG(D,T,M) T_##T *D = (T_##T*)P2D_AC(D2P(D0),T);\ | |
323 D_OPC(D) = (T);\ | |
324 D_OPC2(D) = 0;\ | |
325 D_LEN(D) = SIZ(T_##T);\ | |
326 D_SDU(D) = &((D)->sdu);\ | |
327 D_SDU_LEN(D) = (BSIZE_##M);\ | |
328 D_SDU_OFF(D) = ENCODE_OFFSET;\ | |
329 xxxNotify(ACT_PREUSE_MSG,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
330 | |
331 #define PREUSE_SDU(D,T,N) T_##T *D = (T_##T*)P2D_AC(D2P(D0),T);\ | |
332 USHORT BSIZE_##N;\ | |
333 D_OPC(D) = (T);\ | |
334 D_OPC2(D) = 0;\ | |
335 D_LEN(D) = SIZ(T_##T);\ | |
336 D_SDU(D) = &((D)->sdu);\ | |
337 D_SDU_LEN(D) = (N);\ | |
338 D_SDU_OFF(D) = ENCODE_OFFSET;\ | |
339 xxxNotify(ACT_PREUSE_SDU,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
340 | |
341 #define PFREE(D) { void *z=(void*)D2P(D);\ | |
342 vsi_c_free(VSI_CALLER (void **)&z);\ | |
343 xxxNotify(ACT_PFREE,VSI_CALLER,__FILE__,__LINE__,D2P(D)); } | |
344 | |
345 #define PSEND(E,D) PTRACE_OUT(D_OPC(D));\ | |
346 vsi_c_send (VSI_CALLER hComm##E, D2P(D), (T_VSI_CSIZE) PSIZE(D));\ | |
347 xxxNotify(ACT_PSEND,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
348 | |
349 #define PPASS(D0,D,T) T_##T *D = (T_##T*)P2D_AC(D2P(D0),T);\ | |
350 D_OPC(D) = (T);\ | |
351 xxxNotify(ACT_PPASS,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
352 | |
353 #define PACCESS(D) xxxNotify(ACT_PACCESS,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
354 | |
355 | |
356 #endif /* NEW_FRAME */ | |
357 | |
358 /* | |
359 * to achieve backward compatibility | |
360 */ | |
361 | |
362 #if defined (NEW_FRAME) | |
363 #ifdef TI_PS_HCOMM_CHANGE | |
364 #define PSENDX(A,B) PSEND(_hComm##A,B) | |
365 #define _hCommACI hCommACI | |
366 #else | |
367 #define PSENDX(A,B) PSEND(hComm##A,B) | |
368 #endif | |
369 #else | |
370 #define PSENDX PSEND | |
371 #endif | |
372 | |
373 | |
374 | |
375 #define PRETRIEVE /* NOT DEFINED YET */ | |
376 | |
377 | |
378 #define MCAST(D,T) MSG_CAST(D,T_##T) | |
379 #define PCAST(P,D,T) T_##T *D = (T_##T*)P2D_AC(P,T);\ | |
380 P_OPC(P)=T;\ | |
381 xxxNotify(ACT_PCAST,VSI_CALLER,__FILE__,__LINE__,D2P(D)) | |
382 | |
383 #define PCOPY(DEST,SOURCE) memcpy(DEST,SOURCE,PSIZE(SOURCE)-sizeof(T_PRIM_HEADER)) | |
384 | |
385 /*** trace primitive, trace state ***/ | |
386 | |
387 #ifndef NEW_FRAME | |
388 | |
389 #ifdef NTRACE | |
390 | |
391 #define SET_STATE(PROCESS,STATE) ENTITY_DATA->state[PROCESS] = STATE | |
392 #define GET_STATE(PROCESS) ENTITY_DATA->state[PROCESS] | |
393 | |
394 #define PTRACE_IN(OPC) | |
395 #define PTRACE_OUT(OPC) | |
396 | |
397 #else | |
398 | |
399 #define SET_STATE(PROCESS,STATE)\ | |
400 ENTITY_DATA->state[PROCESS] =\ | |
401 vsi_o_strace (VSI_CALLER\ | |
402 PROCESS_NAME[PROCESS],\ | |
403 PROCESS##_NAME [ ENTITY_DATA->state[PROCESS] ],\ | |
404 PROCESS##_NAME [ STATE ],\ | |
405 STATE ) | |
406 | |
407 #define GET_STATE(PROCESS)\ | |
408 vsi_o_strace (VSI_CALLER\ | |
409 PROCESS_NAME[PROCESS],\ | |
410 PROCESS##_NAME [ ENTITY_DATA->state[PROCESS] ],\ | |
411 NULL ,\ | |
412 ENTITY_DATA->state[PROCESS] ) | |
413 | |
414 #define PTRACE_IN(OPC) vsi_o_ptrace (VSI_CALLER OPC, 0) | |
415 #define PTRACE_OUT(OPC) vsi_o_ptrace (VSI_CALLER OPC, 1) | |
416 | |
417 #endif | |
418 | |
419 #endif /* NEW_FRAME */ | |
420 /* | |
421 * Timer, Jump Table, Configuration | |
422 */ | |
423 | |
424 #ifdef OPTION_TIMER | |
425 #define TSTART(i,h,v) tim_start_timer(i,h,v) | |
426 #else | |
427 #define TSTART(i,h,v) TIMER_START(VSI_CALLER h,v) | |
428 #endif | |
429 | |
430 #ifdef OPTION_RELATIVE | |
431 #define JUMP(a) (a+offset) | |
432 #else | |
433 #define JUMP(a) (a) | |
434 #endif | |
435 | |
436 #ifdef OPTION_SET_CONFIG_ONLY | |
437 #define GET_CONFIG(s,i) | |
438 #else | |
439 #define GET_CONFIG(s,i) pei_get_config(s,i) | |
440 #endif | |
441 | |
442 /* Cause Concept (begin) */ | |
443 /* | |
444 * For a definition of the cause concept please refer to document number | |
445 * 8443.711, named in February 2002 "cause_concept.doc" | |
446 */ | |
447 | |
448 /* definitions for calling the macros */ | |
449 /* DefinedBy bit */ | |
450 #define DEFBY_STD 0 | |
451 #define DEFBY_CONDAT 1 | |
452 /* OriginatingSide bit */ | |
453 #define ORIGSIDE_NET 0 | |
454 #define ORIGSIDE_MS 1 | |
455 /* | |
456 * note that OriginatingEntity definitions are in the SAP GSMCOM, which is a | |
457 * central (pseudo) SAP and the definitions are referenced in the using | |
458 * "real" SAPs, like e.g. MNSS SAP for the originating entity SS | |
459 */ | |
460 | |
461 /* need to decide whether to mask ORIGIN_ENTITY (max. 6 bits) in the following macro */ | |
462 #define CAUSE_MAKE(DEFINED_BY, ORIGIN_SIDE, ORIGIN_ENTITY, CAUSE_VALUE) \ | |
463 (USHORT)(((CAUSE_VALUE) & 0x00FF) |\ | |
464 ((DEFINED_BY) << 15) |\ | |
465 ((ORIGIN_SIDE) << 14) |\ | |
466 ((ORIGIN_ENTITY) << 8)) | |
467 | |
468 /* Get the cause value without the originating entity */ | |
469 #define GET_CAUSE_VALUE(cause) (UBYTE)((cause) & 0xFF) | |
470 | |
471 /* Get the entity originating the cause */ | |
472 #define GET_CAUSE_ORIGIN_ENTITY(cause) (UBYTE)(((cause) >> 8) & 0x3F) | |
473 | |
474 /* Get the DefinedBy bit */ | |
475 #define GET_CAUSE_DEFBY(cause) (UBYTE)((cause) >> 15) | |
476 | |
477 /* Get the OriginatingSide bit */ | |
478 #define GET_CAUSE_ORIGSIDE(cause) (UBYTE)(((cause) >> 14) & 0x01) | |
479 | |
480 /* Determine if a cause is invalid */ | |
481 #define IS_CAUSE_INVALID(cause) (((cause) & 0x80FF) EQ 0x80FF) | |
482 | |
483 /* Cause Concept (end) */ | |
484 | |
485 | |
486 /*==== TYPES ======================================================*/ | |
487 #if defined (_TMS470) && defined (NWARN) | |
488 typedef struct | |
489 { | |
490 UBYTE x [MAX_PSTRUCT_LEN | |
491 + ( | |
492 L3_CODING_OFFSET | |
493 + MAX_BITSTREAM_LEN | |
494 ) / 8 + 1 | |
495 ]; | |
496 } T_PARAMETER; | |
497 | |
498 typedef struct | |
499 { | |
500 T_PRIM_HEADER custom; | |
501 T_PARAMETER data; | |
502 } T_PRIM; | |
503 #else | |
504 typedef struct | |
505 { | |
506 T_PRIM_HEADER custom; | |
507 UBYTE data [MAX_PSTRUCT_LEN | |
508 + ( | |
509 L3_CODING_OFFSET | |
510 + MAX_BITSTREAM_LEN | |
511 ) / 8 + 1 | |
512 ]; | |
513 } T_PRIM; | |
514 #endif | |
515 | |
516 /*==== EXPORT =====================================================*/ | |
517 | |
518 | |
519 | |
520 /* | |
521 * Multithreading | |
522 */ | |
523 | |
524 | |
525 | |
526 #ifdef OPTION_MULTITHREAD | |
527 #if defined (ENTITY_CST) | |
528 #define _ENTITY_PREFIXED(N) cst_##N | |
529 #elif defined (ENTITY_ACI) | |
530 #define _ENTITY_PREFIXED(N) aci_##N | |
531 #elif defined (ENTITY_MFW) | |
532 #define _ENTITY_PREFIXED(N) aci_##N | |
533 #elif defined (ENTITY_MMI) | |
534 #define _ENTITY_PREFIXED(N) aci_##N | |
535 #elif defined (ENTITY_SMI) | |
536 #define _ENTITY_PREFIXED(N) aci_##N | |
537 #elif defined (ENTITY_SIM) | |
538 #define _ENTITY_PREFIXED(N) sim_##N | |
539 #elif defined (ENTITY_PL) | |
540 #define _ENTITY_PREFIXED(N) pl_##N | |
541 #elif defined (ENTITY_L1) | |
542 #define _ENTITY_PREFIXED(N) l1_##N | |
543 #elif defined (ENTITY_CC) | |
544 #define _ENTITY_PREFIXED(N) cc_##N | |
545 #elif defined (ENTITY_SS) | |
546 #define _ENTITY_PREFIXED(N) ss_##N | |
547 #elif defined (ENTITY_ESIM) | |
548 #define _ENTITY_PREFIXED(N) esim_##N | |
549 #elif defined (ENTITY_SMS) | |
550 #define _ENTITY_PREFIXED(N) sms_##N | |
551 #elif defined (ENTITY_MM) | |
552 #define _ENTITY_PREFIXED(N) mm_##N | |
553 #elif defined (ENTITY_RR) | |
554 #define _ENTITY_PREFIXED(N) rr_##N | |
555 #elif defined (ENTITY_DL) | |
556 #define _ENTITY_PREFIXED(N) dl_##N | |
557 #elif defined (ENTITY_L2R) | |
558 #define _ENTITY_PREFIXED(N) l2r_##N | |
559 #elif defined (ENTITY_TRA) | |
560 #define _ENTITY_PREFIXED(N) tra_##N | |
561 #elif defined (ENTITY_RLP) | |
562 #define _ENTITY_PREFIXED(N) rlp_##N | |
563 #elif defined (ENTITY_T30) | |
564 #define _ENTITY_PREFIXED(N) t30_##N | |
565 #elif defined (ENTITY_FAD) | |
566 #define _ENTITY_PREFIXED(N) fad_##N | |
567 #elif defined (ENTITY_RA) | |
568 #define _ENTITY_PREFIXED(N) ra_##N | |
569 #elif defined (ENTITY_WAP) | |
570 #define _ENTITY_PREFIXED(N) wap_##N | |
571 #elif defined (ENTITY_UDP) | |
572 #define _ENTITY_PREFIXED(N) udp_##N | |
573 #elif defined (ENTITY_IP) | |
574 #define _ENTITY_PREFIXED(N) ip_##N | |
575 #elif defined (ENTITY_RRLP) | |
576 #define _ENTITY_PREFIXED(N) rrlp_##N | |
577 #elif defined (ENTITY_PPP) | |
578 #define _ENTITY_PREFIXED(N) ppp_##N | |
579 #elif defined (ENTITY_BTI) | |
580 #define _ENTITY_PREFIXED(N) bti_##N | |
581 #elif defined (ENTITY_L1) | |
582 #ifdef NEW_FRAME | |
583 #include "ofe.h" | |
584 #endif | |
585 #elif defined (ENTITY_TAP) | |
586 #define _ENTITY_PREFIXED(N) tap_##N | |
587 #elif defined (ENTITY_PCO) | |
588 #define _ENTITY_PREFIXED(N) pco_##N | |
589 #elif defined (ENTITY_PAN) | |
590 #define _ENTITY_PREFIXED(N) pan_##N | |
591 #elif defined (ENTITY_TST) | |
592 #define _ENTITY_PREFIXED(N) tst_##N | |
593 #elif defined (ENTITY_APP) | |
594 #define _ENTITY_PREFIXED(N) app_##N | |
595 #endif | |
596 #endif | |
597 | |
598 #endif |