197
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 | Project : 3G PS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Module : UPM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 | Copyright 2003 Texas Instruments.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | Instruments .
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | Texas Instruments.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 | Purpose: Global definitions for the User Plane Manager (UPM) Entity.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | For design details, see:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 | 8010.939 UPM Detailed Specification
|
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 /*==== DECLARATION CONTROL =================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #ifndef _UPM_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #define _UPM_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /*#ifdef FF_EGPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #ifndef UPM_EDGE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #define UPM_EDGE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #endif */ /*#ifndef UPM_EDGE*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 /*#endif */ /*#ifdef FF_EGPRS*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 /*#ifdef UPM_EDGE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #define ENTITY_UPM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 /*#endif */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #ifdef WIN32
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #define DEBUG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 /*==== INCLUDES =============================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #include <string.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #include <typedefs.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #include <vsi.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #include <gsm.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #include <gprs.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 #include <prim.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 /*#ifndef UPM_EDGE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #include <trace.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #endif *//*#ifndef UPM_EDGE*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #ifndef UPM_WITHOUT_USER_PLANE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 #include <dti.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 #endif /* UPM_WITHOUT_USER_PLANE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 struct T_CONTEXT_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 typedef U32 T_MEM_HANDLE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 #include "upm_debug.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 #ifndef UPM_WITHOUT_USER_PLANE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 #include "upm_dti_control.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 #include "upm_uplink_data_control.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 #include "upm_uplink_data_suspend.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 #include "upm_downlink_data_control.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 #endif /* UPM_WITHOUT_USER_PLANE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 #include "upm_link_control.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 #ifdef TI_UMTS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 #include "upm_rab_control.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 #endif /* TI_UMTS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 #ifdef TI_GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 #include "upm_sndcp_control.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 #endif /* TI_GPRS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 #ifdef TI_DUAL_MODE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 #include "upm_rat_control.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 #endif /* TI_DUAL_MODE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 /*==== CONSTS ===============================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 #define UPM_UPLINK_DATA_BUFFER_SIZE 16
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 #define UPM_DOWNLINK_DATA_BUFFER_SIZE 16
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 #define UPM_DTI_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 #define UPM_MAX_NSAPI_OFFSET (NAS_SIZE_NSAPI - (int)NAS_NSAPI_5)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 /*==== TYPES ================================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 #ifndef UPM_WITHOUT_USER_PLANE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 struct T_UPM_desc_list_entry
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 /*@null@*/ struct T_UPM_desc_list_entry *next;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 T_desc2 *desc;
|
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 /*@abstract@*/ struct T_UPM_USER_PLANE_DATA
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 T_UPM_DTI_UPPER_CONTROL_STATE dti_upper_control_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 #ifdef TI_GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 T_UPM_DTI_LOWER_CONTROL_STATE dti_lower_control_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 #endif /* TI_GPRS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 T_UPM_UPLINK_DATA_CONTROL_STATE ul_data_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 T_UPM_UPLINK_DATA_SUSPEND_STATE ul_data_suspend_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 T_UPM_DOWNLINK_DATA_CONTROL_STATE dl_data_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 U8 dti_flags[UPM_DTI_NUMBER_OF_INTERFACES];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 U16 ul_data_buffer_count;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 U16 dl_data_buffer_count;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 U32 ul_data_octets_transferred;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 U32 ul_data_packets_transferred;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 U32 dl_data_octets_transferred;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 U32 dl_data_packets_transferred;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 U32 ul_data_packets_dropped;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 U32 dl_data_packets_dropped;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 /*@null@*/ /*@only@*/ /*@reldef@*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 struct T_UPM_desc_list_entry *ul_data_buffer;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 /*@null@*/ /*@only@*/ /*@reldef@*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 T_MEM_HANDLE *dl_data_buffer;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 };
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 #endif /* UPM_WITHOUT_USER_PLANE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 #ifdef TI_GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 /*@abstract@*/ struct T_UPM_CONTEXT_DATA_GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 U8 sndcp_delay; /* R97 QoS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 U8 sndcp_relclass; /* R97 QoS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 U8 sndcp_peak_bitrate; /* R97 QoS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 U8 sndcp_preced; /* R97 QoS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 U8 sndcp_mean; /* R97 QoS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 U8 pkt_flow_id; /* EDGE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 U8 sndcp_radio_prio;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 U8 sndcp_llc_sapi;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 };
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 #endif /* TI_GPRS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 /*@abstract@*/ struct T_CONTEXT_DATA
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 U8 nsapi;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 U8 seq_nos_valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 U8 recv_seq_no;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 U8 send_seq_no;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 T_UPM_LINK_CONTROL_STATE link_control_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 #ifdef TI_UMTS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 T_UPM_RAB_CONTROL_STATE rab_control_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 #endif /* TI_UMTS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 #ifdef TI_GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 T_UPM_SNDCP_CONTROL_STATE sndcp_control_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 #endif /* TI_GPRS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 #ifdef TI_UMTS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 U8 rab_qos_tc;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 U8 mem_user;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 U16 mem_space_before;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 #endif /* TI_UMTS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 #ifdef TI_GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 struct T_UPM_CONTEXT_DATA_GPRS gprs_data;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 #endif /* TI_GPRS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 #ifndef UPM_WITHOUT_USER_PLANE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 struct T_UPM_USER_PLANE_DATA up_data;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 #endif /* UPM_WITHOUT_USER_PLANE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 };
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 typedef struct {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 #ifdef TI_DUAL_MODE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 T_UPM_RAT_CONTROL_STATE rat_control_state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 T_PS_rat upm_rat;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 #endif /* TI_DUAL_MODE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 BOOL upm_ll_entity_test;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 /* Communication handles */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 T_HANDLE hCommACI;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 T_HANDLE hCommSM;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 T_HANDLE hCommMM;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 T_HANDLE upm_handle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 #ifdef TI_UMTS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 T_HANDLE hCommPDCP;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 T_HANDLE hCommRRC;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 #endif /* TI_UMTS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 #ifdef TI_GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 T_HANDLE hCommSNDCP;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 T_HANDLE hCommRR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 #endif /* TI_GPRS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 #ifndef UPM_WITHOUT_USER_PLANE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 DTI_HANDLE upm_hDTI;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 #endif /* UPM_WITHOUT_USER_PLANE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 /*@only@*/ /*@reldef@*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 struct T_CONTEXT_DATA *upm_context_array[UPM_MAX_NSAPI_OFFSET];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 } T_UPM_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 #ifdef DEBUG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 #define M_TRANSITION(_EVENT, _FUNC) {_EVENT, _FUNC}
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 #else /* WIN32 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 #define M_TRANSITION(_EVENT, _FUNC) {_FUNC}
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 #endif /* WIN32 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 /*==== EXPORTS ==============================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 extern T_UPM_DATA upm_data;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 void upm_pfree(/*@null@*/ /*@only@*/ /*@out@*/void *data);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 void upm_mfree(/*@null@*/ /*@only@*/ /*@out@*/void *data);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 U16 upm_nsapi2nsapi_set(int /*@alt U8@*/ nsapi) /*@*/;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 /*@null@*/ /*@exposed@*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 struct T_CONTEXT_DATA *upm_get_context_data_from_nsapi(int /*@alt U8@*/ nsapi);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 void upm_assign_context_data_to_nsapi(/*@keep@*/ struct T_CONTEXT_DATA *,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 int /*@alt U8@*/ nsapi);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 void upm_free_context_data(int /*@alt U8@*/ nsapi);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 void upm_check_for_released_context_and_release(struct T_CONTEXT_DATA *);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 BOOL upm_ll_entity_test(void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 void upm_activate_ll_entity_test(void) /*@modifies upm_data.upm_ll_entity_test@*/;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 #ifdef TI_DUAL_MODE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 T_PS_rat upm_get_current_rat(void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 void upm_set_current_rat(T_PS_rat rat) /*@modifies upm_data.upm_rat@*/;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 #endif /* TI_DUAL_MODE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 void upm_set_sequence_number(struct T_CONTEXT_DATA *, U8);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 U8 upm_get_sequence_number(struct T_CONTEXT_DATA *);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 #define hCommACI upm_data.hCommACI /* Communication handle to ACI */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 #define hCommMM upm_data.hCommMM /* Communication handle to MM */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 #define hCommSM upm_data.hCommSM /* Communication handle to SM */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 #ifdef TI_UMTS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 #define hCommPDCP upm_data.hCommPDCP /* Communication handle to PDCP */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 #define hCommRRC upm_data.hCommRRC /* Communication handle to RRC */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 #endif /* TI_UMTS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 #ifdef TI_GPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 #define hCommSNDCP upm_data.hCommSNDCP /* Communication handle to SNDCP */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 #define hCommRR upm_data.hCommRR /* Communication handle to RR */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 #endif /* TI_GPRS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 #ifndef UPM_WITHOUT_USER_PLANE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 #define upm_hDTI upm_data.upm_hDTI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 #endif /* UPM_WITHOUT_USER_PLANE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 #define VSI_CALLER upm_data.upm_handle,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 #define VSI_CALLER_SINGLE upm_data.upm_handle
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 /* Uniquify pei_create() */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 #define pei_create upm_pei_create
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 extern short upm_pei_create (T_PEI_INFO **info)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 /*@modifies *info, internalState@*/ /*@globals internalState@*/;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 #endif /* _UPM_H */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 /*==== END OF FILE ==========================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257
|