📄 ixatmm.h
字号:
* component is evaluating VC access requests for the port. * * @param rxPortRate unsigned [in] - Value specifies the * receive port rate for this port in * bits/second. * * @return @li IX_SUCCESS : The indicated ATM port rates have been * successfully modified. * * @return @li IX_ATMM_RET_INVALID_PORT : The port value indicated in the * input is not valid. The request is rejected. * * @return @li IX_FAIL : IxAtmm could not update the port because the * inputs are not understood, or the interface was called before * the port was initialized. */PUBLIC IX_STATUSixAtmmPortModify (IxAtmLogicalPort port, unsigned txPortRate, unsigned rxPortRate);/** * @ingroup IxAtmm * * @fn ixAtmmPortQuery (IxAtmLogicalPort port, unsigned *txPortRate, unsigned *rxPortRate); * * @brief The client may call this interface to request details on * currently registered transmit and receive rates for an ATM * port. * * @param port @ref IxAtmLogicalPort [in] - Value identifies the port from which the * rate details are requested. * * @param *txPortRate unsigned [out] - Pointer to a value * which will be filled with the value of the transmit port * rate specified in bits/second. * * @param *rxPortRate unsigned [out] - Pointer to a value * which will be filled with the value of the receive port * rate specified in bits/second. * * @return @li IX_SUCCESS : The information requested on the specified * port has been successfully supplied in the output. * * @return @li IX_ATMM_RET_INVALID_PORT : The port value indicated in the * input is not valid. The request is rejected. * * @return @li IX_ATMM_RET_INVALID_PARAM_PTR : A pointer parameter was * NULL. * * @return @li IX_FAIL : IxAtmm could not update the port because the * inputs are not understood, or the interface was called before * the port was initialized. */PUBLIC IX_STATUSixAtmmPortQuery (IxAtmLogicalPort port, unsigned *txPortRate, unsigned *rxPortRate);/** * @ingroup IxAtmm * * @fn ixAtmmPortEnable(IxAtmLogicalPort port) * * @brief The client call this interface to enable transmit for an ATM * port. At initialisation, all the ports are disabled. * * @param port @ref IxAtmLogicalPort [in] - Value identifies the port * * @return @li IX_SUCCESS : Transmission over this port is started. * * @return @li IX_FAIL : The port parameter is not valid, or the * port is already enabled * * @note - When a port is disabled, Rx and Tx VC Connect requests will fail * * @note - This function uses system resources and should not be used * inside an interrupt context. * * @sa ixAtmmPortDisable */PUBLIC IX_STATUSixAtmmPortEnable(IxAtmLogicalPort port);/** * @ingroup IxAtmm * * @fn ixAtmmPortDisable(IxAtmLogicalPort port) * * @brief The client call this interface to disable transmit for an ATM * port. At initialisation, all the ports are disabled. * * @param port @ref IxAtmLogicalPort [in] - Value identifies the port * * @return @li IX_SUCCESS : Transmission over this port is stopped. * * @return @li IX_FAIL : The port parameter is not valid, or the * port is already disabled * * @note - When a port is disabled, Rx and Tx VC Connect requests will fail * * @note - This function call does not stop RX traffic. It is supposed * that this function is invoked when a serious problem * is detected (e.g. physical layer broken). Then, the RX traffic * is not passing. * * @note - This function is blocking until the hw acknowledge that the * transmission is stopped. * * @note - This function uses system resources and should not be used * inside an interrupt context. * * @sa ixAtmmPortEnable */PUBLIC IX_STATUSixAtmmPortDisable(IxAtmLogicalPort port);/** * @ingroup IxAtmm * * @fn ixAtmmVcRegister (IxAtmLogicalPort port, IxAtmmVc *vcToAdd, IxAtmSchedulerVcId *vcId) * * @brief This interface is used to register an ATM Virtual * Connection on the specified ATM port. * * Each call to this interface registers a unidirectional virtual * connection with the parameters specified. If a bi-directional VC * is needed, the function should be called twice (once for each * direction, Tx & Rx) where the VPI and VCI and port parameters in * each call are identical. * * With the addition of each new VC to a port, a series of * callback functions are invoked by the IxAtmm component to notify * possible external components of the change. The callback functions * are registered using the @ref ixAtmmVcChangeCallbackRegister interface. * * The IxAtmSch component is notified of the registration of transmit * VCs. * * @param port @ref IxAtmLogicalPort [in] - Identifies port on which the specified VC is * to be registered. * * @param *vcToAdd @ref IxAtmmVc [in] - Pointer to an @ref IxAtmmVc structure * containing a description of the VC to be registered. The * client shall fill the vpi, vci and direction and relevant * trafficDesc members of this structure before calling this * function. * * @param *vcId @ref IxAtmSchedulerVcId [out] - Pointer to an integer value which is filled * with the per-port unique identifier value for this VC. * This identifier will be required when a request is * made to deregister or change this VC. VC identifiers * for transmit VCs will have a value between 0-43, * i.e. 32 data Tx VCs + 12 OAM Tx Port VCs. * Receive VCs will have a value between 44-66, * i.e. 32 data Rx VCs + 1 OAM Rx VC. * * @return @li IX_SUCCESS : The VC has been successfully registered on * this port. The VC is ready for a client to configure IxAtmdAcc * for receive and transmit operations on the VC. * @return @li IX_ATMM_RET_INVALID_PORT : The port value indicated in the * input is not valid or has not been initialized. The request * is rejected. * @return @li IX_ATMM_RET_INVALID_VC_DESCRIPTOR : The descriptor * pointed to by vcToAdd is invalid. The registration request * is rejected. * @return @li IX_ATMM_RET_VC_CONFLICT : The VC requested conflicts with * reserved VPI and/or VCI values or with another VC already activated * on this port. * @return @li IX_ATMM_RET_PORT_CAPACITY_IS_FULL : The VC cannot be * registered in the port becuase the port capacity is * insufficient to support the requested ATM traffic contract. * The registration request is rejected. * @return @li IX_ATMM_RET_INVALID_PARAM_PTR : A pointer parameter was * NULL. * * @warning IxAtmm has no capability of signaling or negotiating a virtual * connection. Negotiation of the admission of the VC to the network * is beyond the scope of this function. This is assumed to be * performed by the calling client, if appropriate, * before or after this function is called. */PUBLIC IX_STATUSixAtmmVcRegister (IxAtmLogicalPort port, IxAtmmVc *vcToAdd, IxAtmSchedulerVcId *vcId);/** * @ingroup IxAtmm * * @fn ixAtmmVcDeregister (IxAtmLogicalPort port, IxAtmSchedulerVcId vcId) * * @brief Function called by a client to deregister a VC from the * system. * * With the removal of each new VC from a port, a series of * registered callback functions are invoked by the IxAtmm component * to notify possible external components of the change. The callback * functions are registered using the @ref ixAtmmVcChangeCallbackRegister. * * The IxAtmSch component is notified of the removal of transmit VCs. * * @param port @ref IxAtmLogicalPort [in] - Identifies port on which the VC to be * removed is currently registered. * * @param vcId @ref IxAtmSchedulerVcId [in] - VC identifier value of the VC to * be deregistered. This value was supplied to the client when the VC was originally registered. This value can also be queried from the IxAtmm component through the @ref ixAtmmVcQuery * interface. * * @return @li IX_SUCCESS : The specified VC has been successfully * removed from this port. * @return @li IX_ATMM_RET_INVALID_PORT : The port value indicated in the * input is not valid or has not been initialized. The request * is rejected. * @return @li IX_FAIL : There is no registered VC associated with the * supplied identifier registered on this port. */PUBLIC IX_STATUSixAtmmVcDeregister (IxAtmLogicalPort port, IxAtmSchedulerVcId vcId);/** * @ingroup IxAtmm * * @fn ixAtmmVcQuery (IxAtmLogicalPort port, unsigned vpi, unsigned vci, IxAtmmVcDirection direction, IxAtmSchedulerVcId *vcId, IxAtmmVc *vcDesc) * * @brief This interface supplies information about an active VC on a * particular port when supplied with the VPI, VCI and * direction of that VC. * * @param port @ref IxAtmLogicalPort [in] - Identifies port on which the VC to be * queried is currently registered. * * @param vpi unsigned [in] - ATM VPI value of the requested VC. * * @param vci unsigned [in] - ATM VCI value of the requested VC. * * @param direction @ref IxAtmmVcDirection [in] - One of @ref * IX_ATMM_VC_DIRECTION_TX or @ref IX_ATMM_VC_DIRECTION_RX * indicating the direction (Tx or Rx) of the requested VC. * * @param *vcId @ref IxAtmSchedulerVcId [out] - Pointer to an integer value which will be * filled with the VC identifier value for the requested * VC (as returned by @ref ixAtmmVcRegister), if it * exists on this port. * * @param *vcDesc @ref IxAtmmVc [out] - Pointer to an @ref IxAtmmVc structure * which will be filled with the specific details of the * requested VC, if it exists on this port. * * @return @li IX_SUCCESS : The specified VC has been found on this port * and the requested details have been returned. * @return @li IX_ATMM_RET_INVALID_PORT : The port value indicated in the * input is not valid or has not been initialized. The request * is rejected. * @return @li IX_ATMM_RET_NO_SUCH_VC : No VC exists on the specified * port which matches the search criteria (VPI, VCI, direction) * given. No data is returned. * @return @li IX_ATMM_RET_INVALID_PARAM_PTR : A pointer parameter was * NULL. * */PUBLIC IX_STATUSixAtmmVcQuery (IxAtmLogicalPort port, unsigned vpi, unsigned vci, IxAtmmVcDirection direction, IxAtmSchedulerVcId *vcId, IxAtmmVc *vcDesc);/** * @ingroup IxAtmm * * @fn ixAtmmVcIdQuery (IxAtmLogicalPort port, IxAtmSchedulerVcId vcId, IxAtmmVc *vcDesc) * * @brief This interface supplies information about an active VC on a * particular port when supplied with a vcId for that VC. * * @param port @ref IxAtmLogicalPort [in] - Identifies port on which the VC to be * queried is currently registered. * * @param vcId @ref IxAtmSchedulerVcId [in] - Value returned by @ref ixAtmmVcRegister which * uniquely identifies the requested VC on this port. * * @param *vcDesc @ref IxAtmmVc [out] - Pointer to an @ref IxAtmmVc structure * which will be filled with the specific details of the * requested VC, if it exists on this port. * * @return @li IX_SUCCESS : The specified VC has been found on this port * and the requested details have been returned. * @return @li IX_ATMM_RET_INVALID_PORT : The port value indicated in the * input is not valid or has not been initialized. The request * is rejected. * @return @li IX_ATMM_RET_NO_SUCH_VC : No VC exists on the specified * port which matches the supplied identifier. No data is * returned. * @return @li IX_ATMM_RET_INVALID_PARAM_PTR : A pointer parameter was * NULL. */PUBLIC IX_STATUSixAtmmVcIdQuery (IxAtmLogicalPort port, IxAtmSchedulerVcId vcId, IxAtmmVc *vcDesc);/** * @ingroup IxAtmm * * @fn ixAtmmVcChangeCallbackRegister (IxAtmmVcChangeCallback callback) * * @brief This interface is invoked to supply a function to IxAtmm * which will be called to notify the client if a new VC is * registered with IxAtmm or an existing VC is removed. * * The callback, when invoked, will run within the context of the call * to @ref ixAtmmVcRegister or @ref ixAtmmVcDeregister which caused * the change of state. * * A maximum of 32 calbacks may be registered in with IxAtmm. * * @param callback @ref IxAtmmVcChangeCallback [in] - Callback which complies * with the @ref IxAtmmVcChangeCallback definition. This * function will be invoked by IxAtmm with the appropiate * parameters for the relevant VC when any VC has been * registered or deregistered with IxAtmm. * * @return @li IX_SUCCESS : The specified callback has been registered * successfully with IxAtmm and will be invoked when appropriate. * @return @li IX_FAIL : Either the supplied callback is invalid, or * IxAtmm has already registered 32 and connot accommodate * any further registrations of this type. The request is * rejected. * * @warning The client must not call either the @ref * ixAtmmVcRegister or @ref ixAtmmVcDeregister interfaces * from within the supplied callback function. */PUBLIC IX_STATUS ixAtmmVcChangeCallbackRegister (IxAtmmVcChangeCallback callback);/** * @ingroup IxAtmm * * @fn ixAtmmVcChangeCallbackDeregister (IxAtmmVcChangeCallback callback) * * @brief This interface is invoked to deregister a previously supplied * callback function. * * @param callback @ref IxAtmmVcChangeCallback [in] - Callback which complies * with the @ref IxAtmmVcChangeCallback definition. This * function will removed from the table of callbacks. * * @return @li IX_SUCCESS : The specified callback has been deregistered * successfully from IxAtmm. * @return @li IX_FAIL : Either the supplied callback is invalid, or * is not currently registered with IxAtmm. */PUBLIC IX_STATUSixAtmmVcChangeCallbackDeregister (IxAtmmVcChangeCallback callback);/** * @ingroup IxAtmm * * @fn ixAtmmUtopiaStatusShow (void) * * @brief Display utopia status counters * * @param "none" * * @return @li IX_SUCCESS : Show function was successful * @return @li IX_FAIL : Internal failure */PUBLIC IX_STATUSixAtmmUtopiaStatusShow (void);/** * @ingroup IxAtmm * * @fn ixAtmmUtopiaCfgShow (void) * * @brief Display utopia information(config registers and status registers) * * @param "none" * * @return @li IX_SUCCESS : Show function was successful * @return @li IX_FAIL : Internal failure */PUBLIC IX_STATUSixAtmmUtopiaCfgShow (void);#endif/* IXATMM_H *//** @} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -