FreeCalypso > hg > freecalypso-sw
comparison gsm-fw/g23m-aci/bat/bat_kerf.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 | Project : GSM-F&D (8411) | |
4 | Modul : ACI | |
5 +----------------------------------------------------------------------------- | |
6 | Copyright 2005 Texas Instruments Berlin | |
7 | All rights reserved. | |
8 | | |
9 | This file is confidential and a trade secret of Texas | |
10 | Instruments Inc. | |
11 | The receipt of or possession of this file does not convey | |
12 | any rights to reproduce or disclose its contents or to | |
13 | manufacture, use, or sell anything it may describe, in | |
14 | whole, or in part, without the specific written consent of | |
15 | Texas Instruments Berlin, AG. | |
16 +----------------------------------------------------------------------------- | |
17 | Purpose : This Modul holds the internal functions | |
18 | for the binary AT command library | |
19 +----------------------------------------------------------------------------- | |
20 */ | |
21 #define _BAT_KERF_C_ | |
22 | |
23 /*==== INCLUDES =============================================================*/ | |
24 #include <string.h> | |
25 #include <stdio.h> | |
26 | |
27 #include "typedefs.h" | |
28 #include "gdd.h" | |
29 #include "gdd_sys.h" | |
30 #include "l2p_types.h" | |
31 #include "l2p.h" | |
32 #include "bat.h" | |
33 #include "bat_ctrl.h" | |
34 #include "bat_intern.h" | |
35 | |
36 /*==== DEFINES ===========================================================*/ | |
37 | |
38 #define GET_INST(inst_hndl) ((T_BAT_instance_maintain*)\ | |
39 (*(ptr_bat_list + inst_hndl))) | |
40 | |
41 #define GET_CLNT(inst_mt,clnt_id) ((T_BAT_client_maintain*)\ | |
42 ((U32)sizeof(T_BAT_client_maintain)*clnt_id + \ | |
43 (U32)inst_mt + (U32)sizeof(T_BAT_instance_maintain))) | |
44 | |
45 /*==== GLOBAL VARS ===========================================================*/ | |
46 | |
47 GLOBAL U8 max_bat_num = 4; /* start the BAT Lib with maximum 4 instances */ | |
48 GLOBAL T_BAT_instance_maintain **ptr_bat_list = NULL; | |
49 | |
50 /*==== LOCAL VARS ===========================================================*/ | |
51 | |
52 /* This table will be removed once it is generated by the tool. | |
53 * As long as SAPE and makcdg does not handle feature flags, | |
54 * we do not use #ifdef ... #endif in this table | |
55 */ | |
56 | |
57 typedef struct | |
58 { | |
59 size_t size; | |
60 } T_map_params_2_size; | |
61 | |
62 static T_map_params_2_size params_2_size[] = | |
63 { | |
64 {/* BAT_CMD_SET_PERCENT_ALS = 0x0, */ sizeof(T_BAT_cmd_set_percent_als)}, | |
65 {/* BAT_CMD_SET_PERCENT_BAND = 0x1, */ sizeof(T_BAT_cmd_set_percent_band)}, | |
66 {/* BAT_CMD_ANDC = 0x2, */ sizeof(T_BAT_cmd_andc)}, | |
67 {/* BAT_CMD_SET_PLUS_CACM = 0x3, */ sizeof(T_BAT_cmd_set_plus_cacm)}, | |
68 {/* BAT_CMD_SET_PLUS_CAMM = 0x4, */ sizeof(T_BAT_cmd_set_plus_camm)}, | |
69 {/* BAT_CMD_SET_PLUS_CAOC = 0x5, */ sizeof(T_BAT_cmd_set_plus_caoc)}, | |
70 {/* BAT_CMD_SET_PERCENT_CBHZ = 0x6, */ sizeof(T_BAT_cmd_set_percent_cbhz)}, | |
71 {/* BAT_CMD_SET_PLUS_CBST = 0x7, */ sizeof(T_BAT_cmd_set_plus_cbst)}, | |
72 {/* BAT_CMD_SET_PERCENT_CCBS = 0x8, */ sizeof(T_BAT_cmd_set_percent_ccbs)}, | |
73 {/* BAT_CMD_SET_PLUS_CCFC = 0x9, */ sizeof(T_BAT_cmd_set_plus_ccfc)}, | |
74 {/* BAT_CMD_SET_PLUS_CCLK = 0xa, */ sizeof(T_BAT_cmd_set_plus_cclk)}, | |
75 {/* BAT_CMD_SET_PLUS_CCUG = 0xb, */ sizeof(T_BAT_cmd_set_plus_ccug)}, | |
76 {/* BAT_CMD_SET_PLUS_CCWA = 0xc, */ sizeof(T_BAT_cmd_set_plus_ccwa)}, | |
77 {/* BAT_CMD_SET_PLUS_CCWA_W = 0xd, */ sizeof(T_BAT_cmd_set_plus_ccwa_w)}, | |
78 {/* BAT_CMD_SET_PLUS_CFUN = 0xe, */ sizeof(T_BAT_cmd_set_plus_cfun)}, | |
79 {/* BAT_CMD_SET_PERCENT_CGAATT = 0xf, */ sizeof(T_BAT_cmd_set_percent_cgaatt)}, | |
80 {/* BAT_CMD_SET_PLUS_CGACT = 0x10 */ sizeof(T_BAT_cmd_set_plus_cgact)}, | |
81 {/* BAT_CMD_SET_PLUS_CGANS = 0x11 */ sizeof(T_BAT_cmd_set_plus_cgans)}, | |
82 {/* BAT_CMD_SET_PLUS_CGATT = 0x12 */ sizeof(T_BAT_cmd_set_plus_cgatt)}, | |
83 {/* BAT_CMD_SET_PERCENT_CGCLASS = 0x13 */ sizeof(T_BAT_cmd_set_percent_cgclass)}, | |
84 {/* BAT_CMD_SET_PLUS_CGCLASS = 0x14 */ sizeof(T_BAT_cmd_set_plus_cgclass)}, | |
85 {/* BAT_CMD_SET_PLUS_CGDATA = 0x15 */ sizeof(T_BAT_cmd_set_plus_cgdata)}, | |
86 {/* BAT_CMD_SET_PLUS_CGDCONT = 0x16 */ sizeof(T_BAT_cmd_set_plus_cgdcont)}, | |
87 {/* BAT_CMD_SET_PERCENT_CGMM = 0x17 */ sizeof(T_BAT_cmd_set_percent_cgmm)}, | |
88 {/* BAT_CMD_SET_PLUS_CGPADDR = 0x18 */ sizeof(T_BAT_cmd_set_plus_cgpaddr)}, | |
89 {/* BAT_CMD_SET_PERCENT_CGPCO = 0x19 */ sizeof(T_BAT_cmd_set_percent_cgpco)}, | |
90 {/* BAT_CMD_SET_PERCENT_CGPPP = 0x1a */ sizeof(T_BAT_cmd_set_percent_cgppp)}, | |
91 {/* BAT_CMD_SET_PLUS_CGQMIN = 0x1b */ sizeof(T_BAT_cmd_set_plus_cgqmin)}, | |
92 {/* BAT_CMD_SET_PLUS_CGQREQ = 0x1c */ sizeof(T_BAT_cmd_set_plus_cgqreq)}, | |
93 {/* BAT_CMD_SET_PLUS_CGSMS = 0x1d */ sizeof(T_BAT_cmd_set_plus_cgsms)}, | |
94 {/* BAT_CMD_SET_PERCENT_CHLD = 0x1e */ sizeof(T_BAT_cmd_set_percent_chld)}, | |
95 {/* BAT_CMD_SET_PERCENT_CHPL = 0x1f */ sizeof(T_BAT_cmd_set_percent_chpl)}, | |
96 {/* BAT_CMD_SET_PERCENT_CHPL_W = 0x20 */ sizeof(T_BAT_cmd_set_percent_chpl_w)}, | |
97 {/* BAT_CMD_SET_PLUS_CIND = 0x21 */ sizeof(T_BAT_cmd_set_plus_cind)}, | |
98 {/* BAT_CMD_SET_PLUS_CLAN = 0x22 */ sizeof(T_BAT_cmd_set_plus_clan)}, | |
99 {/* BAT_CMD_SET_PLUS_CLCK = 0x23 */ sizeof(T_BAT_cmd_set_plus_clck)}, | |
100 {/* BAT_CMD_SET_PLUS_CLIR = 0x24 */ sizeof(T_BAT_cmd_set_plus_clir)}, | |
101 {/* BAT_CMD_SET_PLUS_CLVL = 0x25 */ sizeof(T_BAT_cmd_set_plus_clvl)}, | |
102 {/* BAT_CMD_SET_PLUS_CMER = 0x26 */ sizeof(T_BAT_cmd_set_plus_cmer)}, | |
103 {/* BAT_CMD_SET_PLUS_CMGC = 0x27 */ sizeof(T_BAT_cmd_set_plus_cmgc)}, | |
104 {/* BAT_CMD_SET_PLUS_CMGD = 0x28 */ sizeof(T_BAT_cmd_set_plus_cmgd)}, | |
105 {/* BAT_CMD_SET_PLUS_CMGL = 0x29 */ sizeof(T_BAT_cmd_set_plus_cmgl)}, | |
106 {/* BAT_CMD_SET_PLUS_CMGL_W = 0x2a */ sizeof(T_BAT_cmd_set_plus_cmgl_w)}, | |
107 {/* BAT_CMD_SET_PLUS_CMGR = 0x2b */ sizeof(T_BAT_cmd_set_plus_cmgr)}, | |
108 {/* BAT_CMD_SET_PLUS_CMGR_W = 0x2c */ sizeof(T_BAT_cmd_set_plus_cmgr_w)}, | |
109 {/* BAT_CMD_SET_PLUS_CMGS = 0x2d */ sizeof(T_BAT_cmd_set_plus_cmgs)}, | |
110 {/* BAT_CMD_SET_PLUS_CMGW = 0x2e */ sizeof(T_BAT_cmd_set_plus_cmgw)}, | |
111 {/* BAT_CMD_SET_PLUS_CMOD = 0x2f */ sizeof(T_BAT_cmd_set_plus_cmod)}, | |
112 {/* BAT_CMD_SET_PLUS_CMSS = 0x30 */ sizeof(T_BAT_cmd_set_plus_cmss)}, | |
113 {/* BAT_CMD_SET_PLUS_CMUT = 0x31 */ sizeof(T_BAT_cmd_set_plus_cmut)}, | |
114 {/* BAT_CMD_SET_PLUS_CMUX = 0x32 */ sizeof(T_BAT_cmd_set_plus_cmux)}, | |
115 {/* BAT_CMD_SET_PLUS_CNMA = 0x33 */ sizeof(T_BAT_cmd_set_plus_cnma)}, | |
116 {/* BAT_CMD_SET_PLUS_CNMI = 0x34 */ sizeof(T_BAT_cmd_set_plus_cnmi)}, | |
117 {/* BAT_CMD_SET_PERCENT_COPS = 0x35 */ sizeof(T_BAT_cmd_set_percent_cops)}, | |
118 {/* BAT_CMD_SET_PLUS_COPS = 0x36 */ sizeof(T_BAT_cmd_set_plus_cops)}, | |
119 {/* BAT_CMD_SET_PERCENT_COPS_W = 0x37 */ sizeof(T_BAT_cmd_set_percent_cops_w)}, | |
120 {/* BAT_CMD_SET_PERCENT_CPALS = 0x38 */ sizeof(T_BAT_cmd_set_percent_cpals)}, | |
121 {/* BAT_CMD_SET_PERCENT_CPALS_W = 0x39 */ sizeof(T_BAT_cmd_set_percent_cpals_w)}, | |
122 {/* BAT_CMD_SET_PLUS_CPBF = 0x3a */ sizeof(T_BAT_cmd_set_plus_cpbf)}, | |
123 {/* BAT_CMD_SET_PLUS_CPBF_W = 0x3b */ sizeof(T_BAT_cmd_set_plus_cpbf_w)}, | |
124 {/* BAT_CMD_SET_PLUS_CPBR = 0x3c */ sizeof(T_BAT_cmd_set_plus_cpbr)}, | |
125 {/* BAT_CMD_SET_PLUS_CPBR_W = 0x3d */ sizeof(T_BAT_cmd_set_plus_cpbr_w)}, | |
126 {/* BAT_CMD_SET_PLUS_CPBS = 0x3e */ sizeof(T_BAT_cmd_set_plus_cpbs)}, | |
127 {/* BAT_CMD_SET_PLUS_CPBW = 0x3f */ sizeof(T_BAT_cmd_set_plus_cpbw)}, | |
128 {/* BAT_CMD_SET_PLUS_CPBW_W = 0x40 */ sizeof(T_BAT_cmd_set_plus_cpbw_w)}, | |
129 {/* BAT_CMD_SET_PERCENT_CPCFU = 0x41 */ sizeof(T_BAT_cmd_set_percent_cpcfu)}, | |
130 {/* BAT_CMD_SET_PERCENT_CPHS = 0x42 */ sizeof(T_BAT_cmd_set_percent_cphs)}, | |
131 {/* BAT_CMD_SET_PLUS_CPIN = 0x43 */ sizeof(T_BAT_cmd_set_plus_cpin)}, | |
132 {/* BAT_CMD_SET_PERCENT_CPMB = 0x44 */ sizeof(T_BAT_cmd_set_percent_cpmb)}, | |
133 {/* BAT_CMD_SET_PERCENT_CPMBW = 0x45 */ sizeof(T_BAT_cmd_set_percent_cpmbw)}, | |
134 {/* BAT_CMD_SET_PERCENT_CPMBW_W = 0x46 */ sizeof(T_BAT_cmd_set_percent_cpmbw_w)}, | |
135 {/* BAT_CMD_SET_PERCENT_CPMB_W = 0x47 */ sizeof(T_BAT_cmd_set_percent_cpmb_w)}, | |
136 {/* BAT_CMD_SET_PLUS_CPMS = 0x48 */ sizeof(T_BAT_cmd_set_plus_cpms)}, | |
137 {/* BAT_CMD_SET_PERCENT_CPNUMS = 0x49 */ sizeof(T_BAT_cmd_set_percent_cpnums)}, | |
138 {/* BAT_CMD_SET_PERCENT_CPNUMS_W = 0x4a */ sizeof(T_BAT_cmd_set_percent_cpnums_w)}, | |
139 {/* BAT_CMD_SET_PLUS_CPOL = 0x4b */ sizeof(T_BAT_cmd_set_plus_cpol)}, | |
140 {/* BAT_CMD_SET_PLUS_CPOL_W = 0x4c */ sizeof(T_BAT_cmd_set_plus_cpol_w)}, | |
141 {/* BAT_CMD_SET_PERCENT_CPRSM = 0x4d */ sizeof(T_BAT_cmd_set_percent_cprsm)}, | |
142 {/* BAT_CMD_SET_PLUS_CPUC = 0x4e */ sizeof(T_BAT_cmd_set_plus_cpuc)}, | |
143 {/* BAT_CMD_SET_PLUS_CPUC_W = 0x4f */ sizeof(T_BAT_cmd_set_plus_cpuc_w)}, | |
144 {/* BAT_CMD_SET_PERCENT_CPVWI = 0x50 */ sizeof(T_BAT_cmd_set_percent_cpvwi)}, | |
145 {/* BAT_CMD_SET_PLUS_CPWD = 0x51 */ sizeof(T_BAT_cmd_set_plus_cpwd)}, | |
146 {/* BAT_CMD_SET_PLUS_CRES = 0x52 */ sizeof(T_BAT_cmd_set_plus_cres)}, | |
147 {/* BAT_CMD_SET_PLUS_CRLP = 0x53 */ sizeof(T_BAT_cmd_set_plus_crlp)}, | |
148 {/* BAT_CMD_SET_PLUS_CRSM = 0x54 */ sizeof(T_BAT_cmd_set_plus_crsm)}, | |
149 {/* BAT_CMD_SET_PLUS_CSAS = 0x55 */ sizeof(T_BAT_cmd_set_plus_csas)}, | |
150 {/* BAT_CMD_SET_PLUS_CSCA = 0x56 */ sizeof(T_BAT_cmd_set_plus_csca)}, | |
151 {/* BAT_CMD_SET_PLUS_CSCB = 0x57 */ sizeof(T_BAT_cmd_set_plus_cscb)}, | |
152 {/* BAT_CMD_SET_PLUS_CSCS = 0x58 */ sizeof(T_BAT_cmd_set_plus_cscs)}, | |
153 {/* BAT_CMD_SET_PLUS_CSIM = 0x59 */ sizeof(T_BAT_cmd_set_plus_csim)}, | |
154 {/* BAT_CMD_SET_PLUS_CSMS = 0x5a */ sizeof(T_BAT_cmd_set_plus_csms)}, | |
155 {/* BAT_CMD_SET_PLUS_CSNS = 0x5b */ sizeof(T_BAT_cmd_set_plus_csns)}, | |
156 {/* BAT_CMD_SET_PLUS_CSTA = 0x5c */ sizeof(T_BAT_cmd_set_plus_csta)}, | |
157 {/* BAT_CMD_SET_PLUS_CSVM = 0x5d */ sizeof(T_BAT_cmd_set_plus_csvm)}, | |
158 {/* BAT_CMD_SET_PLUS_CTFR = 0x5e */ sizeof(T_BAT_cmd_set_plus_ctfr)}, | |
159 {/* BAT_CMD_SET_PERCENT_CTTY = 0x5f */ sizeof(T_BAT_cmd_set_percent_ctty)}, | |
160 {/* BAT_CMD_SET_PLUS_CTZU = 0x60 */ sizeof(T_BAT_cmd_set_plus_ctzu)}, | |
161 {/* BAT_CMD_SET_PLUS_CUSD = 0x61 */ sizeof(T_BAT_cmd_set_plus_cusd)}, | |
162 {/* BAT_CMD_SET_PLUS_CUSD_W = 0x62 */ sizeof(T_BAT_cmd_set_plus_cusd_w)}, | |
163 {/* BAT_CMD_SET_PERCENT_CUST = 0x63 */ sizeof(T_BAT_cmd_set_percent_cust)}, | |
164 {/* BAT_CMD_SET_PERCENT_CWUP = 0x64 */ sizeof(T_BAT_cmd_set_percent_cwup)}, | |
165 {/* BAT_CMD_AT_D = 0x65 */ sizeof(T_BAT_cmd_at_d)}, | |
166 {/* BAT_CMD_SET_PERCENT_DATA = 0x66 */ sizeof(T_BAT_cmd_set_percent_data)}, | |
167 {/* BAT_CMD_SET_PERCENT_DINF = 0x67 */ sizeof(T_BAT_cmd_set_percent_dinf)}, | |
168 {/* BAT_CMD_SET_PLUS_DS = 0x68 */ sizeof(T_BAT_cmd_set_plus_ds)}, | |
169 {/* BAT_CMD_AT_D_W = 0x69 */ sizeof(T_BAT_cmd_at_d_w)}, | |
170 {/* BAT_CMD_SET_PERCENT_EFRSLT = 0x6a */ sizeof(T_BAT_cmd_set_percent_efrslt)}, | |
171 {/* BAT_CMD_SET_PERCENT_EM = 0x6b */ sizeof(T_BAT_cmd_set_percent_em)}, | |
172 {/* BAT_CMD_SET_PLUS_FAP = 0x6c */ sizeof(T_BAT_cmd_set_plus_fap)}, | |
173 {/* BAT_CMD_SET_PLUS_FBO = 0x6d */ sizeof(T_BAT_cmd_set_plus_fbo)}, | |
174 {/* BAT_CMD_SET_PLUS_FBU = 0x6e */ sizeof(T_BAT_cmd_set_plus_fbu)}, | |
175 {/* BAT_CMD_SET_PLUS_FCC = 0x6f */ sizeof(T_BAT_cmd_set_plus_fcc)}, | |
176 {/* BAT_CMD_SET_PLUS_FCLASS = 0x70 */ sizeof(T_BAT_cmd_set_plus_fclass)}, | |
177 {/* BAT_CMD_SET_PLUS_FCQ = 0x71 */ sizeof(T_BAT_cmd_set_plus_fcq)}, | |
178 {/* BAT_CMD_SET_PLUS_FCR = 0x72 */ sizeof(T_BAT_cmd_set_plus_fcr)}, | |
179 {/* BAT_CMD_SET_PLUS_FCT = 0x73 */ sizeof(T_BAT_cmd_set_plus_fct)}, | |
180 {/* BAT_CMD_SET_PLUS_FEA = 0x74 */ sizeof(T_BAT_cmd_set_plus_fea)}, | |
181 {/* BAT_CMD_SET_PLUS_FFC = 0x75 */ sizeof(T_BAT_cmd_set_plus_ffc)}, | |
182 {/* BAT_CMD_SET_PLUS_FIE = 0x76 */ sizeof(T_BAT_cmd_set_plus_fie)}, | |
183 {/* BAT_CMD_SET_PLUS_FIS = 0x77 */ sizeof(T_BAT_cmd_set_plus_fis)}, | |
184 {/* BAT_CMD_SET_PLUS_FIT = 0x78 */ sizeof(T_BAT_cmd_set_plus_fit)}, | |
185 {/* BAT_CMD_SET_PLUS_FLI = 0x79 */ sizeof(T_BAT_cmd_set_plus_fli)}, | |
186 {/* BAT_CMD_SET_PLUS_FLO = 0x7a */ sizeof(T_BAT_cmd_set_plus_flo)}, | |
187 {/* BAT_CMD_SET_PLUS_FLP = 0x7b */ sizeof(T_BAT_cmd_set_plus_flp)}, | |
188 {/* BAT_CMD_SET_PLUS_FMS = 0x7c */ sizeof(T_BAT_cmd_set_plus_fms)}, | |
189 {/* BAT_CMD_SET_PLUS_FNS = 0x7d */ sizeof(T_BAT_cmd_set_plus_fns)}, | |
190 {/* BAT_CMD_SET_PLUS_FPA = 0x7e */ sizeof(T_BAT_cmd_set_plus_fpa)}, | |
191 {/* BAT_CMD_SET_PLUS_FPI = 0x7f */ sizeof(T_BAT_cmd_set_plus_fpi)}, | |
192 {/* BAT_CMD_SET_PLUS_FPS = 0x80 */ sizeof(T_BAT_cmd_set_plus_fps)}, | |
193 {/* BAT_CMD_SET_PLUS_FPW = 0x81 */ sizeof(T_BAT_cmd_set_plus_fpw)}, | |
194 {/* BAT_CMD_SET_PLUS_FRQ = 0x82 */ sizeof(T_BAT_cmd_set_plus_frq)}, | |
195 {/* BAT_CMD_SET_PLUS_FSA = 0x83 */ sizeof(T_BAT_cmd_set_plus_fsa)}, | |
196 {/* BAT_CMD_SET_PLUS_FSP = 0x84 */ sizeof(T_BAT_cmd_set_plus_fsp)}, | |
197 {/* BAT_CMD_SET_PLUS_ICF = 0x85 */ sizeof(T_BAT_cmd_set_plus_icf)}, | |
198 {/* BAT_CMD_SET_PLUS_IFC = 0x86 */ sizeof(T_BAT_cmd_set_plus_ifc)}, | |
199 {/* BAT_CMD_SET_PLUS_IPR = 0x87 */ sizeof(T_BAT_cmd_set_plus_ipr)}, | |
200 {/* BAT_CMD_SET_PERCENT_PBCF = 0x88 */ sizeof(T_BAT_cmd_set_percent_pbcf)}, | |
201 {/* BAT_CMD_SET_PERCENT_PPP = 0x89 */ sizeof(T_BAT_cmd_set_percent_ppp)}, | |
202 {/* BAT_CMD_SET_PERCENT_PVRF = 0x8a */ sizeof(T_BAT_cmd_set_percent_pvrf)}, | |
203 {/* BAT_CMD_SET_PERCENT_RDL = 0x8b */ sizeof(T_BAT_cmd_set_percent_rdl)}, | |
204 {/* BAT_CMD_SET_PERCENT_RDLB = 0x8c */ sizeof(T_BAT_cmd_set_percent_rdlb)}, | |
205 {/* BAT_CMD_SET_PERCENT_SATC = 0x8d */ sizeof(T_BAT_cmd_set_percent_satc)}, | |
206 {/* BAT_CMD_SET_PERCENT_SATCC = 0x8e */ sizeof(T_BAT_cmd_set_percent_satcc)}, | |
207 {/* BAT_CMD_SET_PERCENT_SATE = 0x8f */ sizeof(T_BAT_cmd_set_percent_sate)}, | |
208 {/* BAT_CMD_SET_PERCENT_SATR = 0x90 */ sizeof(T_BAT_cmd_set_percent_satr)}, | |
209 {/* BAT_CMD_SET_PERCENT_SATT = 0x91 */ sizeof(T_BAT_cmd_set_percent_satt)}, | |
210 {/* BAT_CMD_SET_PERCENT_SNCNT = 0x92 */ sizeof(T_BAT_cmd_set_percent_sncnt)}, | |
211 {/* BAT_CMD_SET_PERCENT_VTS = 0x93 */ sizeof(T_BAT_cmd_set_percent_vts)}, | |
212 {/* BAT_CMD_SET_PLUS_VTS = 0x94 */ sizeof(T_BAT_cmd_set_plus_vts)}, | |
213 {/* BAT_CMD_SET_PLUS_WS46 = 0x95 */ sizeof(T_BAT_cmd_set_plus_ws46)}, | |
214 {/* BAT_CMD_SET_PERCENT_CPINF = 0x96 */ sizeof(T_BAT_cmd_set_percent_cpinf)}, | |
215 {/* BAT_CMD_SET_PERCENT_CMGR = 0x97 */ sizeof(T_BAT_cmd_set_percent_cmgr)}, | |
216 {/* BAT_CMD_SET_PERCENT_CMGL = 0x98 */ sizeof(T_BAT_cmd_set_percent_cmgl)}, | |
217 {/* BAT_CMD_SET_PERCENT_CTZV = 0x99 */ sizeof(T_BAT_cmd_set_percent_ctzv)}, | |
218 #ifdef TI_PS_FF_AT_CMD_P_ECC | |
219 {/* BAT_CMD_SET_PERCENT_ECC = 0x9a */ sizeof(T_BAT_cmd_set_percent_ecc)}, | |
220 #else | |
221 {/* BAT_CMD_SET_PERCENT_ECC = 0x9a */ 0}, /* In case flag is not enabled */ | |
222 #endif /* TI_PS_FF_AT_CMD_P_ECC */ | |
223 | |
224 #ifdef SIM_PERS | |
225 { /* BAT_CMD_SET_PERCENT_MEPD = 0x9b */ sizeof(T_BAT_cmd_set_percent_mepd)}, | |
226 #else | |
227 { /* BAT_CMD_SET_PERCENT_MEPD = 0x9b */ 0}, /* In case flag is not enabled */ | |
228 #endif | |
229 | |
230 { /* BAT_CMD_SET_PERCENT_CSQ = 0x9c */ sizeof(T_BAT_cmd_set_percent_csq)}, | |
231 {/* BAT_CMD_SET_PERCENT_CNIV = 0x9d */ sizeof(T_BAT_cmd_set_percent_cniv)}, | |
232 #ifdef REL99 | |
233 {/* BAT_CMD_SET_PERCENT_CMGRS = 0x9e */ sizeof(T_BAT_cmd_set_percent_cmgrs)}, | |
234 #endif | |
235 {/* BAT_CMD_SET_PERCENT_SIMEF = 0xa7 */ sizeof(T_BAT_cmd_set_percent_simef)} | |
236 | |
237 }; | |
238 | |
239 /* | |
240 +----------------------------------------------------------------------------+ | |
241 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
242 | STATE : code ROUTINE : bat_change_client_state | | |
243 +----------------------------------------------------------------------------+ | |
244 | |
245 PURPOSE : | |
246 This function changes the client state and traces the state change. | |
247 */ | |
248 | |
249 GLOBAL void bat_change_client_state (T_BAT_client_maintain *client, | |
250 T_BAT_client_state new_state) | |
251 { | |
252 char trcBuf[80]; | |
253 T_BAT_client_state old_state = client->client_state; | |
254 client->client_state = new_state; | |
255 | |
256 if (old_state EQ new_state) | |
257 { | |
258 return; | |
259 } | |
260 | |
261 sprintf (trcBuf, "(client 0x%04X) state: ", (int)client); | |
262 | |
263 switch (old_state) | |
264 { | |
265 case (BAT_CLIENT_IDLE): | |
266 strcat (trcBuf, "BAT_CLIENT_IDLE -> "); | |
267 break; | |
268 case (BAT_CLIENT_ACTIVATING): | |
269 strcat (trcBuf, "BAT_CLIENT_ACTIVATING -> "); | |
270 break; | |
271 case (BAT_CLIENT_READY): | |
272 strcat (trcBuf, "BAT_CLIENT_READY -> "); | |
273 break; | |
274 case (BAT_CLIENT_BUSY): | |
275 strcat (trcBuf, "BAT_CLIENT_BUSY -> "); | |
276 break; | |
277 case (BAT_CLIENT_SENDING): | |
278 strcat (trcBuf, "BAT_CLIENT_SENDING -> "); | |
279 break; | |
280 case (BAT_CLIENT_SENDING_AND_BUSY): | |
281 strcat (trcBuf, "BAT_CLIENT_SENDING_AND_BUSY -> "); | |
282 break; | |
283 default: | |
284 strcat (trcBuf, "UNKNOWN ! "); | |
285 } | |
286 | |
287 switch (new_state) | |
288 { | |
289 case (BAT_CLIENT_IDLE): | |
290 strcat (trcBuf, "BAT_CLIENT_IDLE"); | |
291 break; | |
292 case (BAT_CLIENT_ACTIVATING): | |
293 strcat (trcBuf, "BAT_CLIENT_ACTIVATING"); | |
294 break; | |
295 case (BAT_CLIENT_READY): | |
296 strcat (trcBuf, "BAT_CLIENT_READY"); | |
297 break; | |
298 case (BAT_CLIENT_BUSY): | |
299 strcat (trcBuf, "BAT_CLIENT_BUSY"); | |
300 break; | |
301 case (BAT_CLIENT_SENDING): | |
302 strcat (trcBuf, "BAT_CLIENT_SENDING"); | |
303 break; | |
304 case (BAT_CLIENT_SENDING_AND_BUSY): | |
305 strcat (trcBuf, "BAT_CLIENT_SENDING_AND_BUSY"); | |
306 break; | |
307 default: | |
308 strcat (trcBuf, "UNKNOWN !"); | |
309 } | |
310 | |
311 BAT_TRACE_EVENT_P1("%s",trcBuf); | |
312 } | |
313 /* | |
314 +----------------------------------------------------------------------------+ | |
315 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
316 | STATE : code ROUTINE : bat_change_instance_state | | |
317 +----------------------------------------------------------------------------+ | |
318 | |
319 PURPOSE : | |
320 This function changes the instance state and traces the state change. | |
321 */ | |
322 GLOBAL void bat_change_instance_state (T_BAT_instance_maintain *instance, | |
323 T_BAT_instance_state new_state) | |
324 { | |
325 char trcBuf[80]; | |
326 T_BAT_instance_state old_state = instance->instance_state; | |
327 instance->instance_state = new_state; | |
328 | |
329 if (old_state EQ new_state) | |
330 { | |
331 return; | |
332 } | |
333 | |
334 sprintf (trcBuf, "(instance 0x%08X) state: ", (int)instance); | |
335 | |
336 switch (old_state) | |
337 { | |
338 case (BAT_INSTANCE_IDLE): | |
339 strcat (trcBuf, "BAT_INSTANCE_IDLE -> "); | |
340 break; | |
341 case (BAT_INSTANCE_ACTIVATING): | |
342 strcat (trcBuf, "BAT_INSTANCE_ACTIVATING -> "); | |
343 break; | |
344 case (BAT_INSTANCE_READY): | |
345 strcat (trcBuf, "BAT_INSTANCE_READY -> "); | |
346 break; | |
347 case (BAT_INSTANCE_BUSY): | |
348 strcat (trcBuf, "BAT_INSTANCE_BUSY -> "); | |
349 break; | |
350 default: | |
351 strcat (trcBuf, "UNKNOWN ! "); | |
352 } | |
353 | |
354 switch (new_state) | |
355 { | |
356 case (BAT_INSTANCE_IDLE): | |
357 strcat (trcBuf, "BAT_INSTANCE_IDLE"); | |
358 break; | |
359 case (BAT_INSTANCE_ACTIVATING): | |
360 strcat (trcBuf, "BAT_INSTANCE_ACTIVATING"); | |
361 break; | |
362 case (BAT_INSTANCE_READY): | |
363 strcat (trcBuf, "BAT_INSTANCE_READY"); | |
364 break; | |
365 case (BAT_INSTANCE_BUSY): | |
366 strcat (trcBuf, "BAT_INSTANCE_BUSY"); | |
367 break; | |
368 default: | |
369 strcat (trcBuf, "UNKNOWN !"); | |
370 } | |
371 | |
372 BAT_TRACE_EVENT_P1("%s",trcBuf); | |
373 } | |
374 | |
375 /* | |
376 +----------------------------------------------------------------------------+ | |
377 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
378 | STATE : code ROUTINE : bat_change_buffer_state | | |
379 +----------------------------------------------------------------------------+ | |
380 | |
381 PURPOSE : | |
382 This function changes the buffer state and traces the state change. | |
383 */ | |
384 GLOBAL void bat_change_buffer_state (T_BAT_instance_maintain *instance, | |
385 T_BAT_buf_state new_state) | |
386 { | |
387 /* char trcBuf[80]; | |
388 T_BAT_buf_state old_state = instance->buffer.buf_st;*/ | |
389 instance->buffer.buf_st = new_state; | |
390 /* | |
391 if (old_state EQ new_state) | |
392 { | |
393 return; | |
394 } | |
395 sprintf (trcBuf, "(instance 0x%08X) buffer state: ", (int)instance); | |
396 | |
397 switch (old_state) | |
398 { | |
399 case (BAT_BUF_EMPTY): | |
400 strcat (trcBuf, "BAT_BUF_EMPTY -> "); | |
401 break; | |
402 case (BAT_BUF_FILLING): | |
403 strcat (trcBuf, "BAT_BUF_FILLING -> "); | |
404 break; | |
405 case (BAT_BUF_FILLED): | |
406 strcat (trcBuf, "BAT_BUF_FILLED -> "); | |
407 break; | |
408 default: | |
409 strcat (trcBuf, "UNKNOWN ! "); | |
410 } | |
411 | |
412 switch (new_state) | |
413 { | |
414 case (BAT_BUF_EMPTY): | |
415 strcat (trcBuf, "BAT_BUF_EMPTY"); | |
416 break; | |
417 case (BAT_BUF_FILLING): | |
418 strcat (trcBuf, "BAT_BUF_FILLING"); | |
419 break; | |
420 case (BAT_BUF_FILLED): | |
421 strcat (trcBuf, "BAT_BUF_FILLED"); | |
422 break; | |
423 default: | |
424 strcat (trcBuf, "UNKNOWN !"); | |
425 } | |
426 | |
427 BAT_TRACE_EVENT_P1("%s",trcBuf);*/ | |
428 } | |
429 | |
430 /* | |
431 +----------------------------------------------------------------------------+ | |
432 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
433 | STATE : code ROUTINE : bat_init_global_params | | |
434 +----------------------------------------------------------------------------+ | |
435 | |
436 PURPOSE : | |
437 This function initializes the global parameters. | |
438 */ | |
439 | |
440 GLOBAL T_BAT_return bat_init_global_params () | |
441 { | |
442 /* The first BAT instance, so init the params */ | |
443 if(ptr_bat_list EQ NULL) | |
444 { | |
445 void *bat_header = NULL; | |
446 int header_size = max_bat_num * sizeof (T_BAT_instance_maintain *); | |
447 BAT_TRACE_EVENT("First BAT instance!"); | |
448 /* allocate memory to hold the instance pointer array */ | |
449 bat_header = gdd_sys_mem_malloc(header_size); | |
450 /* init allocated memory */ | |
451 memset(bat_header, 0, header_size); | |
452 | |
453 ptr_bat_list = (T_BAT_instance_maintain **)bat_header; | |
454 } | |
455 | |
456 return (BAT_OK); | |
457 } | |
458 | |
459 /* | |
460 +----------------------------------------------------------------------------+ | |
461 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
462 | STATE : code ROUTINE : bat_deinit_global_params | | |
463 +----------------------------------------------------------------------------+ | |
464 | |
465 PURPOSE : | |
466 This function deinitializes the global parameters. | |
467 */ | |
468 | |
469 GLOBAL T_BAT_return bat_deinit_global_params () | |
470 { | |
471 int i; | |
472 for(i = 0; i < max_bat_num; i ++) | |
473 { | |
474 if (GET_INST (i) NEQ NULL) | |
475 return (BAT_OK); | |
476 } | |
477 | |
478 max_bat_num = 4; | |
479 ptr_bat_list = NULL; | |
480 | |
481 return (BAT_OK); | |
482 } | |
483 | |
484 /* | |
485 +----------------------------------------------------------------------------+ | |
486 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
487 | STATE : code ROUTINE : bat_deinit_global_params | | |
488 +----------------------------------------------------------------------------+ | |
489 | |
490 PURPOSE : | |
491 This function checks if the global parameters have been init or deinit. If | |
492 is_init is TRUE then the init state should be checked otherwise the deinit | |
493 state should be checked. | |
494 */ | |
495 | |
496 GLOBAL BOOL bat_check_init_or_deinit (BOOL is_init) | |
497 { | |
498 /*BAT Lib should be already init*/ | |
499 if (is_init AND ptr_bat_list EQ NULL) | |
500 { | |
501 return (FALSE); | |
502 } | |
503 /*BAT Lib should be already deinit*/ | |
504 if (!is_init AND ptr_bat_list NEQ NULL) | |
505 { | |
506 return (FALSE); | |
507 } | |
508 | |
509 return (TRUE); | |
510 } | |
511 | |
512 /* | |
513 +----------------------------------------------------------------------------+ | |
514 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
515 | STATE : code ROUTINE : bat_init_inatance_pointer | | |
516 +----------------------------------------------------------------------------+ | |
517 | |
518 PURPOSE : | |
519 This function initializes a pointer in the pointer list. | |
520 */ | |
521 | |
522 GLOBAL T_BAT_return bat_init_instance_pointer (T_BAT_instance inst_hndl, | |
523 T_BAT_instance_maintain *inst_mt) | |
524 { | |
525 *(ptr_bat_list + inst_hndl)= inst_mt; | |
526 | |
527 return (BAT_OK); | |
528 } | |
529 | |
530 /* | |
531 +----------------------------------------------------------------------------+ | |
532 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
533 | STATE : code ROUTINE : bat_init_inatance_pointer | | |
534 +----------------------------------------------------------------------------+ | |
535 | |
536 PURPOSE : | |
537 This function initializes a pointer in the pointer list. | |
538 */ | |
539 | |
540 GLOBAL T_BAT_return bat_deinit_instance_pointer (T_BAT_instance inst_hndl) | |
541 { | |
542 *(ptr_bat_list + inst_hndl) = NULL; | |
543 | |
544 return (BAT_OK); | |
545 } | |
546 | |
547 /* | |
548 +----------------------------------------------------------------------------+ | |
549 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
550 | STATE : code ROUTINE : check_if_all_instances_are_closed | | |
551 +----------------------------------------------------------------------------+ | |
552 | |
553 PURPOSE : | |
554 This function initializes the global parameters. | |
555 */ | |
556 | |
557 GLOBAL BOOL bat_check_if_all_instances_are_closed() | |
558 { | |
559 int i; | |
560 for (i = 0; i < max_bat_num; i++) | |
561 { | |
562 if (GET_INST(i) NEQ NULL) | |
563 { | |
564 BAT_TRACE_ERROR ("bat_check_if_all_instances_are_closed(): not all the instances are closed!"); | |
565 return (FALSE); | |
566 } | |
567 } | |
568 return (TRUE); | |
569 } | |
570 | |
571 /* | |
572 +----------------------------------------------------------------------------+ | |
573 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
574 | STATE : code ROUTINE : check_if_all_clients_are_closed | | |
575 +----------------------------------------------------------------------------+ | |
576 | |
577 PURPOSE : | |
578 This function checks if all the clients are closed. | |
579 */ | |
580 | |
581 GLOBAL BOOL bat_check_if_all_clients_are_closed(T_BAT_instance inst_hndl) | |
582 { | |
583 int i; | |
584 T_BAT_instance_maintain *inst_mt = GET_INST(inst_hndl); | |
585 | |
586 if (inst_mt) | |
587 { | |
588 for (i = 0; i < inst_mt->max_client_num; i++) | |
589 { | |
590 if ((GET_CLNT(inst_mt, i))->client_state NEQ BAT_CLIENT_IDLE) | |
591 { | |
592 BAT_TRACE_ERROR("bat_check_if_all_clients_are_closed(): Not all clients are closed!"); | |
593 return (FALSE); | |
594 } | |
595 } | |
596 } | |
597 return (TRUE); | |
598 } | |
599 /* | |
600 +----------------------------------------------------------------------------+ | |
601 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
602 | STATE : code ROUTINE : bat_init_global_params | | |
603 +----------------------------------------------------------------------------+ | |
604 | |
605 PURPOSE : | |
606 This function gets the address from instance handle. | |
607 */ | |
608 | |
609 GLOBAL T_BAT_return bat_get_instance_from_instance_handle | |
610 (T_BAT_instance inst_hndl, | |
611 T_BAT_instance_maintain **inst_mt) | |
612 { | |
613 if (inst_hndl > max_bat_num) | |
614 { | |
615 BAT_TRACE_ERROR("bat_get_instance_from_instance_handle(): instance searched for is out of bound!"); | |
616 return (BAT_ERROR); | |
617 } | |
618 *inst_mt = GET_INST(inst_hndl); | |
619 if (*inst_mt EQ NULL) | |
620 { | |
621 BAT_TRACE_ERROR ("bat_get_instance_from_instance_handle(): no instance has been found!"); | |
622 return (BAT_ERROR); | |
623 } | |
624 return (BAT_OK); | |
625 } | |
626 /* | |
627 +----------------------------------------------------------------------------+ | |
628 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
629 | STATE : code ROUTINE : bat_get_new_instance | | |
630 +----------------------------------------------------------------------------+ | |
631 | |
632 PURPOSE : | |
633 This function scans through the pointer list and passes the index of the first | |
634 free instance pointer with the output parameter <instance>. | |
635 */ | |
636 | |
637 GLOBAL T_BAT_return bat_get_new_instance (T_BAT_instance *instance) | |
638 { | |
639 int i = 0; | |
640 | |
641 do | |
642 { | |
643 if (GET_INST(i)EQ NULL) | |
644 { | |
645 *instance = (T_BAT_instance) i; | |
646 return (BAT_OK); | |
647 } | |
648 i++; | |
649 } while (i < max_bat_num); | |
650 | |
651 /* the allocated memory for the BAT header is full, we will allocate a bigger | |
652 block of memory and copy the older header array to the new memory block */ | |
653 if (i < BAT_INVALID_INSTANCE_HANDLE-4) /* maximum 256 instances can be created */ | |
654 { | |
655 void *new_bat_header = NULL; | |
656 U8 new_max_bat_num = max_bat_num + 4; | |
657 int new_header_size = new_max_bat_num * sizeof(T_BAT_instance_maintain*); | |
658 | |
659 new_bat_header = gdd_sys_mem_malloc(new_header_size); | |
660 memset(new_bat_header, 0, new_header_size); | |
661 memcpy(new_bat_header, ptr_bat_list, max_bat_num*sizeof(T_BAT_instance_maintain*)); | |
662 | |
663 /* free the old header list and point to the new header list */ | |
664 gdd_sys_mem_free(ptr_bat_list); | |
665 ptr_bat_list = (T_BAT_instance_maintain **)new_bat_header; | |
666 *instance = max_bat_num; /*the new instance handle should be the old max number+1*/ | |
667 max_bat_num = new_max_bat_num; | |
668 BAT_TRACE_EVENT_P2("Current max BAT is %d, the header address is 0x%04X", | |
669 new_max_bat_num, ptr_bat_list); | |
670 return (BAT_OK); | |
671 | |
672 } | |
673 | |
674 BAT_TRACE_ERROR("bat_get_new_instance(): No free instance to create!"); | |
675 return (BAT_ERROR); | |
676 } | |
677 | |
678 /* | |
679 +----------------------------------------------------------------------------+ | |
680 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
681 | STATE : code ROUTINE : bat_delete_instance | | |
682 +----------------------------------------------------------------------------+ | |
683 | |
684 PURPOSE : | |
685 This function checks if all the clients in the instance are closed, if not then | |
686 an error will be returned. If yes, the pointer pointing to the instance in | |
687 pointer list will be set to NULL. | |
688 */ | |
689 | |
690 GLOBAL T_BAT_return bat_delete_instance (T_GDD_CON_HANDLE con_handle) | |
691 { | |
692 int i; | |
693 T_BAT_instance inst_hdle = BAT_INVALID_INSTANCE_HANDLE; | |
694 T_BAT_client clnt_hndl = BAT_INVALID_CLIENT_HANDLE; | |
695 T_BAT_instance_maintain *inst_mt = NULL; | |
696 T_BAT_client_maintain *clnt_mt = NULL; | |
697 | |
698 BAT_TRACE_FUNCTION ("bat_delete_instance()"); | |
699 | |
700 if (bat_get_instance_from_gdd_handle (con_handle, &inst_hdle, &inst_mt) EQ BAT_ERROR) | |
701 { | |
702 return (BAT_ERROR); | |
703 } | |
704 | |
705 for (i = 0; i < inst_mt->max_client_num; i++) | |
706 { | |
707 bat_make_client_handle_from_gdd_and_client_id(con_handle, (U8)i, &clnt_hndl); | |
708 bat_get_client_from_client_handle(clnt_hndl, &clnt_mt); | |
709 | |
710 if (clnt_mt->client_state NEQ BAT_CLIENT_IDLE) | |
711 { | |
712 BAT_TRACE_ERROR ("bat_delete_instance(): not all clients are closed"); | |
713 return (BAT_ERROR); | |
714 } | |
715 } | |
716 /* check if the instanse */ | |
717 if (bat_get_instance_from_instance_handle(inst_hdle, &inst_mt)) | |
718 { | |
719 return (BAT_ERROR); | |
720 } | |
721 return (BAT_OK); | |
722 } | |
723 | |
724 | |
725 /* | |
726 +----------------------------------------------------------------------------+ | |
727 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
728 | STATE : code ROUTINE : bat_get_instance_from_gdd_handle | | |
729 +----------------------------------------------------------------------------+ | |
730 | |
731 PURPOSE : | |
732 This function searches the instances and passes the address of the correct | |
733 instance through the output parameter. | |
734 */ | |
735 | |
736 T_BAT_return bat_get_instance_from_gdd_handle ( T_GDD_CON_HANDLE con_handle, | |
737 T_BAT_instance *instance_handle, | |
738 T_BAT_instance_maintain **instance) | |
739 | |
740 { | |
741 int i; | |
742 | |
743 for (i = 0; i < max_bat_num; i++) | |
744 { | |
745 *instance = GET_INST(i); | |
746 *instance_handle = (U8)i; | |
747 | |
748 if ((*instance)!= NULL && (*instance)->con_handle == con_handle) | |
749 { | |
750 return (BAT_OK); | |
751 } | |
752 } | |
753 return (BAT_ERROR); | |
754 } | |
755 | |
756 /* | |
757 +----------------------------------------------------------------------------+ | |
758 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
759 | STATE : code ROUTINE : bat_get_new_client | | |
760 +----------------------------------------------------------------------------+ | |
761 | |
762 PURPOSE : | |
763 This function searches in an instance until it reaches the first free client | |
764 (e,g. the Nth client). This instance handle and the client id (N in this case) | |
765 will be used to create the client handle. | |
766 */ | |
767 | |
768 T_BAT_return bat_get_new_client( T_BAT_instance instance, T_BAT_client *client) | |
769 { | |
770 int i; | |
771 T_BAT_client_maintain *new_client = NULL; | |
772 T_BAT_instance_maintain *inst_mt = GET_INST(instance); | |
773 | |
774 if (inst_mt EQ NULL) | |
775 { | |
776 BAT_TRACE_ERROR ("bat_get_new_client(): the input instance is NULL."); | |
777 return (BAT_ERROR); | |
778 } | |
779 | |
780 for (i = 0; i<inst_mt->max_client_num; i++) | |
781 { | |
782 new_client = GET_CLNT(inst_mt,i); | |
783 if (new_client->client_state EQ BAT_CLIENT_IDLE) | |
784 { | |
785 *client = MAKE_CLNT_HNDL(i, instance); | |
786 BAT_TRACE_EVENT_P1("bat_get_new_client(): new client is : 0x%04X", *client); | |
787 return (BAT_OK); | |
788 } | |
789 } | |
790 BAT_TRACE_ERROR ("bat_get_new_client(): no client is found!"); | |
791 return (BAT_ERROR); | |
792 } | |
793 | |
794 /* | |
795 +----------------------------------------------------------------------------+ | |
796 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
797 | STATE : code ROUTINE : bat_init_new_client | | |
798 +----------------------------------------------------------------------------+ | |
799 | |
800 PURPOSE : | |
801 This function searches in an instance until it reaches the first free client | |
802 (e,g. the Nth client). This instance handle and the client id (N in this case) | |
803 will be used to create the client handle. | |
804 */ | |
805 | |
806 T_BAT_return bat_init_new_client (T_BAT_client client, | |
807 int(*response_cb)(T_BAT_client client, T_BAT_cmd_response *response), | |
808 void(*signal_cb)(T_BAT_client client, T_BAT_signal)) | |
809 | |
810 { | |
811 T_BAT_client_maintain *clnt_mt = NULL; | |
812 | |
813 if (bat_get_client_from_client_handle(client, &clnt_mt) EQ BAT_ERROR) | |
814 { | |
815 return (BAT_ERROR); | |
816 } | |
817 bat_change_client_state(clnt_mt, BAT_CLIENT_ACTIVATING); | |
818 clnt_mt->signal_cb = signal_cb; | |
819 clnt_mt->response_cb = response_cb; | |
820 | |
821 return (BAT_OK); | |
822 } | |
823 | |
824 /* | |
825 +----------------------------------------------------------------------------+ | |
826 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
827 | STATE : code ROUTINE : bat_make_client_handle_from_gdd_and_client_id | | |
828 +----------------------------------------------------------------------------+ | |
829 | |
830 PURPOSE : | |
831 This function gets the <client_id> and the <con_handle> and then builds the | |
832 client handle out of them. The client handle will then passed through the | |
833 output parameter <client>. | |
834 */ | |
835 | |
836 T_BAT_return bat_make_client_handle_from_gdd_and_client_id (T_GDD_CON_HANDLE con_handle, | |
837 U8 client_id, | |
838 T_BAT_client *client) | |
839 { | |
840 T_BAT_instance_maintain *dummy = NULL; | |
841 T_BAT_instance inst_hndl = BAT_BROADCAST_CHANNEL; | |
842 | |
843 bat_get_instance_from_gdd_handle(con_handle, &inst_hndl, &dummy); | |
844 *client = MAKE_CLNT_HNDL(client_id, inst_hndl); | |
845 return (BAT_OK); | |
846 } | |
847 | |
848 /* | |
849 +----------------------------------------------------------------------------+ | |
850 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
851 | STATE : code ROUTINE : bat_make_client_handle_from_gdd_and_client_id | | |
852 +----------------------------------------------------------------------------+ | |
853 | |
854 PURPOSE : | |
855 This function gets the client maintain data from the client handle. | |
856 */ | |
857 | |
858 T_BAT_return bat_get_client_from_client_handle (T_BAT_client clnt_hndl, | |
859 T_BAT_client_maintain **clnt_mt) | |
860 { | |
861 U8 inst_hndl = GET_INST_HNDL_FROM_CLNT_HANDLE(clnt_hndl); | |
862 U8 clnt_id = GET_CLNT_ID_FROM_CLNT_HANDLE(clnt_hndl); | |
863 T_BAT_instance_maintain *inst_mt = NULL; | |
864 | |
865 if (inst_hndl >= max_bat_num) | |
866 { | |
867 BAT_TRACE_ERROR ("bat_get_client_from_client_handle(): instance handle out of bound."); | |
868 return (BAT_ERROR); | |
869 } | |
870 inst_mt = GET_INST (inst_hndl); | |
871 if (inst_mt EQ NULL OR (clnt_id >= inst_mt->max_client_num)) | |
872 { | |
873 BAT_TRACE_ERROR ("bat_get_client_from_client_handle(): instance not found or client id out of bound!"); | |
874 return (BAT_ERROR); | |
875 } | |
876 *clnt_mt = GET_CLNT(inst_mt, clnt_id); | |
877 if (*clnt_mt EQ NULL) | |
878 { | |
879 return (BAT_ERROR); | |
880 } | |
881 return (BAT_OK); | |
882 } | |
883 | |
884 | |
885 /* | |
886 +----------------------------------------------------------------------------+ | |
887 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
888 | STATE : code ROUTINE : bat_make_client_handle_from_gdd_and_client_id | | |
889 +----------------------------------------------------------------------------+ | |
890 | |
891 PURPOSE : | |
892 This function is used to process the received unsolicited code. | |
893 */ | |
894 | |
895 T_BAT_return bat_unsolicited_code_rcv(T_BAT_instance inst_hndl, T_BAT_cmd_response *rsp) | |
896 { | |
897 T_BAT_instance_maintain *inst_mt = NULL; | |
898 | |
899 BAT_TRACE_FUNCTION ("bat_unsolicited_code_rcv()"); | |
900 | |
901 bat_get_instance_from_instance_handle (inst_hndl, &inst_mt); | |
902 | |
903 if (inst_mt->unsolicited_result_cb NEQ NULL) | |
904 { | |
905 if (inst_mt->unsolicited_result_cb(MAKE_UNS_CLNT_HNDL(inst_hndl),rsp) EQ BAT_BUSY_RESOURCE) | |
906 { | |
907 inst_mt->buffer.dest = MAKE_UNS_CLNT_HNDL(inst_hndl); | |
908 bat_change_buffer_state(inst_mt, BAT_BUF_FILLED); | |
909 return (BAT_BUSY_RESOURCE); | |
910 } | |
911 } | |
912 | |
913 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
914 | |
915 return (BAT_OK); | |
916 } | |
917 | |
918 /* | |
919 +----------------------------------------------------------------------------+ | |
920 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
921 | STATE : code ROUTINE : bat_make_client_handle_from_gdd_and_client_id | | |
922 +----------------------------------------------------------------------------+ | |
923 | |
924 PURPOSE : | |
925 This function is used to process the received control information. | |
926 */ | |
927 | |
928 T_BAT_return bat_control_confirm_rcv(T_BAT_instance inst_hndl, T_BATC_confirm cnf) | |
929 { | |
930 T_BAT_client clnt_hndl = BAT_INVALID_CLIENT_HANDLE; | |
931 T_BAT_instance_maintain *inst_mt = NULL; | |
932 T_BAT_client_maintain *clnt_mt = NULL; | |
933 | |
934 BAT_TRACE_FUNCTION ("bat_control_confirm_rcv()"); | |
935 | |
936 if (bat_get_instance_from_instance_handle (inst_hndl, &inst_mt)) | |
937 { | |
938 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
939 | |
940 return (BAT_ERROR); | |
941 } | |
942 | |
943 switch (cnf.rsp_params) | |
944 { | |
945 case (BATC_MAX_CLIENTS_CNF): | |
946 case (BATC_MAX_CLIENTS_REJ): | |
947 { | |
948 /* check the instance state */ | |
949 if (inst_mt->instance_state NEQ BAT_INSTANCE_ACTIVATING) | |
950 { | |
951 BAT_TRACE_ERROR ("bat_control_confirm_rcv(): A conf/rej for bat_new is received in wrong BAT instance state"); | |
952 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
953 return (BAT_ERROR); | |
954 } | |
955 if (cnf.rsp_params EQ BATC_MAX_CLIENTS_CNF) | |
956 { | |
957 BAT_TRACE_EVENT ("bat_control_confirm_rcv(): New instance confirmed"); | |
958 bat_change_instance_state(inst_mt,BAT_INSTANCE_READY); | |
959 inst_mt->instance_signal_cb(BAT_NEW_INSTANCE_SUCCEED); | |
960 } | |
961 else if (cnf.rsp_params EQ BATC_MAX_CLIENTS_REJ) | |
962 { | |
963 BAT_TRACE_EVENT ("bat_control_confirm_rcv(): New instance rejected!"); | |
964 bat_change_instance_state(inst_mt,BAT_INSTANCE_IDLE); | |
965 if (inst_mt->config->adapter.gdd_if.gdd_disconnect ((T_GDD_CON_HANDLE)(inst_mt->con_handle)) != GDD_OK) | |
966 { | |
967 BAT_TRACE_ERROR ("GDD disconnect failed after bat_new() was rejected"); | |
968 } | |
969 L2P_Remove (inst_hndl); | |
970 inst_mt->instance_signal_cb(BAT_NEW_INSTANCE_FAIL); | |
971 } | |
972 break; | |
973 } | |
974 case (BATC_OPEN_CLIENT_CNF): | |
975 case (BATC_OPEN_CLIENT_REJ): | |
976 { | |
977 BAT_TRACE_EVENT ("bat_control_confirm_rcv(): Open client confirmed/rejected!"); | |
978 if (inst_mt->instance_state < BAT_INSTANCE_READY) | |
979 { | |
980 BAT_TRACE_ERROR ("bat_control_confirm_rcv(): A conf/rej is received in wrong BAT instance state"); | |
981 BAT_TRACE_EVENT_P1 ("bat_control_confirm_rcv(): current BAT instance state is: %d", inst_mt->instance_state); | |
982 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
983 | |
984 return (BAT_ERROR); | |
985 } | |
986 | |
987 clnt_hndl = MAKE_CLNT_HNDL(cnf.rsp.ptr_bat_open_client_cnf->client_id, inst_hndl); | |
988 | |
989 if (bat_get_client_from_client_handle(clnt_hndl, &clnt_mt)) | |
990 { | |
991 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
992 | |
993 return (BAT_ERROR); | |
994 } | |
995 if (clnt_mt->client_state NEQ BAT_CLIENT_ACTIVATING) | |
996 { | |
997 BAT_TRACE_ERROR ("bat_control_confirm_rcv(): A confirmation for bat_open is received in wrong BAT client state"); | |
998 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
999 | |
1000 return (BAT_ERROR); | |
1001 } | |
1002 if (cnf.rsp_params EQ BATC_OPEN_CLIENT_CNF) | |
1003 { | |
1004 BAT_TRACE_EVENT_P1("bat_control_confirm_rcv(): The confirmed clnt hndl is 0x%x", clnt_hndl); | |
1005 bat_change_client_state(clnt_mt, BAT_CLIENT_READY); | |
1006 clnt_mt->signal_cb(clnt_hndl, BAT_OPEN_CLIENT_SUCCEED); | |
1007 } | |
1008 else if (cnf.rsp_params EQ BATC_OPEN_CLIENT_REJ) | |
1009 { | |
1010 bat_change_client_state(clnt_mt, BAT_CLIENT_IDLE); | |
1011 clnt_mt->signal_cb(clnt_hndl, BAT_OPEN_CLIENT_FAIL); | |
1012 } | |
1013 break; | |
1014 } | |
1015 case (BATC_ABORT_COMMAND_CNF): | |
1016 case (BATC_ABORT_COMMAND_REJ): | |
1017 { | |
1018 BAT_TRACE_EVENT ("bat_control_confirm_rcv(): Abort command confirmed/rejected!"); | |
1019 if (inst_mt->instance_state < BAT_INSTANCE_READY) | |
1020 { | |
1021 BAT_TRACE_ERROR ("bat_control_confirm_rcv(): An abort conf/rej is received in wrong BAT instance state"); | |
1022 BAT_TRACE_EVENT_P1 ("bat_control_confirm_rcv(): current BAT instance state is: %d", inst_mt->instance_state); | |
1023 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
1024 | |
1025 return (BAT_ERROR); | |
1026 } | |
1027 | |
1028 clnt_hndl = MAKE_CLNT_HNDL(cnf.rsp.ptr_bat_open_client_cnf->client_id, inst_hndl); | |
1029 | |
1030 if (bat_get_client_from_client_handle(MAKE_CLNT_HNDL(cnf.rsp.ptr_bat_open_client_cnf->client_id, | |
1031 inst_hndl), &clnt_mt)) | |
1032 { | |
1033 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
1034 | |
1035 return (BAT_ERROR); | |
1036 } | |
1037 | |
1038 if (cnf.rsp_params EQ BATC_ABORT_COMMAND_CNF) | |
1039 { | |
1040 bat_change_client_state(clnt_mt, BAT_CLIENT_READY); | |
1041 clnt_mt->signal_cb(clnt_hndl, BAT_ABORT_COMMAND_SUCCEED); | |
1042 } | |
1043 | |
1044 else if (cnf.rsp_params EQ BATC_ABORT_COMMAND_REJ) | |
1045 { | |
1046 bat_change_client_state(clnt_mt, BAT_CLIENT_SENDING); | |
1047 clnt_mt->signal_cb(clnt_hndl, BAT_ABORT_COMMAND_FAIL); | |
1048 } | |
1049 break; | |
1050 } | |
1051 default: | |
1052 { | |
1053 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
1054 | |
1055 return (BAT_ERROR); | |
1056 } | |
1057 } | |
1058 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
1059 | |
1060 return (BAT_OK); | |
1061 | |
1062 } | |
1063 | |
1064 /* | |
1065 +----------------------------------------------------------------------------+ | |
1066 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
1067 | STATE : code ROUTINE : bat_make_client_handle_from_gdd_and_client_id | | |
1068 +----------------------------------------------------------------------------+ | |
1069 | |
1070 PURPOSE : | |
1071 This function is used to process the received command response. | |
1072 */ | |
1073 | |
1074 T_BAT_return bat_command_response_rcv (T_BAT_instance inst_hndl, U8 clnt_id, T_BAT_cmd_response *rsp) | |
1075 { | |
1076 T_BAT_client clnt_hndl = MAKE_CLNT_HNDL(clnt_id, inst_hndl); | |
1077 T_BAT_instance_maintain *inst_mt = NULL; | |
1078 T_BAT_client_maintain *clnt_mt = NULL; | |
1079 | |
1080 BAT_TRACE_FUNCTION ("bat_command_response_rcv()"); | |
1081 | |
1082 if (bat_get_client_from_client_handle ( MAKE_CLNT_HNDL(clnt_id, inst_hndl), &clnt_mt)) | |
1083 { | |
1084 return (BAT_ERROR); | |
1085 } | |
1086 | |
1087 if (bat_get_instance_from_instance_handle(inst_hndl, &inst_mt)) | |
1088 { | |
1089 return (BAT_ERROR); | |
1090 } | |
1091 | |
1092 if (clnt_mt->client_state < BAT_CLIENT_READY) | |
1093 { | |
1094 BAT_TRACE_EVENT ("bat_command_response_rcv(): Client is closed!"); | |
1095 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
1096 return (BAT_OK); | |
1097 } | |
1098 | |
1099 /* if the rsp is a finial rsp. */ | |
1100 if (rsp->ctrl_response <= BAT_RES_PLUS_EXT_ERROR) | |
1101 { | |
1102 BAT_TRACE_EVENT ("bat_command_response_rcv(): FINAL RESULT CODE"); | |
1103 bat_change_client_state(clnt_mt, BAT_CLIENT_READY); | |
1104 } | |
1105 else | |
1106 { | |
1107 BAT_TRACE_EVENT ("bat_command_response_rcv(): INTERMEDIATE CODE"); | |
1108 } | |
1109 | |
1110 /* | |
1111 * call now the callback function of the client and | |
1112 * check whether the application was able to process the callback. | |
1113 * if not then the buffer will not be empty and the destination of | |
1114 * the buffer will be the busy client handle. | |
1115 */ | |
1116 if (clnt_mt->response_cb(clnt_hndl, rsp) EQ BAT_BUSY_RESOURCE) | |
1117 { | |
1118 inst_mt->buffer.dest = clnt_hndl; | |
1119 return (BAT_BUSY_RESOURCE); | |
1120 } | |
1121 | |
1122 bat_change_buffer_state(inst_mt, BAT_BUF_EMPTY); | |
1123 return (BAT_OK); | |
1124 } | |
1125 | |
1126 | |
1127 /* | |
1128 +----------------------------------------------------------------------------+ | |
1129 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
1130 | STATE : code ROUTINE : bat_send_cmd_data | | |
1131 +----------------------------------------------------------------------------+ | |
1132 | |
1133 PURPOSE : | |
1134 This function is used to send the BAT command to ACI (via GDD). | |
1135 */ | |
1136 | |
1137 T_BAT_return bat_send_cmd_data (T_BAT_client clnt_hndl, T_BAT_cmd_send *data) | |
1138 { | |
1139 U16 size = 0; | |
1140 int errVal = -1; | |
1141 void *dataPtr = NULL; | |
1142 T_L2P_STATUS ret; | |
1143 | |
1144 if (data->ctrl_params & 0x1000) /* 0x1xxx = T_BAT_no_parameter */ | |
1145 { | |
1146 size = sizeof(T_BAT_no_parameter); | |
1147 dataPtr = (void *)(data->params.ptr_set_percent_als); | |
1148 } | |
1149 else | |
1150 if (data->ctrl_params & 0x2000) /* 0x2xxx = T_BAT_custom */ | |
1151 { | |
1152 /* <!-- ********** until ccdgen is able to cope with *********** | |
1153 search for the above comment in bat.sap and remove it | |
1154 when ccdgen is able to work with bat.sap | |
1155 | |
1156 if (data->params.ptr_custom->c_buf > BAT_MAX_CUSTOM_CMD_LEN) | |
1157 { | |
1158 return (BAT_ERROR); | |
1159 } | |
1160 size = data->params.ptr_custom->c_buf + sizeof(U16); | |
1161 dataPtr = (void *)(data->params.ptr_custom); | |
1162 */ | |
1163 return(BAT_ERROR); /* remove this whenn cddgen is able to */ | |
1164 } | |
1165 else | |
1166 { | |
1167 size = (U16)(params_2_size[data->ctrl_params].size); | |
1168 dataPtr = (void *)(data->params.ptr_set_percent_als); | |
1169 } | |
1170 | |
1171 BAT_TRACE_EVENT_P2("bat_send_cmd_data(): cmd = 0x%04X, size = %i", data->ctrl_params, size); | |
1172 | |
1173 BAT_TRACE_BINDUMP(xxx_handle,TC_USER4,"BAT COMMAND PARAMETER",(U8 *)data->params.ptr_at_a,size); | |
1174 | |
1175 /*L2P is called here to stuff the data*/ | |
1176 ret = L2P_Send(GET_INST_HNDL_FROM_CLNT_HANDLE(clnt_hndl), | |
1177 GET_CLNT_ID_FROM_CLNT_HANDLE(clnt_hndl), | |
1178 data->ctrl_params, | |
1179 dataPtr, | |
1180 size, | |
1181 &errVal); | |
1182 | |
1183 switch (ret) | |
1184 { | |
1185 case (L2P_STAT_SUCCESS): | |
1186 { | |
1187 return(BAT_OK); | |
1188 } | |
1189 case (L2P_STAT_UNKNOWN_ERROR): | |
1190 { | |
1191 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P UNKNOWN ERROR"); | |
1192 break; | |
1193 } | |
1194 case (L2P_STAT_MSG_SEND_FAIL): | |
1195 { | |
1196 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P FAILED TO SEND"); | |
1197 break; | |
1198 } | |
1199 case (L2P_STAT_INVALID_PARAMETER): | |
1200 { | |
1201 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P INVALID PARAMETER"); | |
1202 break; | |
1203 } | |
1204 case (L2P_STAT_NO_SUCH_BAT_ID): | |
1205 { | |
1206 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P UNKNOWN CLIENT HANDLE"); | |
1207 break; | |
1208 } | |
1209 case (L2P_STAT_NO_SUCH_MUX_ID): | |
1210 { | |
1211 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P UNKNOWN CLIENT ID"); | |
1212 break; | |
1213 } | |
1214 case (L2P_STAT_UNABLE_TO_GET_BUFFER): | |
1215 { | |
1216 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P NO TRANSMIT BUFFER AVAILABLE"); | |
1217 return(BAT_BUSY_RESOURCE); | |
1218 } | |
1219 case (L2P_STAT_BAT_ID_ALREADY_EXISTS): | |
1220 { | |
1221 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P BAT ID ALREADY EXISTS"); | |
1222 break; | |
1223 } | |
1224 case (L2P_STAT_UNEXPECTED_FRAME_RXD): | |
1225 { | |
1226 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P UNEXPECTED FRAME RECEIVED"); | |
1227 break; | |
1228 } | |
1229 case(L2P_STAT_CRC_FAIL): | |
1230 { | |
1231 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P CRC ERROR"); | |
1232 break; | |
1233 } | |
1234 default: | |
1235 { | |
1236 BAT_TRACE_EVENT("bat_send_cmd_data(): L2P UNDEFINED RETURN VALUE"); | |
1237 break; | |
1238 } | |
1239 } | |
1240 return(BAT_ERROR); | |
1241 } | |
1242 | |
1243 /* | |
1244 +----------------------------------------------------------------------------+ | |
1245 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
1246 | STATE : code ROUTINE : bat_send_ctrl_data | | |
1247 +----------------------------------------------------------------------------+ | |
1248 | |
1249 PURPOSE : | |
1250 This function is used to send the control info to ACI (via GDD). | |
1251 */ | |
1252 | |
1253 T_BAT_return bat_send_ctrl_data (T_BAT_instance inst_hndl, T_BATC_signal *data) | |
1254 { | |
1255 int errVal = -1; | |
1256 U16 size = 0; | |
1257 | |
1258 BAT_TRACE_FUNCTION ("bat_send_ctrl_data()"); | |
1259 | |
1260 switch (data->ctrl_params) | |
1261 { | |
1262 case (BATC_MAX_CLIENTS): | |
1263 case (BATC_OPEN_CLIENT): | |
1264 case (BATC_ABORT_CMD): | |
1265 case (BATC_CLOSE_CLIENT): | |
1266 size = sizeof(T_BATC_max_clients); | |
1267 break; | |
1268 | |
1269 default: | |
1270 break; | |
1271 } | |
1272 | |
1273 /*L2P has to be called here to stuff the data*/ | |
1274 if (L2P_STAT_UNABLE_TO_GET_BUFFER EQ L2P_Send (inst_hndl, BAT_CONTROL_CHANNEL, | |
1275 data->ctrl_params, (void *)(data->params.ptr_max_clients), size, &errVal)) | |
1276 { | |
1277 return (BAT_BUSY_RESOURCE); | |
1278 } | |
1279 | |
1280 return (BAT_OK); | |
1281 } | |
1282 /* | |
1283 +----------------------------------------------------------------------------+ | |
1284 | PROJECT : MODULE : BINARY AT COMMAND LIBRARY | | |
1285 | STATE : code ROUTINE : bat_make_client_handle_from_gdd_and_client_id | | |
1286 +----------------------------------------------------------------------------+ | |
1287 | |
1288 PURPOSE : | |
1289 This function is used to get the size of the BAT cmd basing on the ctrl param. | |
1290 */ | |
1291 | |
1292 T_BAT_return bat_get_cmd_size (T_BAT_ctrl_params cmd_ctrl, int *size) | |
1293 { | |
1294 BAT_TRACE_FUNCTION ("bat_get_cmd_size()"); | |
1295 | |
1296 *size = params_2_size[cmd_ctrl].size; | |
1297 | |
1298 return (BAT_OK); | |
1299 } |