blob: e95d8e2cc3ec8bf43baa62f44dad35736334334b [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2007
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/****************************************************************************
37 * PARTS OF THIS FILE ARE AUTOGENERATED
38 * DO NOT EDIT EXCEPT BETWEEN LINES MARKED !BEGIN MANUAL CODE and !END MANUAL CODE
39 * Assignment :
40 * CONFIDENTIAL
41 * Copyright (c) 2000-2005, UbiNetics Ltd. All rights reserved.
42 * Cambridge Technology Centre
43 * Melbourn Royston
44 * Herts SG8 6DP UK
45 * Tel: +44 1763 262222
46 *
47 ****************************************************************************
48 * !BEGIN MANUAL CODE! (HEADERS)
49 *
50 * COMPONENT: (Insert Component Name)
51 * MODULE: $RCSfile: rsvas_enum.h,v $
52 * VERSION: $Revision: 1.0 $
53 * DATED: $Date: 2009/06/12 14:22:29 $
54 * AUTHOR:
55 * DESCRIPTION: Check Header for full description
56 *
57 ****************************************************************************/
58/* !END MANUAL CODE! (HEADERS) */
59/*****************************************************************************
60 * removed!
61 *
62 * removed!
63 * removed!
64 *
65 * removed!
66 * removed!
67 * removed!
68 * removed!
69 *
70 * removed!
71 * removed!
72 *
73 * removed!
74 * removed!
75 * removed!
76 *
77 * removed!
78 * removed!
79 * removed!
80 *
81 * removed!
82 * removed!
83 *
84 * removed!
85 * removed!
86 * removed!
87 *
88 * removed!
89 * removed!
90 * removed!
91 *
92 * removed!
93 * removed!
94 * removed!
95 *
96 * removed!
97 * removed!
98 * removed!
99 *
100 * removed!
101 * removed!
102 * removed!
103 *
104 * removed!
105 * removed!
106 *
107 * removed!
108 * removed!
109 * removed!
110 *
111 * removed!
112 * removed!
113 * removed!
114 *
115 * removed!
116 * removed!
117 * removed!
118 *
119 * removed!
120 * removed!
121 * removed!
122 *
123 * removed!
124 * removed!
125 * removed!
126 *
127 * removed!
128 * removed!
129 * removed!
130 *
131 * removed!
132 * removed!
133 * removed!
134 *
135 * removed!
136 * removed!
137 * removed!
138 *
139 * removed!
140 * removed!
141 * removed!
142 *
143 * removed!
144 * removed!
145 * removed!
146 *
147 * removed!
148 * removed!
149 * removed!
150 *
151 * removed!
152 * removed!
153 * removed!
154 *
155 * removed!
156 * removed!
157 * removed!
158 *
159 * removed!
160 * removed!
161 * removed!
162 *
163 * removed!
164 * removed!
165 * removed!
166 *
167 * removed!
168 * removed!
169 * removed!
170 *
171 * removed!
172 * removed!
173 * removed!
174 ****************************************************************************/
175
176#if !defined(_RSVAS_ENUM_H)
177#define _RSVAS_ENUM_H
178
179#include <c2k_rsva_enums.h>
180
181#define RSVAS_GET_BYTE1_FROM_ENUM(x) ((((kal_uint32)(x))>>24) & 0x000000FF)
182#define RSVAS_GET_BYTE2_FROM_ENUM(x) ((((kal_uint32)(x))>>16) & 0x000000FF)
183#define RSVAS_GET_BYTE3_FROM_ENUM(x) ((((kal_uint32)(x))>> 8) & 0x000000FF)
184#define RSVAS_GET_BYTE4_FROM_ENUM(x) (((kal_uint32)(x)) & 0x000000FF)
185
186
187#define RSVAS_INVALID_SIM_INDEX 0x000000FF
188#define RSVAS_INVALID_RAT_INDEX 0x000000FF
189
190/* Dennis Weng 2010/02/26: [SIM_ADD_HERE] if support tri-SIM in the future, just add as following code. */
191/* Dennis Weng 2010/02/26: [RAT_ADD_HERE] if support another RAT in the future, just add as following code. */
192/* Dennis Weng 2010/03/05: for effective, rsvas_id_enum is designed as a bit structure
193 1st byte is unique in this enum, start from 0,
194 2nd byte is SIM index, start from 0, otherwise fill 0xFF.
195 3rd byte is RAT index, start from 0, otherwise fill 0xFF.
196 4th byte is FORCE PREEMPT index, start from 0, otherwise fill 0xFF.
197 FORCE PREEMP index is the index of modules which may send RESOURCE_RES_OCCUPY_REQ with OCCUPY_FORCE_PREEMPT. */
198#define RSVAS_GET_SIM_INDEX_FROM_ENUM(x) RSVAS_GET_BYTE2_FROM_ENUM(x)
199#define RSVAS_GET_RAT_INDEX_FROM_ENUM(x) RSVAS_GET_BYTE3_FROM_ENUM(x)
200
201/* Dennis Weng 2010/10/15: mapping SIM index and RAT index to rsvas_id_enum
202 only for AS
203 PS. cannot not input RSVAS_INVALID_SIM_INDEX or RSVAS_INVALID_RAT_INDEX */
204#define RSVAS_GET_RSVAS_ID_ENUM_FROM_INDEX(sim_index, rat_index) ((rsvas_id_enum)(((((((((sim_index)*7)+(rat_index+1)) << 8)+sim_index) << 8) + rat_index) << 8) + 0xFF))
205
206/* Dennis Weng 2010/10/15: shift rsvas_id_enum by SIM index */
207#define RSVAS_SHIFT_RSVAS_ID_ENUM(x, sim_index) ((rsvas_id_enum)((x)+(((((sim_index)*7) << 8)+(sim_index)) << 16)))
208
209/* From Gen93, EL2 is devided into 3 task and each task need to send suspend_req individually
210 In order to send suspend_req in correct sequence, RSVAS ask EL2 to set sending sequence firstly by calling rsvas_update_el2_suspend_sequence
211 The LSB 2 bit represent first module to send suspend_req, and so on : */
212#define el2_first_module(x) ((x) & 0x03)
213#define el2_second_module(x) ((x>>2) & 0x03)
214#define el2_third_module(x) ((x>>4) & 0x03)
215
216typedef enum
217{
218 RSVAS_MODE_SWITCH_INIT = 0,
219 RSVAS_MODE_SWITCH_START = 1,
220 RSVAS_MODE_SWITCH_CNF_SEND = 2,
221} rsvas_mode_switch_status;
222
223typedef enum
224{
225 RSVAS_GEMINI_CONFIG_NEEDED = 0,
226 RSVAS_GEMINI_CONFIG_START = 1,
227 RSVAS_GEMINI_CONFIG_END = 2,
228} rsvas_gemini_config_status;
229
230
231typedef enum {
232 RSVAS_SIM_CONNECTED = 0,
233 RSVAS_SIM_LIMITED_CONNECTED = 1,
234 RSVAS_SIM_VIRTUAL_CONNECTED = 2,
235 RSVAS_SIM_IDLE_WITH_SERVICE = 3,
236 RSVAS_SIM_IDLE = 4,
237 RSVAS_SIM_VIRTUAL = 5,
238 RSVAS_SIM_LIMITED_VIRTUAL = 6,
239 RSVAS_SIM_SUSPENDED = 7,
240 RSVAS_SIM_STATUS_NUM = 8
241} rsvas_sim_status;
242
243typedef enum {
244 RSVAS_SIM_INVALID_TRANSITION = 0,
245
246 RSVAS_SIM_STEADY_CONNECTED = 1,
247 RSVAS_SIM_CONNECTED2IDLE = 2,
248
249 RSVAS_SIM_STEADY_IDLE_WITH_SERVICE = 3,
250
251 RSVAS_SIM_STEADY_IDLE = 4,
252 RSVAS_SIM_IDLE2CONNECTED = 5,
253 RSVAS_SIM_IDLE2VIRTUAL = 6,
254 RSVAS_SIM_IDLE2SUSPENDED = 7,
255
256 RSVAS_SIM_STEADY_VIRTUAL = 8,
257 RSVAS_SIM_VIRTUAL2CONNECTED = 9,
258 RSVAS_SIM_VIRTUAL2SUSPENDED = 10,
259
260 RSVAS_SIM_STEADY_SUSPENDED = 11,
261
262 RSVAS_SIM_STEADY_VIRTUAL_CONNECTED = 12,
263 RSVAS_SIM_VIRTUALCONNECTED2CONNECTED = 13,
264 RSVAS_SIM_CONNECTED2VIRTUALCONNECTED = 14,
265 RSVAS_SIM_VIRTUALCONNECTED2SUSPENED = 15,
266 RSVAS_SIM_VIRTUALCONNECTED2VIRTUAL = 16,
267 RSVAS_SIM_SUSPENDED2CONNECTED = 17,
268 RSVAS_SIM_SUSPENDED2IDLE = 18,
269 RSVAS_SIM_VIRTUAL2IDLE = 19,
270 RSVAS_SIM_SUSPENDED2VIRTUAL = 20,
271
272 RSVAS_SIM_STEADY_LIMITED_CONNECTED = 21,
273 RSVAS_SIM_LIMITEDCONNECTED2CONNECTED = 22,
274 RSVAS_SIM_CONNECTED2LIMITEDCONNECTED = 23,
275 RSVAS_SIM_LIMITEDCONNECTED2VIRTUALCONNECTED = 24,
276 RSVAS_SIM_VIRTUALCONNECTED2LIMITEDCONNECTED = 25,
277 RSVAS_SIM_LIMITEDCONNECTED2IDLE = 26,
278 RSVAS_SIM_LIMITEDCONNECTED2SUSPENDED = 27,
279 RSVAS_SIM_LIMITEDCONNECTED2VIRTUAL = 28,
280 RSVAS_SIM_LIMITEDCONNECTED2LIMITEDVIRTUAL = 29,
281
282 RSVAS_SIM_STEADY_LIMITED_VIRTUAL = 30,
283 RSVAS_SIM_LIMITEDVIRTUAL2LIMITEDCONNECTED = 31,
284 RSVAS_SIM_LIMITEDVIRTUAL2CONNECTED = 32,
285 RSVAS_SIM_LIMITEDVIRTUAL2IDLE = 33,
286 RSVAS_SIM_LIMITEDVIRTUAL2VIRTUAL = 34,
287 RSVAS_SIM_LIMITEDVIRTUAL2SUSPENDED = 35,
288 RSVAS_SIM_CONNECTED2LIMITEDVIRTUAL = 36,
289 RSVAS_SIM_VIRTUALCONNECTED2LIMITEDVIRTUAL = 37,
290 RSVAS_SIM_IDLE2LIMITEDVIRTUAL = 38,
291 RSVAS_SIM_VIRTUAL2LIMITEDVIRTUAL = 39,
292 RSVAS_SIM_SUSPENDED2LIMITEDVIRTUAL = 40,
293
294 RSVAS_SIM_TRANSITION_NUM = 41
295} rsvas_sim_transition;
296
297typedef enum
298{
299 RSVAS_REQUEST_SOURCE_RSIM_ACCESS = 0
300 ,RSVAS_REQUEST_SOURCE_SRLTE_ENHANCEMENT = 1
301 ,RSVAS_REQUEST_SOURCE_SRLTE_ENHANCEMENT_TOLERENT = 2
302} rsvas_virtual_connect_request_type_enum;
303
304/**
305 * For GEN97
306 */
307typedef enum {
308 RSVAS_CONNECTED_AFTER_VC_RESUME,
309 RSVAS_SUSPEND_AFTER_VC_RESUME, //for race condition, AS release service before return VC_suspend_cnf
310 RSVAS_VIRTUAL_IDLE_AFTER_VC_RESUME, //for race condition, AS release service before return VC_suspend_cnf
311 RSVAS_ABORT_SUSPEND_AFTER_VC_RESUME, //AS release connection in VC
312 RSVAS_ABORT_VIRTUAL_IDLE_AFTER_VC_RESUME, //AS release connection in VC
313 RSVAS_ABORT_IDLE_AFTER_VC_RESUME, //AS release connection in VC
314} rsvas_virtual_connected_resume_action_enum;
315
316
317/**
318 * For DR-DSDS/DSDA
319 */
320typedef enum {
321 RSVAS_GEMINI_GAP_ALLOWED = 0
322 ,RSVAS_GEMINI_GAP_NOT_ALLOWED = 1
323} rsvas_gemini_gap_status_enum;
324
325#endif /* _RSVAS_ENUM_H */
326