#include "nv_tl_struct_datatype_def.txt"
#include ".\tl\\AppNasComm.h"
#include ".\tl\\RrcNvInterface.h"
#include ".\tl\\LNasNvInterface.h"
#include ".\tl\\LPsNvInterface.h"
#include ".\tl\\lte_nv_para_define.h"
#include ".\tl\\FactoryNvInterface.h"
#include ".\tl\\TdsPsNvInterface.h"
#include ".\tl\\Tps_Dsp_Nv_Interface.h"
#include ".\tl\\drv_nv_def.h"
#include ".\tl\\msp_nv_def.h"
#include ".\tl\\LRrcLPhyInterface.h"
#include ".\tl\\tds_dsp_equip_interface.h"
#include ".\tl\\TDS_NV_INTERFACE.h"
#include ".\tl\\ImsaNvInterface.h"
#include ".\tl\\ImsParm.h"
#include ".\product\\product_nv_def.h"
#include "product_config.h"


typedef struct
{
   U32_T FLMidPrioThred;
}NV_ID_FLASH_LESS_MID_THRED_STRU;
typedef struct
{
   S16_T ssLevel[4];
   S16_T ssLevel[4];
}NV_ID_RSRP_CFG_STRU;

typedef struct
{
    S16_T ssLevel[4];
    S16_T ssLevel[4];
}NV_ID_ECIO_CFG_STRU;

typedef struct
{
   S16_T ssLevel[4];
   S16_T ssLevel[4];
}NV_ID_RSCP_CFG_STRU;
typedef struct
{
    U16_T usURCSWT;
    U16_T usPeriod;
}NV_ID_MSP_URC_STRU;

typedef struct
{
    VOS_UINT8 aucBuildTime[32]; // ʱ䣬ʽOct 15 2009 16:27:00\0β
    VOS_UINT8 aucSwVer[32];  // ⲿ汾ţ\0β
}NV_ID_SW_VER_STRU;

typedef struct
{
    U32_T ulCsimEnable;
}NV_ID_MSP_CSIM_ENALBE_STRU;

typedef struct
{
  union
  {
    VOS_UINT8 aucIPV4[4];
    VOS_UINT8 aucIPV6[16];
  };
}NV_ID_OM_IP_STRU;

typedef struct
{
    VOS_UINT8 aucMac[6];
}NV_ID_OM_MAC_STRU;

typedef struct
{
    VOS_UINT8 aucMac[6];
}NV_ID_LTE_MAC_STRU;

//PS_STRU

typedef struct
{
  U8_T aucBuf[8];
}NAS_ESM_NV_PDP_MANAGE_INFO_STRU;


typedef struct
{
  CHAR_T    aucDescript[32];
}NV_DESCRIPTION_STRU;


//޳ʼֵ

typedef struct
{
  U8_T aucBuf[1440];
}NAS_ESM_SDF_PARA_STRU;


typedef struct
{
    VOS_UINT8   aucIPaddr[4];   /*ĸֵǣ2,2,1,1*/
    VOS_UINT8   ucInitFlag;     /*ʼֵ1*/
    VOS_UINT8   aucRev[3];     /*ֵǣ000*/
}GIP_ADDR_STRU;


//DSP


/*йصĿ*/
typedef struct
{

   VOS_UINT16 usPuschPwrCtrlSwitch;

   VOS_UINT16 usPuschClosedLoopSwitch;

   VOS_UINT16 usPucchPwrCtrlSwitch;

   VOS_UINT16 usPucchClosedLoopSwitch;

    /*0ص 1򿪹 . BTʱ1*/
    VOS_UINT16 usSrsPwrCtrlSwitch;

    /*0ص 1򿪹  . BTʱ1*/
    VOS_UINT16 usPrachPwrCtrlSwitch;


    VOS_INT16  sPucchTxPower;     /* Ĭ23, ulPucchPwrCtrlSwitchΪ0ʱЧ*/

    VOS_INT16  sPuschTxPower;     /* Ĭ23, ulPuschPwrCtrlSwitchΪ0ʱЧ*/

    VOS_INT16  sSrsTxPower;       /* Ĭ23, ulSrsPwrCtrlSwitchΪ0ʱЧ*/

    VOS_INT16  sPrachTxPower;     /* Ĭ15, ulPrachPwrCtrlSwitchΪ0ʱЧ*/

}UPLINK_POWER_CONFIG_STRU;

