#include "base_datatype_def.txt"








typedef struct {
} null_stru;

typedef struct
{
    osal_u32 id;
} SOC_DBG_STAT_Q_S;

typedef struct {
    osal_u8 a;
    osal_u8 b;
} soc_stat_diag_p_qry;

typedef struct {
    osal_u16 send_uart_fail_cnt;
    osal_u16 ack_ind_malloc_fail_cnt;
    osal_u16 msg_malloc_fail_cnt;
    osal_u16 msg_send_fail_cnt;
    osal_u16 msg_overbig_cnt;
    osal_u16 ind_send_fail_cnt;
    osal_u16 ind_malloc_fail_cnt;
    osal_u8 diag_queue_used_cnt;
    osal_u8 diag_queue_total_cnt;
    osal_u8 dec_fail_cnt;
    osal_u8 enc_fail_cnt;
    osal_u16 pkt_size_err_cnt;
    osal_u32 local_req_cnt;
    osal_u32 remote_req_cnt;
    osal_u16 req_cache_overflow_cnt;
    osal_u8 conn_excep_cnt;
    osal_u8 conn_bu_cnt;
    osal_u8 chl_busy_cnt;
    osal_u8 req_overbig1_cnt;
    osal_u16 rx_remote_req_cnt;
    osal_u16 rx_remote_req_invalid_cnt;
    osal_u8 cmd_list_total_cnt;
    osal_u8 cmd_list_used_cnt;
    osal_u8 stat_list_total_cnt;
    osal_u8 stat_list_used_cnt;
    osal_u8 req_overbig2_cnt;
    osal_u8 invalid_dec_id;
    osal_u8 heart_beat_timeout_cnt;
    osal_u8 rx_start_flag_wrong_cnt;
    osal_u8 rx_ver_wrong_cnt;
    osal_u8 rx_pkt_data_size_wrong_cnt;
    osal_u8 rx_crc16_req_wrong_cnt;
    osal_u8 rx_crc16_mux_wrong_cnt;
    osal_u8 pad[2];
} soc_stat_diag_qry;

typedef struct tag_atiny_critical_information {
    osal_u16 network_access_count_total;
    osal_u16 bs_reg_retry_count_total[3];
    osal_u16 reg_retry_count_total[3];
    osal_u16 send_data_last_mid;
    osal_u16 recv_data_last_mid;
    osal_u32 send_data_total;
    osal_u32 recv_data_total;
} atiny_critical_information;

typedef struct tag_atiny_platform_state {
    osal_u8 context_state[3];
    osal_u8 lwm2m_state[3];
    osal_u8 bootstrap_state[3];
    osal_u8 dtls_state[3];
} atiny_platform_state;

typedef struct tag_atiny_retrans_data {
    osal_u32 mid[9];
    osal_u8 retrans_count[9];
    osal_u8 dtls_retrans_count[3];
} atiny_retrans_data;


typedef struct tag_atiny_ota_data {
    osal_u16 req_fota_block_size;
    osal_bool force_suspend_firmware;
    osal_bool sota_update_flag;
} atiny_ota_data;

typedef struct tag_atiny_retry_counter {
    osal_u8 bs_reg_retry_count_current[3];
    osal_u8 reg_retry_count_current[3];
} atiny_retry_counter;

typedef struct {
    osal_u16 cmd_cnt;
    osal_u16 evt_cnt;
    osal_u16 cmd_opcode[10];
    osal_u32 cmd_time_stamp[10];
    osal_u16 evt_opcode[10];
    osal_u32 evt_time_stamp[10];
    osal_u8 evt_status[10];
} tl_dfx_stru;

typedef struct {
    osal_u32 sleep_cnt;
    osal_u32 wakeup_cnt;
    osal_u32 ble_int_mask;
    osal_u32 adv_miss_cnt;
    osal_u32 idx;
    osal_u32 wakeup_finetarget[10];
    osal_u32 ble_finetarget[10];
    osal_u32 ble_grosstarget[10];
    osal_u32 wakeup_end_clkn[10];
} bt_sleep_dfx;

typedef struct {
    osal_bool en_print_period;
    osal_u32 ds_proc_times;
    osal_u32 ds_wake_times;
    osal_u32 lp3_ds_times;
    osal_u32 n_ds_kick_reson;
    osal_u32 n_ds_os_schedule;
    osal_u32 n_ds_veto_reson[29];
    osal_u32 stat_end;
} soc_lpc_stat_a;

