comparison gsm-fw/g23m-aci/aci/cmh_psir.c @ 775:eedbf248bac0

gsm-fw/g23m-aci subtree: initial import from LoCosto source
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 12 Oct 2014 01:45:14 +0000
parents
children
comparison
equal deleted inserted replaced
774:40a721fd9854 775:eedbf248bac0
1 /*
2 +------------------------------------------------------------------------------
3 | File: cmh_psir.c
4 +------------------------------------------------------------------------------
5 | Copyright 2002 Texas Instruments Berlin, AG
6 | All rights reserved.
7 |
8 | This file is confidential and a trade secret of Texas
9 | Instruments Berlin, AG
10 | The receipt of or possession of this file does not convey
11 | any rights to reproduce or disclose its contents or to
12 | manufacture, use, or sell anything it may describe, in
13 | whole, or in part, without the specific written consent of
14 | Texas Instruments Berlin, AG.
15 +------------------------------------------------------------------------------
16 | Purpose: This module defines the functions used by the command
17 | handler for packet I/O (PSI).
18 +------------------------------------------------------------------------------
19 */
20 #ifdef FF_PSI
21
22 #ifndef CMH_PSIR_C
23 #define CMH_PSIR_C
24 #endif
25
26 #include "aci_all.h"
27 /*==== INCLUDES ===================================================*/
28
29 #ifdef GPRS
30 #include "gprs.h"
31 #endif
32 #include "dti.h" /* functionality of the dti library */
33 #include "aci_cmh.h"
34 #include "ati_cmd.h"
35 #include "aci_cmd.h"
36
37 #include "aci.h"
38 #include "psa.h"
39
40 #include "cmh.h"
41 #include "dti_conn_mng.h"
42 #include "dti_cntrl_mng.h"
43 #ifdef GPRS
44 #include "gaci.h"
45 #include "gaci_cmh.h"
46 #endif
47
48
49 #include "sap_dti.h"
50 #include "cmh_sm.h"
51
52 #include "psa_psi.h"
53 #include "cmh_psi.h"
54 #include "ati_src_psi.h"
55
56
57 #ifndef CMH_UARTR_C
58 #define CMH_UARTR_C
59 #endif
60
61 #include "aci_all.h"
62
63
64 /*==== CONSTANTS ==================================================*/
65 #define MAX_BAUD_RATE 20
66 /*==== TYPES ======================================================*/
67
68 /*==== EXPORT =====================================================*/
69
70 /*==== VARIABLES ==================================================*/
71
72
73 /*==== FUNCTIONS ==================================================*/
74
75 /*
76 +--------------------------------------------------------------------+
77 | PROJECT : GPRS (8441) MODULE : CMH_PSI |
78 | STATE : finished ROUTINE : cmhPSI_Ind |
79 +--------------------------------------------------------------------+
80
81 PURPOSE :
82 */
83 GLOBAL void cmhPSI_Ind (T_ACI_PSI *psi_indic_msg, UBYTE src_id,U32 dio_cap)
84 {
85 #ifdef DTI
86 UBYTE capability = DTI_CPBLTY_NO;
87 UBYTE dti_capability;
88 BOOL ret_val1 = FALSE;
89 BOOL ret_val2 = FALSE;
90 T_DTI_ENTITY_ID entity_list[] = {DTI_ENTITY_ACI};
91
92 TRACE_FUNCTION ("cmhPSI_Ind()");
93 /* register device to the DTI Control Manager */
94 switch (dio_cap)
95 {
96 case DIO_DATA_SER:
97 capability = DTI_CPBLTY_SER;
98 break;
99 case DIO_DATA_MUX:
100 capability = DTI_CPBLTY_SER;
101 break;
102 case DIO_DATA_PKT:
103 capability = DTI_CPBLTY_PKT;
104 break;
105 }
106 dti_capability = capability;
107 ret_val1 = dti_cntrl_new_device ( src_id, /* ATI source ID */
108 DTI_ENTITY_PSI, /* device ID */
109 (UBYTE)(psi_indic_msg->devId&DIO_DEVICE_MASK), /* device number */
110 UART_DLCI_NOT_MULTIPLEXED,/* sub-channel number */
111 DTI_PORT_NUMBER_NOTPRESENT,/* ATI-RIV port number */
112 (UBYTE)(dti_capability|DTI_CPBLTY_CMD),/* capability */
113 (UBYTE)((psi_indic_msg->devId&DIO_DRV_MASK)>>24),/* driver id */
114 (UBYTE)((psi_indic_msg->devId&ACI_DIO_ID_MASK)>>8)); /* dio id */
115
116 if((psi_indic_msg->psi_data_mode EQ DRIVER_MODE_AT) OR
117 (psi_indic_msg->psi_data_mode EQ DRIVER_MODE_AT_DATA))
118 {
119
120 ret_val2 = dti_cntrl_est_dpath_indirect ( src_id,
121 entity_list,
122 1,
123 SPLIT,
124 atiPSI_dti_cb,
125 /*dti_capability*/DTI_CPBLTY_CMD,
126 DTI_CID_NOTPRESENT);
127 }
128 else
129 {
130 ret_val2 = TRUE;
131 }
132 if ((ret_val1 EQ TRUE) AND (ret_val2 EQ TRUE))
133 {
134 psaPSI_ConnRes ( psi_indic_msg->devId);
135 }
136 else
137 {
138 TRACE_EVENT ("ERROR: DTI MANAGER CAN NOT REGISTER DEVICE OR SET UP DTI CONNECTION");
139 }
140 #else
141 TRACE_EVENT ("ERROR: DTI MANAGER NOT ENABLED");
142 #endif /* DTI */
143 }
144
145 /*
146 +--------------------------------------------------------------------+
147 | PROJECT : GPRS (8441) MODULE : CMH_PSI |
148 | STATE : finished ROUTINE : cmhPSI_DTI_OpenCnf |
149 +--------------------------------------------------------------------+
150
151 PURPOSE :
152 */
153 GLOBAL void cmhPSI_DTI_OpenCnf (U32 devId, U32 link_id, T_DTI_CONN_RESULT result)
154 {
155 #ifdef DTI
156
157 TRACE_FUNCTION ("cmhPSI_DTI_OpenCnf()");
158
159 dti_cntrl_entity_connected( link_id, DTI_ENTITY_PSI, result);
160 #endif /* DTI */
161 }
162
163 /*
164 +--------------------------------------------------------------------+
165 | PROJECT : MODULE : CMH_PSI |
166 | STATE : finished ROUTINE : cmhPSI_DTI_Close |
167 +--------------------------------------------------------------------+
168
169 PURPOSE :
170 */
171 GLOBAL void cmhPSI_DTI_Close (U32 devId, T_PSI_DTI_CLS_TYP state, U32 link_id)
172 {
173 #ifdef DTI
174 #ifdef GPRS
175 UBYTE cid = PDP_CONTEXT_CID_INVALID;
176 #endif
177
178 TRACE_FUNCTION ("cmhPSI_Close()");
179 #ifdef GPRS
180 cid = gaci_get_cid_over_link_id(link_id);
181 #endif
182
183 switch(state)
184 {
185 case PSI_DTI_CLS_CNF:
186 /*DTI connection has been closed*/
187 dti_cntrl_entity_disconnected(link_id, DTI_ENTITY_PSI);
188 break;
189
190 case PSI_DTI_CLS_IND:
191 /*dti_cntrl_close_dpath_from_dti_id(EXTRACT_DTI_ID(link_id));*/
192 dti_cntrl_entity_disconnected(link_id, DTI_ENTITY_PSI);
193 break;
194
195 default:
196 break;
197 }
198 #ifdef GPRS
199 if( PDP_CONTEXT_CID_INVALID NEQ cid)
200 {
201 /* Make sure the context gets de-activated in any case */
202 cmhSM_deactivateAContext(CMD_SRC_NONE, cid);
203
204 gaci_RAT_caller(RAT_NO_CARRIER, cid, AT_CMD_CGDATA, CME_ERR_Unknown);
205 }
206 #endif
207
208 #endif /* DTI */
209 }
210
211 #endif /*FF_PSI*/
212 /*==== EOF ========================================================*/