equal
deleted
inserted
replaced
22 * --- |
22 * --- |
23 * |
23 * |
24 * The license mentioned above concerns the source code only. Using the |
24 * The license mentioned above concerns the source code only. Using the |
25 * EtherCAT technology and brand is only permitted in compliance with the |
25 * EtherCAT technology and brand is only permitted in compliance with the |
26 * industrial property and similar rights of Beckhoff Automation GmbH. |
26 * industrial property and similar rights of Beckhoff Automation GmbH. |
|
27 * |
|
28 * vim: expandtab |
27 * |
29 * |
28 *****************************************************************************/ |
30 *****************************************************************************/ |
29 |
31 |
30 /** |
32 /** |
31 \file |
33 \file |
415 // get first request |
417 // get first request |
416 request = list_entry(slave->slave_sdo_requests.next, |
418 request = list_entry(slave->slave_sdo_requests.next, |
417 ec_master_sdo_request_t, list); |
419 ec_master_sdo_request_t, list); |
418 list_del_init(&request->list); // dequeue |
420 list_del_init(&request->list); // dequeue |
419 EC_INFO("Discarding SDO request," |
421 EC_INFO("Discarding SDO request," |
420 " slave %u does not exist anymore.\n", |
422 " slave %u does not exist anymore.\n", |
421 slave->ring_position); |
423 slave->ring_position); |
422 request->req.state = EC_INT_REQUEST_FAILURE; |
424 request->req.state = EC_INT_REQUEST_FAILURE; |
423 wake_up(&slave->sdo_queue); |
425 wake_up(&slave->sdo_queue); |
424 } |
426 } |
425 // FoE requests |
427 // FoE requests |
430 // get first request |
432 // get first request |
431 request = list_entry(slave->foe_requests.next, |
433 request = list_entry(slave->foe_requests.next, |
432 ec_master_foe_request_t, list); |
434 ec_master_foe_request_t, list); |
433 list_del_init(&request->list); // dequeue |
435 list_del_init(&request->list); // dequeue |
434 EC_INFO("Discarding FoE request," |
436 EC_INFO("Discarding FoE request," |
435 " slave %u does not exist anymore.\n", |
437 " slave %u does not exist anymore.\n", |
436 slave->ring_position); |
438 slave->ring_position); |
437 request->req.state = EC_INT_REQUEST_FAILURE; |
439 request->req.state = EC_INT_REQUEST_FAILURE; |
438 wake_up(&slave->foe_queue); |
440 wake_up(&slave->foe_queue); |
439 } |
441 } |
440 // SoE requests |
442 // SoE requests |
445 // get first request |
447 // get first request |
446 request = list_entry(slave->soe_requests.next, |
448 request = list_entry(slave->soe_requests.next, |
447 ec_master_soe_request_t, list); |
449 ec_master_soe_request_t, list); |
448 list_del_init(&request->list); // dequeue |
450 list_del_init(&request->list); // dequeue |
449 EC_INFO("Discarding SoE request," |
451 EC_INFO("Discarding SoE request," |
450 " slave %u does not exist anymore.\n", |
452 " slave %u does not exist anymore.\n", |
451 slave->ring_position); |
453 slave->ring_position); |
452 request->req.state = EC_INT_REQUEST_FAILURE; |
454 request->req.state = EC_INT_REQUEST_FAILURE; |
453 wake_up(&slave->soe_queue); |
455 wake_up(&slave->soe_queue); |
454 } |
456 } |
455 ec_slave_clear(slave); |
457 ec_slave_clear(slave); |