/*Ŀ*/
typedef struct
{
    /*0صƵʲ 1:Ƶʲ*/
    VOS_UINT16 usFreqCmpnstSwitch;

    /*0ص¶Ȳ  1:¶Ȳ*/
    VOS_UINT16 usTempCmpnstSwitch;
    
}CMPNST_SWITCH_STRU;

typedef struct
{
    U16_T usWatchDogFlag;          /* 0رա1 */
    U16_T usPeriod;                /* watch dog  ֵ0123ӦĵWDT_TIMEOUT_1ֵNVʱֵΪ2 ӦWDT_TIMEOUT_3 */
}NV_ID_MSP_WATCH_DOG_STRU;

typedef struct
{
    U32_T ulCoreDumpFlag;          /* 0رա1򿪡ĬϹ */
}NV_ID_MSP_CORE_DUMP_STRU;
typedef struct
{
    U8_T ucAuthorityVer[4];        /*ĬֵΪ [1,0,0,1] */
}NV_ID_AUTHORITY_VER_STRU;

typedef struct
{
    U32_T ucAuthorityType;        /*ĬֵΪ 0 */
}NV_ID_AUTHORITY_TYPE_STRU;


//   : EN_NV_ID_MSP_AUTHDATA (0xb)
// Ĭֵ: ȫ0
// STRUCT: L4A_AUTHDATA_STRU

#define L4A_AUTHDATA_UNDEFIEND               (0)
#define L4A_AUTHDATA_DEFIEND                 (1)

#define L4A_AUTHDATA_MAX_USERNAME_LEN        (127)
#define L4A_AUTHDATA_MAX_PASSWORD_LEN        (127)

#define L4A_AUTHDATA_AUTHTYPE_NONE           (0)
#define L4A_AUTHDATA_AUTHTYPE_PAP            (1)
#define L4A_AUTHDATA_AUTHTYPE_CHAP           (2)
#define L4A_AUTHDATA_AUTHTYPE_BUTT           (0xFF)

// NV Item EN_NV_ID_MSP_AUTHDATA storage
typedef struct
{
    U8_T ucCid;        /* 1~16*/
    U8_T ucDefined;    /* 0:undefined,1:defined*/
    U16_T usAuthType;  /* 0,1,2,0xFF*/
    U32_T ulPLMN;      /* 16ƴ洢*/
    U8_T ucPwdLen;
    U8_T aucPadding1[3];
    U8_T szPassword[128];
    U8_T ucUserNameLen;
    U8_T aucPadding2[3];
    U8_T szUserName[128];
}L4A_PDP_AUTHDATA_STRU;

//TMODEװں 
typedef struct 
{ 
    U32_T ulTmodeRat; 
}FTM_TMODE_RAT_NV_STRU;

/*ʶǰ汾Ƿ·汾*/
typedef struct
{
    U32_T ulAgentFlag; /*1· 0 ·*/ 
    U8_T ulRandData[256];  /*ȨУ*/
}NV_AGENT_FLAG_STRU;

typedef struct
{
    U32_T ulSocpDelayWriteFlg;/* SOCPӳд빦 */
    U32_T ulGuSocpLevel;      /* GU SOCPĿBUFFERˮ */
    U32_T ulLSocpLevel;       /* L SOCPĿBUFFERˮ */
    U32_T ulTimeOutValue;     /* SOCPĿBUFFERĳʱʱ */
}NV_SOCP_LOG_CFG_STRU;

typedef struct
{
  U8_T aucBuf[1];
}UINT8_STRU;

typedef struct
{
  U8_T aucBuf[1];
}INT8_STRU;

typedef struct
{
  U32_T aulBuf[1];
}UINT32_STRU;

typedef struct
{
  S32_T aulBuf[1];
}INT32_STRU;
