?? zl5011x.h
字號:
zl5011xDmaRxModeE rxMode;
zl5011xDmaInterruptModeE dmaInterruptMode;
zl5011xQueueE dmaQueueId;
zl5011xBooleanE dmaRxBusy;
Uint8T clockPeriod;
zl5011xPolarityE dreqPolarity;
zl5011xPolarityE dackPolarity;
zl5011xDmaMsgPaddingE msgPadding;
}zl5011xCpuDmaIfS;
/******************************************************************************
* enumerations + structures used for controlling the WAN interface
******************************************************************************/
typedef enum
{
/* asynchronous - unframed mode */
ZL5011X_WAN_UNFRAMED,
/* generic frame pulse @ 2M */
ZL5011X_WAN_FRAMED_2M,
/* generic frame pulse @ 8M */
ZL5011X_WAN_FRAMED_8M,
ZL5011X_WAN_STBUS_2M_X1_CLOCK,
ZL5011X_WAN_STBUS_2M_X2_CLOCK,
ZL5011X_WAN_STBUS_8M,
ZL5011X_WAN_MVIP_2M_X1_CLOCK,
ZL5011X_WAN_MVIP_2M_X2_CLOCK,
ZL5011X_WAN_HMVIP_8M,
ZL5011X_WAN_H1X0_8M_X1_CLOCK,
ZL5011X_WAN_H1X0_8M_X2_CLOCK,
ZL5011X_WAN_INVALID_IF
} zl5011xWanIfTypeE;
typedef struct
{
Uint8T stream;
Uint8T channel;
} zl5011xWanChannelS;
typedef enum
{
ZL5011X_STATE_NOT_IN_USE,
ZL5011X_STATE_INIT,
ZL5011X_STATE_TAKEN,
ZL5011X_STATE_UPDATING,
ZL5011X_STATE_ACTIVE,
ZL5011X_STATE_TEARING_DOWN
} zl5011xContextStateE;
/******************************************************************************
* enumerations + structures used for controlling the TIF block
******************************************************************************/
#define ZL5011X_CHECK_WAN_IF_OUTPUT_ENABLE(X) \
((X < ZL5011X_WAN_OUTPUT_HIZ) || (X > ZL5011X_WAN_OUTPUT_ENABLE)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_OUTPUT_HIZ = 0x0,
ZL5011X_WAN_OUTPUT_ENABLE = 0x1
} zl5011xWanIfOutputEnableE;
/******************/
#define ZL5011X_CHECK_WAN_IF_SAMPLE_POINT(X) \
((X < ZL5011X_WAN_SAMPLE_HALF_BIT) || (X > ZL5011X_WAN_SAMPLE_FULL_BIT)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_SAMPLE_HALF_BIT = 0x0,
ZL5011X_WAN_SAMPLE_THREE_QUARTER_BIT = 0x1,
ZL5011X_WAN_SAMPLE_FULL_BIT = 0x2
} zl5011xWanIfSamplePointE;
/******************/
#define ZL5011X_CHECK_WAN_IF_FRAME_PULSE_TYPE(X) \
((X < ZL5011X_WAN_FRAME_HALF_BIT) || (X > ZL5011X_WAN_FRAME_FULL_BIT_ALIGNED)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_FRAME_HALF_BIT = 0x0,
ZL5011X_WAN_FRAME_FULL_BIT_CENTRED = 0x1,
ZL5011X_WAN_FRAME_1_5_BITS_CENTRED = 0x2,
ZL5011X_WAN_FRAME_2_BITS_CENTRED = 0x3,
ZL5011X_WAN_FRAME_FULL_BIT_ALIGNED = 0x4
} zl5011xWanIfFramePulseTypeE;
/******************/
#define ZL5011X_CHECK_WAN_IF_CLOCK_RATE(X) \
((X < ZL5011X_WAN_CLK_DATA_RATE) || (X > ZL5011X_WAN_CLK_DATA_RATE_X_2)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_CLK_DATA_RATE = 0x0,
ZL5011X_WAN_CLK_DATA_RATE_X_2 = 0x1
} zl5011xWanIfClockRateE;
/******************/
#define ZL5011X_CHECK_WAN_LIU_FREQ(X) \
((X < ZL5011X_WAN_LIU_FREQ_1_544M) || (X > ZL5011X_WAN_LIU_FREQ_OTHER)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_LIU_FREQ_1_544M,
ZL5011X_WAN_LIU_FREQ_2_048M,
ZL5011X_WAN_LIU_FREQ_6_312M,
ZL5011X_WAN_LIU_FREQ_34_368M,
ZL5011X_WAN_LIU_FREQ_44_736M,
ZL5011X_WAN_LIU_FREQ_OTHER
} zl5011xWanLiuFreqE;
/******************/
#define ZL5011X_CHECK_WAN_IF_DATA_RATE(X) \
((X < ZL5011X_WAN_DATA_RATE_1_544M) || (X > ZL5011X_WAN_DATA_RATE_44_736M)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_DATA_RATE_1_544M = 0x0,
ZL5011X_WAN_DATA_RATE_2_048M = 0x1,
ZL5011X_WAN_DATA_RATE_6_312M = 0x2,
ZL5011X_WAN_DATA_RATE_8_192M = 0x3,
ZL5011X_WAN_DATA_RATE_34_368M = 0x4,
ZL5011X_WAN_DATA_RATE_44_736M = 0x5
} zl5011xWanIfDataRateE;
/******************/
#define ZL5011X_CHECK_WAN_IF_CONNECTION_TYPE(X) \
((X < ZL5011X_WAN_CONNECTION_UNFRAMED) || (X > ZL5011X_WAN_CONNECTION_FRAMED_CLK_SLAVE)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_CONNECTION_UNFRAMED = 0x0,
ZL5011X_WAN_CONNECTION_FRAMED_CLK_MASTER = 0x1,
ZL5011X_WAN_CONNECTION_FRAMED_CLK_SLAVE = 0x2
} zl5011xWanIfConnectionTypeE;
/******************/
#define ZL5011X_CHECK_WAN_IF_BER_DIRECTION(X) \
((X < ZL5011X_WAN_BER_DIRECTION_RX) || (X > ZL5011X_WAN_BER_DIRECTION_TX)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_BER_DIRECTION_RX = 0x0,
ZL5011X_WAN_BER_DIRECTION_TX = 0x1
} zl5011xWanIfBerDirectionE;
/******************/
#define ZL5011X_CHECK_WAN_IF_BER_PATTERN(X) \
((X < ZL5011X_WAN_BER_PRBS_15) || (X > ZL5011X_WAN_BER_PRBS_23)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_BER_PRBS_15 = 0x0,
ZL5011X_WAN_BER_PRBS_23 = 0x1
} zl5011xWanIfBerPatternE;
/******************/
typedef struct
{
zl5011xBooleanE berEnabled;
zl5011xWanIfBerDirectionE berDirection;
zl5011xWanIfBerPatternE berPattern;
Uint8T berStream;
Uint8T berStartChannel;
Uint8T berEndChannel;
} zl5011xWanBerConfigS;
/******************************************************************************
* enumerations + structures used for controlling the TFQ block
******************************************************************************/
#define ZL5011X_CHECK_WAN_TX_QUEUE_MODE(X) \
((X < ZL5011X_WAN_TX_QUEUE_FIFO) || (X > ZL5011X_WAN_TX_QUEUE_RESEQUENCE_16)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_TX_QUEUE_FIFO,
ZL5011X_WAN_TX_QUEUE_RESEQUENCE_8,
ZL5011X_WAN_TX_QUEUE_RESEQUENCE_16
} zl5011xWanTxQueueOperationE;
/******************/
#define ZL5011X_CHECK_WAN_TX_QUEUE_SIZE(X) \
((X < ZL5011X_WAN_TX_QUEUE_SIZE_2) || (X > ZL5011X_WAN_TX_QUEUE_SIZE_1024)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_TX_QUEUE_SIZE_2 = 1,
ZL5011X_WAN_TX_QUEUE_SIZE_4 = 2,
ZL5011X_WAN_TX_QUEUE_SIZE_8 = 3,
ZL5011X_WAN_TX_QUEUE_SIZE_16 = 4,
ZL5011X_WAN_TX_QUEUE_SIZE_32 = 5,
ZL5011X_WAN_TX_QUEUE_SIZE_64 = 6,
ZL5011X_WAN_TX_QUEUE_SIZE_128 = 7,
ZL5011X_WAN_TX_QUEUE_SIZE_256 = 8,
ZL5011X_WAN_TX_QUEUE_SIZE_512 = 9,
ZL5011X_WAN_TX_QUEUE_SIZE_1024 = 10
} zl5011xWanTxQueueSizeE;
/******************/
#define ZL5011X_CHECK_WAN_TX_QUEUE_AVG(X) \
((X < ZL5011X_WAN_TX_QUEUE_AVG_2) || (X > ZL5011X_WAN_TX_QUEUE_AVG_65536)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_TX_QUEUE_AVG_2 = 1,
ZL5011X_WAN_TX_QUEUE_AVG_4 = 2,
ZL5011X_WAN_TX_QUEUE_AVG_8 = 3,
ZL5011X_WAN_TX_QUEUE_AVG_16 = 4,
ZL5011X_WAN_TX_QUEUE_AVG_32 = 5,
ZL5011X_WAN_TX_QUEUE_AVG_64 = 6,
ZL5011X_WAN_TX_QUEUE_AVG_128 = 7,
ZL5011X_WAN_TX_QUEUE_AVG_256 = 8,
ZL5011X_WAN_TX_QUEUE_AVG_512 = 9,
ZL5011X_WAN_TX_QUEUE_AVG_1024 = 10,
ZL5011X_WAN_TX_QUEUE_AVG_2048 = 11,
ZL5011X_WAN_TX_QUEUE_AVG_4096 = 12,
ZL5011X_WAN_TX_QUEUE_AVG_8192 = 13,
ZL5011X_WAN_TX_QUEUE_AVG_16384 = 14,
ZL5011X_WAN_TX_QUEUE_AVG_32768 = 15,
ZL5011X_WAN_TX_QUEUE_AVG_65536 = 16
} zl5011xWanTxQueueAvgModeE;
/******************/
typedef struct
{
Uint32T minLength;
Uint32T maxLength;
Uint32T avgLength;
Uint32T latePackets;
Uint32T earlyPackets;
Uint32T underruns;
} zl5011xTfqStatsS;
/******************/
typedef struct
{
Uint32T queueBaseAddress;
zl5011xWanTxQueueSizeE queueSize;
zl5011xWanTxQueueOperationE queueMode;
zl5011xWanTxQueueAvgModeE queueAvgMode;
/* record whether the queue has been initialised */
zl5011xBooleanE queueInitialised;
/* statistics values for the TDM queue */
zl5011xTfqStatsS stats;
} zl5011xWanTxQueueS;
/******************************************************************************
* enumerations + structures used for controlling the TFM block
******************************************************************************/
#define ZL5011X_CHECK_WAN_IF_UNDERRUN_MODE(X) \
((X < ZL5011X_WAN_USE_LAST_BYTE) || (X > ZL5011X_WAN_USE_FIXED_BYTE)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WAN_USE_LAST_BYTE = 0,
ZL5011X_WAN_USE_FIXED_BYTE = 1
} zl5011xWanIfUnderrunModeE;
/******************/
typedef struct
{
/* used by API to determine whether to allow changes */
zl5011xContextStateE state;
/* first channel + number of channels for a context */
Uint32T firstChannelIndex;
Uint32T numChannels;
Uint32T jitterDepth;
} zl5011xWanTxContextS;
typedef struct
{
Uint32T context;
/* underrun settings */
zl5011xWanIfUnderrunModeE underrunMode;
Uint8T underrunByte;
} zl5011xWanTxChannelS;
typedef struct
{
zl5011xWanTxContextS context[ZL5011X_MAX_NUMBER_CONTEXTS];
zl5011xWanTxChannelS channel[ZL5011X_MAX_NUMBER_CHANNELS];
} zl5011xWanTxConfigS;
/******************************************************************************
* enumerations + structures used for controlling the PLA block
******************************************************************************/
typedef struct
{
/* used by API to determine whether to allow changes */
zl5011xContextStateE state;
/* first channel + number of channels for a context */
Uint32T firstChannelIndex;
Uint32T numChannels;
/* record the number of whole frames and additional bytes to be used to construct the payload */
Uint32T payloadFrames;
Uint32T payloadBytes;
/* For unframed operation, the number of bytes in a packet is a multiple of the
number of bytes in a frame. The payload size can be forced to be a multiple
of 8 bytes, and the following variable tracks this setting */
zl5011xBooleanE unframedForceMultiple64Bits;
} zl5011xWanRxContextS;
/******************/
typedef struct
{
Uint32T context;
} zl5011xWanRxChannelS;
/******************/
typedef struct
{
zl5011xWanRxContextS context[ZL5011X_MAX_NUMBER_CONTEXTS];
zl5011xWanRxChannelS channel[ZL5011X_MAX_NUMBER_CHANNELS];
} zl5011xWanRxConfigS;
/******************/
typedef enum
{
ZL5011X_PRIMARY_HEADER = 0,
ZL5011X_SECONDARY_HEADER = 1
} zl5011xContextHeaderSwitchE;
/******************************************************************************
* enumerations + structures used for controlling the PAC block
******************************************************************************/
typedef struct
{
Uint32T wanRxDiffCount;
Uint32T wanRxSeqNumber;
Uint32T wanTxDiffCount;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -