equal
deleted
inserted
replaced
57 ec_master_t *master /**< master owning the device */ |
57 ec_master_t *master /**< master owning the device */ |
58 ) |
58 ) |
59 { |
59 { |
60 device->master = master; |
60 device->master = master; |
61 |
61 |
62 #ifdef EC_DBG_IF |
62 #ifdef EC_DEBUG_IF |
63 if (ec_debug_init(&device->dbg)) { |
63 if (ec_debug_init(&device->dbg)) { |
64 EC_ERR("Failed to init debug device!\n"); |
64 EC_ERR("Failed to init debug device!\n"); |
65 goto out_return; |
65 goto out_return; |
66 } |
66 } |
67 #endif |
67 #endif |
68 |
68 |
69 if (!(device->tx_skb = dev_alloc_skb(ETH_FRAME_LEN))) { |
69 if (!(device->tx_skb = dev_alloc_skb(ETH_FRAME_LEN))) { |
70 EC_ERR("Error allocating device socket buffer!\n"); |
70 EC_ERR("Error allocating device socket buffer!\n"); |
71 #ifdef EC_DBG_IF |
71 #ifdef EC_DEBUG_IF |
72 goto out_debug; |
72 goto out_debug; |
73 #else |
73 #else |
74 goto out_return; |
74 goto out_return; |
75 #endif |
75 #endif |
76 } |
76 } |
82 memset(device->eth->h_dest, 0xFF, ETH_ALEN); |
82 memset(device->eth->h_dest, 0xFF, ETH_ALEN); |
83 |
83 |
84 ec_device_detach(device); // resets remaining fields |
84 ec_device_detach(device); // resets remaining fields |
85 return 0; |
85 return 0; |
86 |
86 |
87 #ifdef EC_DBG_IF |
87 #ifdef EC_DEBUG_IF |
88 out_debug: |
88 out_debug: |
89 ec_debug_clear(&device->dbg); |
89 ec_debug_clear(&device->dbg); |
90 #endif |
90 #endif |
91 out_return: |
91 out_return: |
92 return -1; |
92 return -1; |
100 |
100 |
101 void ec_device_clear(ec_device_t *device /**< EtherCAT device */) |
101 void ec_device_clear(ec_device_t *device /**< EtherCAT device */) |
102 { |
102 { |
103 if (device->open) ec_device_close(device); |
103 if (device->open) ec_device_close(device); |
104 dev_kfree_skb(device->tx_skb); |
104 dev_kfree_skb(device->tx_skb); |
105 #ifdef EC_DBG_IF |
105 #ifdef EC_DEBUG_IF |
106 ec_debug_clear(&device->dbg); |
106 ec_debug_clear(&device->dbg); |
107 #endif |
107 #endif |
108 } |
108 } |
109 |
109 |
110 /*****************************************************************************/ |
110 /*****************************************************************************/ |
232 if (unlikely(device->master->debug_level > 1)) { |
232 if (unlikely(device->master->debug_level > 1)) { |
233 EC_DBG("sending frame:\n"); |
233 EC_DBG("sending frame:\n"); |
234 ec_print_data(device->tx_skb->data + ETH_HLEN, size); |
234 ec_print_data(device->tx_skb->data + ETH_HLEN, size); |
235 } |
235 } |
236 |
236 |
237 #ifdef EC_DBG_IF |
237 #ifdef EC_DEBUG_IF |
238 ec_debug_send(&device->dbg, device->tx_skb->data, ETH_HLEN + size); |
238 ec_debug_send(&device->dbg, device->tx_skb->data, ETH_HLEN + size); |
239 #endif |
239 #endif |
240 |
240 |
241 // start sending |
241 // start sending |
242 device->dev->hard_start_xmit(device->tx_skb, device->dev); |
242 device->dev->hard_start_xmit(device->tx_skb, device->dev); |
281 EC_DBG("Received frame:\n"); |
281 EC_DBG("Received frame:\n"); |
282 ec_print_data_diff(device->tx_skb->data + ETH_HLEN, |
282 ec_print_data_diff(device->tx_skb->data + ETH_HLEN, |
283 data + ETH_HLEN, size - ETH_HLEN); |
283 data + ETH_HLEN, size - ETH_HLEN); |
284 } |
284 } |
285 |
285 |
286 #ifdef EC_DBG_IF |
286 #ifdef EC_DEBUG_IF |
287 ec_debug_send(&device->dbg, data, size); |
287 ec_debug_send(&device->dbg, data, size); |
288 #endif |
288 #endif |
289 |
289 |
290 ec_master_receive_datagrams(device->master, |
290 ec_master_receive_datagrams(device->master, |
291 data + ETH_HLEN, |
291 data + ETH_HLEN, |