FreeCalypso > hg > fc-magnetite
annotate src/gpf3/frame/route.c @ 370:0da72ce64c86
aci3: AT+CBC reimplemented in terms of FCHG API
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 01 Jan 2018 18:23:11 +0000 | 
| parents | c41a534f33c6 | 
| children | 
| rev | line source | 
|---|---|
| 
2
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +------------------------------------------------------------------------------ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | File: route.c | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 +------------------------------------------------------------------------------ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 | Copyright 2004 Texas Instruments Deutschland, AG | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | All rights reserved. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | This file is confidential and a trade secret of Texas | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | Instruments Berlin, AG | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | The receipt of or possession of this file does not convey | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | any rights to reproduce or disclose its contents or to | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | manufacture, use, or sell anything it may describe, in | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | whole, or in part, without the specific written consent of | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | Texas Instruments Deutschland, AG. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 +----------------------------------------------------------------------------- | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 | Purpose : This Modul performs the filtering and routing of | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | primitives for testing capabilities of the protocol stack. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 +----------------------------------------------------------------------------- | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 #ifndef __ROUTE_C__ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 #define __ROUTE_C__ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 /*==== INCLUDES ===================================================*/ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 #include <stdio.h> | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 #include <string.h> | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 #include "typedefs.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 #include "os.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include "vsi.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 #include "frame.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include "tools.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 #include "frm_defs.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 #include "frm_types.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "frm_glob.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 #include "p_mem.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #include "route.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #include "frm_ext.h" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 /*==== CONSTANTS ==================================================*/ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 /*==== TYPES ======================================================*/ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 /*==== CONSTANTS ====================================================*/ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 /*==== EXTERNALS =====================================================*/ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 /* -------------- S H A R E D - BEGIN ---------------- */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 #pragma data_seg("FRAME_SHARED") | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 extern OS_HANDLE ext_data_pool_handle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 extern T_HANDLE TestGroupHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 extern T_FRM_ROUTING_TABLE_ENTRY *Routing[]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 extern char TaskName[]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 #ifndef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 extern T_lemu_SendToQueue lemu_SendToQueue_func; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 /*==== VARIABLES ==================================================*/ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 T_HANDLE rt_tst_handle = VSI_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 extern int rt_tst_handle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 #pragma data_seg() | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 /* -------------- S H A R E D - END ---------------- */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 #ifndef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 extern const T_MEM_PROPERTIES *mem; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 /*==== FUNCTIONS ==================================================*/ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 | STATE : code ROUTINE : rt_Init | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 PURPOSE : initialize the routing table. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 GLOBAL SHORT rt_Init (void) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 USHORT i; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 * Initialize the routingTable | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 for ( i = 0; i <= MaxEntities; i++ ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 Routing[i] = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 return OS_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 | STATE : code ROUTINE : rt_CvrtOpcMask | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 PURPOSE : convert "1010101" mask to opcMask and opcStatus | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 LOCAL SHORT rt_CvrtToOpcMask ( char *OpcString, ULONG *opcMask, ULONG *opcStatus ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 unsigned int len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 unsigned int i; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 char *p; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 len = strlen ( OpcString ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 p = OpcString + len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 for ( i = 0; i < len; i++ ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 switch (*--p) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 case '1': | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 *opcMask |= (1<<i); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 *opcStatus |= (1<<i); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 case '0': | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 *opcMask |= (1<<i); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 *opcStatus &= ~((unsigned int)1<<i); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 case '*': /* wildcard matches */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 *opcMask &= ~((unsigned int)1<<i); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 *opcStatus &= ~((unsigned int)1<<i); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 default: | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 return OS_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 | STATE : code ROUTINE : rt_CvrtOpcMask | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 PURPOSE : convert opcMask and opcStatus to "1010101" | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 LOCAL SHORT rt_CvrtFromOpcMask ( char *OpcString, ULONG opcMask, ULONG opcStatus ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 signed char i; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 char len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 if ( opcMask >> 16 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 len = 32; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 len = 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 for ( i = len-1; i >= 0; i-- ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 if ( opcMask & (1<<i) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 if ( opcStatus & (1<<i) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 *OpcString = '1'; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 *OpcString = '0'; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 *OpcString = '*'; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 OpcString++; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 *(OpcString++) = ' '; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 *(OpcString++) = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 return OS_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 | STATE : code ROUTINE : rt_ReadRouting | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 PURPOSE : reads all routings of the routing table of the task. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 GLOBAL SHORT rt_RouteRead ( T_HANDLE Handle, char *Buffer ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 T_HANDLE TstComHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 static T_FRM_ROUTING_TABLE_ENTRY *pEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 char OrgReceiver[ RESOURCE_NAMELEN ]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 char NewReceiver[ RESOURCE_NAMELEN ]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 char OpcString [18]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 char const *pCmd; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 static UBYTE FirstRead = 1; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 if ( FirstRead ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 FirstRead = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 pEntry = Routing[Handle]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 if ( pEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 if ( pEntry->OldDestComHandle == ROUTE_ALL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 strcpy ( OrgReceiver, RT_ALL_TOKEN ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 strcpy ( OrgReceiver, pf_TaskTable[pEntry->OldDestComHandle].Name ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 TstComHandle = vsi_c_open ( Handle, FRM_TST_NAME ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 if ( pEntry->NewDestComHandle == TstComHandle ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 strcpy ( NewReceiver, pEntry->ExtDest ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 if ( pEntry->NewDestComHandle != 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 strcpy ( NewReceiver, pf_TaskTable[pEntry->NewDestComHandle].Name ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 if ( pEntry->opcMask ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 rt_CvrtFromOpcMask ( OpcString, pEntry->opcMask, pEntry->opcStatus ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 OpcString[0] = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 switch (pEntry->Command & RT_COMMAND_MASK) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 case RT_DUPLICATE: pCmd = SYSPRIM_DUPLICATE_TOKEN; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 case RT_REDIRECT: pCmd = SYSPRIM_REDIRECT_TOKEN; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 case RT_DESTROY: pCmd = SYSPRIM_REDIRECT_TOKEN; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 strcpy ( NewReceiver, SYSPRIM_NULL_TOKEN ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 default: pCmd = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 sprintf ( Buffer, "%s %s %s %s%s", pf_TaskTable[Handle].Name, pCmd, OrgReceiver, OpcString, NewReceiver ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 pEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 FirstRead = 1; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 pEntry = Routing[Handle]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 | STATE : code ROUTINE : rt_RoutingEntry | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 PURPOSE : adds a new routing to the routing table of the task. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 routings with duplicates are stored in the beginning | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 of the table because if the primitive is redirected and | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 send it can not be duplicated. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 LOCAL SHORT rt_RoutingEntry ( T_HANDLE SndTaskHandle, T_FRM_ROUTING_TABLE_ENTRY *pNewEntry, RT_ENTRY Status ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 T_FRM_ROUTING_TABLE_ENTRY *pEntry, *pNextEntry, *pPrevEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 * delete all entries with same OldDestComHandle if a destroy command is stored | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 if ( pNewEntry->Command & RT_DESTROY ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 if ( ( pEntry = Routing[SndTaskHandle] ) != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 do | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 if ( pEntry->OldDestComHandle == pNewEntry->OldDestComHandle ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 if ( pEntry == Routing[SndTaskHandle] ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 if ( pEntry->pNextEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry)->pPrevEntry = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 Routing[SndTaskHandle] = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pPrevEntry)->pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 if ( pEntry->pNextEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry)->pPrevEntry = pEntry->pPrevEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 os_DeallocateMemory ( SndTaskHandle, (T_VOID_STRUCT*)pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 pEntry = pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 while ( pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 * delete destroy command for OldDestComHandle if a new command is stored | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 if ( ( pEntry = Routing[SndTaskHandle] ) != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 do | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 if ( pEntry->OldDestComHandle == pNewEntry->OldDestComHandle ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 if ( pEntry->Command == RT_DESTROY ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 if ( pEntry == Routing[SndTaskHandle] ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 if ( pEntry->pNextEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry)->pPrevEntry = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 Routing[SndTaskHandle] = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pPrevEntry)->pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 if ( pEntry->pNextEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry)->pPrevEntry = pEntry->pPrevEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 os_DeallocateMemory ( SndTaskHandle, (T_VOID_STRUCT*)pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 pEntry = pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 while ( pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 if ( (pEntry = Routing[SndTaskHandle]) != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 do | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 if ( pEntry->SndTaskHandle == SndTaskHandle | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 && pEntry->NewDestComHandle == pNewEntry->NewDestComHandle | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 && pEntry->OldDestComHandle == pNewEntry->OldDestComHandle | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 && pEntry->MsgType == pNewEntry->MsgType ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 if ( !strcmp (pEntry->ExtDest, pNewEntry->ExtDest) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 if ( Status == RT_DELETE ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 if ( pEntry == Routing[SndTaskHandle] ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 Routing[SndTaskHandle] = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 if ( pEntry->pNextEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry)->pPrevEntry = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pPrevEntry)->pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 if ( pEntry->pNextEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry)->pPrevEntry = pEntry->pPrevEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 os_DeallocateMemory ( SndTaskHandle, (T_VOID_STRUCT*)pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 #ifndef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 pEntry->Command = pNewEntry->Command; /* modify command for old routing entry */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 pEntry->opcMask = pNewEntry->opcMask; /* set new opcMask in old routing entry */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 pEntry->opcStatus = pNewEntry->opcStatus; /* set new opcStatus in old routing entry */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 pEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 if ( ( pEntry->opcMask == pNewEntry->opcMask ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 && ( pEntry->opcStatus == pNewEntry->opcStatus ) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 strcpy ( pEntry->ExtDest, pNewEntry->ExtDest ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 pEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 pEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 } while ( pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 pPrevEntry = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 if ( ( pEntry = Routing[SndTaskHandle] ) != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 do | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 pPrevEntry = pEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 if ( pNewEntry->Command & RT_DUPLICATE )/* put Duplications at the end of Duplications */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 if ( pEntry->Command & RT_DUPLICATE ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 pEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 if ( pPrevEntry == Routing[SndTaskHandle] ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 pPrevEntry = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 pPrevEntry = pEntry->pPrevEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 pEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 while ( pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 if ( os_AllocateMemory ( SndTaskHandle, (T_VOID_STRUCT**)&pNextEntry, sizeof(T_FRM_ROUTING_TABLE_ENTRY), OS_NO_SUSPEND, ext_data_pool_handle ) == OS_TIMEOUT ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 return RT_NO_MEM; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 pNextEntry->SndTaskHandle = SndTaskHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 pNextEntry->OldDestComHandle = pNewEntry->OldDestComHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 pNextEntry->NewDestComHandle = pNewEntry->NewDestComHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 pNextEntry->OldDestTaskHandle = pNewEntry->OldDestTaskHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 pNextEntry->Command = pNewEntry->Command; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 pNextEntry->MsgType = pNewEntry->MsgType; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 pNextEntry->opcMask = pNewEntry->opcMask; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 pNextEntry->opcStatus = pNewEntry->opcStatus; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 strcpy ( pNextEntry->ExtDest, pNewEntry->ExtDest ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 if ( pEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 pEntry->pPrevEntry = pNextEntry; /* store at the beginning/in the list */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 pNextEntry->pNextEntry = NULL; /* append to the list */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 if ( pPrevEntry ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 pPrevEntry->pNextEntry = pNextEntry; /* store in the list */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 pNextEntry->pPrevEntry = pPrevEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 pNextEntry->pNextEntry = pEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 Routing[SndTaskHandle] = pNextEntry; /* store at the beginning */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 pNextEntry->pNextEntry = pEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 #if 0 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 /* not needed -> temporarily removed */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 | STATE : code ROUTINE : rt_ModifyRouting | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 PURPOSE : handle the contents of the redirection or duplicate | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 system primitive | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 GLOBAL SHORT rt_isolate_entity ( T_HANDLE caller, char *entity ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 T_FRM_ROUTING_TABLE_ENTRY entry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 T_HANDLE snd; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
493 T_HANDLE rcv; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
494 int read_entry = FIRST_ENTRY; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
495 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
496 if ( (rcv = vsi_e_handle ( caller, entity )) == VSI_ERROR ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
497 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
498 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
499 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
500 while ( vsi_c_get_entity_com_entry ( read_entry, rcv, &snd ) == VSI_OK ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
501 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
502 read_entry = NEXT_ENTRY; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
503 entry.SndTaskHandle = snd; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
504 entry.OldDestComHandle = rcv; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
505 entry.NewDestComHandle = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
506 entry.opcMask = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
507 entry.MsgType = RT_PRIMITIVE_TYPE; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
508 entry.Command = RT_DESTROY; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
509 rt_RoutingEntry ( snd, &entry, RT_STORE ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
510 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
511 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
512 entry.SndTaskHandle = rcv; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
513 entry.OldDestComHandle = ROUTE_ALL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
514 entry.NewDestComHandle = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
515 entry.opcMask = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
516 entry.MsgType = RT_PRIMITIVE_TYPE; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
517 entry.Command = RT_DESTROY; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
518 rt_RoutingEntry ( rcv, &entry, RT_STORE ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
519 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
520 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
521 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
522 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
523 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
524 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
525 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
526 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
527 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
528 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
529 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
530 | STATE : code ROUTINE : rt_ModifyRouting | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
531 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
532 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
533 PURPOSE : handle the contents of the redirection or duplicate | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
534 system primitive | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
535 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
536 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
537 GLOBAL SHORT rt_RoutingModify ( T_HANDLE SndTaskHandle, char *Command, char *RoutingString) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
538 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
539 char Token[81]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
540 char *pChar = RoutingString; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
541 T_FRM_ROUTING_TABLE_ENTRY Entry = { 0 }; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
542 unsigned int len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
543 T_FRM_ROUTING_TABLE_ENTRY *pEntry, *pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
544 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
545 if ( !strcmp (Command, SYSPRIM_DUPLICATE_TOKEN) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
546 Entry.Command = RT_DUPLICATE; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
547 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
548 if ( !strcmp (Command, SYSPRIM_REDIRECT_TOKEN) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
549 Entry.Command = RT_REDIRECT; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
550 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
551 if ( (len = GetNextToken (pChar, Token, " #")) == 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
552 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
553 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
554 pChar += (len+1); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
555 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
556 if ( !strcmp (Token, RT_CLEAR_TOKEN) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
557 Entry.Command |= RT_CLEAR_ENTRY; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
558 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
559 if ( !strcmp (Token, RT_ALL_TOKEN) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
560 Entry.Command |= RT_ALL_DESTINATION; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
561 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
562 if ( Entry.Command & RT_CLEAR_ENTRY ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
563 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
564 if ( (pEntry = Routing[SndTaskHandle]) != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
565 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
566 do | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
567 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
568 pNextEntry = (T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
569 os_DeallocateMemory ( SndTaskHandle, (T_VOID_STRUCT*)pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
570 pEntry = pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
571 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
572 while ( pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
573 Routing[SndTaskHandle] = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
574 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
575 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
576 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
577 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
578 if ( Entry.Command & RT_ALL_DESTINATION ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
579 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
580 Entry.OldDestComHandle = ROUTE_ALL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
581 Entry.OldDestTaskHandle = ROUTE_ALL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
582 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
583 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
584 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
585 if ( ( Entry.OldDestComHandle = vsi_c_open (SndTaskHandle, Token ) ) == VSI_ERROR ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
586 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
587 Entry.OldDestTaskHandle = Entry.OldDestComHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
588 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
589 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
590 if ( (len = GetNextToken (pChar, Token, " #")) == 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
591 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
592 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
593 pChar += (len+1); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
594 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
595 if ( !strcmp (Token, RT_TIMEOUT_TOKEN) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
596 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
597 Entry.MsgType = RT_TIMEOUT_TYPE; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
598 if ( (len = GetNextToken (pChar, Token, " #")) == 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
599 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
600 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
601 pChar += (len+1); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
602 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
603 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
604 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
605 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
606 if ( !strcmp (Token, RT_SIGNAL_TOKEN) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
607 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
608 Entry.MsgType = RT_SIGNAL_TYPE; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
609 if ( (len = GetNextToken (pChar, Token, " #")) == 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
610 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
611 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
612 pChar += (len+1); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
613 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
614 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
615 Entry.MsgType = RT_PRIMITIVE_TYPE; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
616 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
617 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
618 if ( (Token[0] == '1') || (Token[0] == '0') || (Token[0] == '*') ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
619 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
620 rt_CvrtToOpcMask(Token, &Entry.opcMask, &Entry.opcStatus); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
621 if ( (len = GetNextToken (pChar, Token, " #")) == 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
622 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
623 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
624 pChar += (len+1); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
625 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
626 /* else */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
627 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
628 if (!strcmp (Token, SYSPRIM_NULL_TOKEN)) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
629 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
630 if ( Entry.Command & RT_REDIRECT ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
631 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
632 Entry.Command |= RT_DESTROY; /* destroy the primitive */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
633 Entry.Command &= ~RT_REDIRECT; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
634 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
635 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
636 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
637 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
638 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
639 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
640 if ( ( Entry.NewDestComHandle = vsi_c_open (SndTaskHandle, Token ) ) == VSI_ERROR ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
641 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
642 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
643 if ( !strcmp ( FRM_PCO_NAME, Token ) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
644 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
645 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
646 if ( ( Entry.NewDestComHandle = vsi_c_open (SndTaskHandle, FRM_TST_NAME ) ) != VSI_ERROR ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
647 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
648 rt_tst_handle = Entry.NewDestComHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
649 if ( len < RESOURCE_NAMELEN ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
650 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
651 strncpy( Entry.ExtDest, Token, RESOURCE_NAMELEN ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
652 Entry.ExtDest[RESOURCE_NAMELEN-1] = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
653 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
654 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
655 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
656 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
657 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
658 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
659 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
660 if ( Entry.Command & RT_ALL_DESTINATION ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
661 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
662 if ( (pEntry = Routing[SndTaskHandle]) != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
663 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
664 int all_cleared = 1; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
665 do | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
666 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
667 pNextEntry = (T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
668 if ( (pEntry->NewDestComHandle == Entry.NewDestComHandle ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
669 && !strcmp(pEntry->ExtDest, Entry.ExtDest) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
670 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
671 if ( pEntry == Routing[SndTaskHandle] ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
672 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
673 Routing[SndTaskHandle] = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
674 if ( pEntry->pNextEntry != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
675 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
676 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry)->pPrevEntry = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
677 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
678 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
679 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
680 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
681 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pPrevEntry)->pNextEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
682 if ( pEntry->pNextEntry != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
683 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
684 ((T_FRM_ROUTING_TABLE_ENTRY*)pEntry->pNextEntry)->pPrevEntry = pEntry->pPrevEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
685 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
686 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
687 os_DeallocateMemory ( SndTaskHandle, (T_VOID_STRUCT*)pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
688 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
689 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
690 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
691 all_cleared = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
692 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
693 pEntry = pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
694 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
695 while ( pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
696 if ( all_cleared == 1 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
697 Routing[SndTaskHandle] = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
698 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
699 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
700 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
701 if ( (pChar >= RoutingString+ strlen (RoutingString)) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
702 || ((len = GetNextToken (pChar, Token, " #")) == 0) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
703 return ( rt_RoutingEntry(SndTaskHandle, &Entry, RT_STORE) ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
704 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
705 pChar += (len+1); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
706 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
707 if ( Entry.Command & RT_CLEAR_ENTRY ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
708 return ( rt_RoutingEntry(SndTaskHandle, &Entry, RT_DELETE) ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
709 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
710 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
711 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
712 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
713 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
714 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
715 #ifndef RUN_FLASH | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
716 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
717 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
718 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
719 | STATE : code ROUTINE : rt_routePrim | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
720 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
721 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
722 PURPOSE : Looks if the task have some routing rules stored and | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
723 perform the redirection or duplication. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
724 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
725 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
726 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
727 GLOBAL SHORT rt_Route ( T_HANDLE SndTaskHandle, T_HANDLE RcvComHandle, USHORT Prio, ULONG Suspend, OS_QDATA *Msg ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
728 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
729 T_FRM_ROUTING_TABLE_ENTRY *pEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
730 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
731 T_PRIM_HEADER *prim; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
732 ULONG opc; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
733 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
734 if ( ( pEntry = Routing[SndTaskHandle] ) != NULL ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
735 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
736 if ( pEntry->MsgType == Msg->data16 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
737 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
738 prim = (T_PRIM_HEADER*)Msg->ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
739 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
740 #ifndef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
741 if (prim->opc & MEMHANDLE_OPC) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
742 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
743 P_MEMHANDLE_SDU(prim)=0x00000000; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
744 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
745 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
746 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
747 do | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
748 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
749 if ( SndTaskHandle == pEntry->SndTaskHandle | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
750 && ( (RcvComHandle == pEntry->OldDestComHandle) || (pEntry->OldDestComHandle == ROUTE_ALL) ) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
751 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
752 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
753 * a route for the receiver is defined. Now | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
754 * check the filter conditions | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
755 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
756 opc = ((T_PRIM_HEADER*)Msg->ptr)->opc; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
757 if ( (opc & pEntry->opcMask) == (pEntry->opcStatus & pEntry->opcMask) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
758 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
759 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
760 * filter matched -> redirect, duplicate or destroy | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
761 * the primitive. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
762 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
763 switch (pEntry->Command & RT_COMMAND_MASK) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
764 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
765 case RT_DESTROY: | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
766 /* add VSI_PPM_FREE(Msg->ptr) just to avoid the PPM warning of freeing a primitive in a queue */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
767 VSI_PPM_RCV(Msg->ptr); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
768 VSI_PPM_FREE(Msg->ptr); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
769 os_DeallocatePartition (SndTaskHandle, Msg->ptr-PPM_OFFSET ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
770 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
771 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
772 case RT_REDIRECT: | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
773 #ifndef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
774 if (pEntry->NewDestComHandle != rt_tst_handle) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
775 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
776 /* if not on tool side and not sending via TST -> send directly */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
777 Msg->e_id = pEntry->NewDestComHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
778 return ( (SHORT)os_SendToQueue ( SndTaskHandle, pf_TaskTable[pEntry->NewDestComHandle].QueueHandle, OS_NORMAL, OS_SUSPEND, Msg ) ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
779 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
780 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
781 /*lint -fallthrough */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
782 case RT_DUPLICATE: | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
783 if (pEntry->NewDestComHandle != OS_ERROR) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
784 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
785 OS_QDATA QData; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
786 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
787 QData.len = (USHORT)(PSIZE(P2D(Msg->ptr))-sizeof(T_PRIM_HEADER)); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
788 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
789 /* QData.len = 4; not needed if per reference */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
790 T_DP_HEADER *dp_hdr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
791 #if 0 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
792 P_ATTACH(P2D(prim)); /* recursivly increase use counters */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
793 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
794 prim->use_cnt++; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
795 if ( prim->dph_offset != 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
796 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
797 dp_hdr = (T_DP_HEADER*)((ULONG*)prim + prim->dph_offset); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
798 /* only increment use_cnt for dynamic primitives - not for DTI primitives */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
799 if ( dp_hdr->magic_nr == GUARD_PATTERN ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
800 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
801 do | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
802 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
803 dp_hdr->use_cnt++; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
804 } while ( (dp_hdr = (T_DP_HEADER*)dp_hdr->next) != NULL ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
805 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
806 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
807 #endif /* 0 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
808 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
809 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
810 QData.data16 = MSG_PRIMITIVE; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
811 QData.ptr = Msg->ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
812 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
813 #ifndef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
814 if (pEntry->NewDestComHandle != rt_tst_handle) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
815 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
816 Msg->e_id = pEntry->NewDestComHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
817 os_SendToQueue ( SndTaskHandle, pf_TaskTable[pEntry->NewDestComHandle].QueueHandle, OS_NORMAL, OS_SUSPEND, Msg ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
818 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
819 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
820 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
821 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
822 /* if on tool side or sending via TST -> send with sys header a.s.o */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
823 rt_ExtPrimitive ( SndTaskHandle, pEntry->NewDestComHandle, RcvComHandle, pEntry->ExtDest, &QData ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
824 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
825 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
826 if ( pEntry->Command & RT_REDIRECT ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
827 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
828 T_VOID_STRUCT *free_ptr = (T_VOID_STRUCT*)P2D(prim); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
829 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
830 #ifndef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
831 if ((prim->opc & MEMHANDLE_OPC) && (mem!=NULL)) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
832 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
833 if (P_MEMHANDLE(prim)!=0) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
834 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
835 mem->dealloc(P_MEMHANDLE(prim)); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
836 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
837 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
838 #endif /* !_TOOLS_ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
839 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
840 vsi_free ((T_VOID_STRUCT**)&free_ptr FILE_LINE_MACRO); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
841 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
842 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
843 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
844 default: | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
845 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
846 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
847 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
848 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
849 pEntry = pEntry->pNextEntry; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
850 } while ( pEntry ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
851 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
852 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
853 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
854 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
855 * send original | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
856 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
857 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
858 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
859 return ( (SHORT)os_SendToQueue ( SndTaskHandle, RcvComHandle, Prio, Suspend, Msg ) ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
860 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
861 if((pf_TaskTable[RcvComHandle].Flags & USE_LEMU_QUEUE) AND | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
862 (lemu_SendToQueue_func.magic_nr == LEMU_SENDTOQUEUE_INITIALIZED)) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
863 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
864 if(lemu_SendToQueue_func.plemu_SendToQueue( SndTaskHandle, RcvComHandle, | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
865 pf_TaskTable[RcvComHandle].QueueHandle, Prio, Suspend, Msg ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
866 != lemu_SendToQueue_func.ret_ok ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
867 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
868 return OS_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
869 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
870 return OS_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
871 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
872 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
873 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
874 return ( (SHORT)os_SendToQueue ( SndTaskHandle, pf_TaskTable[RcvComHandle].QueueHandle, Prio, Suspend, Msg ) ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
875 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
876 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
877 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
878 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
879 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
880 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
881 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
882 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
883 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
884 | STATE : code ROUTINE : rt_ExtPrimitive | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
885 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
886 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
887 PURPOSE : formats duplicated primitive to be sent to TST | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
888 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
889 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
890 void rt_ExtPrimitive ( T_HANDLE TaskHandle, T_HANDLE DestComHandle, T_HANDLE OrgDestTaskHandle, char *ExtDest, OS_QDATA *Msg ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
891 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
892 T_PRIM_HEADER *prim; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
893 #ifndef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
894 T_PRIM_HEADER *sdu_prim; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
895 #endif /* not _TOOLS_ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
896 T_PRIM_HEADER *ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
897 T_S_HEADER *s_hdr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
898 OS_QDATA DMsg; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
899 ULONG AllocSize; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
900 LONG Status; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
901 ULONG suspend; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
902 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
903 T_S_HEADER *prim_s_hdr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
904 unsigned int i; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
905 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
906 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
907 prim = (T_PRIM_HEADER*)Msg->ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
908 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
909 AllocSize = S_ALLOC_SIZE(Msg->len + 1); /* +1 To add LF in TIF */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
910 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
911 if ( prim->dph_offset != 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
912 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
913 T_DP_HEADER *dp_hdr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
914 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
915 dp_hdr = (T_DP_HEADER*)((ULONG*)prim + prim->dph_offset); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
916 if ( dp_hdr->magic_nr != GUARD_PATTERN | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
917 #ifdef _TARGET_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
918 && route_desclist[TaskHandle] == TRUE | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
919 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
920 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
921 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
922 rt_desclist_to_sdu ( TaskHandle, DestComHandle, prim, &sdu_prim ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
923 prim = sdu_prim; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
924 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
925 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
926 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
927 AllocSize = S_ALLOC_SIZE(4 + 1); /* only ptr to primitive */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
928 #endif /* _TOOLS_ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
929 suspend = get_suspend_state(TaskHandle,CHECK_PRIM_SUSPEND); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
930 Status = os_AllocatePartition ( TaskHandle, (T_VOID_STRUCT**)&ptr, AllocSize, suspend, TestGroupHandle ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
931 if ( Status == OS_OK || Status == OS_WAITED || Status == OS_ALLOCATED_BIGGER ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
932 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
933 DMsg.data16 = MSG_PRIMITIVE; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
934 DMsg.data32 = Msg->data32; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
935 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
936 DMsg.len = AllocSize; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
937 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
938 DMsg.ptr = (T_VOID_STRUCT*)ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
939 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
940 ptr->opc = prim->opc; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
941 ptr->len = AllocSize; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
942 ptr->sh_offset = S_HDR_OFFSET(AllocSize - sizeof(T_S_HEADER)); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
943 s_hdr = (T_S_HEADER*)((ULONG*)ptr + ptr->sh_offset); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
944 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
945 if ( prim->sh_offset == 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
946 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
947 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
948 if the primitive is sent via the TAP REDIRECT TAP ... mechanism, then the prim->sh_offset | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
949 is zero and the org_rcv is filled corresponding to the original addressed entity name. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
950 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
951 vsi_e_name ( TaskHandle, OrgDestTaskHandle, TaskName ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
952 strcpy (s_hdr->org_rcv, TaskName); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
953 strcpy (s_hdr->rcv, ExtDest); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
954 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
955 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
956 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
957 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
958 if the primitive is sent via the TAP TPORT mechanism then the original receiver is already | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
959 filled by the TAP and copied to the newly allocated primitive to be routed. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
960 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
961 prim_s_hdr = (T_S_HEADER*)((ULONG*)prim + prim->sh_offset); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
962 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
963 for (i = 0; prim_s_hdr->org_rcv[i] != 0 && i < sizeof (s_hdr->org_rcv)-1; i++) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
964 s_hdr->org_rcv[i] = prim_s_hdr->org_rcv[i]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
965 for (i = 0; prim_s_hdr->rcv[i] != 0 && i < sizeof (s_hdr->rcv)-1; i++) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
966 s_hdr->rcv[i] = prim_s_hdr->rcv[i]; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
967 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
968 get_local_time (&s_hdr->time); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
969 os_GetTaskName ( TaskHandle, TaskHandle, TaskName ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
970 strcpy (s_hdr->snd, TaskName); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
971 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
972 vsi_e_name ( TaskHandle, OrgDestTaskHandle, TaskName ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
973 strcpy (s_hdr->org_rcv, TaskName); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
974 strcpy (s_hdr->rcv, ExtDest); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
975 os_GetTime(TaskHandle,&s_hdr->time); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
976 s_hdr->snd[0] = (char)(TaskHandle | HANDLE_BIT); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
977 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
978 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
979 memcpy ( (char*)P2D(ptr), P2D(Msg->ptr), Msg->len ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
980 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
981 ((T_PRIM_X*)(ptr))->prim_ptr = prim; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
982 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
983 DMsg.e_id = DestComHandle; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
984 #ifdef _TOOLS_ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
985 os_SendToQueue ( TaskHandle, DestComHandle, OS_NORMAL, OS_SUSPEND, &DMsg ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
986 #else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
987 if ((prim->opc & MEMHANDLE_OPC) && (mem!=NULL)) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
988 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
989 if (P_MEMHANDLE_SDU(prim)==0x00000000) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
990 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
991 /* copy MEM-handle content into new sdu */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
992 U8 *user_data; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
993 U16 ptr_length; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
994 user_data=mem->get_user_data(P_MEMHANDLE(prim), &ptr_length); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
995 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
996 if (user_data) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
997 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
998 T_sdu *sdu=(T_sdu *)M_ALLOC(ptr_length+2*sizeof(U16)); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
999 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1000 sdu->l_buf=ptr_length*8; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1001 sdu->o_buf=0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1002 memcpy(sdu->buf,user_data,ptr_length); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1003 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1004 P_MEMHANDLE_SDU(prim)=(U32)sdu; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1005 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1006 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1007 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1008 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1009 M_ATTACH((void*)P_MEMHANDLE_SDU(prim)); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1010 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1011 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1012 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1013 if ( PrimAborted[TaskHandle] > 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1014 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1015 if ( vsi_o_ttrace ( 0, TC_SYSTEM, "%d %s primitive routings aborted",PrimAborted[TaskHandle], pf_TaskTable[TaskHandle].Name ) == VSI_OK ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1016 PrimAborted[TaskHandle] = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1017 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1018 if ( os_SendToQueue ( TaskHandle, pf_TaskTable[DestComHandle].QueueHandle, OS_NORMAL, suspend, &DMsg ) == OS_TIMEOUT ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1019 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1020 T_VOID_STRUCT *free_ptr = (T_VOID_STRUCT*)P2D(prim); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1021 vsi_free ((T_VOID_STRUCT**)&free_ptr FILE_LINE_MACRO); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1022 vsi_trc_free (0, (T_VOID_STRUCT**)&ptr); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1023 PrimAborted[TaskHandle]++; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1024 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1025 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1026 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1027 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1028 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1029 T_VOID_STRUCT *free_ptr = (T_VOID_STRUCT*)P2D(prim); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1030 vsi_free ((T_VOID_STRUCT**)&free_ptr FILE_LINE_MACRO); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1031 PrimAborted[TaskHandle]++; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1032 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1033 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1034 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1035 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1036 #ifndef RUN_INT_RAM | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1037 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1038 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1039 | PROJECT : GSM-PS (6147) MODULE : PF_ROUTE | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1040 | STATE : code ROUTINE : rt_desclist_to_sdu | | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1041 +--------------------------------------------------------------------+ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1042 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1043 PURPOSE : formats duplicated primitive with descriptor list into a | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1044 primitive with SDU | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1045 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1046 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1047 int rt_desclist_to_sdu ( T_HANDLE caller, T_HANDLE dst, T_PRIM_HEADER *prim, T_PRIM_HEADER **sdu_prim ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1048 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1049 T_PRIM_HEADER *ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1050 T_DP_HEADER *dp_hdr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1051 T_M_HEADER *m_hdr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1052 T_desc3 *desc3; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1053 T_desc2 *desc2; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1054 T_desc *desc; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1055 int len = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1056 int sdu_prim_size = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1057 char *fill_ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1058 USHORT *l_buf_ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1059 USHORT *o_buf_ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1060 char *sdu_data_ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1061 T_sdu *sdu = NULL; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1062 unsigned int new_opc; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1063 int desc_type = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1064 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1065 dp_hdr = (T_DP_HEADER*)((ULONG*)prim + prim->dph_offset); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1066 /* primitive contains descriptor list */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1067 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1068 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1069 START OF NON GENERIC CODE | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1070 This code is for the phase 1 routing of primitives containing descriptor lists. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1071 It is non-generic and depends on the primitive ids defined in SAP docs. | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1072 It should be removed as soon as the generic descriptor list routing is ready | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1073 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1074 switch ( prim->opc ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1075 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1076 case 0x7754: /* DTI2_DATA_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1077 new_opc = 0x7755; /* DTI2_DATA_TEST_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1078 desc_type = VSI_DESC_TYPE2 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1079 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1080 case 0x3754: /* DTI2_DATA_REQ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1081 new_opc = 0x3755; /* DTI2_DATA_TEST_REQ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1082 desc_type = VSI_DESC_TYPE2 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1083 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1084 case 0x6800: /* SN_DATA_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1085 new_opc = 0x6806; /* SN_DATA_TEST_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1086 desc_type = VSI_DESC_TYPE2 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1087 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1088 case 0x2800: /* SN_DATA_REQ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1089 new_opc = 0x2806; /* SN_DATA_TEST_REQ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1090 desc_type = VSI_DESC_TYPE2 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1091 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1092 case 0x6801: /* SN_UNITDATA_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1093 new_opc = 0x6807; /* SN_DATA_TEST_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1094 desc_type = VSI_DESC_TYPE2 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1095 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1096 case 0x2801: /* SN_UNITDATA_REQ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1097 new_opc = 0x2807; /* SN_DATA_TEST_REQ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1098 desc_type = VSI_DESC_TYPE2 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1099 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1100 case 0x7701: /* DTI_DATA_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1101 new_opc = 0x7702; /* DTI_DATA_TEST_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1102 desc_type = VSI_DESC_TYPE1 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1103 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1104 case 0x3701: /* DTI_DATA_REQ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1105 new_opc = 0x3702; /* DTI_DATA_TEST_REQ */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1106 desc_type = VSI_DESC_TYPE1 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1107 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1108 case 0x80004097: /* GRLC_DATA_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1109 new_opc = 0x80014097; /* GRLC_DATA_IND_TEST */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1110 desc_type = VSI_DESC_TYPE1 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1111 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1112 case 0x80024097: /* GRLC_UNITDATA_IND */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1113 new_opc = 0x80034097; /* GRLC_UNITDATA_IND_TEST */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1114 desc_type = VSI_DESC_TYPE1 >> 16; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1115 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1116 default: | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1117 new_opc = prim->opc; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1118 break; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1119 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1120 /* END OF NON GENERIC CODE */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1121 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1122 /* | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1123 it has to be distinguished between T_desc, T_desc2 and T_desc3 because to length information | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1124 is located at different places inside the structure | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1125 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1126 m_hdr = (T_M_HEADER*)(((T_desc_list*)dp_hdr)->first) - 1; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1127 if ( m_hdr->desc_type != 0 ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1128 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1129 desc_type = m_hdr->desc_type; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1130 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1131 if ( desc_type == (VSI_DESC_TYPE2 >> 16) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1132 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1133 desc2 = (T_desc2*)(((T_desc_list2*)dp_hdr)->first); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1134 while (desc2 != NULL) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1135 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1136 len = len + desc2->len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1137 desc2 = (T_desc2 *)desc2->next; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1138 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1139 /* the size to be allocated for the primitive containing the sdu needs to be | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1140 root prim length + data length + sdu size minus data buffer - desc list2 size */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1141 sdu_prim_size = prim->len + len + sizeof(sdu->l_buf) + sizeof(sdu->o_buf) - sizeof(T_desc_list2); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1142 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1143 else if ( desc_type == (VSI_DESC_TYPE1 >> 16) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1144 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1145 desc = (T_desc*)(((T_desc_list*)dp_hdr)->first); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1146 while (desc != NULL) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1147 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1148 len = len + desc->len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1149 desc = (T_desc *)desc->next; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1150 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1151 /* the size to be allocated for the primitive containing the sdu needs to be | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1152 root prim length + data length + sdu size minus data buffer - desc list size */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1153 sdu_prim_size = prim->len + len + sizeof(sdu->l_buf) + sizeof(sdu->o_buf) - sizeof(T_desc_list); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1154 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1155 else if ( desc_type == (VSI_DESC_TYPE3 >> 16) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1156 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1157 /* it is assumed that type 3 is valid if not 1 or 2 */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1158 desc3 = (T_desc3*)(((T_desc_list3*)dp_hdr)->first); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1159 while (desc3 != NULL) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1160 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1161 len = len + desc3->len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1162 desc3 = (T_desc3 *)desc3->next; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1163 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1164 /* the size to be allocated for the primitive containing the sdu needs to be | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1165 root prim length + data length + sdu size minus data buffer - desc list3 size */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1166 sdu_prim_size = prim->len + len + sizeof(sdu->l_buf) + sizeof(sdu->o_buf) - sizeof(T_desc_list3); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1167 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1168 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1169 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1170 vsi_o_ttrace ( 0, TC_SYSTEM, "unknown desc type in 0x%x, routing aborted", prim->opc ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1171 vsi_c_free ( caller, (T_VOID_STRUCT**)&prim FILE_LINE_MACRO ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1172 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1173 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1174 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1175 if ( sdu_prim_size < (int)MaxPrimPartSize ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1176 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1177 ptr = (T_PRIM_HEADER*)vsi_c_new ( caller, sdu_prim_size, new_opc FILE_LINE_MACRO ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1178 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1179 else | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1180 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1181 vsi_o_ttrace ( 0, TC_SYSTEM, "desclist in 0x%x too long, routing aborted", prim->opc ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1182 vsi_c_free ( caller, (T_VOID_STRUCT**)&prim FILE_LINE_MACRO ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1183 return RT_ERROR; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1184 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1185 #ifdef MEMORY_SUPERVISION | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1186 vsi_ppm_send ( caller, dst, (T_PRIM_HEADER*)ptr FILE_LINE_MACRO ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1187 #endif /* MEMORY_SUPERVISION */ | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1188 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1189 fill_ptr = (char*)ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1190 l_buf_ptr = &((T_sdu*)((int*)fill_ptr + prim->dph_offset))->l_buf; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1191 o_buf_ptr = &((T_sdu*)((int*)fill_ptr + prim->dph_offset))->o_buf; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1192 sdu_data_ptr = (char*)&((T_sdu*)((int*)fill_ptr + prim->dph_offset))->buf; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1193 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1194 memcpy ( (char*)P2D(fill_ptr), (char*)P2D(prim), prim->len-sizeof(T_PRIM_HEADER) ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1195 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1196 *l_buf_ptr = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1197 *o_buf_ptr = 0; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1198 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1199 fill_ptr = sdu_data_ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1200 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1201 if ( desc_type == (VSI_DESC_TYPE2 >> 16) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1202 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1203 desc2 = (T_desc2*)(((T_desc_list2*)dp_hdr)->first); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1204 while (desc2 != NULL) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1205 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1206 *l_buf_ptr += (desc2->len*8); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1207 memcpy ( fill_ptr, (char*)(&desc2->buffer)+desc2->offset, desc2->len ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1208 fill_ptr += desc2->len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1209 desc2 = (T_desc2 *)desc2->next; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1210 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1211 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1212 else if ( desc_type == (VSI_DESC_TYPE1 >> 16) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1213 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1214 desc = (T_desc*)(((T_desc_list*)dp_hdr)->first); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1215 while (desc != NULL) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1216 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1217 *l_buf_ptr += (desc->len*8); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1218 memcpy ( fill_ptr, (char*)(&desc->buffer), desc->len ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1219 fill_ptr += desc->len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1220 desc = (T_desc *)desc->next; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1221 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1222 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1223 else if ( desc_type == (VSI_DESC_TYPE3 >>16) ) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1224 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1225 desc3 = (T_desc3*)(((T_desc_list3*)dp_hdr)->first); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1226 while (desc3 != NULL) | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1227 { | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1228 *l_buf_ptr += (desc3->len*8); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1229 memcpy ( fill_ptr, (char*)(desc3->buffer)+desc3->offset, desc3->len ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1230 fill_ptr += desc3->len; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1231 desc3 = (T_desc3 *)desc3->next; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1232 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1233 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1234 vsi_c_free ( caller, (T_VOID_STRUCT**)&prim FILE_LINE_MACRO ); | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1235 *sdu_prim = ptr; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1236 return RT_OK; | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1237 } | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1238 #endif | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1239 | 
| 
 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1240 | 
