31 { |
33 { |
32 ec_master_t *master; /**< EtherCAT-Master */ |
34 ec_master_t *master; /**< EtherCAT-Master */ |
33 struct net_device *dev; /**< Zeiger auf das reservierte net_device */ |
35 struct net_device *dev; /**< Zeiger auf das reservierte net_device */ |
34 uint8_t open; /**< Das net_device ist geoeffnet. */ |
36 uint8_t open; /**< Das net_device ist geoeffnet. */ |
35 struct sk_buff *tx_skb; /**< Zeiger auf Transmit-Socketbuffer */ |
37 struct sk_buff *tx_skb; /**< Zeiger auf Transmit-Socketbuffer */ |
36 unsigned long tx_time; /**< Zeit des letzten Sendens */ |
38 ec_isr_t isr; /**< Adresse der ISR */ |
37 unsigned long rx_time; /**< Zeit des letzten Empfangs */ |
|
38 ec_device_state_t state; /**< Zustand des Gerätes */ |
|
39 uint8_t rx_data[EC_MAX_FRAME_SIZE]; /**< Speicher für empfangene Rahmen */ |
|
40 size_t rx_data_size; /**< Länge des empfangenen Rahmens */ |
|
41 irqreturn_t (*isr)(int, void *, struct pt_regs *); /**< Adresse der ISR */ |
|
42 struct module *module; /**< Zeiger auf das Modul, das das Gerät zur |
39 struct module *module; /**< Zeiger auf das Modul, das das Gerät zur |
43 Verfügung stellt. */ |
40 Verfügung stellt. */ |
44 uint8_t error_reported; /**< Zeigt an, ob ein Fehler im zyklischen Code |
|
45 bereits gemeldet wurde. */ |
|
46 uint8_t link_state; /**< Verbindungszustand */ |
41 uint8_t link_state; /**< Verbindungszustand */ |
47 }; |
42 }; |
48 |
43 |
49 /*****************************************************************************/ |
44 /*****************************************************************************/ |
50 |
45 |
51 int ec_device_init(ec_device_t *, ec_master_t *); |
46 int ec_device_init(ec_device_t *, ec_master_t *, struct net_device *, |
|
47 ec_isr_t, struct module *); |
52 void ec_device_clear(ec_device_t *); |
48 void ec_device_clear(ec_device_t *); |
53 |
49 |
54 int ec_device_open(ec_device_t *); |
50 int ec_device_open(ec_device_t *); |
55 int ec_device_close(ec_device_t *); |
51 int ec_device_close(ec_device_t *); |
56 |
52 |
57 void ec_device_call_isr(ec_device_t *); |
53 void ec_device_call_isr(ec_device_t *); |
58 uint8_t *ec_device_prepare(ec_device_t *); |
54 uint8_t *ec_device_tx_data(ec_device_t *); |
59 void ec_device_send(ec_device_t *, size_t); |
55 void ec_device_send(ec_device_t *, size_t); |
60 unsigned int ec_device_received(const ec_device_t *); |
|
61 uint8_t *ec_device_data(ec_device_t *); |
|
62 |
|
63 void ec_device_debug(const ec_device_t *); |
|
64 void ec_data_print(const uint8_t *, size_t); |
|
65 void ec_data_print_diff(const uint8_t *, const uint8_t *, size_t); |
|
66 |
56 |
67 /*****************************************************************************/ |
57 /*****************************************************************************/ |
68 |
58 |
69 #endif |
59 #endif |
70 |
60 |