Main Page Modules Alphabetical List Data Structures File List Data Fields Globals # IxEthAccCodelet_p.h Go to the documentation of this file.
    00001
    00051 #ifndef IXETHACCCODELET_P_H
    00052 #define IXETHACCCODELET_P_H
    00053
    00054 #include "IxTypes.h"
    00055 #include "IxEthAcc.h"
    00056
    00058 #define IX_ETHACC_CODELET_QMR_PRIORITY 150
    00059
    00061 #define IX_ETHACC_CODELET_DB_PRIORITY 91
    00062
    00063
    00064 #ifdef __linux
    00065 #define IX_ETHACC_CODELET_USER_INSTRUCTION \
    00066     "Unload the codelet module to stop the operation ... \n"
    00067 #else
    00068 #define IX_ETHACC_CODELET_USER_INSTRUCTION \
    00069     "Press ESC at any time to stop the operation ... \n"
    00070 #endif
    00071
    00072
    00073 /* Buffer management utilities */
    00074
    00075
    00077 #define IX_ETHACC_CODELET_IS_Q_EMPTY(mbuf_list) (mbuf_list == NULL)
    00078
    00079
    00082 #define IX_ETHACC_CODELET_ADD_MBUF_TO_Q_TAIL(mbuf_list,mbuf_to_add)     \
    00083   {                                 \
    00084     int lockVal = ixOsServIntLock();                    \
    00085     IX_MBUF* mBufptr;                           \
    00086     mBufptr = mbuf_list;                        \
    00087     if ((mbuf_list) != NULL)                        \
    00088     {                                   \
    00089         while(IX_MBUF_NEXT_PKT_IN_CHAIN_PTR((mBufptr)) != NULL)     \
    00090         {                                                               \
    00091             mBufptr = (IX_MBUF_NEXT_PKT_IN_CHAIN_PTR((mBufptr)));   \
    00092         }                                                               \
    00093         IX_MBUF_NEXT_PKT_IN_CHAIN_PTR((mBufptr)) = (mbuf_to_add);   \
    00094         IX_MBUF_NEXT_PKT_IN_CHAIN_PTR((mbuf_to_add)) = NULL;        \
    00095     }                                   \
    00096     else                                \
    00097     {                                   \
    00098         (mbuf_list) = (mbuf_to_add);                    \
    00099         IX_MBUF_NEXT_PKT_IN_CHAIN_PTR((mbuf_to_add)) = NULL;        \
    00100     }                                   \
    00101     ixOsServIntUnlock(lockVal);                     \
    00102   }
    00103
    00104
    00106 #define IX_ETHACC_CODELET_REMOVE_MBUF_FROM_Q_HEAD(mbuf_list,mbuf_to_rem)\
    00107   {                                 \
    00108     int lockVal = ixOsServIntLock();                    \
    00109     if ((mbuf_list) != NULL )                       \
    00110     {                                   \
    00111         (mbuf_to_rem) = (mbuf_list);                    \
    00112         (mbuf_list) = (IX_MBUF_NEXT_PKT_IN_CHAIN_PTR((mbuf_to_rem)));   \
    00113     }                                   \
    00114     else                                \
    00115     {                                   \
    00116         (mbuf_to_rem) = NULL;                       \
    00117     }                                   \
    00118     ixOsServIntUnlock(lockVal);                     \
    00119   }
    00120
    00121
    00123 #define IX_ETHACC_IS_CODELET_INITIALISED()              \
    00124   {                                 \
    00125     if(!ixEthAccCodeletInitialised)                 \
    00126     {                                   \
    00127     printf("Ethernet Access Codelet not yet initialised!\n");   \
    00128     return (IX_FAIL);                       \
    00129     }                                   \
    00130   }
    00131
    00132
    00134 #define IX_ETHACC_CODELET_DATAGEN(compPtr)              \
    00135   {                                 \
    00136     int i = 0;                          \
    00137     srand(ixOsServTimestampGet());                  \
    00138     for(i=0; i<IX_ETHACC_CODELET_TXGEN_PCK_LEN; i++)        \
    00139      {                              \
    00140          compPtr[i] = rand();                   \
    00141      }                              \
    00142   }
    00143
    00144
    00146 #define IX_ETHACC_CODELET_DATA_VERIFY(m_data, compPtr)          \
    00147   {                                 \
    00148       if(memcmp(&compPtr[0], m_data, IX_ETHACC_CODELET_TXGEN_PCK_LEN) != 0)  \
    00149     {                               \
    00150         ixOsServLog(LOG_ERROR, "Mbuf data verification failed\n",   \
    00151                         0, 0, 0, 0, 0, 0);                              \
    00152     }                               \
    00153   }
    00154
    00155
    00157 typedef enum
    00158 {
    00159     IX_ETHACC_CODELET_RX_SINK = 1,
    00161     IX_ETHACC_CODELET_SW_LOOPBACK,
    00163     IX_ETHACC_CODELET_TXGEN_RXSINK,
    00166     IX_ETHACC_CODELET_PHY_LOOPBACK,
    00168     IX_ETHACC_CODELET_BRIDGE,
    00170     IX_ETHACC_CODELET_ETH_LEARNING
    00173 } IxEthAccCodeletOperation;
    00174
    00175
    00177 typedef struct
    00178 {
    00179     BOOL speed100;
    00180     BOOL fullDuplex;
    00181     BOOL autonegotiate;
    00182 } IxEthAccCodeletPhyConf;
    00183
    00212 IX_STATUS
    00213 ixEthAccCodeletInit(BOOL phyLoopback);
    00214
    00223 IX_STATUS
    00224 ixEthAccCodeletUninit(void);
    00225
    00237 IX_STATUS
    00238 ixEthAccCodeletRxSink(void);
    00239
    00251 IX_STATUS
    00252 ixEthAccCodeletSwLoopback(void);
    00253
    00254
    00269 IX_STATUS
    00270 ixEthAccCodeletTxGenRxSinkLoopback(void);
    00271
    00283 IX_STATUS
    00284 ixEthAccCodeletPhyLoopback(void);
    00285
    00297 IX_STATUS
    00298 ixEthAccCodeletBridge(void);
    00299
    00300
    00312 IX_STATUS
    00313 ixEthAccCodeletDBLearning(void);
    00314
    00315
    00323 void
    00324 ixEthAccCodeletShow(void);
    00325
    00326 #endif /* IXETHACCCODELET_P_H */
Automatically generated from sources. © Intel Corp. 2003