typedef struct {
    osal_bool en_print_period;
    osal_u32 ds_proc_times;
    osal_u32 ds_wake_times;
    osal_u32 lp3_ds_times;
    osal_u32 n_ds_kick_reson;
    osal_u32 n_ds_os_schedule;
    osal_u32 n_ds_veto_reson[13];
    osal_u32 stat_end;
} soc_lpc_stat_p;

typedef struct {
    osal_bool backup_watchdog;
    osal_bool enable;
    osal_u32 ds_os_schedule_tick;
    osal_u32 ds_veto;
    osal_u32 clk_veto;
    c_ulonglong clk_permit_ms;
    c_ulonglong ds_permit_ms;
    osal_u32 g_restore_funcs[29];
    osal_u32 g_restore_param[29];
    osal_u32 g_check_funcs[29];
    osal_u32 g_check_param[29];
    osal_u32 veto_lp3;
    osal_u32 en_magic;
    osal_u32 en_idle_time;
    osal_u32 en_no_action_time;
} soc_lpc_process_ctrl_a_s;

typedef struct {
    osal_bool backup_watchdog;
    osal_bool enable;
    osal_u32 ds_os_schedule_tick;
    osal_u32 ds_veto;
    osal_u32 clk_veto;
    c_ulonglong clk_permit_ms;
    c_ulonglong ds_permit_ms;
    osal_u32 g_restore_funcs[13];
    osal_u32 g_restore_param[13];
    osal_u32 g_check_funcs[13];
    osal_u32 g_check_param[13];
    osal_u32 veto_lp3;
    osal_u32 en_magic;
    osal_u32 en_idle_time;
    osal_u32 en_no_action_time;
} soc_lpc_process_ctrl_s;

typedef struct {
    osal_u32 total;
    osal_u32 used;
    osal_u32 free;
    osal_u32 free_node_num;
    osal_u32 used_node_num;
    osal_u32 max_free_node_size;
    osal_u32 malloc_fail_count;
    osal_u32 peek_size;
} soc_mem_info;

typedef struct {
    osal_u32 will_ds_times;
    osal_u32 real_ds_times;
    osal_u32 nds_kick_times;
    osal_u32 ds_veto;
    osal_u32 lpc_max_id;
    osal_u32 real_lp3_times;
    osal_u32 lp3_veto;
    c_ulonglong ds_permit_ms;
} soc_lpc_info;

typedef struct {
    osal_u32 dfx_write_cnt;
    osal_u32 dfx_read_cnt;
    osal_u32 dfx_writed_cnt;
    osal_u32 dfx_readed_cnt;
    osal_u8 deinit_fail_times;
    osal_u8 pad[3];
    osal_u32 tx_mux;
} diag_uart_driver_extra;

typedef struct {
    osal_u8 timer_usage;
    osal_u8 task_usage;
    osal_u8 sem_usage;
    osal_u8 queue_usage;
    osal_u8 mux_usage;
    osal_u8 pad[3];
    osal_u32 err_info;
} soc_os_resource_use_stat_s;

typedef struct {
    osal_bool valid;
    osal_bool last;
    osal_u32 crash_sec;
    osal_u32 main_type;
    osal_u32 sub_type;
    osal_u32 core;
    osal_u32 data[5];
    osal_u32 mepc;
    osal_u32 mstatus;
    osal_u32 mtval;
    osal_u32 mcause;
    osal_u32 ccause;
    osal_u32 ra;
    osal_u32 sp;
    osal_u32 mem_total;
    osal_u32 mem_used;
    osal_u32 mem_free;
    osal_u32 mem_peek_size;
} diag_syserr_info;

typedef enum {
    AT_CMD_EXECUTE_SET,
    AT_CMD_EXECUTE_READ,
    AT_CMD_EXECUTE_EXEC,
    AT_CMD_EXECUTE_TEST,
} at_cmd_execute_type;

typedef struct {
    osal_u8                 cmd_id;
    at_cmd_execute_type     type;
} at_cmd_record;

typedef struct {
    at_cmd_record     last_at_cmd_record;
    osal_bool         at_cmd_in_progress;
    osal_u16          app_data_of_bytes;
    osal_u16          async_list_node_count;
    osal_u16          reboot_reset_reason;
} report_at_stat;

typedef struct {
    osal_bool     rejected_flag;
    osal_u8       cause;
} attach_reject_info;

