master/fsm_slave.c
changeset 1921 d9cf40facbc4
parent 1878 8f37abf260cf
child 1930 59a50053ccc6
--- a/master/fsm_slave.c	Mon May 03 10:13:25 2010 +0200
+++ b/master/fsm_slave.c	Mon May 03 18:07:57 2010 +0200
@@ -64,8 +64,7 @@
     fsm->datagram = datagram;
     fsm->datagram->data_size = 0;
 
-    if (slave->master->debug_level)
-        EC_DBG("Init FSM for slave %u...\n", slave->ring_position);
+    EC_SLAVE_DBG(slave, 1, "Init FSM.\n");
 
     fsm->state = ec_fsm_slave_state_idle;
 
@@ -119,10 +118,7 @@
         )
 {
     if (fsm->state == ec_fsm_slave_state_idle) {
-        if (fsm->slave->master->debug_level) {
-            EC_DBG("Slave %u ready for requests.\n",
-                    fsm->slave->ring_position);
-        }
+        EC_SLAVE_DBG(fsm->slave, 1, "Ready for requests.\n");
         fsm->state = ec_fsm_slave_state_ready;
     }
 }
@@ -173,7 +169,6 @@
         )
 {
     ec_slave_t *slave = fsm->slave;
-    ec_master_t *master = slave->master;
     ec_master_sdo_request_t *request, *next;
 
     // search the first external request to be processed
@@ -181,8 +176,8 @@
 
         list_del_init(&request->list); // dequeue
         if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
-            EC_WARN("Aborting SDO request, slave %u has ERROR.\n",
-                    slave->ring_position);
+            EC_SLAVE_WARN(slave, "Aborting SDO request,"
+                    " slave has error flag set.\n");
             request->req.state = EC_INT_REQUEST_FAILURE;
             wake_up(&slave->sdo_queue);
             fsm->sdo_request = NULL;
@@ -191,8 +186,7 @@
         }
 
         if (slave->current_state == EC_SLAVE_STATE_INIT) {
-            EC_WARN("Aborting SDO request, slave %u is in INIT.\n",
-                    slave->ring_position);
+            EC_SLAVE_WARN(slave, "Aborting SDO request, slave is in INIT.\n");
             request->req.state = EC_INT_REQUEST_FAILURE;
             wake_up(&slave->sdo_queue);
             fsm->sdo_request = NULL;
@@ -203,9 +197,7 @@
         request->req.state = EC_INT_REQUEST_BUSY;
 
         // Found pending SDO request. Execute it!
-        if (master->debug_level)
-            EC_DBG("Processing SDO request for slave %u...\n",
-                    slave->ring_position);
+        EC_SLAVE_DBG(slave, 1, "Processing SDO request...\n");
 
         // Start SDO transfer
         fsm->sdo_request = &request->req;
@@ -227,7 +219,6 @@
         )
 {
     ec_slave_t *slave = fsm->slave;
-    ec_master_t *master = slave->master;
     ec_sdo_request_t *request = fsm->sdo_request;
 
     if (ec_fsm_coe_exec(&fsm->fsm_coe))
@@ -236,8 +227,7 @@
         return;
     }
     if (!ec_fsm_coe_success(&fsm->fsm_coe)) {
-        EC_ERR("Failed to process SDO request for slave %u.\n",
-                fsm->slave->ring_position);
+        EC_SLAVE_ERR(slave, "Failed to process SDO request.\n");
         request->state = EC_INT_REQUEST_FAILURE;
         wake_up(&slave->sdo_queue);
         fsm->sdo_request = NULL;
@@ -245,9 +235,7 @@
         return;
     }
 
-    if (master->debug_level)
-        EC_DBG("Finished SDO request for slave %u.\n",
-                fsm->slave->ring_position);
+    EC_SLAVE_DBG(slave, 1, "Finished SDO request.\n");
 
     // SDO request finished
     request->state = EC_INT_REQUEST_SUCCESS;
