1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project : GSM-PS (6147)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul : PSA_UARTP
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : This module defines the processing functions for the
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 | primitives sent to the protocol stack adapter by the DTI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 | interface.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #ifdef UART
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #ifndef PSA_UARTP_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #define PSA_UARTP_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #include "aci_all.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 /*==== INCLUDES ===================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include "aci_cmh.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #include "ati_cmd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #include "aci_cmd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #include "dti.h" /* functionality of the dti library */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #include "aci.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #include "aci_lst.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 #include "dti_conn_mng.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #include "dti_cntrl_mng.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #include "psa_uart.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #include "ati_io.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #include "cmh_uart.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #include "aci_mem.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #include "ati_src_uart.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #include "sap_dti.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 /*==== CONSTANTS ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 /*==== TYPES ======================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 /*==== EXPORT =====================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 EXTERN void cmhUART_erase_elem_received_cmd (UBYTE srcId);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 /*==== VARIABLES ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 /*==== FUNCTIONS ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 /* for tracing of establishing of CMD channels for dual port version */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 #ifdef RMV_15_04_03
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 CHAR gob_tst_buf[80];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 /********** UART related primitives *************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 +-------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 | ROUTINE : psa_uart_parameters_cnf |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 +-------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 PURPOSE : .
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 GLOBAL void psa_uart_parameters_cnf( T_UART_PARAMETERS_CNF *uart_parameters_cnf )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 TRACE_FUNCTION("psa_uart_parameters_cnf");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 cmhUART_ParmsUpdated( uart_parameters_cnf->device );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 PFREE(uart_parameters_cnf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 +-------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 | ROUTINE : psa_uart_parameters_ind |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 +-------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 PURPOSE : .
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 TODO: set uart_instances parameter for aci here..
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 GLOBAL void psa_uart_parameters_ind( T_UART_PARAMETERS_IND *uart_parameters_ind )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 UBYTE i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 UBYTE srcId;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 TRACE_FUNCTION("psa_uart_parameters_ind");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 /* for tracing of establishing of CMD channels for dual port version */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 #ifdef RMV_15_04_03
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 memset (gob_tst_buf, 0, 80);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 sprintf(gob_tst_buf+strlen(gob_tst_buf), "pi:%d ", uart_parameters_ind->uart_instances);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 /*FF_ATI*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 for (i=0;i<uart_parameters_ind->uart_instances;i++)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 srcId = uart_new_source (i, UART_DLCI_NOT_MULTIPLEXED);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 cmhUART_startConnection (srcId, DEVICE_TYPE_URT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 PFREE(uart_parameters_ind);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 #if defined (RMV_01_04_03) AND defined (DTI)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 /* this is the same as AT%DATA=2,"UART",1,,"SER","UART",0, which is issued by RIL */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 BOOL rv = dti_cntrl_set_redirect_from_device ((UBYTE)DTI_MODE_PERM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 DTI_ENTITY_UART,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 1,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 0,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 DTI_ENTITY_UART,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 0,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 0,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 DTI_CPBLTY_SER,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 0);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 if (rv EQ TRUE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 TRACE_EVENT("dti_cntrl_set_redirect_from_device returned TRUE");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 TRACE_EVENT("dti_cntrl_set_redirect_from_device returned FALSE");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 +-------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 | ROUTINE : psa_uart_dti_cnf |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 +-------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 PURPOSE : .
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 GLOBAL void psa_uart_dti_cnf( T_UART_DTI_CNF *uart_dti_cnf )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 T_ACI_DTI_PRC *src_infos = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 T_DTI_CONN_LINK_ID link_id;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 TRACE_FUNCTION("psa_uart_dti_cnf");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 src_infos = cmhUART_find_dlci (uart_src_params,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 uart_dti_cnf->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 uart_dti_cnf->dlci);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 /* for tracing of establishing of CMD channels for dual port version */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 #ifdef RMV_15_04_03
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 sprintf(gob_tst_buf+strlen(gob_tst_buf), "utc:%d ", uart_dti_cnf->device);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 if (src_infos == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 TRACE_EVENT ("psa_uart_dti_cnf: src_infos EQ NULL");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 PFREE(uart_dti_cnf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 return;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 #ifdef DTI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 link_id = dti_cntrl_get_link_id( DTI_ENTITY_UART, uart_dti_cnf->device, uart_dti_cnf->dlci );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 if (uart_dti_cnf->dti_conn EQ UART_DISCONNECT_DTI)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 /* tell DTI MNG that connection is closed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 dti_cntrl_entity_disconnected( link_id, DTI_ENTITY_UART );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 else if (uart_dti_cnf->dti_conn EQ UART_CONNECT_DTI)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 /* tell DTI MNG that connection is completed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 dti_cntrl_entity_connected( link_id, DTI_ENTITY_UART, DTI_OK );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 PFREE(uart_dti_cnf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 | ROUTINE : psa_UART_error_IND |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 EXTERN void uart_erase_source( UBYTE srcId );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 GLOBAL void psa_uart_error_ind( T_UART_ERROR_IND *uart_error_ind )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 T_ACI_DTI_PRC *cmd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 T_DTI_CONN_LINK_ID link_id;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 CHAR buf[40];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 TRACE_FUNCTION("psa_uart_error_ind");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 /* for tracing of establishing of CMD channels for dual port version */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 #ifdef RMV_15_04_03
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 sprintf(gob_tst_buf+strlen(gob_tst_buf), "uei ");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 cmd = cmhUART_find_dlci( uart_src_params,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 uart_error_ind->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 uart_error_ind->dlci);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 #ifdef DTI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 switch( uart_error_ind->error )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 case( UART_ERROR_NO_CHANNEL ):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 sprintf(buf, "Channel number %d cannot be created", cmd->srcId);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 TRACE_EVENT(buf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 link_id = dti_cntrl_get_link_id( DTI_ENTITY_UART, uart_error_ind->device, uart_error_ind->dlci );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 /* tell DTI manager that establishment has failed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 dti_cntrl_entity_connected( link_id, DTI_ENTITY_UART, DTI_ERROR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 case( UART_ERROR_MUX_ESTABLISH_FAIL ):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 case( UART_ERROR_MUX_NO_RESPONSE ):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 TRACE_EVENT("UART_ERROR_IND received with cause other than UART_ERROR_NO_CHANNEL");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 PFREE(uart_error_ind);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 | PROJECT : GSM-PS (6147) MODULE :PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 | ROUTINE : psa_uart_disable_cnf |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 GLOBAL void psa_uart_disable_cnf(T_UART_DISABLE_CNF *uart_disable_cnf)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 TRACE_FUNCTION("psa_uart_disable_cnf");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 PFREE(uart_disable_cnf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 | PROJECT : GSM-PS (6147) MODULE :PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 | ROUTINE : psa_uart_ring_cnf |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 GLOBAL void psa_uart_ring_cnf(T_UART_RING_CNF *uart_ring_cnf)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 T_ACI_DTI_PRC *src_infos = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 TRACE_FUNCTION("psa_uart_ring_cnf");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 src_infos = cmhUART_find_dlci (uart_src_params,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 uart_ring_cnf->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 uart_ring_cnf->dlci);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 if (src_infos EQ NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 TRACE_EVENT_P2 ("[ERR] psa_uart_ring_cnf: not found: device=%d; dlci=%d",
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 uart_ring_cnf->device, uart_ring_cnf->dlci);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 BITFIELD_CLEAR (src_infos->data_cntr, UART_RING_RUNNING);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 PFREE(uart_ring_cnf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 | PROJECT : GSM-PS (6147) MODULE :PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 | ROUTINE : psa_uart_dcd_cnf |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 GLOBAL void psa_uart_dcd_cnf(T_UART_DCD_CNF *uart_dcd_cnf )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 TRACE_FUNCTION("psa_uart_dcd_cnf");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 PFREE(uart_dcd_cnf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 | ROUTINE : psa_uart_escape_cnf |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 GLOBAL void psa_uart_escape_cnf(T_UART_ESCAPE_CNF *uart_escape_cnf )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 TRACE_FUNCTION("psa_uart_escape_cnf");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 PFREE(uart_escape_cnf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 | ROUTINE : psa_uart_dti_ind |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 this primitive is sent by UART to indicate that a dti-channel has been
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 closed (or opened, theoretically) without previous request from ACI.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 GLOBAL void psa_uart_dti_ind( T_UART_DTI_IND
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 *uart_dti_ind )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 T_DTI_CONN_LINK_ID link_id = DTI_LINK_ID_NOTPRESENT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 T_ACI_DTI_PRC *src_infos = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 TRACE_FUNCTION("psa_uart_dti_ind");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 src_infos = cmhUART_find_dlci (uart_src_params,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 uart_dti_ind->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 uart_dti_ind->dlci);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 #ifdef DTI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 if (src_infos EQ NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 TRACE_EVENT_P2 ("[ERR] psa_uart_dti_ind: not found: device=%d; dlci=%d",
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 uart_dti_ind->device, uart_dti_ind->dlci);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 link_id = dti_cntrl_get_link_id( DTI_ENTITY_UART, uart_dti_ind->device, uart_dti_ind->dlci );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 if (uart_dti_ind->dti_conn EQ UART_DISCONNECT_DTI)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 /* tell DTI MNG that connection is closed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 dti_cntrl_entity_disconnected( link_id, DTI_ENTITY_UART );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 else if (uart_dti_ind->dti_conn EQ UART_CONNECT_DTI)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 dti_cntrl_entity_connected( link_id, DTI_ENTITY_UART, DTI_OK );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 PFREE(uart_dti_ind);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 | ROUTINE : psa_uart_detected_ind |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390 TODO!!!
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394 GLOBAL void psa_uart_detected_ind(T_UART_DETECTED_IND *uart_detected_ind )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 TRACE_FUNCTION("psa_uart_detected_ind()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 cmhUART_DetectedESC_DTR ( uart_detected_ind->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399 uart_detected_ind->dlci,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 uart_detected_ind->cause );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 PFREE(uart_detected_ind);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
405
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 /********* DTI related prims ****************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
412 +-------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
413 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
414 | ROUTINE : trace_buffer |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
415 +-------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
416
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
417 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
418
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
419 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
420 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
421 LOCAL void trace_buffer (UBYTE *buffer, int len)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
422 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
423 char trcBuf[80];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
424 char *writeP;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
425 int i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
426
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
427 sprintf (trcBuf, "Buffer Len.: %d", len);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
428 TRACE_EVENT (trcBuf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
429
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
430 writeP = trcBuf;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
431 for (i = 0; i < len; i++)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
432 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
433 writeP += sprintf (writeP, "%02X ", buffer[i]);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
434 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
435 *writeP = '\0';
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
436 TRACE_EVENT ("===================================================");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
437 TRACE_EVENT (trcBuf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
438 TRACE_EVENT ("===================================================");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
439 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
440 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
441 /************ MUX related primitives ******************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
442
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
443 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
444 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
445 | PROJECT : GSM-PS (6147) MODULE :PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
446 | ROUTINE : psa_uart_mux_start_cnf |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
447 +---------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
448
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
449 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
450
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
451 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
452
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
453 GLOBAL void psa_uart_mux_start_cnf(T_UART_MUX_START_CNF *uart_mux_start_cnf)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
454 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
455 TRACE_FUNCTION("psa_uart_mux_start_cnf");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
456
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
457 PFREE(uart_mux_start_cnf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
458 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
459
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
460 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
461 +---------------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
462 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
463 | ROUTINE : psa_uart_mux_dlc_establish_ind |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
464 +---------------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
465
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
466 PURPOSE : New dlci channel created... Device multiplexed.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
467
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
468 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
469
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
470 GLOBAL void psa_uart_mux_dlc_establish_ind
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
471 ( T_UART_MUX_DLC_ESTABLISH_IND *uart_mux_dlc_establish_ind )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
472 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
473 UBYTE srcId;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
474 T_ACI_DTI_PRC *cmd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
475 BOOL Need_New_Source;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
476
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
477 TRACE_FUNCTION("psa_uart_mux_dlc_establish_ind");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
478
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
479 /* send response to UART */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
480 psaUART_MuxRes(uart_mux_dlc_establish_ind->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
481 uart_mux_dlc_establish_ind->dlci,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
482 uart_mux_dlc_establish_ind->n1);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
483
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
484 /* search if it is the first multiplexed channel to be established for this
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
485 particular device */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
486 cmd = cmhUART_find_dlci (uart_src_params,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
487 uart_mux_dlc_establish_ind->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
488 UART_DLCI_NOT_MULTIPLEXED);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
489
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
490 if (cmd EQ NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
491 /* means device has not been found: may (possibly ??) happen if some errors_ind
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
492 from UART have lead to erasing all previous sources of the device */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
493 Need_New_Source = TRUE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
494 else if (cmd->dlci NEQ UART_DLCI_NOT_MULTIPLEXED)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
495 /* then a new source is needed
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
496 (device aready has multiplexed channels) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
497 Need_New_Source = TRUE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
498 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
499 Need_New_Source = FALSE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
500
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
501 #ifdef DTI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
502 /* create new source */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
503 if( Need_New_Source )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
504 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
505 srcId = uart_new_source( uart_mux_dlc_establish_ind->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
506 uart_mux_dlc_establish_ind->dlci );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
507
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
508 cmd = find_element (uart_src_params, srcId, cmhUARTtest_srcId);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
509 if (cmd EQ NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
510 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
511 TRACE_EVENT_P1("[ERR] psa_uart_mux_dlc_establish_ind: "
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
512 "srcId=%d not found", srcId) ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
513 return ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
514 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
515 /* start new uart dti channel */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
516 cmhUART_startConnection (srcId, DEVICE_TYPE_MUX);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
517 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
518 else /* use previous one */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
519 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
520 T_DTI_ENTITY_ID entity_list[] = {DTI_ENTITY_ACI};
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
521
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
522 /*lint -e613 (Warning --Possible use of null pointer) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
523 srcId = cmd->srcId;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
524 uart_InitCmdStruct( cmd );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
525 cmd->dlci = uart_mux_dlc_establish_ind->dlci;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
526 cmd->LineState = LINE_CONNECTING;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
527 /*lint +e613 (Warning --Possible use of null pointer) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
528
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
529 cmhUART_ChangeDeviceType (srcId, DEVICE_TYPE_MUX);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
530
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
531 dti_cntrl_est_dpath_indirect ( srcId,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
532 entity_list,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
533 1,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
534 SPLIT,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
535 atiUART_dti_cb,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
536 DTI_CPBLTY_CMD,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
537 DTI_CID_NOTPRESENT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
538
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
539 dti_cntrl_change_sub_no(srcId, uart_mux_dlc_establish_ind->dlci);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
540 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
541
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
542 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
543
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
544 PFREE(uart_mux_dlc_establish_ind);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
545 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
546
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
547
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
548 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
549 +---------------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
550 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
551 | ROUTINE : psa_uart_mux_dlc_release_ind |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
552 +---------------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
553
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
554 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
555
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
556 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
557 GLOBAL void psa_uart_mux_dlc_release_ind( T_UART_MUX_DLC_RELEASE_IND *uart_mux_dlc_release_ind )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
558 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
559 T_ACI_DTI_PRC *cmd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
560 CHAR buf[40];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
561
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
562 TRACE_FUNCTION("psa_uart_mux_dlc_release_ind");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
563
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
564 cmd = cmhUART_find_dlci (uart_src_params,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
565 uart_mux_dlc_release_ind->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
566 uart_mux_dlc_release_ind->dlci);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
567
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
568 sprintf(buf,"Channel number %d cannot be created",cmd->srcId);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
569 TRACE_EVENT(buf);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
570
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
571 uart_erase_source (cmd->srcId);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
572 cmhUART_erase_elem_received_cmd (cmd->srcId);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
573 PFREE(uart_mux_dlc_release_ind);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
574 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
575
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
576 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
577 +---------------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
578 | PROJECT : GSM-PS (6147) MODULE : PSA_UART |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
579 | ROUTINE : psa_uart_mux_close_ind |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
580 +---------------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
581
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
582 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
583
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
584 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
585 GLOBAL void psa_uart_mux_close_ind( T_UART_MUX_CLOSE_IND *uart_mux_close_ind )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
586 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
587 T_ACI_DTI_PRC *cmd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
588 UBYTE srcId;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
589
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
590 TRACE_FUNCTION("psa_uart_mux_close_ind");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
591
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
592 TRACE_EVENT_P1("MUX closed on device number: %d", uart_mux_close_ind->device);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
593
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
594 do
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
595 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
596 cmd = cmhUART_find_dlci (uart_src_params,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
597 uart_mux_close_ind->device,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
598 UART_DLCI_NOT_MULTIPLEXED);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
599
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
600 if( cmd EQ NULL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
601 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
602
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
603 TRACE_EVENT_P1("Mux Channel with src id %d was released", cmd->srcId);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
604
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
605 uart_erase_source( cmd->srcId );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
606 cmhUART_erase_elem_received_cmd( cmd->srcId );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
607
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
608 } while( TRUE );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
609
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
610
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
611
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
612 /* reconnect device to uart in non-MUX mode */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
613 srcId = uart_new_source( uart_mux_close_ind->device, UART_DLCI_NOT_MULTIPLEXED );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
614
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
615 /* start uart dti channel */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
616 cmhUART_startConnection (srcId, DEVICE_TYPE_URT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
617
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
618 PFREE(uart_mux_close_ind);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
619 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
620
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
621 #endif /* UART */
|