blob: 57a4b32563c3b843ce34bcdb910988afcdf90d4f [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) 2005
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 * Filename:
38 * ---------
39 * gmss_nwsel_struct.h
40 *
41 * Project:
42 * --------
43 * MAUI
44 *
45 * Description:
46 * ------------
47 * This file is intends for struct definition between NWSEL and GMSS.
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 *==============================================================================
54 * HISTORY
55 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
56 *------------------------------------------------------------------------------
57 * removed!
58 *
59 * removed!
60 * removed!
61 * removed!
62 * removed!
63 *
64 * removed!
65 * removed!
66 * removed!
67 * removed!
68 *
69 * removed!
70 * removed!
71 *
72 * removed!
73 *
74 * removed!
75 * removed!
76 *
77 * removed!
78 *
79 * removed!
80 * removed!
81 * removed!
82 *
83 * removed!
84 * removed!
85 *
86 * removed!
87 *
88 * removed!
89 * removed!
90 * removed!
91 *
92 * removed!
93 * removed!
94 *
95 * removed!
96 *
97 * removed!
98 * removed!
99 *
100 * removed!
101 *
102 * removed!
103 * removed!
104 *
105 * removed!
106 *
107 * removed!
108 * removed!
109 * removed!
110 *
111 * removed!
112 * removed!
113 *
114 * removed!
115 * removed!
116 *
117 * removed!
118 * removed!
119 * removed!
120 *
121 * removed!
122 * removed!
123 *
124 * removed!
125 *
126 * removed!
127 * removed!
128 * removed!
129 *
130 * removed!
131 * removed!
132 * removed!
133 *
134 * removed!
135 * removed!
136 *
137 * removed!
138 *
139 * removed!
140 * removed!
141 * removed!
142 * removed!
143 * removed!
144 *
145 * removed!
146 * removed!
147 *
148 * removed!
149 * removed!
150 * removed!
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 *
166 * removed!
167 *
168 * removed!
169 * removed!
170 * removed!
171 *
172 * removed!
173 * removed!
174 * removed!
175 *
176 * removed!
177 * removed!
178 * removed!
179 *
180 * removed!
181 * removed!
182 * removed!
183 *
184 * removed!
185 * removed!
186 * removed!
187 *
188 * removed!
189 * removed!
190 * removed!
191 *
192 * removed!
193 * removed!
194 *
195 * removed!
196 * removed!
197 * removed!
198 * removed!
199 * removed!
200 * removed!
201 * removed!
202 * removed!
203 * removed!
204 * removed!
205 * removed!
206 * removed!
207 * removed!
208 * removed!
209 * removed!
210 * removed!
211 * removed!
212 *
213 * removed!
214 * removed!
215 *
216 * removed!
217 * removed!
218 * removed!
219 *
220 * removed!
221 * removed!
222 *
223 * removed!
224 * removed!
225 * removed!
226 *
227 * removed!
228 * removed!
229 * removed!
230 *
231 * removed!
232 * removed!
233 * removed!
234 *
235 * removed!
236 * removed!
237 * removed!
238 * removed!
239 * removed!
240 *
241 * removed!
242 * removed!
243 * removed!
244 * removed!
245 * removed!
246 * removed!
247 * removed!
248 * removed!
249 * removed!
250 *
251 * removed!
252 * removed!
253 * removed!
254 *
255 * removed!
256 * removed!
257 * removed!
258 *
259 * removed!
260 * removed!
261 * removed!
262 *
263 * removed!
264 * removed!
265 *
266 * removed!
267 *
268 * removed!
269 * removed!
270 * removed!
271 *
272 * removed!
273 * removed!
274 * removed!
275 *
276 * removed!
277 * removed!
278 * removed!
279 *
280 * removed!
281 * removed!
282 * removed!
283 *
284 * removed!
285 * removed!
286 *
287 * removed!
288 *
289 * removed!
290 * removed!
291 *
292 * removed!
293 * removed!
294 * removed!
295 *
296 * removed!
297 * removed!
298 *
299 * removed!
300 *
301 * removed!
302 * removed!
303 *
304 * removed!
305 *
306 * removed!
307 * removed!
308 *
309 * removed!
310 * removed!
311 * removed!
312 *
313 * removed!
314 * removed!
315 *
316 * removed!
317 * removed!
318 * removed!
319 *
320 * removed!
321 * removed!
322 * removed!
323 *
324 * removed!
325 * removed!
326 * removed!
327 *
328 * removed!
329 * removed!
330 * removed!
331 *
332 * removed!
333 * removed!
334 * removed!
335 *
336 * removed!
337 * removed!
338 * removed!
339 *
340 * removed!
341 * removed!
342 * removed!
343 *
344 *
345 * removed!
346 * removed!
347 * removed!
348 *
349 * removed!
350 * removed!
351 * removed!
352 *
353 * removed!
354 * removed!
355 * removed!
356 *
357 * removed!
358 * removed!
359 *
360 * removed!
361 *
362 * removed!
363 * removed!
364 * removed!
365 *
366 * removed!
367 * removed!
368 * removed!
369 *
370 * removed!
371 * removed!
372 * removed!
373 *
374 * removed!
375 * removed!
376 * removed!
377 *
378 * removed!
379 * removed!
380 * removed!
381 *
382 * removed!
383 * removed!
384 * removed!
385 *
386 * removed!
387 * removed!
388 *
389 * removed!
390 * removed!
391 *
392 * removed!
393 * removed!
394 * removed!
395 *
396 * removed!
397 * removed!
398 * removed!
399 *
400 * removed!
401 * removed!
402 * removed!
403 *
404 * removed!
405 * removed!
406 * removed!
407 *
408 * removed!
409 * removed!
410 * removed!
411 *
412 * removed!
413 * removed!
414 * removed!
415 *
416 * removed!
417 * removed!
418 * removed!
419 *
420 * removed!
421 * removed!
422 * removed!
423 *
424 * removed!
425 * removed!
426 * removed!
427 *
428 * removed!
429 * removed!
430 * removed!
431 *
432 * removed!
433 * removed!
434 * removed!
435 *
436 * removed!
437 * removed!
438 * removed!
439 *
440 * removed!
441 * removed!
442 * removed!
443 *
444 * removed!
445 * removed!
446 *
447 * removed!
448 * removed!
449 *
450 * removed!
451 * removed!
452 * removed!
453 *
454 * removed!
455 * removed!
456 * removed!
457 *
458 * removed!
459 * removed!
460 * removed!
461 *
462 * removed!
463 * removed!
464 * removed!
465 *
466 * removed!
467 * removed!
468 *
469 * removed!
470 * removed!
471 * removed!
472 *
473 * removed!
474 * removed!
475 * removed!
476 *
477 * removed!
478 * removed!
479 * removed!
480 *
481 * removed!
482 * removed!
483 * removed!
484 *
485 * removed!
486 * removed!
487 * removed!
488 *
489 * removed!
490 * removed!
491 * removed!
492 *
493 * removed!
494 * removed!
495 * removed!
496 *
497 * removed!
498 * removed!
499 * removed!
500 *
501 * removed!
502 * removed!
503 * removed!
504 *
505 * removed!
506 * removed!
507 * removed!
508 *
509 * removed!
510 * removed!
511 * removed!
512 *
513 * removed!
514 * removed!
515 * removed!
516 *
517 * removed!
518 * removed!
519 * removed!
520 *
521 * removed!
522 * removed!
523 * removed!
524 *
525 * removed!
526 * removed!
527 * removed!
528 *
529 *------------------------------------------------------------------------------
530 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
531 *==============================================================================
532 *******************************************************************************/
533
534/********************************************************************************
535* Copyright Statement:
536* --------------------
537*
538* This product has been developed using a protocol stack
539* developed by Sasken Communication Technologies Limited.
540*
541********************************************************************************/
542#ifndef _GMSS_NWSEL_STRUCT_H
543#define _GMSS_NWSEL_STRUCT_H
544
545#include "kal_general_types.h"
546#include "l3_inc_enums_public.h"
547#include "l3_inc_enums.h"
548#include "mcd_l3_inc_struct.h"
549#include "ps_public_enum.h"
550#include "l3_inc_local.h"
551#include "mm_mmi_enums.h"
552
553#ifdef __LTE_RAT__
554#include "nvram_data_items.h"
555#include "nvram_editor_data_item.h"
556#endif
557
558#ifdef __IMS_SUPPORT__
559#include "ims_common_def.h"
560#include "ims_interface_md.h"
561#endif /* __IMS_SUPPORT__ */
562
563#include "rsvas_enum.h"
564#include "gmss_public.h"
565#include "rac_gmss_struct.h"
566#include "nwsel_eval_struct.h"
567#include "gmss_cval_struct.h"
568#include "nas_sv_css_struct.h"
569
570#include "nvram_editor_data_item.h"
571#include "nas_nvram_editor.h"
572#include "sim_ps_struct.h"
573#include "sim_public_enum_public.h"
574#include "mmss_def.h"
575#include "nvram_struct.h"
576#include "rac2l4c_struct.h"
577#include "l3_inc_enums.h"
578#include "nas_sv_struct.h"
579
580#include "l4c2rac_struct.h"
581#include "rac2l4c_struct.h"
582
583/* GMSS -> NWSEL */
584typedef rac_gmss_init_req_struct gmss_nwsel_init_req_struct;
585typedef rac_gmss_custom_plmn_list_update_req_struct gmss_nwsel_custom_plmn_list_update_req_struct;
586typedef rac_gmss_get_custom_plmn_list_req_struct gmss_nwsel_get_custom_plmn_list_req_struct;
587typedef rac_gmss_get_custom_plmn_list_cnf_struct gmss_nwsel_get_custom_plmn_list_cnf_struct;
588typedef rac_gmss_uemode_param_update_req_struct gmss_nwsel_uemode_param_update_req_struct;
589typedef rac_gmss_volte_status_update_req_struct gmss_nwsel_volte_status_update_req_struct;
590typedef rac_gmss_call_status_req_struct gmss_nwsel_call_status_ind_struct;
591
592typedef rac_gmss_set_plmn_barring_timer_req_struct gmss_nwsel_set_plmn_barring_timer_req_struct;
593typedef rac_gmss_set_plmn_barring_timer_cnf_struct gmss_nwsel_set_plmn_barring_timer_cnf_struct;
594typedef rac_gmss_get_plmn_barring_timer_req_struct gmss_nwsel_get_plmn_barring_timer_req_struct;
595typedef rac_gmss_get_plmn_barring_timer_cnf_struct gmss_nwsel_get_plmn_barring_timer_cnf_struct;
596typedef rac_gmss_ims_timer_status_update_req_struct gmss_nwsel_ims_timer_status_update_req_struct;
597typedef rac_gmss_abort_enwsel_search_req_struct gmss_nwsel_abort_enwsel_search_req_struct;
598typedef rac_gmss_ims_call_end_status_ind_struct gmss_nwsel_ims_call_end_status_ind_struct;
599typedef rac_gmss_set_ims_roaming_config_req_struct gmss_nwsel_set_ims_roaming_config_req_struct;
600typedef rac_gmss_set_prefer_rat_req_struct gmss_nwsel_set_prefer_rat_req_struct;
601typedef rac_gmss_get_prefer_rat_req_struct gmss_nwsel_get_prefer_rat_req_struct;
602typedef rac_gmss_get_prefer_rat_cnf_struct gmss_nwsel_get_prefer_rat_cnf_struct;
603typedef rac_gmss_camp_ui_ind_struct gmss_nwsel_camp_ui_ind_struct;
604#ifdef __MBIM_MS_NETWORK_BLACKLIST__
605typedef rac_gmss_fplmn_action_cnf_struct gmss_nwsel_fplmn_action_cnf_struct;
606typedef rac_gmss_nw_black_list_state_ind_struct gmss_nwsel_nw_black_list_state_ind_struct;
607#endif
608
609typedef struct {
610 LOCAL_PARA_HDR
611 plmn_selection_mode_enum plmn_sel_mode;
612} gmss_nwsel_sel_mode_req_struct;
613
614typedef nas_sv_any_attach_req_struct gmss_nwsel_attach_req_struct;
615
616typedef nas_sv_any_detach_req_struct gmss_nwsel_detach_req_struct;
617
618
619typedef struct {
620 LOCAL_PARA_HDR
621 plmn_reselection_enum plmn_search_mode; /* plmn_reselection_enum */
622 plmn_id_rat_struct selected_plmn; /* Selected PLMN */
623 kal_bool is_manual_csg_sel;
624 kal_uint32 csg_id;
625 rat_enum prefer_rat; // 0:default , 1:GSM , 2:UMTS
626 kal_bool from_l4c;
627 kal_uint32 factory_mode_arfcn; //0xFFFF means invalid arfcn, /* 20081110 mtk00714, for fast camp on test machine */
628 endc_search_enum endc_search; /* Search ENDC cell or not for LTE cell. */
629} gmss_nwsel_rac_plmn_search_req_struct;
630
631typedef struct {
632 LOCAL_PARA_HDR
633 plmn_id_rat_struct plmn_id_rat;
634} gmss_nwsel_rac_csg_list_req_struct;
635
636typedef nas_sv_gmss_set_rat_mode_req_struct gmss_nwsel_set_rat_mode_req_struct;
637
638typedef nas_sv_any_rfoff_req_struct gmss_nwsel_rfoff_req_struct;
639
640typedef struct {
641 LOCAL_PARA_HDR
642 kal_bool is_supporting_roaming;
643 kal_bool disable_international_roaming_support;
644 kal_bool disable_national_roaming_support;
645 kal_bool disable_hhplmn_search_support;
646} gmss_nwsel_set_roaming_mode_req_struct;
647
648typedef struct {
649 LOCAL_PARA_HDR
650 elevator_mode_enum elevator_mode;
651}gmss_nwsel_elevator_mode_req_struct;
652
653/* NWSEL -> GMSS */
654
655typedef nwsel_eval_c2k_csfb_start_ind_struct gmss_nwsel_c2k_csfb_start_ind_struct;
656typedef nwsel_eval_c2k_csfb_est_ind_struct gmss_nwsel_c2k_csfb_est_ind_struct;
657typedef nwsel_eval_c2k_csfb_stop_ind_struct gmss_nwsel_c2k_csfb_stop_ind_struct;
658
659typedef struct {
660 LOCAL_PARA_HDR
661 proc_status_enum status; /* proc_status_enum */
662 mm_cause_enum cause; /* mm_cause_enum */
663 kal_bool is_on_hplmn;
664 cell_info_and_rat_struct cell_info;
665} gmss_nwsel_rac_plmn_search_cnf_struct;
666
667typedef struct {
668 LOCAL_PARA_HDR
669 proc_status_enum status; /* proc_status_enum */
670 mm_cause_enum cause; /* mm_cause_enum */
671 kal_uint8 num_of_hplmn;
672 rac_plmn_list_struct plmn_list;
673 list_ind_source_enum source;
674 prio_class_enum gmss_class_list[RAC_MAX_NUM_LISTED_PLMNS];
675 kal_bool is_C2K_sib_scheduled;
676} gmss_nwsel_rac_plmn_list_cnf_struct;
677
678typedef gmss_nwsel_rac_plmn_list_cnf_struct gmss_nwsel_plmn_list_ind_struct;
679
680typedef struct {
681 LOCAL_PARA_HDR
682 kal_uint8 susp_id;
683 susp_resu_source_enum target;
684} gmss_nwsel_suspend_status_ind_struct;
685
686typedef struct {
687 LOCAL_PARA_HDR
688 proc_status_enum status;
689 mm_cause_enum cause;
690 rac_csg_list_struct csg_list;
691} gmss_nwsel_rac_csg_list_cnf_struct;
692
693typedef nas_sv_gmss_set_rat_mode_cnf_struct gmss_nwsel_set_rat_mode_cnf_struct;
694
695
696typedef struct {
697 LOCAL_PARA_HDR
698 kal_bool is_not_suspend; /* indicate if is_searching = TRUE is due to Gemini suspend */
699 kal_bool is_update_is_searching; /* if TRUE, RAC can check is_searching flag */
700 kal_bool is_searching;
701 kal_bool is_camp_on_cell; /* if is_searching = FALSE && is_camp_on_cell = FALSE, then RAC update to L4C;
702 else, ignore the is_searching flag. */
703 kal_bool is_on_hplmn;
704 kal_bool is_update_active_rat;
705 rat_enum active_rat;
706//#ifdef __KOR_CUSTOMIZATION__
707 plmn_id_struct rplmn; /* Get RPLMN */
708//#endif
709} gmss_nwsel_plmn_status_ind_struct;
710
711typedef struct {
712 LOCAL_PARA_HDR
713 nwsel_ims_service_enum service_type;
714 kal_bool is_t311_expire; /* RRC connection release due to RRC T311 timer expire */
715} gmss_nwsel_ims_service_ind_struct;
716
717typedef struct {
718 LOCAL_PARA_HDR
719 kal_bool enter_cause18_plmn;
720} gmss_nwsel_cs_domain_availability_ind_struct;
721
722
723typedef struct {
724 LOCAL_PARA_HDR
725 susp_resu_action_enum action;
726 susp_resu_result_enum result;
727 susp_resu_source_enum target;
728} gmss_nwsel_susp_resu_update_cnf_struct;
729
730typedef struct {
731 LOCAL_PARA_HDR
732 susp_resu_mode_enum mode;
733 susp_resu_action_enum action;
734 kal_uint8 susp_id;
735 susp_resu_source_enum source;
736} gmss_nwsel_susp_resu_update_req_struct;
737
738typedef struct {
739 LOCAL_PARA_HDR
740 kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
741} gmss_nwsel_set_recovery_search_timer_req_struct;
742
743typedef struct {
744 LOCAL_PARA_HDR
745 kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
746} gmss_nwsel_get_recovery_search_timer_cnf_struct;
747
748typedef struct {
749 LOCAL_PARA_HDR
750 kal_bool result;
751} gmss_nwsel_set_recovery_search_timer_cnf_struct;
752
753typedef struct {
754 LOCAL_PARA_HDR
755 plmn_id_struct plmn;
756 rat_enum rat;
757 kal_uint8 ara_start[2];
758 kal_uint8 ara_end[2];
759}gmss_nwsel_aral_update_req_struct;
760
761typedef struct {
762 LOCAL_PARA_HDR
763 voice_domain_preference_enum utran_voice_domain_preference;
764} gmss_nwsel_set_utran_voice_domain_preference_req_struct;
765
766typedef rac_gmss_data_service_status_update_req_struct gmss_nwsel_data_service_status_update_req_struct;
767
768typedef struct {
769 LOCAL_PARA_HDR
770 kal_uint8 trx_id;
771
772 /* The MMSS search type.
773 */
774 mmss_search_type_enum mmss_search_type;
775
776 /* The search RAT, only valid for MMSS_SEARCH_NORMAL.
777 */
778 rat_enum rat;
779
780 /* The search prio_class, only valid for MMSS_SEARCH_NORMAL.
781 */
782 prio_class_enum gmss_class;
783
784 /* The search duplex type.
785 */
786 lte_duplex_type_enum duplex_type;
787
788 /* The search target's MCC. NWSEL will ignore PLMNs not in this MCC.
789 ** Only mcc1, mcc2, mcc3 fields are valid.
790 ** If the value are all 0x0F, it means no MCC restriction.
791 ** Note: This field only valid for MMSS_SEARCH_NORMAL.
792 */
793 plmn_id_struct mcc;
794
795 /* scan type for fast roaming.
796 */
797 scan_type_enum scan_type;
798
799 /* ims emergency cell required controlled by GMSS
800 */
801 kal_bool is_ims_emergency_required;
802
803 /* The MMSS search list(ie. MRU, RAL).
804 */
805 mmss_3gpp_list_struct mmss_list;
806
807 /* Search type, e.g stored ,quick or normal.
808 */
809 gmss_search_type_enum gmss_search_type;
810
811 kal_bool is_srlte;
812
813 kal_bool is_to_deactivate_c2k_cs_service;
814
815 // is first search after power-on
816 kal_bool is_power_on;
817
818 /* notify NWSEL if this is for better system reselection, replace MMSS_SEARCH_BETTER_SYSTEM_RESELECTION*/
819 kal_bool is_bsr;
820
821 /* notify NWSEL which camping cell VDM is used now. only for emergency call */
822 kal_uint16 camping_info_id;
823} gmss_nwsel_plmn_search_req_struct;
824
825typedef struct {
826 LOCAL_PARA_HDR
827 kal_uint8 trx_id;
828 proc_status_enum proc_status;
829 rat_enum rat;
830 prio_class_enum gmss_class;
831 mm_cause_enum proc_cause;
832 mm_cause_enum nw_mm_cause;
833 esm_cause_enum esm_cause;
834} gmss_nwsel_plmn_search_cnf_struct;
835
836typedef struct {
837 LOCAL_PARA_HDR
838 rat_enum rat;
839 lte_duplex_type_enum duplex_type;
840 plmn_id_struct mcc; /* only mcc1, mcc2, mcc3 are valid, for NWSEL to ignore PLMNs not in this MCC */
841 prio_class_enum quick_list_class; /* Home or PREF: quick list; others: normal list*/
842 scan_type_enum scan_type;
843 kal_bool is_elevator_mode;
844} gmss_nwsel_plmn_list_req_struct;
845
846typedef struct
847{
848 LOCAL_PARA_HDR
849 kal_bool is_user_plmn_list_ongoing;
850} gmss_nwsel_plmn_list_status_update_req_struct;
851
852typedef rac_gmss_plmn_list_req_struct gmss_nwsel_rac_plmn_list_req_struct;
853
854typedef struct {
855 LOCAL_PARA_HDR
856 plmn_id_struct mcc; /* only mcc1, mcc2, mcc3 are valid, for NWSEL to ignore PLMNs not in this MCC */
857 prio_class_enum quick_list_class; /* Home or PREF: quick list; others: normal list*/
858 gmss_rat_enum c2k_ps_rat; /* 1xRTT or HRPD */
859} gmss_nwsel_c2k_normal_service_req_struct;
860
861typedef struct {
862 LOCAL_PARA_HDR
863 proc_status_enum proc_status;
864 prio_class_enum gmss_class; // Only count plmn with suitable cell.
865 mm_cause_enum cause;
866 rac_plmn_list_struct plmn_list; // All available plmn including forbidden and may_suitable_cell_exist=FALSE.
867 prio_class_enum gmss_class_list[RAC_MAX_NUM_LISTED_PLMNS]; //mapping to plmn_list.plmn_id_rat[RAC_MAX_NUM_LISTED_PLMNS]
868} gmss_nwsel_plmn_list_cnf_struct;
869
870#ifdef __GEMINI__
871typedef struct {
872 LOCAL_PARA_HDR
873 as_suspend_mode_reason_enum cause;
874} gmss_nwsel_suspend_ind_struct;
875
876typedef struct {
877 LOCAL_PARA_HDR
878 kal_bool is_virtual_idle_mode;
879} gmss_nwsel_resume_ind_struct;
880
881typedef struct {
882 LOCAL_PARA_HDR
883 kal_bool is_virtual_idle_mode;
884} gmss_nwsel_virtual_mode_ind_struct;
885
886typedef struct {
887 LOCAL_PARA_HDR
888 kal_bool is_limited_virtual_idle;
889} gmss_nwsel_limited_virtual_idle_ind_struct;
890
891#endif /* __GEMINI__ */
892
893typedef struct {
894 LOCAL_PARA_HDR
895 mm_cause_enum cause; /* FORBIDDEN_PLMN for limited service; NO_COVERAGE for no coverage */
896 plmn_id_rat_struct plmn_id;
897 kal_bool immediate_duplex_mode_change;
898} gmss_nwsel_out_of_service_ind_struct;
899
900typedef struct {
901 LOCAL_PARA_HDR
902 prio_class_enum gmss_class;
903 rat_enum rat;
904} gmss_nwsel_class_rat_ind_struct;
905
906typedef struct {
907 LOCAL_PARA_HDR
908 nwsel_event_type_enum event;
909} gmss_nwsel_event_ind_struct;
910
911typedef struct {
912 LOCAL_PARA_HDR
913 kal_bool is_controlled_by_gmss;
914} gmss_nwsel_gmss_status_update_req_struct;
915
916typedef struct {
917 LOCAL_PARA_HDR
918 kal_bool reset_bar_list;
919} gmss_nwsel_reset_search_result_req_struct;
920
921typedef struct
922{
923 LOCAL_PARA_HDR
924 irat_type_enum irat_type;
925 c2k_irat_attach_result_enum result;
926} gmss_nwsel_c2k_irat_complete_req_struct;
927
928typedef struct
929{
930 LOCAL_PARA_HDR
931 rat_enum rat;
932 as_sniffer_req_service_enum sniffer_service_type;
933} gmss_nwsel_sniffer_start_req_struct;
934
935typedef struct
936{
937 LOCAL_PARA_HDR
938 rat_enum rat;
939} gmss_nwsel_sniffer_stop_req_struct;
940
941typedef struct
942{
943 LOCAL_PARA_HDR
944 rat_enum rat;
945} gmss_nwsel_signal_appear_ind_struct;
946
947typedef struct
948{
949 LOCAL_PARA_HDR
950 nvram_gmss_data_struct gmss_data;
951 //Use access_id = 0 to ignore NVRAM_WRITE_CNF
952 // access_id = 0x10~0x1f to wait NVRAM_WRITE_CNF of NVRAM_EF_NWSEL_DATA_LID
953 kal_uint8 access_id;
954} gmss_nwsel_nvram_write_req_struct;
955
956typedef nvram_write_cnf_struct gmss_nwsel_nvram_write_cnf_struct;
957
958typedef struct
959{
960 LOCAL_PARA_HDR
961 prio_class_enum prio_class;
962 rat_enum rat; /* used to notify nwsel mspl rat when suspend/resume */
963} gmss_nwsel_prio_class_update_req_struct;
964
965typedef sim_gmss_ready_ind_struct gmss_nwsel_sim_ready_req_struct;
966
967typedef sim_error_ind_struct gmss_nwsel_sim_error_req_struct;
968
969typedef struct {
970 LOCAL_PARA_HDR
971 act_sim_enum active_sim;
972} gmss_nwsel_active_sim_info_req_struct;
973
974typedef struct {
975 LOCAL_PARA_HDR
976 kal_uint8 trx_id;
977 kal_uint8 rat_num;
978 rat_enum rat[MAX_MCC_SEARCH_RAT_NUM];
979 gmss_search_type_enum gmss_search_type;
980 kal_bool is_power_on; // is first search after power-on
981} gmss_nwsel_mcc_search_req_struct;
982
983typedef struct {
984 LOCAL_PARA_HDR
985 kal_uint8 trx_id;
986 proc_status_enum proc_status;
987 kal_uint8 plmn_count;
988 plmn_id_rat_struct plmn_id_rat[RAC_MAX_NUM_LISTED_PLMNS];
989} gmss_nwsel_mcc_search_cnf_struct;
990
991typedef struct {
992 LOCAL_PARA_HDR
993 plmn_id_struct plmn_id;
994} gmss_nwsel_disable_eutran_req_struct;
995
996typedef l4crac_nw_reg_status_ind_struct gmss_nwsel_reg_status_ind_struct;
997
998typedef struct {
999 LOCAL_PARA_HDR
1000 kal_bool data_enabled_setting;
1001 kal_bool data_roaming_setting;
1002} gmss_nwsel_roaming_data_config_req_struct;
1003
1004typedef struct {
1005 LOCAL_PARA_HDR
1006
1007 kal_bool is_sim_ready;
1008 kal_uint8 trx_id;
1009
1010 // HOME+EHOME PLMN
1011 // If num_of_ehplmn > 4(MAX_NUM_HPLMN), fill MAX_NUM_HPLMN at most
1012 // num_of_ehplmn will be the number in this message
1013 // is_remaining_ehplmn indicates the last ehplmn or not
1014 kal_bool is_remaining_ehplmn;
1015 kal_uint16 num_of_ehplmn;
1016 plmn_id_rat_struct ehplmn[PLMN_INFO_MAX_NUM_HPLMN];
1017
1018 // PREFER PLMN
1019 // If num_of_uplmn > 32(NWSEL_MAX_NUM_PLMNS), fill NWSEL_MAX_NUM_PLMNS PLMN at most.
1020 // num_of_uplmn will be the number in this message
1021 // is_remaining_uplmn indicates the last uplmn or not
1022 kal_bool is_remaining_uplmn;
1023 kal_uint16 num_of_uplmn;
1024 plmn_id_rat_struct uplmn[NWSEL_MAX_NUM_PLMNS];
1025
1026 // If num_of_oplmn > 32(NWSEL_MAX_NUM_PLMNS), fill NWSEL_MAX_NUM_PLMNS PLMN at most.
1027 // num_of_oplmn will be the number in this message
1028 // is_remaining_oplmn indicates the last oplmn or not
1029 kal_bool is_remaining_oplmn;
1030 kal_uint16 num_of_oplmn;
1031 plmn_id_rat_struct oplmn[NWSEL_MAX_NUM_PLMNS];
1032} gmss_nwsel_plmn_info_ind_struct;
1033
1034typedef struct {
1035 LOCAL_PARA_HDR
1036 umts_duplex_mode_type source_umts_duplex_mode;
1037 umts_duplex_mode_type target_umts_duplex_mode;
1038 lte_duplex_mode_type source_lte_duplex_mode;
1039 lte_duplex_mode_type target_lte_duplex_mode;
1040 mode_switch_cause_enum cause;
1041 plmn_id_rat_struct plmn_id_rat; // only valid when mode_switch_cause == MODE_SWITCH_PLMN_CHANGE
1042 // if rat is C2K, only MCC part is valid
1043 kal_bool need_cnf;
1044} gmss_nwsel_duplex_mode_change_req_struct;
1045
1046typedef struct {
1047 LOCAL_PARA_HDR
1048 mode_switch_cause_enum cause;
1049} gmss_nwsel_global_mode_change_start_req_struct;
1050
1051typedef struct
1052{
1053 LOCAL_PARA_HDR
1054 kal_bool voice_over_ims_ongoing;
1055} gmss_nwsel_ims_call_info_req_struct;
1056
1057typedef struct {
1058 LOCAL_PARA_HDR
1059 rat_enum rat;
1060 plmn_id_struct plmn_id;
1061} gmss_nwsel_set_aux_plmn_req_struct;
1062
1063typedef struct {
1064 LOCAL_PARA_HDR
1065 set_aux_plmn_result_enum result;
1066} gmss_nwsel_set_aux_plmn_cnf_struct;
1067
1068typedef struct {
1069 LOCAL_PARA_HDR
1070 rat_enum rat;
1071 plmn_id_struct plmn_id;
1072 kal_uint16 arfcn;
1073 kal_uint8 requested_band;
1074} gmss_nwsel_set_mru_req_struct;
1075
1076typedef struct {
1077 LOCAL_PARA_HDR
1078 set_mru_result_enum result;
1079} gmss_nwsel_set_mru_cnf_struct;
1080
1081typedef struct {
1082 LOCAL_PARA_HDR
1083 kal_bool is_attach_needed;
1084} gmss_nwsel_rat_change_success_notify_req_struct;
1085
1086/* NOTE: this primitive need to report in LWCG mode and even GWL only mode */
1087typedef struct {
1088 LOCAL_PARA_HDR
1089
1090 /**< the latest camping record */
1091 mmss_3gpp_rec_type new_rec;
1092
1093 /**< indicate if the record is registered or not */
1094 kal_bool is_registered;
1095
1096 /**< indicate if the cell support ims emergency call, only applicable when LTE cell */
1097 kal_bool is_ims_emergency_support;
1098
1099 /**< indicate the current cell info trx id, used by VDM/GMSS/NWSEL to distinguish the emergency call cell used */
1100 kal_uint16 camping_info_id;
1101
1102} gmss_nwsel_camping_info_ind_struct;
1103
1104// new primitive for AS IRAT stage 1 success
1105typedef struct {
1106 LOCAL_PARA_HDR
1107 kal_bool is_attach_needed;
1108} gmss_nwsel_irat_c2l_success_notify_ind_struct;
1109
1110typedef struct {
1111 LOCAL_PARA_HDR
1112 plmn_based_timer_enum timer_type;
1113 timer_status_enum timer_status;
1114 plmn_id_struct target_plmn;
1115 plmn_restrict_additional_information_enum event;
1116} gmss_nwsel_plmn_restriction_change_ind_struct;
1117
1118typedef struct {
1119 LOCAL_PARA_HDR
1120 kal_uint8 trx_id;
1121 kal_uint16 last_idx_of_ehplmn;
1122 kal_uint16 last_idx_of_oplmn;
1123 kal_uint16 last_idx_of_uplmn;
1124} gmss_nwsel_plmn_info_rsp_struct;
1125
1126typedef struct {
1127 LOCAL_PARA_HDR
1128 rat_enum rat;
1129} gmss_nwsel_set_first_camp_on_prefer_rat_req_struct;
1130
1131typedef struct
1132{
1133 LOCAL_PARA_HDR
1134 kal_bool bEvdoEnterConnection; /* TRUE, means EVDO has been in PS connection state; else, EVDO has been in idle state. */
1135} gmss_nwsel_evdo_ps_connection_status_ind_struct;
1136
1137typedef struct
1138{
1139 LOCAL_PARA_HDR
1140 kal_bool b1xRttEnterConnection; /* TRUE, means 1xRTT has been in PS connection state; else, 1xRTT has been in idle state. */
1141} gmss_nwsel_1xrtt_ps_connection_status_ind_struct;
1142
1143typedef struct
1144{
1145 LOCAL_PARA_HDR
1146 hvolte_mode_enum source_hvolte_mode; /** indicate original hvolte mode */ // enum defined in ims_common_def.h
1147 hvolte_mode_enum target_hvolte_mode; /** indicate source hvolte mode */ // enum defined in ims_common_def.h
1148 kal_bool is_silent_redial_and_call_ongoing;
1149} gmss_nwsel_hvolte_mode_change_req_struct;
1150
1151#ifdef __NWSEL_QUICK_SEARCH_FOR_ROAMING__
1152typedef l4crac_high_prio_search_timer_config_req_struct gmss_nwsel_high_prio_search_timer_config_req_struct;
1153#endif
1154
1155typedef struct {
1156 LOCAL_PARA_HDR
1157 rat_enum rat; /* only valid when emc_bar_type != EMC_BAR_TYPE_NONE */
1158 plmn_id_struct plmn_id; /* only valid when emc_bar_type != EMC_BAR_TYPE_NONE */
1159 kal_uint16 band; /* only valid when emc_bar_type != EMC_BAR_TYPE_NONE */
1160} gmss_nwsel_emc_bar_network_req_struct;
1161
1162//#ifdef __KOR_CUSTOMIZATION__
1163typedef struct {
1164 LOCAL_PARA_HDR
1165 plmn_id_struct rplmn; /* Get RPLMN */
1166} gmss_nwsel_rplmn_ind_struct;
1167//#endif
1168
1169typedef l4crac_fplmn_action_req_struct gmss_nwsel_fplmn_action_req_struct;
1170
1171typedef l4crac_nw_reg_rej_ind_struct gmss_nwsel_nw_reg_rej_ind_struct;
1172
1173typedef l4crac_plmn_found_ind_struct gmss_nwsel_rac_plmn_found_ind_struct;
1174
1175typedef l4crac_set_allowed_mcc_list_req_struct gmss_nwsel_set_allowed_mcc_list_req_struct;
1176typedef l4crac_set_allowed_mcc_list_cnf_struct gmss_nwsel_set_allowed_mcc_list_cnf_struct;
1177
1178typedef struct
1179{
1180 LOCAL_PARA_HDR
1181 recover_cause_enum cause;
1182} gmss_nwsel_rac_invalid_sim_recover_ind_struct;
1183
1184typedef struct {
1185 LOCAL_PARA_HDR
1186 rat_type_enum source_rat;
1187 rat_type_enum target_rat;
1188} gmss_nwsel_gmss_irat_start_ind_struct;
1189
1190typedef struct {
1191 LOCAL_PARA_HDR
1192 rat_type_enum source_rat;
1193 rat_type_enum target_rat;
1194} gmss_nwsel_gmss_irat_finish_ind_struct;
1195
1196typedef nas_sv_css_mcc_search_req_struct gmss_nwsel_css_mcc_search_req_struct;
1197typedef nas_sv_css_mcc_search_cnf_struct gmss_nwsel_css_mcc_search_cnf_struct;
1198typedef nas_sv_css_ps_reg_req_struct gmss_nwsel_css_ps_reg_req_struct;
1199typedef nas_sv_css_ps_reg_cnf_struct gmss_nwsel_css_ps_reg_cnf_struct;
1200typedef nas_sv_css_cs_reg_req_struct gmss_nwsel_css_cs_reg_req_struct;
1201typedef nas_sv_css_cs_reg_cnf_struct gmss_nwsel_css_cs_reg_cnf_struct;
1202
1203typedef struct {
1204 LOCAL_PARA_HDR
1205 kal_bool is_ims_support;
1206} gmss_nwsel_ims_vops_support_status_ind_struct;
1207
1208typedef struct
1209{
1210 LOCAL_PARA_HDR
1211 ims_special_event_enum ims_event;
1212 kal_uint16 sip_cause;
1213} gmss_nwsel_ims_reg_status_update_req_struct;
1214
1215typedef struct
1216{
1217 LOCAL_PARA_HDR
1218 rat_enum disable_rat;
1219} gmss_nwsel_rat_disable_config_req_struct;
1220
1221typedef rac_gmss_data_allow_req_struct gmss_nwsel_data_allow_req_struct;
1222
1223typedef gmss_cval_send_dan_sms_ind_struct gmss_nwsel_send_dan_sms_ind_struct;
1224
1225typedef struct
1226{
1227 LOCAL_PARA_HDR
1228 kal_bool is_invalid;
1229 plmn_id_struct plmn_id;
1230} gmss_nwsel_illegal_me_ind_struct;
1231
1232#if defined(__LTE_RAT__) && (defined(__GSM_RAT__) || defined(__UMTS_RAT__))
1233typedef nwsel_eval_power_on_protection_req_struct gmss_nwsel_power_on_protection_req_struct;
1234#endif
1235
1236typedef struct
1237{
1238 LOCAL_PARA_HDR
1239 kal_uint32 trx_id; /* Transaction ID */
1240 rat_enum available_rat; /* rat need to be searched */
1241 rat_enum prefer_rat; /* subset of available rat, search those RAT first. RATN_NONE if no preference */
1242 module_type source; /* The source module of this service scan */
1243} gmss_nwsel_service_scan_req_struct;
1244
1245typedef struct
1246{
1247 LOCAL_PARA_HDR
1248 kal_uint32 trx_id; /* Transaction ID */
1249 proc_status_enum status; /* PROC_SUCCESS, PROC_FAILED or PROC_REJECTED */
1250 module_type source; /* The source module of this service scan */
1251} gmss_nwsel_service_scan_cnf_struct;
1252
1253typedef struct
1254{
1255 LOCAL_PARA_HDR
1256 kal_bool normal_oos_recovery_round_present;
1257 kal_uint8 normal_oos_recovery_round; /* default value =5, range [2,10] */
1258 kal_bool inactive_fullband_period_present;
1259 kal_uint16 inactive_fullband_period; /* default value =200s, range [90,360] */
1260 kal_bool inactive_sniffer_period_present;
1261 kal_uint8 inactive_sniffer_period; /* default value =30s, range [10,60] */
1262 kal_bool is_inactive_mode_present;
1263 kal_bool is_inactive_mode; /* TRUE: Enter inactive mode, FALSE: Leave inactive mode*/
1264} gmss_nwsel_inactive_mode_configuration_req_struct;
1265
1266typedef rac_gmss_screen_on_req_struct gmss_nwsel_screen_on_req_struct;
1267typedef rac_gmss_try_switch_rat_result_ind_struct gmss_nwsel_try_switch_rat_result_ind_struct;
1268
1269typedef nwsel_nas_sv_sys_info_update_ind_struct gmss_nwsel_sys_info_update_ind_struct;
1270typedef nwsel_nas_sv_plmn_found_ind_struct gmss_nwsel_plmn_found_ind_struct;
1271
1272typedef struct
1273{
1274 LOCAL_PARA_HDR
1275 plmn_search_status_enum plmn_search_status;
1276 regn_proc_status_enum regn_proc_stastus;
1277} gmss_nwsel_regn_status_update_req_struct;
1278
1279typedef struct
1280{
1281 LOCAL_PARA_HDR
1282 kal_bool is_over_inactive_mode_threshold; // True: first scan and sleep is done
1283} gmss_nwsel_service_recovery_round_update_req_struct;
1284
1285typedef struct
1286{
1287 LOCAL_PARA_HDR
1288 rat_enum rat;
1289 network_scan_rat_union_type nw_scan_rat_output;
1290 nwsel_plmn_list_status_enum status;
1291} gmss_nwsel_rac_plmn_scan_ind_struct;
1292
1293#endif