Headerfile for nicdrv.c.
More...
#include <pthread.h>
Go to the source code of this file.
Classes |
struct | ec_stackT |
struct | ecx_portt |
struct | ecx_redportt |
Functions |
void | ec_setupheader (void *p) |
int | ecx_closenic (ecx_portt *port) |
int | ecx_getindex (ecx_portt *port) |
int | ecx_outframe (ecx_portt *port, int idx, int sock) |
int | ecx_outframe_red (ecx_portt *port, int idx) |
void | ecx_setbufstat (ecx_portt *port, int idx, int bufstat) |
int | ecx_setupnic (ecx_portt *port, const char *ifname, int secondary) |
int | ecx_srconfirm (ecx_portt *port, int idx, int timeout) |
int | ecx_waitinframe (ecx_portt *port, int idx, int timeout) |
Variables |
const uint16 | priMAC [3] |
const uint16 | secMAC [3] |
Detailed Description
Headerfile for nicdrv.c.
Definition in file nicdrv.h.
Function Documentation
Fill buffer with ethernet header structure. Destination MAC is allways broadcast. Ethertype is allways ETH_P_ECAT.
- Parameters:
-
Definition at line 222 of file nicdrv.c.
Close sockets used
- Parameters:
-
[in] | port | = port context struct |
- Returns:
- 0
Definition at line 207 of file nicdrv.c.
Get new frame identifier index and allocate corresponding rx buffer.
- Parameters:
-
[in] | port | = port context struct |
- Returns:
- new index.
Definition at line 239 of file nicdrv.c.
Transmit buffer over socket (non blocking).
- Parameters:
-
[in] | port | = port context struct |
[in] | idx | = index in tx buffer array |
[in] | stacknumber | = 0=Primary 1=Secondary stack |
- Returns:
- socket send result
Definition at line 291 of file nicdrv.c.
Transmit buffer over socket (non blocking).
- Parameters:
-
[in] | port | = port context struct |
[in] | idx | = index in tx buffer array |
- Returns:
- socket send result
Definition at line 316 of file nicdrv.c.
Set rx buffer status.
- Parameters:
-
[in] | port | = port context struct |
[in] | idx | = index in buffer array |
[in] | bufstat | = status to set |
Definition at line 278 of file nicdrv.c.
Basic setup to connect NIC to socket.
- Parameters:
-
[in] | port | = port context struct |
[in] | ifname | = Name of NIC device, f.e. "eth0" |
[in] | secondary | = if >0 then use secondary stack instead of primary |
- Returns:
- >0 if succeeded
Definition at line 116 of file nicdrv.c.
Blocking send and recieve frame function. Used for non processdata frames. A datagram is build into a frame and transmitted via this function. It waits for an answer and returns the workcounter. The function retries if time is left and the result is WKC=0 or no frame received.
The function calls ec_outframe_red() and ec_waitinframe_red().
- Parameters:
-
[in] | port | = port context struct |
[in] | idx | = index of frame |
[in] | timeout | = timeout in us |
- Returns:
- Workcounter or EC_NOFRAME
Definition at line 592 of file nicdrv.c.
Blocking receive frame function. Calls ec_waitinframe_red().
- Parameters:
-
[in] | port | = port context struct |
[in] | idx | = requested index of frame |
[in] | timeout | = timeout in us |
- Returns:
- Workcounter if a frame is found with corresponding index, otherwise EC_NOFRAME.
Definition at line 564 of file nicdrv.c.
Variable Documentation
Primary source MAC address used for EtherCAT. This address is not the MAC address used from the NIC. EtherCAT does not care about MAC addressing, but it is used here to differentiate the route the packet traverses through the EtherCAT segment. This is needed to find out the packet flow in redundant configurations.
Definition at line 101 of file nicdrv.c.
Secondary source MAC address used for EtherCAT.
Definition at line 103 of file nicdrv.c.