@@ -268,14 +256,13 @@
         )
 {
     ec_slave_t *slave = fsm->slave;
-    ec_master_t *master = slave->master;
     ec_master_foe_request_t *request, *next;
 
     // search the first request to be processed
     list_for_each_entry_safe(request, next, &slave->foe_requests, list) {
         if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
-            EC_WARN("Aborting FOE request, slave %u has ERROR.\n",
-                    slave->ring_position);
+            EC_SLAVE_WARN(slave, "Aborting FOE request,"
+                    " slave has error flag set.\n");
             request->req.state = EC_INT_REQUEST_FAILURE;
             wake_up(&slave->sdo_queue);
             fsm->sdo_request = NULL;
@@ -285,9 +272,7 @@
         list_del_init(&request->list); // dequeue
         request->req.state = EC_INT_REQUEST_BUSY;
 
-        if (master->debug_level)
-            EC_DBG("Processing FOE request for slave %u.\n",
-                    slave->ring_position);
+        EC_SLAVE_DBG(slave, 1, "Processing FoE request.\n");
 
         fsm->foe_request = &request->req;
         fsm->state = ec_fsm_slave_state_foe_request;
@@ -308,7 +293,6 @@
         )
 {
     ec_slave_t *slave = fsm->slave;
-    ec_master_t *master = slave->master;
     ec_foe_request_t *request = fsm->foe_request;
 
     if (ec_fsm_foe_exec(&fsm->fsm_foe))
@@ -318,8 +302,7 @@
     }
 
     if (!ec_fsm_foe_success(&fsm->fsm_foe)) {
-        EC_ERR("Failed to handle FoE request to slave %u.\n",
-                slave->ring_position);
+        EC_SLAVE_ERR(slave, "Failed to handle FoE request.\n");
         request->state = EC_INT_REQUEST_FAILURE;
         wake_up(&slave->foe_queue);
         fsm->foe_request = NULL;
@@ -328,9 +311,8 @@
     }
 
     // finished transferring FoE
-    if (master->debug_level)
-        EC_DBG("Successfully transferred %u bytes of FoE data from/to"
-                " slave %u.\n", request->data_size, slave->ring_position);
+    EC_SLAVE_DBG(slave, 1, "Successfully transferred %u bytes of FoE"
+            " data.\n", request->data_size);
 
     request->state = EC_INT_REQUEST_SUCCESS;
     wake_up(&slave->foe_queue);
@@ -350,7 +332,6 @@
         )
 {
     ec_slave_t *slave = fsm->slave;
-    ec_master_t *master = slave->master;
     ec_master_soe_request_t *req, *next;
 
     // search the first request to be processed
@@ -358,8 +339,8 @@
 
         list_del_init(&req->list); // dequeue
         if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
-            EC_WARN("Aborting SoE request, slave %u has ERROR.\n",
-                    slave->ring_position);
+            EC_SLAVE_WARN(slave, "Aborting SoE request,"
+                    " slave has error flag set.\n");
             req->req.state = EC_INT_REQUEST_FAILURE;
             wake_up(&slave->soe_queue);
             fsm->state = ec_fsm_slave_state_idle;
@@ -367,8 +348,7 @@
         }
 
         if (slave->current_state == EC_SLAVE_STATE_INIT) {
-            EC_WARN("Aborting SoE request, slave %u is in INIT.\n",
-                    slave->ring_position);
+            EC_SLAVE_WARN(slave, "Aborting SoE request, slave is in INIT.\n");
             req->req.state = EC_INT_REQUEST_FAILURE;
             wake_up(&slave->soe_queue);
             fsm->state = ec_fsm_slave_state_idle;
@@ -378,9 +358,7 @@
         req->req.state = EC_INT_REQUEST_BUSY;
 
         // Found pending request. Execute it!
-        if (master->debug_level)
-            EC_DBG("Processing SoE request for slave %u...\n",
-                    slave->ring_position);
+        EC_SLAVE_DBG(slave, 1, "Processing SoE request...\n");
 
         // Start SoE transfer
         fsm->soe_request = &req->req;
@@ -402,7 +380,6 @@
         )
 {
     ec_slave_t *slave = fsm->slave;
-    ec_master_t *master = slave->master;
     ec_soe_request_t *request = fsm->soe_request;
 
     if (ec_fsm_soe_exec(&fsm->fsm_soe)) {
@@ -411,8 +388,7 @@
     }
 
     if (!ec_fsm_soe_success(&fsm->fsm_soe)) {
-        EC_ERR("Failed to process SoE request for slave %u.\n",
-                fsm->slave->ring_position);
+        EC_SLAVE_ERR(slave, "Failed to process SoE request.\n");
         request->state = EC_INT_REQUEST_FAILURE;
         wake_up(&slave->soe_queue);
         fsm->soe_request = NULL;
@@ -420,9 +396,7 @@
         return;
     }
 
-    if (master->debug_level)
-        EC_DBG("Finished SoE request for slave %u.\n",
-                fsm->slave->ring_position);
+    EC_SLAVE_DBG(slave, 1, "Finished SoE request.\n");
 
     // SoE request finished
     request->state = EC_INT_REQUEST_SUCCESS;