rtk/nicdrv.h
Go to the documentation of this file.
1 /*
2  * Simple Open EtherCAT Master Library
3  *
4  * File : nicdrv.h
5  * Version : 1.3.0
6  * Date : 24-02-2013
7  * Copyright (C) 2005-2013 Speciaal Machinefabriek Ketels v.o.f.
8  * Copyright (C) 2005-2013 Arthur Ketels
9  * Copyright (C) 2008-2009 TU/e Technische Universiteit Eindhoven
10  *
11  * SOEM is free software; you can redistribute it and/or modify it under
12  * the terms of the GNU General Public License version 2 as published by the Free
13  * Software Foundation.
14  *
15  * SOEM is distributed in the hope that it will be useful, but WITHOUT ANY
16  * WARRANTY; without even the implied warranty of MERCHANTABILITY or
17  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18  * for more details.
19  *
20  * As a special exception, if other files instantiate templates or use macros
21  * or inline functions from this file, or you compile this file and link it
22  * with other works to produce a work based on this file, this file does not
23  * by itself cause the resulting work to be covered by the GNU General Public
24  * License. However the source code for this file must still be made available
25  * in accordance with section (3) of the GNU General Public License.
26  *
27  * This exception does not invalidate any other reasons why a work based on
28  * this file might be covered by the GNU General Public License.
29  *
30  * The EtherCAT Technology, the trade name and logo "EtherCAT" are the intellectual
31  * property of, and protected by Beckhoff Automation GmbH. You can use SOEM for
32  * the sole purpose of creating, using and/or selling or otherwise distributing
33  * an EtherCAT network master provided that an EtherCAT Master License is obtained
34  * from Beckhoff Automation GmbH.
35  *
36  * In case you did not receive a copy of the EtherCAT Master License along with
37  * SOEM write to Beckhoff Automation GmbH, Eiserstraße 5, D-33415 Verl, Germany
38  * (www.beckhoff.com).
39  */
40 
46 #ifndef _nicdrvh_
47 #define _nicdrvh_
48 
50 typedef struct
51 {
53  int *sock;
55  ec_bufT (*txbuf)[EC_MAXBUF];
57  int (*txbuflength)[EC_MAXBUF];
59  ec_bufT *tempbuf;
61  ec_bufT (*rxbuf)[EC_MAXBUF];
63  int (*rxbufstat)[EC_MAXBUF];
65  int (*rxsa)[EC_MAXBUF];
66 } ec_stackT;
67 
69 typedef struct
70 {
71  ec_stackT stack;
72  int sockhandle;
74  ec_bufT rxbuf[EC_MAXBUF];
76  int rxbufstat[EC_MAXBUF];
78  int rxsa[EC_MAXBUF];
80  ec_bufT tempinbuf;
81 } ecx_redportt;
82 
84 typedef struct
85 {
86  ec_stackT stack;
87  int sockhandle;
89  ec_bufT rxbuf[EC_MAXBUF];
91  int rxbufstat[EC_MAXBUF];
93  int rxsa[EC_MAXBUF];
95  ec_bufT tempinbuf;
97  int tempinbufs;
99  ec_bufT txbuf[EC_MAXBUF];
101  int txbuflength[EC_MAXBUF];
103  ec_bufT txbuf2;
105  int txbuflength2;
107  int lastidx;
109  int redstate;
111  ecx_redportt *redport;
112  mtx_t * getindex_mutex;
113  mtx_t * tx_mutex;
114  mtx_t * rx_mutex;
115 } ecx_portt;
116 
117 extern const uint16 priMAC[3];
118 extern const uint16 secMAC[3];
119 
120 #ifdef EC_VER1
121 extern ecx_portt ecx_port;
122 extern ecx_redportt ecx_redport;
123 
124 int ec_setupnic(const char * ifname, int secondary);
125 int ec_closenic(void);
126 void ec_setbufstat(int idx, int bufstat);
127 int ec_getindex(void);
128 int ec_outframe(int idx, int sock);
129 int ec_outframe_red(int idx);
130 int ec_waitinframe(int idx, int timeout);
131 int ec_srconfirm(int idx,int timeout);
132 #endif
133 
134 void ec_setupheader(void *p);
135 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
136 int ecx_closenic(ecx_portt *port);
137 void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
138 int ecx_getindex(ecx_portt *port);
139 int ecx_outframe(ecx_portt *port, int idx, int sock);
140 int ecx_outframe_red(ecx_portt *port, int idx);
141 int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
142 int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
143 
144 #endif
void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
Definition: linux/nicdrv.c:278
int ecx_getindex(ecx_portt *port)
Definition: linux/nicdrv.c:239
const uint16 priMAC[3]
Definition: linux/nicdrv.c:101
#define EC_MAXBUF
Definition: ethercattype.h:88
mtx_t * rx_mutex
Definition: rtk/nicdrv.h:114
uint16_t uint16
Definition: osal.h:34
void ec_setupheader(void *p)
Definition: linux/nicdrv.c:222
mtx_t * getindex_mutex
Definition: rtk/nicdrv.h:112
int ecx_setupnic(ecx_portt *port, const char *ifname, int secondary)
Definition: linux/nicdrv.c:116
mtx_t * tx_mutex
Definition: rtk/nicdrv.h:113
int ecx_outframe(ecx_portt *port, int idx, int sock)
Definition: linux/nicdrv.c:291
int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
Definition: linux/nicdrv.c:592
uint8 ec_bufT[EC_BUFSIZE]
Definition: ethercattype.h:111
const uint16 secMAC[3]
Definition: linux/nicdrv.c:103
int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
Definition: linux/nicdrv.c:564
int ecx_outframe_red(ecx_portt *port, int idx)
Definition: linux/nicdrv.c:316
int ecx_closenic(ecx_portt *port)
Definition: linux/nicdrv.c:207


youbot_driver
Author(s): Jan Paulus
autogenerated on Mon Jun 10 2019 15:46:24