Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00046 #ifndef _nicdrvh_
00047 #define _nicdrvh_
00048
00049 #ifdef __cplusplus
00050 extern "C"
00051 {
00052 #endif
00053
00054 #include <pthread.h>
00055
00057 typedef struct
00058 {
00060 int *sock;
00062 ec_bufT (*txbuf)[EC_MAXBUF];
00064 int (*txbuflength)[EC_MAXBUF];
00066 ec_bufT *tempbuf;
00068 ec_bufT (*rxbuf)[EC_MAXBUF];
00070 int (*rxbufstat)[EC_MAXBUF];
00072 int (*rxsa)[EC_MAXBUF];
00073 } ec_stackT;
00074
00076 typedef struct
00077 {
00078 ec_stackT stack;
00079 int sockhandle;
00081 ec_bufT rxbuf[EC_MAXBUF];
00083 int rxbufstat[EC_MAXBUF];
00085 int rxsa[EC_MAXBUF];
00087 ec_bufT tempinbuf;
00088 } ecx_redportt;
00089
00091 typedef struct
00092 {
00093 ec_stackT stack;
00094 int sockhandle;
00096 ec_bufT rxbuf[EC_MAXBUF];
00098 int rxbufstat[EC_MAXBUF];
00100 int rxsa[EC_MAXBUF];
00102 ec_bufT tempinbuf;
00104 int tempinbufs;
00106 ec_bufT txbuf[EC_MAXBUF];
00108 int txbuflength[EC_MAXBUF];
00110 ec_bufT txbuf2;
00112 int txbuflength2;
00114 int lastidx;
00116 int redstate;
00118 ecx_redportt *redport;
00119 pthread_mutex_t getindex_mutex;
00120 pthread_mutex_t tx_mutex;
00121 pthread_mutex_t rx_mutex;
00122 } ecx_portt;
00123
00124 extern const uint16 priMAC[3];
00125 extern const uint16 secMAC[3];
00126
00127 #ifdef EC_VER1
00128 extern ecx_portt ecx_port;
00129 extern ecx_redportt ecx_redport;
00130
00131 int ec_setupnic(const char * ifname, int secondary);
00132 int ec_closenic(void);
00133 void ec_setbufstat(int idx, int bufstat);
00134 int ec_getindex(void);
00135 int ec_outframe(int idx, int sock);
00136 int ec_outframe_red(int idx);
00137 int ec_waitinframe(int idx, int timeout);
00138 int ec_srconfirm(int idx,int timeout);
00139 #endif
00140
00141 void ec_setupheader(void *p);
00142 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
00143 int ecx_closenic(ecx_portt *port);
00144 void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
00145 int ecx_getindex(ecx_portt *port);
00146 int ecx_outframe(ecx_portt *port, int idx, int sock);
00147 int ecx_outframe_red(ecx_portt *port, int idx);
00148 int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
00149 int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
00150
00151 #ifdef __cplusplus
00152 }
00153 #endif
00154
00155 #endif