typedef struct {
    /* g_emm_attach_info */
    osal_bool             proc_rej_action_in_progress;
    osal_u8               tx_fail_re_tx_count;
    osal_u8               emm_attach_info_attempt_counter;
    /* g_emm_plmn_info */
    osal_bool             user_plmn_search_req_rxed;
    osal_bool             cell_select_req_sent;
    osal_bool             plmn_search_req_sent;
    osal_bool             cell_available;
    osal_u16              plmn_search_time_out_count;
    osal_u16              stored_search_max_count;
    osal_u16              stored_search_count;
    osal_u8               plmn_search_cause;
    /* g_emm_hpplmn_info */
    osal_u32              search_period;
    osal_u8               emm_hpplmn_info_state;
    /* g_emm_con_mngmnt_info */
    osal_u8               con_state;
    osal_u8               con_mngmnt_info_state;
    osal_u8               suspend_state;
    osal_bool             est_req_in_progress;
    osal_bool             abort_est_req_in_progress;
    osal_bool             drb_established;
    osal_bool             low_priority;
    osal_bool             rai_pending;
    osal_bool             paging_rsp_required;
    osal_bool             eps_reg_status;
    osal_bool             out_of_service_when_attached;
    osal_u8               releasing_rr_conn;
    osal_u8               last_est_req_cause;
    osal_u8               t3440_cause;
    /* g_emm_detach_info */
    osal_bool             emm_detach_info_pending;
    osal_u8               emm_detach_info_attempt_counter;
    /* g_emm_esm_info */
    osal_bool             is_exception_data_configured;
    osal_bool             exception_data_transmitted;
    osal_bool             exception_data_pending;
    /* g_emm_psm_mngmnt_info */
    osal_u8               psm_status;
    osal_u8               psm_trigger_action;
    /* g_emm_service_req_info */
    osal_u8               data_service_type;
    osal_bool             emm_service_req_info_pending;
    osal_bool             service_req_data_cnf_rxed;
    osal_bool             idle_con_state;
    osal_u8               emm_service_req_info_attempt_counter;
    /* g_emm_tau_info */
    osal_u8               post_tau_action;
    osal_u8               emm_tau_info_attempt_counter;
    osal_bool             active_flag;
    osal_bool             signalling_active_flag;
    osal_bool             emm_tau_info_pending;
    /* g_emm_location_info */
    osal_u8               update_status;
    /* g_emm_usim_info */
    osal_bool             card_present;
    /* g_esm_ul_data_info */
    osal_u16              pending_data_seq;
    osal_u16              size_ul_pdu_sent;
    osal_u8               num_ul_pdu_sent;
    /* g_mn_info */
    osal_bool             out_of_service;
    osal_u8               cereg_status;
    osal_u8               con_status;
    osal_u8               sim_state;
    osal_u8               autostart_state;
    osal_u8               reg_state;
    attach_reject_info    reject_info_ceer;
    attach_reject_info    reject_info_cereg;
    /* g_usim_info */
    osal_u32              usim_update_count;
} report_nas_stat;

typedef osal_u32 secnds;

typedef struct {
    osal_s8                               default_s_search_delta_p;
} nb_iot_relaxed_monitoring_config_t;

typedef struct {
    osal_s8        meas_threshold_sinr_db;
    osal_s8        meas_offset_sinr_db;
    osal_u8       max_sinr_enable_times;
    osal_u8       max_sinr_disable_times;
} nb_iot_sinr_meas_control_config_t;

typedef struct {
    osal_bool                             reselection_enabled;
    osal_u8                               resel_min_coverage_level;
    osal_s8                               srxlev_meas_disable_hyst_db;
    osal_bool                             relaxed_monitoring_enabled;
    nb_iot_relaxed_monitoring_config_t  relaxed_monitoring_config;
    osal_bool                             sinr_meas_control_enabled;
    nb_iot_sinr_meas_control_config_t   sinr_meas_control_config;
} nb_iot_cell_reselection_config_t;

typedef struct {
    osal_u8       max_pcell_mib_sib_attempt_counter;
    osal_u8       max_ncell_mib_sib_attempt_counter;
    osal_u16      band_scan_puncture_rate;
    osal_s32      fast_search_threshold;
    osal_s32      slow_search_threshold;
    secnds      data_inactivity_timeout;
    secnds      sib16_read_period_s;
    nb_iot_cell_reselection_config_t    cell_reselection_config;
    osal_bool     serving_cell_idle_meas_report_enabled;
    osal_bool     multi_carrier_enabled;
    osal_bool     early_contention_resolution_report_enabled;
} rrc_nvconfig_info_t;

typedef enum {
    RRC_BAR_CAUSE_CELL_SELECTION,
    RRC_BAR_CAUSE_CELL_RESELECTION
} rrc_barred_cause;

