[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/ims/imc_iwlan_struct.h b/mcu/protocol/interface/ims/imc_iwlan_struct.h
new file mode 100644
index 0000000..329ec68
--- /dev/null
+++ b/mcu/protocol/interface/ims/imc_iwlan_struct.h
@@ -0,0 +1,236 @@
+#ifndef _IMC_IWLAN_STRUCT_H
+#define _IMC_IWLAN_STRUCT_H
+
+#include "ps_public_enum.h"
+#include "ims_common_def.h"
+#include "ims_interface_md.h"
+#include "atp_imc_struct.h"
+#include "codec_def.h"
+#include "custom_iwlan_config.h"
+
+typedef enum {
+ IMC_IWLAN_MEDIA_UNSPEC = 0,
+ IMC_IWLAN_MEDIA_NEW,
+ IMC_IWLAN_MEDIA_UPDATE,
+ IMC_IWLAN_MEDIA_DEL
+} imc_iwlan_media_state_enum;
+
+typedef enum {
+ IMC_IWLAN_IMS_CALL_STATUS_UNSPEC = 0,
+ IMC_IWLAN_IMS_CALL_STATUS_REQ,
+ IMC_IWLAN_IMS_CALL_STATUS_BEGIN,
+ IMC_IWLAN_IMS_CALL_STATUS_CONNECTED,
+ IMC_IWLAN_IMS_CALL_STATUS_END,
+} imc_iwlan_ims_call_status_enum;
+
+typedef enum
+{
+ IMS_STATE_IDLE = 0,
+ IMS_STATE_ONCELL,
+ IMS_STATE_ONWIFI,
+ IMS_STATE_CNT,
+ IMS_STATE_ONALL = 0xCC,
+}ims_state_enum;
+
+typedef enum {
+ IMS_ACTIVE_NOT_ALLOW = 0,
+ IMS_ACTIVE_ALLOW = 1,
+ IMS_ACTIVE_MAINTAIN = 2,
+} ims_active_status_enum;
+
+typedef enum {
+ IMS_NOT_ALLOW_UNSPEC = 0,
+ IMS_RF_OFF = BITMASK(1),
+ IMS_23G_RAU = BITMASK(2),
+ IMS_AFR_DEREG = BITMASK(3),
+ IMS_SIM_INVALID = BITMASK(4),
+ IMS_NOT_ALLOW_CELL = BITMASK(5),
+ IMS_WIFI_ONLY_OR_NA = BITMASK(6),
+ IMS_RAT_NOT_SUPPORT = BITMASK(7),
+ IMS_ROAM_BAR = BITMASK(8),
+ IMS_VOPS_BAR = BITMASK(9),
+ IMS_VOPS_BAR_WITH_CALL = BITMASK(10),
+ IMS_C2K_DEREG = BITMASK(11),
+ IMS_NOT_ALLOW_WIFI = BITMASK(12),
+ IMS_CS_PREFER = BITMASK(13),
+ IMS_POOR_WIFI = BITMASK(14),
+ IMS_DEAD_ZONE = BITMASK(15),
+ IMS_SIP403 = BITMASK(16),
+ IMS_CELL_ONLY_OR_NA = BITMASK(17),
+} ims_not_allow_cause_enum;
+
+typedef enum {
+ IMS_ROAMING_DISABLE = 0,
+ IMS_ROAMING_ENABLE = 1,
+} ims_roaming_status_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ims_roaming_status_enum allow_3gpp_roaming;
+} imc_iwlan_ims_roaming_status_ind_struct;
+
+/*
+ * @brief IMS diable by IWLAN
+ * @note MSG_ID_IMC_IWLAN_IMS_DEREG_IND/RSP
+ * AT+EIMSDEREG=4
+ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 dereg_cause;
+} imc_iwlan_ims_dereg_ind_struct,
+ imc_iwlan_ims_dereg_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ imc_acct_type_enum acct_type; //defined in ims_interface_md.h
+ kal_uint32 call_id;
+ ims_call_mode_enum call_mode; //defined in ims_interface_md.h
+ imc_iwlan_ims_call_status_enum call_status;
+} imc_iwlan_ims_call_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ hvolte_call_domain_enum call_domain;
+ kal_bool is_for_silent_redial;
+ hvolte_mode_change_cause_enum cause;
+} imc_iwlan_ims_cc_set_hvolte_call_domain_req_struct;
+
+typedef struct {
+ kal_uint8 domain; // 3gpp domain
+ ims_rat_type_enum gsm_rat; // detail 3gpp rat
+ c2k_rat_type_enum c2k_rat; // detail c2k rat
+
+ /* 3GPP cell info */
+ nas_ps_reg_status_enum nas_ps_reg_status;
+ kal_bool is_roaming;
+ kal_uint8 plmn[MAX_PLMN_LEN + 1]; /* in string format, from +EOPS */
+ kal_uint64 cell_id;
+ kal_uint32 area_code; /* lac or tac */
+ cell_service_enum service_state; /* +EIMSINFO */
+ // TBD: kal_bool is_emc_supported;
+
+ /* C2K cell info */
+ kal_uint16 sid;
+ kal_uint16 nid;
+ kal_uint8 pzid;
+ kal_uint16 base_id;
+ kal_uint32 sector_id[4];
+ kal_uint8 subnet_length;
+ kal_uint8 carrier_id[7];
+ domain_id_enum c2k_domain; //c2k domain
+ c2k_cell_service_enum c2k_service_state; /* +EC2KREG */
+ /*ecall over IMS*/
+#ifdef __NG_ECALL_SUPPORT__
+ imcf_bool support_ecl; /*network support ecall over ims or not*/
+#endif
+} ims_cell_info_t;
+
+typedef struct {
+ kal_bool sms;
+ kal_bool voice;
+ kal_bool video;
+} ims_ft_tag_onwifi_t;
+
+typedef struct {
+ kal_bool sms;
+ ims_cap_rat_enum voice;
+ ims_cap_rat_enum video;
+} ims_ft_tag_oncell_t;
+
+typedef struct {
+ ims_ft_tag_oncell_t oncell;
+ ims_ft_tag_onwifi_t onwifi;
+} ims_ft_tags_t;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool ims_enable;
+ ims_active_status_enum allow_active;
+ kal_uint32 not_allow_cause; //bitmap, indicate the ims not allow cause
+ ims_ft_tags_t ft_tags;
+ ims_cell_info_t ims_cell_info;
+} imc_iwlan_ims_cap_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ voip_codec_enum audio_codec;
+ imc_iwlan_media_state_enum media_state;
+} imc_iwlan_call_media_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 hplmn_voice_capability;// 0:disable,1:enable,0xFF:not seted by NW
+ kal_uint8 hplmn_video_capability;// 0:disable,1:enable,0xFF:not seted by NW
+ kal_uint8 vplmn_voice_capability;// 0:disable,1:enable,0xFF:not seted by NW
+ kal_uint8 vplmn_video_capability;// 0:disable,1:enable,0xFF:not seted by NW
+} imc_iwlan_mo_config_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} imc_iwlan_wifi_service_fail_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ srvcc_status_enum srvcc_status;
+} imc_iwlan_srvcc_status_update_req_struct;
+
+typedef enum {
+ REG_CAUSE_NONE = 0,
+ REG_SIP_NO_RSP,
+ REG_SIP403_ROAMING,
+ REG_SIP403_3,
+ REG_PCSCF_ERR,
+ PRIO_CAUSE_CNT,
+} imc_iwlan_prio_cause_e;
+
+typedef enum {
+ IMC_IWLAN_RAN_PRIO_NONE = 0,
+ IMC_IWLAN_RAN_PRIO_LOW,
+ IMC_IWLAN_RAN_PRIO_BLOCK,
+ IMC_IWLAN_RAN_PRIO_OP_CNT,
+} imc_iwlan_ran_prio_e;
+
+typedef enum {
+ IMC_IWLAN_WIFI_RE_ASOC = (1),
+ IMC_IWLAN_VOWIFI_ON_OFF = (1<<1),
+ IMC_IWLAN_LOCAEN_ON_OFF = (1<<2),
+ IMC_IWLAN_CELL_REGHOME = (1<<3),
+} imc_iwlan_reset_event_e;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ims_state_enum ran;
+ imc_iwlan_prio_cause_e cause;
+ imc_iwlan_ran_prio_e prio;
+ kal_uint32 reset_event;
+} imc_iwlan_reg_ran_prio_update_req_struct;
+
+typedef enum
+{
+ IMC_IWLAN_HO_UNSPEC = 0,
+ IMC_IWLAN_HO_W2L,
+ IMC_IWLAN_HO_L2W,
+ IMC_IWLAN_HO_CNT,
+}imc_iwlan_ho_action_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ imc_iwlan_ho_action_enum ho_action;
+} imc_iwlan_ims_ecc_ho_req_struct;
+
+typedef enum
+{
+ IMC_IWLAN_HO_NONE = 0,
+ IMC_IWLAN_HO_TRIG,
+ IMC_IWLAN_HO_NO_DEST,
+ IMC_IWLAN_HO_END,
+}imc_iwlan_ho_result_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ imc_iwlan_ho_result_enum result;
+} imc_iwlan_ims_ecc_ho_rsp_struct;
+
+#endif /* _IMC_IWLAN_STRUCT_H */