|
Data Structures |
struct | IxHssAccConfigParams |
| Structure containing HSS configuration parameters. More...
|
struct | IxHssAccHdlcMode |
| This structure contains 56Kbps, HDLC-mode configuration parameters. More...
|
struct | IxHssAccPktHdlcFraming |
| This structure contains information required by the NPE to configure the HDLC co-processor. More...
|
struct | IxHssAccPortConfig |
| Structure containing HSS port configuration parameters. More...
|
Defines |
#define | IX_HSSACC_TSLOTS_PER_HSS_PORT |
| The max number of TDM timeslots supported per HSS port - 4E1's = 32x4 = 128.
|
#define | IX_HSSACC_PARAM_ERR |
| HssAccess function return value for a parameter error.
|
#define | IX_HSSACC_RESOURCE_ERR |
| HssAccess function return value for a resource error.
|
#define | IX_HSSACC_PKT_DISCONNECTING |
| Indicates that a disconnect call is progressing and will disconnect soon.
|
#define | IX_HSSACC_Q_WRITE_OVERFLOW |
| Indicates that an attempt to Tx or to replenish an RxFree Q failed due to Q overflow.
|
#define | IX_HSSACC_NO_ERROR |
| HSS port no error present.
|
#define | IX_HSSACC_TX_FRM_SYNC_ERR |
| HSS port TX Frame Sync error.
|
#define | IX_HSSACC_TX_OVER_RUN_ERR |
| HSS port TX over-run error.
|
#define | IX_HSSACC_CHANNELISED_SW_TX_ERR |
| NPE software error in channelised TX.
|
#define | IX_HSSACC_PACKETISED_SW_TX_ERR |
| NPE software error in packetised TX.
|
#define | IX_HSSACC_RX_FRM_SYNC_ERR |
| HSS port RX Frame Sync error.
|
#define | IX_HSSACC_RX_OVER_RUN_ERR |
| HSS port RX over-run error.
|
#define | IX_HSSACC_CHANNELISED_SW_RX_ERR |
| NPE software error in channelised RX.
|
#define | IX_HSSACC_PACKETISED_SW_RX_ERR |
| NPE software error in packetised TX.
|
#define | IX_HSSACC_PKT_MIN_RX_MBUF_SIZE |
| Minimum size of the Rx mbuf in bytes which the client must supply to the component.
|
Typedefs |
typedef UINT32 | IxHssAccPktUserId |
| The client supplied value which will be supplied as a parameter with a given callback.
|
typedef void(* | IxHssAccLastErrorCallback )(unsigned lastHssError, unsigned servicePort) |
| Prototype of the clients function to accept notification of the last error.
|
typedef void(* | IxHssAccPktRxCallback )(IX_MBUF *buffer, unsigned numHssErrs, IxHssAccPktStatus pktStatus, IxHssAccPktUserId rxUserId) |
| Prototype of the clients function to accept notification of packetised rx.
|
typedef void(* | IxHssAccPktRxFreeLowCallback )(IxHssAccPktUserId rxFreeLowUserId) |
| Prototype of the clients function to accept notification of requirement of more Rx Free buffers.
|
typedef void(* | IxHssAccPktTxDoneCallback )(IX_MBUF *buffer, unsigned numHssErrs, IxHssAccPktStatus pktStatus, IxHssAccPktUserId txDoneUserId) |
| Prototype of the clients function to accept notification of completion with Tx buffers.
|
typedef void(* | IxHssAccChanRxCallback )(IxHssAccHssPort hssPortId, unsigned rxOffset, unsigned txOffset, unsigned numHssErrs) |
| Prototype of the clients function to accept notification of channelised rx.
|
Enumerations |
enum | IxHssAccHssPort {
IX_HSSACC_HSS_PORT_0,
IX_HSSACC_HSS_PORT_1,
IX_HSSACC_HSS_PORT_MAX
} |
| The HSS port ID - There are two identical ports (0-1). More...
|
enum | IxHssAccHdlcPort {
IX_HSSACC_HDLC_PORT_0,
IX_HSSACC_HDLC_PORT_1,
IX_HSSACC_HDLC_PORT_2,
IX_HSSACC_HDLC_PORT_3,
IX_HSSACC_HDLC_PORT_MAX
} |
| The HDLC port ID - There are four identical HDLC ports (0-3) per HSS port and they correspond to the 4 E1/T1 trunks. More...
|
enum | IxHssAccTdmSlotUsage {
IX_HSSACC_TDMMAP_UNASSIGNED,
IX_HSSACC_TDMMAP_HDLC,
IX_HSSACC_TDMMAP_VOICE56K,
IX_HSSACC_TDMMAP_VOICE64K,
IX_HSSACC_TDMMAP_MAX
} |
| The HSS TDM stream timeslot assignment types. More...
|
enum | IxHssAccFrmSyncType {
IX_HSSACC_FRM_SYNC_ACTIVE_LOW,
IX_HSSACC_FRM_SYNC_ACTIVE_HIGH,
IX_HSSACC_FRM_SYNC_FALLINGEDGE,
IX_HSSACC_FRM_SYNC_RISINGEDGE,
IX_HSSACC_FRM_SYNC_TYPE_MAX
} |
| The HSS frame sync pulse type. More...
|
enum | IxHssAccFrmSyncEnable {
IX_HSSACC_FRM_SYNC_INPUT,
IX_HSSACC_FRM_SYNC_INVALID_VALUE,
IX_HSSACC_FRM_SYNC_OUTPUT_FALLING,
IX_HSSACC_FRM_SYNC_OUTPUT_RISING,
IX_HSSACC_FRM_SYNC_ENABLE_MAX
} |
| The IxHssAccFrmSyncEnable determines how the frame sync pulse is used. More...
|
enum | IxHssAccClkEdge {
IX_HSSACC_CLK_EDGE_FALLING,
IX_HSSACC_CLK_EDGE_RISING,
IX_HSSACC_CLK_EDGE_MAX
} |
| IxHssAccClkEdge is used to determine the clk edge to use for framing and data. More...
|
enum | IxHssAccClkDir {
IX_HSSACC_SYNC_CLK_DIR_INPUT,
IX_HSSACC_SYNC_CLK_DIR_OUTPUT,
IX_HSSACC_SYNC_CLK_DIR_MAX
} |
| The HSS clock direction. More...
|
enum | IxHssAccFrmPulseUsage {
IX_HSSACC_FRM_PULSE_ENABLED,
IX_HSSACC_FRM_PULSE_DISABLED,
IX_HSSACC_FRM_PULSE_MAX
} |
| The HSS frame pulse usage. More...
|
enum | IxHssAccDataRate {
IX_HSSACC_CLK_RATE,
IX_HSSACC_HALF_CLK_RATE,
IX_HSSACC_DATA_RATE_MAX
} |
| The HSS Data rate in relation to the clock. More...
|
enum | IxHssAccDataPolarity {
IX_HSSACC_DATA_POLARITY_SAME,
IX_HSSACC_DATA_POLARITY_INVERT,
IX_HSSACC_DATA_POLARITY_MAX
} |
| The HSS data polarity type. More...
|
enum | IxHssAccBitEndian {
IX_HSSACC_LSB_ENDIAN,
IX_HSSACC_MSB_ENDIAN,
IX_HSSACC_ENDIAN_MAX
} |
| HSS Data endianness. More...
|
enum | IxHssAccDrainMode {
IX_HSSACC_TX_PINS_NORMAL,
IX_HSSACC_TX_PINS_OPEN_DRAIN,
IX_HSSACC_TX_PINS_MAX
} |
| Tx pin open drain mode. More...
|
enum | IxHssAccSOFType {
IX_HSSACC_SOF_FBIT,
IX_HSSACC_SOF_DATA,
IX_HSSACC_SOF_MAX
} |
| HSS start of frame types. More...
|
enum | IxHssAccDataEnable {
IX_HSSACC_DE_TRI_STATE,
IX_HSSACC_DE_DATA,
IX_HSSACC_DE_MAX
} |
| IxHssAccDataEnable is used to determine whether or not to drive the data pins. More...
|
enum | IxHssAccTxSigType {
IX_HSSACC_TXSIG_LOW,
IX_HSSACC_TXSIG_HIGH,
IX_HSSACC_TXSIG_HIGH_IMP,
IX_HSSACC_TXSIG_MAX
} |
| IxHssAccTxSigType is used to determine how to drive the data pins. More...
|
enum | IxHssAccFbType {
IX_HSSACC_FB_FIFO,
IX_HSSACC_FB_HIGH_IMP,
IX_HSSACC_FB_MAX
} |
| IxHssAccFbType determines how to drive the Fbit. More...
|
enum | IxHssAcc56kEndianness {
IX_HSSACC_56KE_BIT_7_UNUSED,
IX_HSSACC_56KE_BIT_0_UNUSED,
IX_HSSACC_56KE_MAX
} |
| 56k data endianness when using the 56k type More...
|
enum | IxHssAcc56kSel {
IX_HSSACC_56KS_32_8_DATA,
IX_HSSACC_56KS_56K_DATA,
IX_HSSACC_56KS_MAX
} |
| 56k data transmission type when using the 56k type More...
|
enum | IxHssAccClkSpeed {
IX_HSSACC_CLK_SPEED_512KHZ,
IX_HSSACC_CLK_SPEED_1536KHZ,
IX_HSSACC_CLK_SPEED_1544KHZ,
IX_HSSACC_CLK_SPEED_1568KHZ,
IX_HSSACC_CLK_SPEED_2048KHZ,
IX_HSSACC_CLK_SPEED_4096KHZ,
IX_HSSACC_CLK_SPEED_8192KHZ,
IX_HSSACC_CLK_SPEED_MAX
} |
| IxHssAccClkSpeed represents the HSS clock speeds available. More...
|
enum | IxHssAccPktStatus {
IX_HSSACC_PKT_OK,
IX_HSSACC_STOP_SHUTDOWN_ERROR,
IX_HSSACC_HDLC_ALN_ERROR,
IX_HSSACC_HDLC_FCS_ERROR,
IX_HSSACC_RXFREE_Q_EMPTY_ERROR,
IX_HSSACC_HDLC_MAX_FRAME_SIZE_EXCEEDED,
IX_HSSACC_HDLC_ABORT_ERROR,
IX_HSSACC_DISCONNECT_IN_PROGRESS
} |
| Indicates the status of packets passed to the client. More...
|
enum | IxHssAccPktCrcType {
IX_HSSACC_PKT_16_BIT_CRC,
IX_HSSACC_PKT_32_BIT_CRC
} |
| HDLC CRC type. More...
|
enum | IxHssAccPktHdlcIdleType {
IX_HSSACC_HDLC_IDLE_ONES,
IX_HSSACC_HDLC_IDLE_FLAGS
} |
| HDLC idle transmission type. More...
|
Functions |
PUBLIC IX_STATUS | ixHssAccPortInit (IxHssAccHssPort hssPortId, IxHssAccConfigParams *configParams, IxHssAccTdmSlotUsage *tdmMap, IxHssAccLastErrorCallback lastHssErrorCallback) |
| Initialise a HSS port. No channelised or packetised connections should exist in the HssAccess layer while this interface is being called.
|
PUBLIC IX_STATUS | ixHssAccLastErrorRetrievalInitiate (IxHssAccHssPort hssPortId) |
| Initiate the retrieval of the last HSS error. The HSS port should be configured before attempting to call this interface.
|
PUBLIC IX_STATUS | ixHssAccInit (void) |
| This function is responsible for initialising resources for use by the packetised and channelised clients. It should be called before any other HssAccess interface is called. No other HssAccPacketised interface should be called while this interface is being processed.
|
PUBLIC IX_STATUS | ixHssAccPktPortConnect (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId, BOOL hdlcFraming, IxHssAccHdlcMode hdlcMode, BOOL hdlcBitInvert, unsigned blockSizeInWords, UINT32 rawIdleBlockPattern, IxHssAccPktHdlcFraming hdlcTxFraming, IxHssAccPktHdlcFraming hdlcRxFraming, unsigned frmFlagStart, IxHssAccPktRxCallback rxCallback, IxHssAccPktUserId rxUserId, IxHssAccPktRxFreeLowCallback rxFreeLowCallback, IxHssAccPktUserId rxFreeLowUserId, IxHssAccPktTxDoneCallback txDoneCallback, IxHssAccPktUserId txDoneUserId) |
| This function is responsible for connecting a client to one of the 4 available HDLC ports. The HSS port should be configured before attempting a connect. No other HssAccPacketised interface should be called while this connect is being processed.
|
PUBLIC IX_STATUS | ixHssAccPktPortEnable (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId) |
| This function is responsible for enabling a packetised service for the specified HSS/HDLC port combination. It enables the RX flow. The client must have already connected to a packetised service and is responsible for ensuring an adequate amount of RX mbufs have been supplied to the access component before enabling the packetised service. This function must be called on a given port before any call to ixHssAccPktPortTx on the same port. No other HssAccPacketised interface should be called while this interface is being processed.
|
PUBLIC IX_STATUS | ixHssAccPktPortDisable (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId) |
| This function is responsible for disabling a packetised service for the specified HSS/HDLC port combination. It disables the RX flow. The client must have already connected to and enabled a packetised service for the specified HDLC port. This disable interface can be called before a disconnect, but is not required to.
|
PUBLIC IX_STATUS | ixHssAccPktPortDisconnect (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId) |
| This function is responsible for disconnecting a client from one of the 4 available HDLC ports. It is not required that the Rx Flow has been disabled before calling this function. If the RX Flow has not been disabled, the disconnect will disable it before proceeding with the disconnect. No other HssAccPacketised interface should be called while this interface is being processed.
|
PUBLIC BOOL | ixHssAccPktPortIsDisconnectComplete (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId) |
| This function is called to check if a given HSS/HDLC port combination is in a connected state or not. This function may be called at any time to determine a ports state. No other HssAccPacketised interface should be called while this interface is being processed.
|
PUBLIC IX_STATUS | ixHssAccPktPortRxFreeReplenish (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId, IX_MBUF *buffer) |
| Function which the client calls at regular intervals to provide mbufs to the access component for RX. A connection should exist for the specified hssPortId/hdlcPortId combination before attempting to call this interface. Also, the connection should not be in a disconnecting state.
|
PUBLIC IX_STATUS | ixHssAccPktPortTx (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId, IX_MBUF *buffer) |
| Function which the client calls when it wants to transmit packetised data. An enabled connection should exist on the specified hssPortId/hdlcPortId combination before attempting to call this interface. No other HssAccPacketised interface should be called while this interface is being processed.
|
PUBLIC IX_STATUS | ixHssAccChanConnect (IxHssAccHssPort hssPortId, unsigned bytesPerTSTrigger, UINT8 *rxCircular, unsigned numRxBytesPerTS, UINT32 *txPtrList, unsigned numTxPtrLists, unsigned numTxBytesPerBlk, IxHssAccChanRxCallback rxCallback) |
| This function allows the client to connect to the Tx/Rx NPE Channelised Service. There can only be one client per HSS port. The client is responsible for ensuring that the HSS port is configured appropriately before its connect request. No other HssAccChannelised interface should be called while this interface is being processed.
|
PUBLIC IX_STATUS | ixHssAccChanPortEnable (IxHssAccHssPort hssPortId) |
| This function is responsible for enabling a channelised service for the specified HSS port. It enables the NPE RX flow. The client must have already connected to a channelised service before enabling the channelised service. No other HssAccChannelised interface should be called while this interface is being processed.
|
PUBLIC IX_STATUS | ixHssAccChanPortDisable (IxHssAccHssPort hssPortId) |
| This function is responsible for disabling a channelised service for the specified HSS port. It disables the NPE RX flow. The client must have already connected to and enabled a channelised service for the specified HSS port. This disable interface can be called before a disconnect, but is not required to. No other HssAccChannelised interface should be called while this interface is being processed.
|
PUBLIC IX_STATUS | ixHssAccChanDisconnect (IxHssAccHssPort hssPortId) |
| This function allows the client to Disconnect from a channelised service. If the NPE RX Flow has not been disabled, the disconnect will disable it before proceeding with other disconnect functionality. No other HssAccChannelised interface should be called while this interface is being processed.
|
PUBLIC IX_STATUS | ixHssAccChanStatusQuery (IxHssAccHssPort hssPortId, BOOL *dataRecvd, unsigned *rxOffset, unsigned *txOffset, unsigned *numHssErrs) |
| This function is called by the client to query whether or not channelised data has been received. If there is, hssChanAcc will return the details in the output parameters. An enabled connection should exist on the specified hssPortId before attempting to call this interface. No other HssAccChannelised interface should be called while this interface is being processed.
|
PUBLIC void | ixHssAccShow (void) |
| This function will display the current state of the IxHssAcc component. The output is sent to stdout.
|
PUBLIC void | ixHssAccStatsInit (void) |
| This function will reset the IxHssAcc statistics.
|