typedef enum {
    TRANS_OUT_OF_CONNECTED_STATE,
    SERVING_CELL_LOST_TRANS_TO_SEARCH,
    IDLE_STATE_TRANS_TO_SEARCH,
    REESTAB_SERVING_CELL_LOST_TRANS_TO_SEARCH,
    STATE_TRANS_TO_NULL_BLOCKED,
} rrc_oos_cause;

typedef struct {
    osal_u16         est_fail_count;
    osal_u16         asn_decode_fail_count;
    osal_u16         asn_encode_fail_count;
    osal_u16         reselect_count;
    osal_u16         search_count;
    osal_u32         last_search_start_time;
    osal_u32         last_search_time;
    osal_u32         search_avg_time;
    rrc_barred_cause last_bar_cause;
    rrc_oos_cause    last_oos_cause;
} rrc_debug_info_t;

typedef enum {
    RRC_TOP_FSM_STATE_SEARCH,
    RRC_TOP_FSM_STATE_DEACTIVATED,
    RRC_TOP_FSM_STATE_IDLE,
    RRC_TOP_FSM_STATE_CONNECTED,
    RRC_TOP_FSM_STATE_CONNECTING,
    RRC_TOP_FSM_STATE_REESTAB,
    RRC_TOP_FSM_STATE_NULL,
    MAX_NUM_TOP_FSM_STATES
} rrc_top_fsm_state_t;

typedef struct {
    rrc_nvconfig_info_t         rrc_nvcfg;
    rrc_debug_info_t            rrc_debug_info;
    rrc_top_fsm_state_t         rrc_current_state;
    rrc_top_fsm_state_t         rrc_next_state;
    osal_u32                    rrc_last_msg_id;

    /* g_rrc_ctxt */
    osal_bool  rrc_cell_select_req_running;
    osal_bool  ll1_l2_deactivated;
    osal_bool  bg_search_active;
    osal_bool  as_security_active;
} report_rrc_stat;

typedef osal_u32 sf_count;

typedef struct {
    /* mac_l2_context */
    sf_count        drx_cycle_sf;
    osal_u16        crnti;
    osal_bool       setup_drx_cfg;
    osal_bool       rai_activation;
} report_mac_ul_stat;

typedef enum {
    RLC_DL_FSM_STATE_ACTIVATED,
    RLC_DL_FSM_STATE_INITIALISED,
    RLC_DL_FSM_STATE_SUSPENDED,
} rlc_dl_fsm_state_t;

typedef struct {
    rlc_dl_fsm_state_t          rlc_dl_fsm[5];
} report_rlc_dl_stat;

typedef osal_u16  l2_size;

typedef enum {
    RLC_UL_FSM_STATE_ACTIVATED,
    RLC_UL_FSM_STATE_INITIALISED,
    RLC_UL_FSM_STATE_SUSPENDED,
} rlc_ul_fsm_state_t;

typedef struct {
    rlc_ul_fsm_state_t          rlc_ul_fsm[5];
    /* rlc_ul_buffer_status */
    l2_size                     srb0_datalen;
    osal_u16                    rlc_ul_byte_without_poll[4];
    osal_u16                    rlc_ul_pdu_num_without_poll[4];
} report_rlc_ul_stat;

typedef struct {
    osal_u32  cipher_decipher_failure_count;
    osal_u32  intefrity_check_failure_count;
} security_debug_info_t;

typedef enum {
    PDCP_SRB_FSM_STATE_FIRST_PDU_RECEIVED,
    PDCP_SRB_FSM_STATE_IDLE,
    PDCP_SRB_FSM_STATE_INTEGRITY_CHECKED,
    PDCP_SRB_FSM_STATE_INTEGRITY_FAILED,
    PDCP_SRB_FSM_STATE_READ_INTEGRITY_CHECK_STATUS,
    PDCP_SRB_FSM_STATE_REESTABLISHED,
    PDCP_SRB_FSM_STATE_SECURED,
    PDCP_SRB_FSM_STATE_SUSPENDED,
} pdcp_srb_fsm_state_t;

typedef enum {
    PDCP_DRB_FSM_STATE_CIPHERED,
    PDCP_DRB_FSM_STATE_REESTABLISHED,
    PDCP_DRB_FSM_STATE_SUSPENDED,
    PDCP_DRB_FSM_STATE_UNINITIALISED,
} pdcp_drb_fsm_state_t;

typedef struct {
    pdcp_srb_fsm_state_t        pdcp_srb_fsm[1];
    pdcp_drb_fsm_state_t        pdcp_drb_fsm[1];
    security_debug_info_t       security_debug_info;
} report_pdcp_stat;