| lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | /*******************************************************************************
 | 
 | 2 | * Copyright (C) 2007, ZTE Corporation.
 | 
 | 3 | *
 | 
 | 4 | * File Name:    drvs_edcp.h
 | 
 | 5 | * File Mark:    
 | 
 | 6 | * Description:  
 | 
 | 7 | * Others:        
 | 
 | 8 | * Version:       0.5
 | 
 | 9 | * Author:        yangjupei
 | 
 | 10 | * Date:          2013-8-25
 | 
 | 11 | * History 1:      
 | 
 | 12 | *     Date: 
 | 
 | 13 | *     Version:
 | 
 | 14 | *     Author: 
 | 
 | 15 | *     Modification:  
 | 
 | 16 | * History 2: 
 | 
 | 17 | ********************************************************************************/
 | 
 | 18 | #ifndef _DRVS_EDCP_H
 | 
 | 19 | #define _DRVS_EDCP_H
 | 
 | 20 | 
 | 
 | 21 | /*************************************************************************
 | 
 | 22 | *                                  Include files                         *
 | 
 | 23 | *************************************************************************/
 | 
 | 24 | #include "drvs_general.h"
 | 
 | 25 | 
 | 
 | 26 | /*************************************************************************
 | 
 | 27 | *                                  Macro                                 *
 | 
 | 28 | *************************************************************************/
 | 
 | 29 | 
 | 
 | 30 | #define     Z_W_MAX_UL_EDCP_PDU_NUM           (WORD)2
 | 
 | 31 | #define     Z_W_MAX_UL_EDCP_CFG_NUM           (WORD)256           /*EDCP1ÖÐÿ¸öPDU¶ÔÓ¦¶¯Ì¬ÅäÖÃÊý×éµÄ¸öÊý*/
 | 
 | 32 | #define     Z_W_MAX_DL_EDCP_CFG_NUM           (WORD)512           /*EDCP2ÖжÔÓ¦¶¯Ì¬ÅäÖÃÊý×éµÄ¸öÊý*/
 | 
 | 33 | #define     Z_W_MAX_PDCP_EDCP_CFG_NUM         (WORD)512           /*EDCP3ÖжÔÓ¦¶¯Ì¬ÅäÖÃÊý×éµÄ¸öÊý*/
 | 
 | 34 | #define     Z_W_MAX_EDCP_CK_NUM               (WORD)16
 | 
 | 35 | #define     Z_EDCP_CK_LEN                     (WORD)16
 | 
 | 36 | 
 | 
 | 37 | /*EDCP INT type*/
 | 
 | 38 | #define EDCP_INT_UL_ASYN           	(UINT32)0x1
 | 
 | 39 | #define EDCP_INT_EMAC             	(UINT32)0x2
 | 
 | 40 | #define EDCP_INT_DL                	(UINT32)0x4
 | 
 | 41 | 
 | 
 | 42 | /*¼ÓÃÜ·½Ê½ºÍÍê±£Ëã·¨*/
 | 
 | 43 | #define 	EDCP_NOCIPHER			(WORD)0		   /*²»¼ÓÃÜ*/
 | 
 | 44 | #define     EDCP_SNOW3G             (WORD)1        /*SNOW3G*/
 | 
 | 45 | #define     EDCP_AES                (WORD)2        /*AES*/
 | 
 | 46 | #define     EDCP_ZUC                (WORD)3        /*ZUC*/
 | 
 | 47 | #define     EDCP_KASUMI             (WORD)4        /*KSAUMI*/
 | 
 | 48 | 
 | 
 | 49 | /**************************************************************************
 | 
 | 50 | *                                  Types                                  *
 | 
 | 51 | **************************************************************************/
 | 
 | 52 | 
 | 
 | 53 | typedef struct T_ZDrvEdcp_StaticConfigInfo
 | 
 | 54 | { 
 | 
 | 55 |     UINT8	  CtrlPaneCk[16];    /*EDPCP_CK_I¼Ä´æÆ÷4*4bytes*/
 | 
 | 56 |     UINT8	  UserPaneCk[16];    /*EDPCP_CK_C¼Ä´æÆ÷4*4bytes*/
 | 
 | 57 |     UINT8	  Ik[16];		     /*EDPCP_IK_I¼Ä´æÆ÷4*4bytes*/
 | 
 | 58 |     UINT8     Direct;            /*ÉÏÐÐ0£¬ÏÂÐÐ1*/
 | 
 | 59 |     UINT8     CipherType;	     /*¼ÓÃÜָʾ:   0²»¼ÓÃÜ£¬1 snow3g£¬ 2 aes£¬ 3 zuc*/
 | 
 | 60 |     UINT8     IntegType;         /*ÍêÕûÐÔָʾ: 0ÎÞÍê±££¬1 snow3g£¬ 2 aes£¬ 3 zuc*/ 
 | 
 | 61 | }  T_ZDrvEdcp_StaticConfigInfo; 
 | 
 | 62 | 
 | 
 | 63 | 
 | 
 | 64 | typedef struct T_ZDrvEdcp_ULDynamicCtrlInfo
 | 
 | 65 | { 
 | 
 | 66 |     UINT8      CPInd;                 /*¼ÓÃÜָʾ:   0 ²»¼ÓÃÜ£¬1 ¼ÓÃÜ*/
 | 
 | 67 |     UINT8      IPInd;                 /*ÍêÕûÐÔָʾ: 0 ÎÞÍê±££¬1 Íê±£*/ 
 | 
 | 68 |     UINT8      DataSourceType;        /*Êý¾ÝÔ´ÀàÐÍ  0 Óû§Ã棬1 ¿ØÖÆÃæ*/ 
 | 
 | 69 |     UINT8      BearerId;              /*¼ÓÃܲÎÊý*/
 | 
 | 70 |     UINT8      *pDataSrc;       	  /*Êý¾ÝÔ´µØÖ·*/
 | 
 | 71 |     UINT16     DateLen;               /*Êý¾ÝÔ´³¤¶È*/
 | 
 | 72 |     UINT16     CompHeaderLen;         /*ѹËõÍ·³¤¶È*/
 | 
 | 73 |     UINT8      *pDataCompHeaderSrc;   /*ѹËõÍ·µØÖ·*/  
 | 
 | 74 |     UINT8      *pDataDest;            /*Ä¿±êµØÖ·*/     
 | 
 | 75 |     UINT32     Count;                 /*¼ÓÃܲÎÊý*/
 | 
 | 76 | } T_ZDrvEdcp_ULDynamicCtrlInfo;
 | 
 | 77 | 
 | 
 | 78 | 
 | 
 | 79 | /*EMAC ͬ²½´¦ÀíË÷ÒýRAM*/
 | 
 | 80 | typedef struct T_ZDrvEdcp_BusCopyCtrlInfo
 | 
 | 81 | { 
 | 
 | 82 |     UINT8   *pDataSrc;
 | 
 | 83 |     UINT16  DataLen;
 | 
 | 84 |     UINT8   *pDataDest;
 | 
 | 85 | } T_ZDrvEdcp_BusCopyCtrlInfo;
 | 
 | 86 | 
 | 
 | 87 | /*ÏÂÐд¦Àí¿ØÖÆË÷ÒýRAM*/
 | 
 | 88 | typedef struct T_ZDrvEdcp_DLDynamicCtrlInfo
 | 
 | 89 | { 
 | 
 | 90 |     UINT8      CPInd;              /*¼ÓÃÜָʾ:   0 ²»¼ÓÃÜ£¬1 ¼ÓÃÜ*/
 | 
 | 91 |     UINT8      IPInd;              /*ÍêÕûÐÔָʾ: 0 ÎÞÍê±££¬1 ÓÐÍê±£*/ 
 | 
 | 92 |     UINT8      DataSourceType;     /*Êý¾ÝÔ´ÀàÐÍ  0 Óû§Ã棬1 ¿ØÖÆÃæ*/   
 | 
 | 93 |     UINT8      *pDataSrc;          /*Êý¾ÝÔ´µØÖ·*/
 | 
 | 94 |     UINT16     DateLen;            /*Êý¾ÝÔ´³¤¶È*/    
 | 
 | 95 |     UINT8      *pDataDest;         /*Ä¿±êµØÖ·*/
 | 
 | 96 |     UINT8      BearerId;           /*¼ÓÃܲÎÊý*/
 | 
 | 97 |     UINT32     Count;    		   /*¼ÓÃܲÎÊý*/
 | 
 | 98 |     UINT16     DecipherLen;        /*¼ÓÃܳ¤¶È²ÎÊý*/
 | 
 | 99 |     UINT8      SegmentNum;         /*·Ö¶Î×ÜÊý*/
 | 
 | 100 | } T_ZDrvEdcp_DLDynamicCtrlInfo;
 | 
 | 101 | 
 | 
 | 102 | /*UMTSÉÏÐÐ Òì²½´¦Àí¿ØÖÆË÷ÒýRAM*/
 | 
 | 103 | typedef struct T_ZDrvEdcp_ULDynamicCtrlInfo_umts
 | 
 | 104 | { 
 | 
 | 105 |     UINT8                               bUea;//CPInd;          /*ÊÇ·ñ¼ÓÃÜ bit0*/        
 | 
 | 106 |     UINT8                               *pDataSrc;   	/*Êý¾ÝÔ´µØÖ·*/
 | 
 | 107 |     UINT16                              wDataLen;       /*Êý¾ÝÔ´³¤¶È bitµ¥Î» bit15-0*/
 | 
 | 108 |     UINT8                               bSegNum;        /*·Ö¶Î¸öÊý bit15-8*/
 | 
 | 109 |     UINT8                               BearerId;       /*¼ÓÃܲÎÊý bit20-16*/
 | 
 | 110 |     UINT8                               CkIndex;        /*Ñ¡ÔñÄÇ×éÃÜÔ¿ bit7-4*/
 | 
 | 111 |     UINT32                              Count;          /*¼ÓÃܲÎÊý*/
 | 
 | 112 | } T_ZDrvEdcp_ULDynamicCtrlInfo_umts;
 | 
 | 113 | 
 | 
 | 114 | 
 | 
 | 115 | /*UMTSÏÂÐÐ Òì²½´¦Àí¿ØÖÆË÷ÒýRAM*/
 | 
 | 116 | typedef struct T_ZDrvEdcp_DLDynamicCtrlInfo_umts
 | 
 | 117 | { 
 | 
 | 118 |     UINT8                               bUea;//CPInd;    /*ÊÇ·ñ½âÃÜ bit0*/  
 | 
 | 119 |     UINT8                               *pDataSrc;	   /*Êý¾ÝÔ´µØÖ·*/
 | 
 | 120 |     UINT16                              wDataLen;      /*Êý¾ÝÔ´³¤¶È bitµ¥Î» bit15-0*/
 | 
 | 121 |     UINT8                               bDataOffset;   /*Ñ¡ÔñÄÇ×éÃÜÔ¿ bit10-8*/
 | 
 | 122 |     UINT8                               *pDataDes;     /*Ä¿±êµØÖ·*/
 | 
 | 123 |     UINT8                               BearerId;      /*¼ÓÃܲÎÊý bit20-16*/
 | 
 | 124 |     UINT8                               CkIndex;       /*Ñ¡ÔñÄÇ×éÃÜÔ¿ bit7-4*/
 | 
 | 125 |     UINT32                              Count;         /*¼ÓÃܲÎÊý*/
 | 
 | 126 | } T_ZDrvEdcp_DLDynamicCtrlInfo_umts;
 | 
 | 127 | 
 | 
 | 128 | /*UMTS ÃÜÔ¿Ë÷ÒýRAM*/
 | 
 | 129 | typedef struct T_ZDrvEdcp_KeyIndexInfo_umts
 | 
 | 130 | { 
 | 
 | 131 |     UINT32    CK0;              /*¼ÓÃÜÃÜÔ¿*/
 | 
 | 132 |     UINT32    CK1;              
 | 
 | 133 |     UINT32    CK2;             
 | 
 | 134 |     UINT32    CK3;            
 | 
 | 135 | } T_ZDrvEdcp_KeyIndexInfo_umts;
 | 
 | 136 | 
 | 
 | 137 | 
 | 
 | 138 | typedef VOID (*ZDRV_EDCP_CMD_RECVFUNC)(UINT32 intType);
 | 
 | 139 | 
 | 
 | 140 | typedef struct
 | 
 | 141 | {
 | 
 | 142 |     ZDRV_EDCP_CMD_RECVFUNC      fCmdRecv;
 | 
 | 143 | } T_ZDrvEdcp_CallbackFuncs;
 | 
 | 144 | 
 | 
 | 145 | typedef VOID (*ZDRV_PDCP_EDCP_ISR_CALLBACK)( VOID );
 | 
 | 146 | 
 | 
 | 147 | typedef struct
 | 
 | 148 | {
 | 
 | 149 |     ZDRV_PDCP_EDCP_ISR_CALLBACK      fCmdRecv;
 | 
 | 150 | } T_ZDrvEdcp_CallbackFuncs_ForW;
 | 
 | 151 | 
 | 
 | 152 | typedef struct
 | 
 | 153 | {
 | 
 | 154 | UINT32 DataSourceType:
 | 
 | 155 |     1; //Êý¾Ý¿éÀàÐÍ
 | 
 | 156 | UINT32 IPInd:
 | 
 | 157 |     1; //ÍêÕûÐÔ±£»¤
 | 
 | 158 | UINT32 CPInd:
 | 
 | 159 |     1; //ÊÇ·ñ¼ÓÃÜ
 | 
 | 160 | UINT32 Reserve0:
 | 
 | 161 |     1;    
 | 
 | 162 | UINT32 MultiSegFlag:
 | 
 | 163 |     1;  
 | 
 | 164 | UINT32 Reserve1:
 | 
 | 165 |     11;       
 | 
 | 166 | UINT32 Total_DateLen:
 | 
 | 167 |      14;
 | 
 | 168 | UINT32 Reserve2:
 | 
 | 169 |     2;
 | 
 | 170 | }
 | 
 | 171 | Edcp_Conf;//lte
 | 
 | 172 | 
 | 
 | 173 | //define Uplink/ downlink lte control structure
 | 
 | 174 | typedef struct
 | 
 | 175 | {
 | 
 | 176 | UINT32 DataLen:
 | 
 | 177 |     14;
 | 
 | 178 | UINT32 Reserve0:
 | 
 | 179 |     2;
 | 
 | 180 | UINT32 Bearer:
 | 
 | 181 |     5;
 | 
 | 182 | UINT32 Reserve1:
 | 
 | 183 |     11;    
 | 
 | 184 | }
 | 
 | 185 | Edcp_Length_Bearer;//lte
 | 
 | 186 | 
 | 
 | 187 | //define Uplink/ downlink control structure
 | 
 | 188 | typedef struct
 | 
 | 189 | {
 | 
 | 190 |     Edcp_Conf conf;
 | 
 | 191 |     UINT32 datain_addr;
 | 
 | 192 |     Edcp_Length_Bearer length_bearer;
 | 
 | 193 |     UINT32 dataout_addr;
 | 
 | 194 |     UINT32 count;
 | 
 | 195 | }
 | 
 | 196 | T_ZDrvEdcp_Ctrl_Index;
 | 
 | 197 | 
 | 
 | 198 | 
 | 
 | 199 | /*==============================================================================
 | 
 | 200 | ÔÓT_zDrvEdcp_UlCfg
 | 
 | 201 | ˵Ã÷: EDCP ULÅäÖòÎÊý
 | 
 | 202 | ==============================================================================*/
 | 
 | 203 | typedef struct { 
 | 
 | 204 |     UINT8                               bUea;//CPInd;
 | 
 | 205 |     UINT8                               *pDataSrc;
 | 
 | 206 |     UINT16                              wDataLen; 
 | 
 | 207 |     UINT8                               bSegNum;
 | 
 | 208 |     UINT8                               BearerId;
 | 
 | 209 |     UINT8                               CkIndex;
 | 
 | 210 |     UINT32                              Count;
 | 
 | 211 | }T_zDrvEdcp_UlDynamicCtrlInfo; 
 | 
 | 212 | 
 | 
 | 213 | 
 | 
 | 214 | typedef struct {
 | 
 | 215 |     UINT16                              wCfgNum;
 | 
 | 216 |     UINT16                              wTotalLen;
 | 
 | 217 |     UINT8                               *pDataDes;
 | 
 | 218 |     UINT16                              wTruncatedDataLen;
 | 
 | 219 |     UINT8                               *pTruncatedDataSrc;
 | 
 | 220 |     UINT8                               *pTruncatedDataDes;
 | 
 | 221 |     T_zDrvEdcp_UlDynamicCtrlInfo        tUlDynamicCtrlInfo[Z_W_MAX_UL_EDCP_CFG_NUM];
 | 
 | 222 | }T_zDrvEdcp_PduCfg;
 | 
 | 223 | 
 | 
 | 224 | 
 | 
 | 225 | typedef struct {
 | 
 | 226 |     T_zDrvEdcp_PduCfg                   tPduCfg[Z_W_MAX_UL_EDCP_PDU_NUM];
 | 
 | 227 | }T_zDrvEdcp_UlCfg;
 | 
 | 228 | 
 | 
 | 229 | 
 | 
 | 230 | /*==============================================================================
 | 
 | 231 | ÔÓT_zDrvEdcp_DlCfg
 | 
 | 232 | ˵Ã÷: EDCP DLÅäÖòÎÊý
 | 
 | 233 | ==============================================================================*/
 | 
 | 234 | typedef struct {
 | 
 | 235 |     UINT8                               bUea;        //CPInd;//7510 UMTS½öÖ§³ÖUEA1Ò»ÖÖ¼ÓÃÜ·½Ê½£¬CPIndΪ1ʱĬÈÏΪUEA1¼ÓÃÜ¡£
 | 
 | 236 |     UINT8                               *pDataSrc;
 | 
 | 237 |     UINT16                              wDataLen; 
 | 
 | 238 |     UINT8                               bDataOffset;
 | 
 | 239 |     UINT8                               *pDataDes;
 | 
 | 240 |     UINT8                               BearerId;
 | 
 | 241 |     UINT8                               CkIndex;
 | 
 | 242 |     UINT32                              Count;
 | 
 | 243 | }T_zDrvEdcp_DlDynamicCtrlInfo; 
 | 
 | 244 | 
 | 
 | 245 | 
 | 
 | 246 | typedef struct {
 | 
 | 247 |     UINT16                              wCfgNum;
 | 
 | 248 |     T_zDrvEdcp_DlDynamicCtrlInfo        tDlDynamicCtrlInfo[Z_W_MAX_DL_EDCP_CFG_NUM];
 | 
 | 249 | }T_zDrvEdcp_DlCfg;
 | 
 | 250 | 
 | 
 | 251 | /*==============================================================================
 | 
 | 252 | T_zDrvEdcp_PdcpCfg
 | 
 | 253 | ˵Ã÷: PDCP EDCPÅäÖòÎÊý
 | 
 | 254 | ==============================================================================*/
 | 
 | 255 | typedef struct{
 | 
 | 256 |     UINT8                               *pDataSrc;
 | 
 | 257 |     UINT8                               *pDataDes;
 | 
 | 258 |     UINT16                              wDataLen;
 | 
 | 259 | }T_zDrvEdcp_PdcpDynamicCtrlInfo; 
 | 
 | 260 | 
 | 
 | 261 | typedef struct{ 
 | 
 | 262 |     UINT16                              wCfgNum;
 | 
 | 263 |     T_zDrvEdcp_PdcpDynamicCtrlInfo      tPdcpDynamicCtrlInfo[Z_W_MAX_PDCP_EDCP_CFG_NUM];
 | 
 | 264 | }T_zDrvEdcp_PdcpCfg;
 | 
 | 265 | 
 | 
 | 266 | /*==============================================================================
 | 
 | 267 | ÔÓT_zDrvEdcp_StaticCfgInfo
 | 
 | 268 | ˵Ã÷: static EDCPÅäÖòÎÊý
 | 
 | 269 | ==============================================================================*/
 | 
 | 270 | typedef struct{
 | 
 | 271 | //    UINT8                               Uea;
 | 
 | 272 |     UINT8                               CK[Z_W_MAX_EDCP_CK_NUM][Z_EDCP_CK_LEN];
 | 
 | 273 | }T_zDrvEdcp_StaticCfgInfo;
 | 
 | 274 | 
 | 
 | 275 | /* error code define */
 | 
 | 276 | typedef enum
 | 
 | 277 | {
 | 
 | 278 |     EDCP_RET_SUCCESS		    = 0,        /* successed */
 | 
 | 279 |     EDCP_RET_BUSY 				= 1,        /* busy */
 | 
 | 280 |     EDCP_RET_ERR_INVALID_PARAM	= 2,        /* the input parameter is invalid */
 | 
 | 281 |     
 | 
 | 282 |     MAX_EDCP_ERR_CODE
 | 
 | 283 | } T_ZDrvEdcp_RetCode;
 | 
 | 284 | 
 | 
 | 285 | typedef enum
 | 
 | 286 | {
 | 
 | 287 | 	EDCP_UL_MODULE,
 | 
 | 288 | 	EDCP_DL_MODULE,
 | 
 | 289 | 	EDCP_EMAC_MODULE
 | 
 | 290 | }T_ZDrvEdcp_ModuleSel;
 | 
 | 291 | 
 | 
 | 292 | //define Uplink syn ctrl index structure
 | 
 | 293 | typedef struct
 | 
 | 294 | {
 | 
 | 295 |     UINT32 datain_addr;
 | 
 | 296 |     UINT32 length_valid;
 | 
 | 297 |     UINT32 dataout_addr;
 | 
 | 298 | }
 | 
 | 299 | T_ZDrvEdcp_Emac_Index;
 | 
 | 300 | 
 | 
 | 301 | /**************************************************************************
 | 
 | 302 | *                           Function Prototypes                                                                        *
 | 
 | 303 | **************************************************************************/
 | 
 | 304 | /*******************************************************************************
 | 
 | 305 | * Function: zDrvEDCP_Initiate
 | 
 | 306 | * Description: initialize edcp module and globle Variables
 | 
 | 307 | * Parameters:
 | 
 | 308 | *   Input:
 | 
 | 309 | *
 | 
 | 310 | *   Output:
 | 
 | 311 | *
 | 
 | 312 | * Returns:
 | 
 | 313 | *
 | 
 | 314 | *
 | 
 | 315 | * Others:
 | 
 | 316 | ********************************************************************************/
 | 
 | 317 | SINT32 zDrvEDCP_Initiate(VOID);
 | 
 | 318 | 
 | 
 | 319 | /*******************************************************************************
 | 
 | 320 | * Function: zDrvEdcp_StartHWOp
 | 
 | 321 | * Description: start lte EDCP hardware
 | 
 | 322 | * Parameters: 
 | 
 | 323 | *	 Input:   
 | 
 | 324 | *	 HWSource  0: UL_ASYN
 | 
 | 325 | *			   1: DL
 | 
 | 326 | *			   2: UL_SYN
 | 
 | 327 | *	 EnableInt	 1:enable interrupt
 | 
 | 328 | *				 0:disable interrupt
 | 
 | 329 | *
 | 
 | 330 | *	 Output:
 | 
 | 331 | *
 | 
 | 332 | * Returns: 
 | 
 | 333 | *
 | 
 | 334 | *
 | 
 | 335 | * Others: 
 | 
 | 336 | ********************************************************************************/
 | 
 | 337 | SINT32 zDrvEdcp_StartHWOp(UINT8 HWSource, UINT8 EnableInt);
 | 
 | 338 | 
 | 
 | 339 | /*******************************************************************************
 | 
 | 340 | * Function: zDrvEdcp_InitULStaticPara
 | 
 | 341 | * Description: configure static parameters for up link 
 | 
 | 342 | * Parameters: 
 | 
 | 343 | *   Input:
 | 
 | 344 | *           StaticConfigInfo  :CK_I,CK_C,IK,direct
 | 
 | 345 | *
 | 
 | 346 | *   Output:
 | 
 | 347 | *
 | 
 | 348 | * Returns: 
 | 
 | 349 | *
 | 
 | 350 | *
 | 
 | 351 | * Others: 
 | 
 | 352 | ********************************************************************************/
 | 
 | 353 | VOID zDrvEdcp_InitULStaticPara(T_ZDrvEdcp_StaticConfigInfo StaticConfigInfo);
 | 
 | 354 | 
 | 
 | 355 | /*******************************************************************************
 | 
 | 356 | * Function: zDrvEdcp_WriteULIndexRam
 | 
 | 357 | * Description: configure index for up link
 | 
 | 358 | * Parameters: 
 | 
 | 359 | *   Input:
 | 
 | 360 | *
 | 
 | 361 | *   Output:
 | 
 | 362 | *
 | 
 | 363 | * Returns: 
 | 
 | 364 | *
 | 
 | 365 | *
 | 
 | 366 | * Others: 
 | 
 | 367 | ********************************************************************************/
 | 
 | 368 | SINT32 zDrvEdcp_WriteULIndexRam(T_ZDrvEdcp_ULDynamicCtrlInfo                           ULDynamicCtrlInfo);
 | 
 | 369 | 
 | 
 | 370 | 
 | 
 | 371 | /*******************************************************************************
 | 
 | 372 | * Function: zDrvEdcp_WriteEmacIndexRam
 | 
 | 373 | * Description: configure EMAC index for EMAC channel
 | 
 | 374 | * Parameters: 
 | 
 | 375 | *   Input:
 | 
 | 376 | *           BusCopyCtrlInfo:data source's address,data length,data des'address
 | 
 | 377 | *   Output:
 | 
 | 378 | *
 | 
 | 379 | * Returns: 
 | 
 | 380 | *
 | 
 | 381 | *
 | 
 | 382 | * Others: 
 | 
 | 383 | ********************************************************************************/
 | 
 | 384 | SINT32 zDrvEdcp_WriteEmacIndexRam(T_ZDrvEdcp_Emac_Index *BusCopyCtrlInfo, WORD dwNum);
 | 
 | 385 | 
 | 
 | 386 | /*******************************************************************************
 | 
 | 387 | * Function: zDrvEdcp_InitDLStaticPara
 | 
 | 388 | * Description: configure static parameters for down link 
 | 
 | 389 | * Parameters: 
 | 
 | 390 | *   Input: StaticConfigInfo  :CK_I,CK_C,IK,direct
 | 
 | 391 | *
 | 
 | 392 | *   Output:
 | 
 | 393 | *
 | 
 | 394 | * Returns: 
 | 
 | 395 | *
 | 
 | 396 | *
 | 
 | 397 | * Others: 
 | 
 | 398 | ********************************************************************************/
 | 
 | 399 | VOID zDrvEdcp_InitDLStaticPara(T_ZDrvEdcp_StaticConfigInfo StaticConfigInfo);
 | 
 | 400 | 
 | 
 | 401 | /*******************************************************************************
 | 
 | 402 | * Function: zDrvEdcp_WriteDLIndexRam
 | 
 | 403 | * Description: configure index for down link
 | 
 | 404 | * Parameters: 
 | 
 | 405 | *   Input:
 | 
 | 406 | *
 | 
 | 407 | *   Output:
 | 
 | 408 | *
 | 
 | 409 | * Returns: 
 | 
 | 410 | *
 | 
 | 411 | *
 | 
 | 412 | * Others: 
 | 
 | 413 | ********************************************************************************/
 | 
 | 414 | SINT32 zDrvEdcp_WriteDLIndexRam(T_ZDrvEdcp_Ctrl_Index *DLDynamicCtrlInfo, DWORD dwNum);
 | 
 | 415 | 
 | 
 | 416 | /*******************************************************************************
 | 
 | 417 | * Function: zDrvEdcp_RegCallback
 | 
 | 418 | * Description: enable EDCP interrupt,register EDCP ISR callback function
 | 
 | 419 | * Parameters: 
 | 
 | 420 | *   Input:
 | 
 | 421 | *
 | 
 | 422 | *   Output:
 | 
 | 423 | *
 | 
 | 424 | * Returns: 
 | 
 | 425 | *
 | 
 | 426 | *
 | 
 | 427 | * Others: 
 | 
 | 428 | ********************************************************************************/
 | 
 | 429 | SINT32 zDrvEdcp_RegCallback( T_ZDrvEdcp_CallbackFuncs *ptCallbackStruct );
 | 
 | 430 | 
 | 
 | 431 | /*******************************************************************************
 | 
 | 432 | * Function: zDrvEdcp_UnRegCallback
 | 
 | 433 | * Description: disable EDCP interrupt,release callback thread's source
 | 
 | 434 | * Parameters: 
 | 
 | 435 | *   Input:
 | 
 | 436 | *
 | 
 | 437 | *   Output:
 | 
 | 438 | *
 | 
 | 439 | * Returns: 
 | 
 | 440 | *
 | 
 | 441 | *
 | 
 | 442 | * Others: 
 | 
 | 443 | ********************************************************************************/
 | 
 | 444 | VOID zDrvEdcp_UnRegCallback(VOID);
 | 
 | 445 | 
 | 
 | 446 | /*******************************************************************************
 | 
 | 447 | * Function: zDrvEdcp_GetFreeDlIndexRamNum
 | 
 | 448 | * Description: Get Free Dl Index Ram Num
 | 
 | 449 | * Parameters:
 | 
 | 450 | *   Input:
 | 
 | 451 | *
 | 
 | 452 | *   Output: the remain Num
 | 
 | 453 | *
 | 
 | 454 | * Returns:
 | 
 | 455 | *
 | 
 | 456 | *
 | 
 | 457 | * Others:
 | 
 | 458 | ********************************************************************************/
 | 
 | 459 | SINT32 zDrvEdcp_GetFreeDlIndexRamNum(VOID);
 | 
 | 460 | 
 | 
 | 461 | /*******************************************************************************
 | 
 | 462 | * Function: zDrvEdcp_IsBusy
 | 
 | 463 | * Description: judge edcp hardware busy or idle
 | 
 | 464 | * Parameters:
 | 
 | 465 | *   Input:
 | 
 | 466 | *
 | 
 | 467 | *   Output:
 | 
 | 468 | *
 | 
 | 469 | * Returns:
 | 
 | 470 | *
 | 
 | 471 | *
 | 
 | 472 | * Others:
 | 
 | 473 | ********************************************************************************/
 | 
 | 474 | UINT8 zDrvEdcp_IsBusy(T_ZDrvEdcp_ModuleSel EdcpNum);
 | 
 | 475 | 
 | 
 | 476 | /*******************************************************************************
 | 
 | 477 | * Function: zDrvEdcp_Reset
 | 
 | 478 | * Description: Reset Edcp
 | 
 | 479 | * Parameters:
 | 
 | 480 | *   Input:
 | 
 | 481 | *
 | 
 | 482 | *   Output: 
 | 
 | 483 | *
 | 
 | 484 | * Returns:
 | 
 | 485 | *
 | 
 | 486 | *
 | 
 | 487 | * Others:
 | 
 | 488 | ********************************************************************************/
 | 
 | 489 | SINT32 zDrvEdcp_Reset( VOID);
 | 
 | 490 | 
 | 
 | 491 | /*******************************************************************************
 | 
 | 492 | * Function: zDrvEdcp_CleanEmacIndexCount
 | 
 | 493 | * Description: 
 | 
 | 494 | * Parameters:
 | 
 | 495 | *   Input:
 | 
 | 496 | *
 | 
 | 497 | *   Output: 
 | 
 | 498 | *
 | 
 | 499 | * Returns:
 | 
 | 500 | *
 | 
 | 501 | *
 | 
 | 502 | * Others:
 | 
 | 503 | ********************************************************************************/
 | 
 | 504 | SINT32 zDrvEdcp_ClrUlSynEmacIndexCnt(VOID);
 | 
 | 505 | 
 | 
 | 506 | /*******************************************************************************
 | 
 | 507 | * Function: zDrvEdcp_UpDateEmacIndex
 | 
 | 508 | * Description: 
 | 
 | 509 | * Parameters:
 | 
 | 510 | *   Input:
 | 
 | 511 | *
 | 
 | 512 | *   Output: 
 | 
 | 513 | *
 | 
 | 514 | * Returns:
 | 
 | 515 | *
 | 
 | 516 | *
 | 
 | 517 | * Others:
 | 
 | 518 | ********************************************************************************/
 | 
 | 519 | SINT32 zDrvEdcp_UpDateEmacIndexRam(UINT8 IndexNo,T_ZDrvEdcp_BusCopyCtrlInfo BusCopyCtrlInfo);
 | 
 | 520 | 
 | 
 | 521 | /*******************************************************************************
 | 
 | 522 | * Function: zDrvEdcp_EmacTotalIndex
 | 
 | 523 | * Description: 
 | 
 | 524 | * Parameters:
 | 
 | 525 | *   Input:
 | 
 | 526 | *
 | 
 | 527 | *   Output: 
 | 
 | 528 | *
 | 
 | 529 | * Returns:
 | 
 | 530 | *
 | 
 | 531 | *
 | 
 | 532 | * Others:
 | 
 | 533 | ********************************************************************************/
 | 
 | 534 | UINT8 zDrvEdcp_EmacTotalIndex(VOID);
 | 
 | 535 | 
 | 
 | 536 | /*******************************************************************************
 | 
 | 537 | *For Wcdma
 | 
 | 538 | *
 | 
 | 539 | ********************************************************************************/
 | 
 | 540 | /*******************************************************************************
 | 
 | 541 | * Function: zDrvEdcp_CKCfgForW
 | 
 | 542 | * Description: EDCP½âÃÜÃÜÔ¿ÅäÖÃ
 | 
 | 543 | * Parameters:
 | 
 | 544 | *   Input:T_zDrvEdcp_StaticCfgInfo
 | 
 | 545 | *
 | 
 | 546 | *   Output: 
 | 
 | 547 | *
 | 
 | 548 | * Returns:
 | 
 | 549 | *
 | 
 | 550 | *
 | 
 | 551 | * Others:
 | 
 | 552 | ********************************************************************************/
 | 
 | 553 | UINT32 zDrvEdcp_CKCfgForW(T_zDrvEdcp_StaticCfgInfo  *ptCK,T_ZDrvEdcp_ModuleSel EdcpNum);
 | 
 | 554 | 
 | 
 | 555 | /*******************************************************************************
 | 
 | 556 | * Function: zDrvEdcp_IsBusyForW
 | 
 | 557 | * Description: 
 | 
 | 558 | * Parameters:
 | 
 | 559 | *   Input:EdcpNum
 | 
 | 560 | *
 | 
 | 561 | *   Output: 
 | 
 | 562 | *
 | 
 | 563 | * Returns:
 | 
 | 564 | *
 | 
 | 565 | *
 | 
 | 566 | * Others:
 | 
 | 567 | ********************************************************************************/
 | 
 | 568 | UINT8 zDrvEdcp_IsBusyForW(UINT8 EdcpNum);
 | 
 | 569 | 
 | 
 | 570 | /*******************************************************************************
 | 
 | 571 | * Function: zDrvEdcp_ResetForW
 | 
 | 572 | * Description: Reset Edcp for W
 | 
 | 573 | * Parameters:
 | 
 | 574 | *   Input:EdcpNum
 | 
 | 575 | *
 | 
 | 576 | *   Output: 
 | 
 | 577 | *
 | 
 | 578 | * Returns:
 | 
 | 579 | *
 | 
 | 580 | *
 | 
 | 581 | * Others:
 | 
 | 582 | ********************************************************************************/
 | 
 | 583 | VOID zDrvEdcp_ResetForW(T_ZDrvEdcp_ModuleSel EdcpNum);
 | 
 | 584 | 
 | 
 | 585 | /*******************************************************************************
 | 
 | 586 | * Function: zDrvEdcp_UlCfgForW
 | 
 | 587 | * Description: ÉÏÐÐÄ£¿éÅäÖò¢Æô¶¯
 | 
 | 588 | * Parameters:
 | 
 | 589 | *   Input:T_zDrvEdcp_UlCfg
 | 
 | 590 | *
 | 
 | 591 | *   Output: 
 | 
 | 592 | *
 | 
 | 593 | * Returns:
 | 
 | 594 | *
 | 
 | 595 | *
 | 
 | 596 | * Others:
 | 
 | 597 | ********************************************************************************/
 | 
 | 598 | UINT32 zDrvEdcp_UlCfgForW(T_zDrvEdcp_UlCfg *ptUlCfg);
 | 
 | 599 | 
 | 
 | 600 | /*******************************************************************************
 | 
 | 601 | * Function: zDrvEdcp_DlCfgForW
 | 
 | 602 | * Description: ÏÂÐÐÄ£¿éÅäÖò¢Æô¶¯
 | 
 | 603 | * Parameters:
 | 
 | 604 | *   Input:T_zDrvEdcp_DlCfg
 | 
 | 605 | *
 | 
 | 606 | *   Output: 
 | 
 | 607 | *
 | 
 | 608 | * Returns:
 | 
 | 609 | *
 | 
 | 610 | *
 | 
 | 611 | * Others:
 | 
 | 612 | ********************************************************************************/
 | 
 | 613 | UINT32 zDrvEdcp_DlCfgForW(T_zDrvEdcp_DlCfg *ptDlCfg);
 | 
 | 614 | 
 | 
 | 615 | /*******************************************************************************
 | 
 | 616 | * Function: zDrvEdcp_PdcpCfgForW
 | 
 | 617 | * Description: edcpÏÂÐÐpdcp sdu°áÔËÄ£¿éÅäÖò¢Æô¶¯
 | 
 | 618 | * Parameters:
 | 
 | 619 | *   Input:T_zDrvEdcp_PdcpCfg
 | 
 | 620 | *
 | 
 | 621 | *   Output: 
 | 
 | 622 | *
 | 
 | 623 | * Returns:
 | 
 | 624 | *
 | 
 | 625 | *
 | 
 | 626 | * Others:
 | 
 | 627 | ********************************************************************************/
 | 
 | 628 | UINT32 zDrvEdcp_PdcpCfgForW(T_zDrvEdcp_PdcpCfg *ptPdcpCfg);
 | 
 | 629 | 
 | 
 | 630 | /*******************************************************************************
 | 
 | 631 | * Function: zDrvEdcp_RegCallback_ForW
 | 
 | 632 | * Description: register edcp isr callback function for wcdma
 | 
 | 633 | * Parameters:
 | 
 | 634 | *   Input:
 | 
 | 635 | *
 | 
 | 636 | *   Output: 
 | 
 | 637 | *
 | 
 | 638 | * Returns:
 | 
 | 639 | *
 | 
 | 640 | *
 | 
 | 641 | * Others:
 | 
 | 642 | ********************************************************************************/
 | 
 | 643 | UINT32 zDrvEdcp_RegCallback_ForW(T_ZDrvEdcp_CallbackFuncs_ForW *ptCallbackStruct);
 | 
 | 644 | 
 | 
 | 645 | /*******************************************************************************
 | 
 | 646 | * Function: zDrvEdcp_UlCfgNormForW
 | 
 | 647 | * Description: Normal UL data
 | 
 | 648 | * Parameters:
 | 
 | 649 | *   Input:
 | 
 | 650 | *
 | 
 | 651 | *   Output: 
 | 
 | 652 | *
 | 
 | 653 | * Returns:
 | 
 | 654 | *
 | 
 | 655 | *
 | 
 | 656 | * Others:
 | 
 | 657 | ********************************************************************************/
 | 
 | 658 | UINT32 zDrvEdcp_UlCfgNormForW(T_zDrvEdcp_UlCfg *ptUlCfg);
 | 
 | 659 | 
 | 
 | 660 | #ifdef _USE_PSM
 | 
 | 661 | /*******************************************************************************
 | 
 | 662 | * Function: zDrvEdcp_SaveConfiguration
 | 
 | 663 | * Description: Ê¡µçÄ£¿é¶Ïµçǰ±£´æÏÖ³¡
 | 
 | 664 | * Parameters:
 | 
 | 665 | *	 Input:
 | 
 | 666 | *
 | 
 | 667 | *	 Output: 
 | 
 | 668 | *
 | 
 | 669 | * Returns:
 | 
 | 670 | *
 | 
 | 671 | *
 | 
 | 672 | * Others:
 | 
 | 673 | ********************************************************************************/
 | 
 | 674 | SINT32 zDrvEdcp_SaveConfiguration(VOID);
 | 
 | 675 | 
 | 
 | 676 | /*******************************************************************************
 | 
 | 677 | * Function: zDrvEdcp_RestoreConfiguration
 | 
 | 678 | * Description: Ê¡µçÄ£¿é»Ö¸´¹©µçʱ»Ö¸´ÏÖ³¡
 | 
 | 679 | * Parameters:
 | 
 | 680 | *	 Input:
 | 
 | 681 | *
 | 
 | 682 | *	 Output: 
 | 
 | 683 | *
 | 
 | 684 | * Returns:
 | 
 | 685 | *
 | 
 | 686 | *
 | 
 | 687 | * Others:
 | 
 | 688 | ********************************************************************************/
 | 
 | 689 | SINT32 zDrvEdcp_RestoreConfiguration(VOID);
 | 
 | 690 | #endif
 | 
 | 691 | 
 | 
 | 692 | #endif/*_DRVS_EDCP_H*/
 | 
 | 693 | 
 |