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 :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul :
|
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 holds the functions for handling primitives
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 | sent from entity GRR to entity RR and vice versa.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 +-----------------------------------------------------------------------------
|
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 #ifndef RR_GPRS_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #define RR_GPRS_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #ifdef GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #define ENTITY_RR
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 /*==== INCLUDES ===================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include <string.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include <stddef.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #include "typedefs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #include "pcm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #include "pconst.cdg"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #include "mconst.cdg"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #include "message.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #include "ccdapi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #include "vsi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 #include "custom.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #include "gsm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #include "prim.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #include "cnf_rr.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #include "pei.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #include "tok.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #include "rr_gprs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 #include "rr.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 /*==== EXPORT =====================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 /*==== PRIVATE =====================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 LOCAL void pei_not_supported (void *data);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 /*==== VARIABLES ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 /*==== FUNCTIONS ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 LOCAL const T_FUNC rrgrr_table[] = {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 MAK_FUNC_0( dat_rrgrr_channel_req, RRGRR_CHANNEL_REQ ), /* 0*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 MAK_FUNC_0( dat_rrgrr_resumed_tbf_req, RRGRR_RESUMED_TBF_REQ ), /* 1*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 MAK_FUNC_S( dat_rrgrr_data_req, RRGRR_DATA_REQ ), /* 2*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 MAK_FUNC_0( att_rrgrr_start_mon_ccch_req, RRGRR_START_MON_CCCH_REQ ), /* 3*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 MAK_FUNC_0( att_rrgrr_stop_mon_ccch_req, RRGRR_STOP_MON_CCCH_REQ ), /* 4*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 MAK_FUNC_0( att_rrgrr_cr_req, RRGRR_CR_REQ ), /* 5*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 MAK_FUNC_0( att_rrgrr_start_mon_bcch_req, RRGRR_START_MON_BCCH_REQ ), /* 6*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 MAK_FUNC_0( dat_rrgrr_rr_est_req, RRGRR_RR_EST_REQ ), /* 7*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 MAK_FUNC_0( dat_rrgrr_rr_est_rsp, RRGRR_RR_EST_RSP ), /* 8*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 MAK_FUNC_N( pei_not_supported, 0 ), /* 9*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 MAK_FUNC_0( dat_rrgrr_activate_req, RRGRR_ACTIVATE_REQ ), /* A*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 MAK_FUNC_N( pei_not_supported, 0 ), /* B*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 MAK_FUNC_0( dat_rrgrr_gprs_data_req, RRGRR_GPRS_DATA_REQ ), /* C*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 MAK_FUNC_0( dat_rrgrr_suspend_dcch_req, RRGRR_SUSPEND_DCCH_REQ ), /* D*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 MAK_FUNC_0( dat_rrgrr_reconnect_dcch_req, RRGRR_RECONNECT_DCCH_REQ ), /* E*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 MAK_FUNC_0( att_check_bsic, RRGRR_NCELL_SYNC_REQ ), /* F*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 MAK_FUNC_0( att_gprs_sync_req, RRGRR_SYNC_REQ ), /* 10*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 MAK_FUNC_N( pei_not_supported, 0 ), /* 11*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 MAK_FUNC_0( att_rrgrr_update_ba_req, RRGRR_UPDATE_BA_REQ ), /* 12*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 MAK_FUNC_N( att_rrgrr_meas_rep_req, RRGRR_MEAS_REP_REQ ), /* 13*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 MAK_FUNC_N( pei_not_supported, RRGRR_TBF_ESTABLISHED_REQ ), /* 14*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 MAK_FUNC_0( att_gprs_cr_rsp, RRGRR_CR_RSP ), /* 15*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 MAK_FUNC_0( att_rrgrr_ext_meas_req, RRGRR_EXT_MEAS_REQ ), /* 16*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 MAK_FUNC_0( att_rrgrr_ext_meas_stop_req, RRGRR_EXT_MEAS_STOP_REQ ), /* 17*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 MAK_FUNC_0( gprs_rrgrr_stop_task, RRGRR_STOP_TASK_REQ ), /* 18*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 MAK_FUNC_0( att_gprs_start_task, RRGRR_START_TASK_REQ ), /* 19*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 MAK_FUNC_0( att_rrgrr_standby_ind, RRGRR_STANDBY_STATE_IND ), /* 1A*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 MAK_FUNC_0( att_rrgrr_ready_ind, RRGRR_READY_STATE_IND ) /* 1B*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 ,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 MAK_FUNC_0( att_rrgrr_cbch_info_ind, RRGRR_CBCH_INFO_IND ) /* 1C*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 #endif
|
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 GLOBAL const char * const STATE_GPRS_NAME[] = { STATE_GPRS_NAME_INIT };
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 +-----------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 | PROJECT : GSM-GPRS () MODULE : RR_GPRS |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 | STATE : code ROUTINE : gprs_init_gprs_data |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 +-----------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 PURPOSE : initialises the RR related GPRS data.
|
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
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 GLOBAL void gprs_init_gprs_data (void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 GET_INSTANCE_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 TRACE_FUNCTION ("gprs_init_gprs_data()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 SET_STATE(STATE_GPRS, GPRS_NULL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 memset(rr_data->gprs_data.rr_sdu, NOT_PRESENT_8BIT, sizeof(rr_data->gprs_data.rr_sdu));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 memset(rr_data->gprs_data.si13_sdu, NOT_PRESENT_8BIT, sizeof(rr_data->gprs_data.si13_sdu));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 rr_data->gprs_data.tma_in_progress = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 rr_data->gprs_data.fn = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 rr_data->gprs_data.req_ref_idx = NOT_PRESENT_8BIT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 rr_data->gprs_data.page_mode = PAG_MODE_DEFAULT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 rr_data->gprs_data.si13_received = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 rr_data->gprs_data.split_pg = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 rr_data->gprs_data.cr_type = NOT_PRESENT_8BIT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 rr_data->gprs_data.cr_orig = NOT_PRESENT_8BIT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 rr_data->gprs_data.start_proc = START_PROC_NOTHING;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 rr_data->gprs_data.is_nc2_used_in_si13 = FALSE; /* NC0 is default */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 rr_data->gprs_data.nc_mode_of_pmo = NC_MODE_RESET; /* Use NC of SI13 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 rr_data->gprs_data.ready_state = FALSE; /* Standby */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 /*rr_data->gprs_data.cr_pbcch_active = 0;*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 if ( rr_data->gprs_data.dl_data_ind NEQ NULL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 PFREE ( rr_data->gprs_data.dl_data_ind );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 rr_data->gprs_data.dl_data_ind = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 rr_data->gprs_data.cbch_psi_valid = FALSE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 rr_data->gprs_data.cbch_info_rxvd_in_ptm = FALSE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 rr_data->gprs_data.nw_release = RR_GPRS_R97;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 rr_data->gprs_data.ba_bcch_modified= FALSE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 GLOBAL void gprs_init_data_cr (void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 GET_INSTANCE_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 if(GET_STATE(STATE_GPRS) NEQ GPRS_NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 SET_STATE(STATE_GPRS, GPRS_ACTIVATED);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 memset(rr_data->gprs_data.rr_sdu, NOT_PRESENT_8BIT, sizeof(rr_data->gprs_data.rr_sdu));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 memset(rr_data->gprs_data.si13_sdu, NOT_PRESENT_8BIT, sizeof(rr_data->gprs_data.si13_sdu));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 rr_data->gprs_data.tma_in_progress = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 rr_data->gprs_data.fn = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 rr_data->gprs_data.req_ref_idx = NOT_PRESENT_8BIT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 rr_data->gprs_data.page_mode = PAG_MODE_DEFAULT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 rr_data->gprs_data.si13_received = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 rr_data->gprs_data.split_pg = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 /*rr_data->gprs_data.cr_pbcch_active = 0;*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 rr_data->gprs_data.cr_type = NOT_PRESENT_8BIT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 rr_data->gprs_data.cr_orig = NOT_PRESENT_8BIT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 rr_data->gprs_data.start_proc = START_PROC_NOTHING;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 rr_data->gprs_data.is_nc2_used_in_si13 = FALSE; /* NC0 is default */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 rr_data->gprs_data.nc_mode_of_pmo = NC_MODE_RESET; /* Use NC of SI13 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 /* ready state variable should not be cleared know because it is still needed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 if ( rr_data->gprs_data.dl_data_ind NEQ NULL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 PFREE ( rr_data->gprs_data.dl_data_ind );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 rr_data->gprs_data.dl_data_ind = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 rr_data->gprs_data.cbch_psi_valid = FALSE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 rr_data->gprs_data.cbch_info_rxvd_in_ptm = FALSE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 rr_data->gprs_data.nw_release = RR_GPRS_R97;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 +-----------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 | PROJECT : GSM-GPRS (??6147) MODULE : RR_GPRS |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 | STATE : code ROUTINE : gprs_get_table_n |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 +-----------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 PURPOSE : process jumptable,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 IN : adresses of table, n
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 OUT : values of rrgrr_table in table, n
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 void gprs_get_table_n (const T_FUNC **table, USHORT *n)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 TRACE_FUNCTION ("gprs_get_table_n()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 *table = rrgrr_table;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 *n = TAB_SIZE ( rrgrr_table);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 +-----------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 | STATE : code ROUTINE : gprs_rrgrr_store_sdu |
|
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 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 IN :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 OUT :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 void gprs_rrgrr_store_sdu(UBYTE* to, T_sdu* from)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 from->o_buf-=8;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 from->l_buf+=8;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 memcpy(to, &from->buf[from->o_buf/8], from->l_buf/8);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 +-----------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 | STATE : code ROUTINE : gprs_rrgrr_fill_from_stored_sdu |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 +-----------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 IN :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 OUT :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 void gprs_rrgrr_fill_from_stored_sdu(T_sdu* sdu, UBYTE* from)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 * copy message content
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 sdu->l_buf = 22*8;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 #if defined (_SIMULATION_)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 sdu->o_buf = 0*8;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 sdu->o_buf = 1*8;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 memcpy(sdu->buf, from, MAX_L2_FRAME_SIZE);/*lint !e419 Apparent data overrun for function*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 | PROJECT : GSM-PS (6147) MODULE : RR_PEI |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 | STATE : code ROUTINE : pei_not_supported |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 PURPOSE : An unsupported primitive is received.
|
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 LOCAL void pei_not_supported (void * data)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 TRACE_FUNCTION ("pei_not_supported()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 PFREE (data);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 #endif /* GPRS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 #endif /* RR_GPRS_C */
|