diff -r 382bdb9138ec -r 767548c75bf3 master/device.c --- a/master/device.c Thu May 11 09:24:15 2006 +0000 +++ b/master/device.c Thu May 11 13:29:06 2006 +0000 @@ -61,9 +61,14 @@ device->open = 0; device->link_state = 0; // down + if (ec_debug_init(&device->dbg)) { + EC_ERR("Failed to init debug device!\n"); + goto out_return; + } + if (!(device->tx_skb = dev_alloc_skb(ETH_FRAME_LEN))) { EC_ERR("Error allocating device socket buffer!\n"); - return -1; + goto out_debug; } device->tx_skb->dev = net_dev; @@ -76,6 +81,11 @@ memset(eth->h_dest, 0xFF, net_dev->addr_len); return 0; + + out_debug: + ec_debug_clear(&device->dbg); + out_return: + return -1; } /*****************************************************************************/ @@ -88,6 +98,7 @@ { if (device->open) ec_device_close(device); if (device->tx_skb) dev_kfree_skb(device->tx_skb); + ec_debug_clear(&device->dbg); } /*****************************************************************************/ @@ -180,6 +191,8 @@ ec_print_data(device->tx_skb->data + ETH_HLEN, size); } + ec_debug_send(&device->dbg, device->tx_skb->data, ETH_HLEN + size); + // start sending device->dev->hard_start_xmit(device->tx_skb, device->dev); } @@ -210,16 +223,19 @@ */ void ecdev_receive(ec_device_t *device, /**< EtherCAT device */ - const void *data, /**< pointer to receibed data */ + const void *data, /**< pointer to received data */ size_t size /**< number of bytes received */ ) { if (unlikely(device->master->debug_level > 1)) { EC_DBG("Received frame:\n"); - ec_print_data_diff(device->tx_skb->data + ETH_HLEN, data, size); - } - - ec_master_receive(device->master, data, size); + ec_print_data_diff(device->tx_skb->data + ETH_HLEN, + data + ETH_HLEN, size - ETH_HLEN); + } + + ec_debug_send(&device->dbg, data, size); + + ec_master_receive(device->master, data + ETH_HLEN, size - ETH_HLEN); } /*****************************************************************************/