00001
00058 #ifndef IXATMM_H
00059 #define IXATMM_H
00060
00061
00062
00063
00064 #include "IxAtmSch.h"
00065 #include "IxTypes.h"
00066
00067
00068
00069
00070
00076 #define IX_ATMM_RET_ALREADY_INITIALIZED 2
00077
00082 #define IX_ATMM_RET_INVALID_PORT 3
00083
00088 #define IX_ATMM_RET_INVALID_VC_DESCRIPTOR 4
00089
00095 #define IX_ATMM_RET_VC_CONFLICT 5
00096
00103 #define IX_ATMM_RET_PORT_CAPACITY_IS_FULL 6
00104
00110 #define IX_ATMM_RET_NO_SUCH_VC 7
00111
00116 #define IX_ATMM_RET_INVALID_VC_ID 8
00117
00122 #define IX_ATMM_RET_INVALID_PARAM_PTR 9
00123
00128 #define IX_ATMM_UTOPIA_SPHY_ADDR 31
00129
00130
00131
00132
00133
00136 typedef enum
00137 {
00138 IX_ATMM_VC_DIRECTION_TX=0,
00139 IX_ATMM_VC_DIRECTION_RX,
00140 IX_ATMM_VC_DIRECTION_INVALID
00141 } IxAtmmVcDirection;
00142
00146 typedef enum
00147 {
00148 IX_ATMM_VC_CHANGE_EVENT_REGISTER=0,
00149 IX_ATMM_VC_CHANGE_EVENT_DEREGISTER,
00150 IX_ATMM_VC_CHANGE_EVENT_INVALID
00151 } IxAtmmVcChangeEvent;
00152
00156 typedef enum
00157 {
00158 IX_ATMM_UTOPIA_LOOPBACK_DISABLED=0,
00159 IX_ATMM_UTOPIA_LOOPBACK_ENABLED,
00160 IX_ATMM_UTOPIA_LOOPBACK_INVALID
00161 } IxAtmmUtopiaLoopbackMode;
00162
00166 typedef struct {
00167 unsigned vpi;
00168 unsigned vci;
00169 IxAtmmVcDirection direction;
00173 IxAtmTrafficDescriptor trafficDesc;
00174 } IxAtmmVc;
00175
00176
00180 typedef enum
00181 {
00182 IX_ATMM_MPHY_MODE = 0,
00183 IX_ATMM_SPHY_MODE,
00184 IX_ATMM_PHY_MODE_INVALID
00185 } IxAtmmPhyMode;
00186
00187
00191 typedef struct {
00192 unsigned reserved_1:11;
00193 unsigned UtopiaTxPhyAddr:5;
00197 unsigned reserved_2:11;
00198 unsigned UtopiaRxPhyAddr:5;
00202 } IxAtmmPortCfg;
00203
00219 typedef void (*IxAtmmVcChangeCallback) (IxAtmmVcChangeEvent eventType,
00220 IxAtmLogicalPort port,
00221 const IxAtmmVc* vcChanged);
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00253 IX_STATUS
00254 ixAtmmInit (void);
00255
00306 IX_STATUS
00307 ixAtmmUtopiaInit (unsigned numPorts,
00308 IxAtmmPhyMode phyMode,
00309 IxAtmmPortCfg portCfgs[],
00310 IxAtmmUtopiaLoopbackMode loopbackMode);
00311
00312
00372 IX_STATUS
00373 ixAtmmPortInitialize (IxAtmLogicalPort port,
00374 unsigned txPortRate,
00375 unsigned rxPortRate);
00376
00409 IX_STATUS
00410 ixAtmmPortModify (IxAtmLogicalPort port,
00411 unsigned txPortRate,
00412 unsigned rxPortRate);
00413
00449 IX_STATUS
00450 ixAtmmPortQuery (IxAtmLogicalPort port,
00451 unsigned *txPortRate,
00452 unsigned *rxPortRate);
00453
00475 IX_STATUS
00476 ixAtmmPortEnable(IxAtmLogicalPort port);
00477
00507 IX_STATUS
00508 ixAtmmPortDisable(IxAtmLogicalPort port);
00509
00577 IX_STATUS
00578 ixAtmmVcRegister (IxAtmLogicalPort port,
00579 IxAtmmVc *vcToAdd,
00580 IxAtmSchedulerVcId *vcId);
00581
00613 IX_STATUS
00614 ixAtmmVcDeregister (IxAtmLogicalPort port, IxAtmSchedulerVcId vcId);
00615
00662 IX_STATUS
00663 ixAtmmVcQuery (IxAtmLogicalPort port,
00664 unsigned vpi,
00665 unsigned vci,
00666 IxAtmmVcDirection direction,
00667 IxAtmSchedulerVcId *vcId,
00668 IxAtmmVc *vcDesc);
00669
00670
00700 IX_STATUS
00701 ixAtmmVcIdQuery (IxAtmLogicalPort port, IxAtmSchedulerVcId vcId, IxAtmmVc *vcDesc);
00702
00734 IX_STATUS ixAtmmVcChangeCallbackRegister (IxAtmmVcChangeCallback callback);
00735
00736
00754 IX_STATUS
00755 ixAtmmVcChangeCallbackDeregister (IxAtmmVcChangeCallback callback);
00756
00769 IX_STATUS
00770 ixAtmmUtopiaStatusShow (void);
00771
00784 IX_STATUS
00785 ixAtmmUtopiaCfgShow (void);
00786
00787 #endif
00788
00789