⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zl5011xmisc.h

📁 Zalink50114----TDMoIP芯片驱动源码
💻 H
字号:
/*******************************************************************************
*
*  File name:              zl5011xMisc.h
*
*  Version:                11
*
*  Author:                 MRC
*
*  Date created:           12/09/2002
*
*  Copyright 2002, 2003, 2004, 2005, Zarlink Semiconductor Limited.
*  All rights reserved.
*
*  Module Description:
*
*  This is the header file for the device initialisation functions.
*
*  Revision History:
*
*  Rev:  Date:       Author:  Comments:
*  1     12/09/2002  MRC      Creation
*  2     13/09/2002  MRC      Added PHY access functions
*  3     20/09/2002  MRC      Added Release and Revision fn
*  4     25/09/2002  MRC      Added parameter check fns
*  5     30/10/2002  MRC      Added active check to the check context fns
*  6     31/10/2002  MRC      Added variants + minor fixes
*  7     13/11/2002  MRC      Added struct init for free function
*  8     21/02/2003  MRC      Added packet checksum functions
*  9     30/06/2003  JFE      Changed name of GetApiVersion parameter consistent
*                              with function definition.
*  10    29/07/2003  APL      Added support for devices with no TDM
*  11    17/03/2005  APL      Allows semaphores to be deleted without taking first
*
*******************************************************************************/

#ifndef _ZL5011X_MISC_H
#define _ZL5011X_MISC_H

#ifdef __cplusplus
extern "C" {
#endif

/*****************   INCLUDE FILES   ******************************************/

/*****************   # DEFINES   **********************************************/

#define ZL5011X_MUTEX_TIMEOUT_MS      2000
#define ZL5011X_PHY_MUTEX_TIMEOUT_MS  2000
#define ZL5011X_WAIT_100MS            100

/*****************   DATA TYPES   *********************************************/

/*****************   DATA STRUCTURES and FUNCTION DECLARATIONS   **************/

typedef enum
{
   ZL5011X_CHECK_CONTEXT_NUMBER,
   ZL5011X_CHECK_CONTEXT_INIT,
   ZL5011X_CHECK_CONTEXT_MODIFY,
   ZL5011X_CHECK_CONTEXT_ACTIVE,
   ZL5011X_CHECK_CONTEXT_IN_USE
} zl5011xCheckContextStateE;

typedef struct
{
   Uint32T baseAddress;
} zl5011xCreateDeviceS;

zlStatusE zl5011xCreateDeviceStructInit(zl5011xCreateDeviceS *par);
zlStatusE zl5011xCreateDevice(zl5011xParamsS **zl5011xParams, zl5011xCreateDeviceS *par);

/********************************/

typedef struct
{
   Uint16T revisionNumberMajor;
   Uint16T revisionNumberMinor;
   Uint16T revisionNumberMicro;
   Sint8T releaseDate[80];
   Sint8T releaseTime[80];
} zl5011xGetApiVersionS;

zlStatusE zl5011xGetApiVersion(zl5011xGetApiVersionS *par);

/********************************/

typedef struct
{
   zl5011xBooleanE takeDeviceBeforeReset;
   zl5011xBooleanE takePhyBeforeReset;
} zl5011xResetS;

zlStatusE zl5011xResetStructInit(zl5011xParamsS *zl5011xParams, zl5011xResetS *par);
zlStatusE zl5011xReset(zl5011xParamsS *zl5011xParams, zl5011xResetS *par);

/********************************/

typedef struct
{
   zl5011xBooleanE takeDeviceBeforeSemDelete;
   zl5011xBooleanE takePhyBeforeSemDelete;
} zl5011xFreeDeviceS;

zlStatusE zl5011xFreeDeviceStructInit(zl5011xParamsS *zl5011xParams, zl5011xFreeDeviceS *par);
zlStatusE zl5011xFreeDevice(zl5011xParamsS *zl5011xParams, zl5011xFreeDeviceS *par);

/*****************   FUNCTION DECLARATIONS   **********************************/


zlStatusE zl5011xEnterFreezeMode(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xCreateSemaphore(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xDeleteSemaphore(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xDeleteSemaphoreEx(zl5011xParamsS *zl5011xParams,
                  zl5011xBooleanE takeDeviceBeforeDelete, zl5011xBooleanE takePhyBeforeDelete);

zlStatusE zl5011xGetDevice(zl5011xParamsS *zl5011xParams, zl5011xBooleanE waitForever);
zlStatusE zl5011xReleaseDevice(zl5011xParamsS *zl5011xParams);

zlStatusE zl5011xGetLanPhy(zl5011xParamsS *zl5011xParams, zl5011xBooleanE waitForever);
zlStatusE zl5011xReleaseLanPhy(zl5011xParamsS *zl5011xParams);

zlStatusE zl5011xLanPortCheck(zl5011xParamsS *zl5011xParams, Uint8T portNum);
zlStatusE zl5011xContextCheckTx(zl5011xParamsS *zl5011xParams, Uint32T context,
      zl5011xCheckContextStateE check);
zlStatusE zl5011xContextCheckRx(zl5011xParamsS *zl5011xParams, Uint32T context,
      zl5011xCheckContextStateE check);

/* Packet checksum functions */
zlStatusE zl5011xPacketCalculateChecksum(Uint8T *buf, Uint16T length, Uint16T *chkOut);
zlStatusE zl5011xPacketChangeField(Uint8T *buf, Uint8T modPos,
      Uint16T newValue, Uint16T bitMask, Uint16T *chkChange);
zlStatusE zl5011xPacketUpdateChecksum(Uint8T *buf, Uint8T chkPos, Uint16T chkChange);
zlStatusE zl5011xPacketInvertChecksum(Uint8T *buf, Uint8T chkPos);

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -