master/fsm_master.c
changeset 872 d4e0380d63b3
parent 861 6e3de145421a
child 880 f6212c54a5e3
--- a/master/fsm_master.c	Mon Mar 17 09:06:21 2008 +0000
+++ b/master/fsm_master.c	Mon Mar 17 09:38:48 2008 +0000
@@ -60,7 +60,7 @@
 void ec_fsm_master_state_configure_slave(ec_fsm_master_t *);
 void ec_fsm_master_state_clear_addresses(ec_fsm_master_t *);
 void ec_fsm_master_state_scan_slaves(ec_fsm_master_t *);
-void ec_fsm_master_state_write_eeprom(ec_fsm_master_t *);
+void ec_fsm_master_state_write_sii(ec_fsm_master_t *);
 void ec_fsm_master_state_sdodict(ec_fsm_master_t *);
 void ec_fsm_master_state_sdo_request(ec_fsm_master_t *);
 void ec_fsm_master_state_end(ec_fsm_master_t *);
@@ -313,50 +313,50 @@
 /*****************************************************************************/
 
 /**
- * Check for pending EEPROM write requests and process one.
- * \return non-zero, if an EEPROM write request is processed.
+ * Check for pending SII write requests and process one.
+ * \return non-zero, if an SII write request is processed.
  */
 
-int ec_fsm_master_action_process_eeprom(
+int ec_fsm_master_action_process_sii(
         ec_fsm_master_t *fsm /**< master state machine */
         )
 {
     ec_master_t *master = fsm->master;
-    ec_eeprom_write_request_t *request;
+    ec_sii_write_request_t *request;
     ec_slave_t *slave;
 
     // search the first request to be processed
     while (1) {
-        down(&master->eeprom_sem);
-        if (list_empty(&master->eeprom_requests)) {
-            up(&master->eeprom_sem);
+        down(&master->sii_sem);
+        if (list_empty(&master->sii_requests)) {
+            up(&master->sii_sem);
             break;
         }
         // get first request
-        request = list_entry(master->eeprom_requests.next,
-                ec_eeprom_write_request_t, list);
+        request = list_entry(master->sii_requests.next,
+                ec_sii_write_request_t, list);
         list_del_init(&request->list); // dequeue
         request->state = EC_REQUEST_BUSY;
-        up(&master->eeprom_sem);
+        up(&master->sii_sem);
 
         slave = request->slave;
         if (slave->online_state == EC_SLAVE_OFFLINE) {
-            EC_ERR("Discarding EEPROM data, slave %i offline.\n",
+            EC_ERR("Discarding SII data, slave %i offline.\n",
                     slave->ring_position);
             request->state = EC_REQUEST_FAILURE;
-            wake_up(&master->eeprom_queue);
+            wake_up(&master->sii_queue);
             continue;
         }
 
-        // found pending EEPROM write operation. execute it!
+        // found pending SII write operation. execute it!
         if (master->debug_level)
-            EC_DBG("Writing EEPROM data to slave %i...\n",
+            EC_DBG("Writing SII data to slave %i...\n",
                     slave->ring_position);
-        fsm->eeprom_request = request;
-        fsm->eeprom_index = 0;
+        fsm->sii_request = request;
+        fsm->sii_index = 0;
         ec_fsm_sii_write(&fsm->fsm_sii, request->slave, request->word_offset,
                 request->data, EC_FSM_SII_USE_CONFIGURED_ADDRESS);
-        fsm->state = ec_fsm_master_state_write_eeprom;
+        fsm->state = ec_fsm_master_state_write_sii;
         fsm->state(fsm); // execute immediately
         return 1;
     }
@@ -562,9 +562,9 @@
             return;
         }
 
-        // check for pending EEPROM write operations.
-        if (ec_fsm_master_action_process_eeprom(fsm))
-            return; // EEPROM write request found
+        // check for pending SII write operations.
+        if (ec_fsm_master_action_process_sii(fsm))
+            return; // SII write request found
     }
 
     fsm->state = ec_fsm_master_state_end;
@@ -971,49 +971,49 @@
 /*****************************************************************************/
 
 /**
-   Master state: WRITE EEPROM.
-*/
-
-void ec_fsm_master_state_write_eeprom(
+   Master state: WRITE SII.
+*/
+
+void ec_fsm_master_state_write_sii(
         ec_fsm_master_t *fsm /**< master state machine */)
 {
     ec_master_t *master = fsm->master;
-    ec_eeprom_write_request_t *request = fsm->eeprom_request;
+    ec_sii_write_request_t *request = fsm->sii_request;
     ec_slave_t *slave = request->slave;
 
     if (ec_fsm_sii_exec(&fsm->fsm_sii)) return;
 
     if (!ec_fsm_sii_success(&fsm->fsm_sii)) {
         slave->error_flag = 1;
-        EC_ERR("Failed to write EEPROM data to slave %i.\n",
+        EC_ERR("Failed to write SII data to slave %i.\n",
                 slave->ring_position);
         request->state = EC_REQUEST_FAILURE;
-        wake_up(&master->eeprom_queue);
-        fsm->state = ec_fsm_master_state_error;
-        return;
-    }
-
-    fsm->eeprom_index++;
-    if (fsm->eeprom_index < request->word_size) {
+        wake_up(&master->sii_queue);
+        fsm->state = ec_fsm_master_state_error;
+        return;
+    }
+
+    fsm->sii_index++;
+    if (fsm->sii_index < request->word_size) {
         ec_fsm_sii_write(&fsm->fsm_sii, slave,
-                request->word_offset + fsm->eeprom_index,
-                request->data + fsm->eeprom_index * 2,
+                request->word_offset + fsm->sii_index,
+                request->data + fsm->sii_index * 2,
                 EC_FSM_SII_USE_CONFIGURED_ADDRESS);
         ec_fsm_sii_exec(&fsm->fsm_sii); // execute immediately
         return;
     }
 
-    // finished writing EEPROM
+    // finished writing SII
     if (master->debug_level)
-        EC_DBG("Finished writing %u words of EEPROM data to slave %u.\n",
+        EC_DBG("Finished writing %u words of SII data to slave %u.\n",
                 request->word_size, slave->ring_position);
     request->state = EC_REQUEST_SUCCESS;
-    wake_up(&master->eeprom_queue);
-
-    // TODO: Evaluate new EEPROM contents!
-
-    // check for another EEPROM write request
-    if (ec_fsm_master_action_process_eeprom(fsm))
+    wake_up(&master->sii_queue);
+
+    // TODO: Evaluate new SII contents!
+
+    // check for another SII write request
+    if (ec_fsm_master_action_process_sii(fsm))
         return; // processing another request
 
     fsm->state = ec_fsm_master_state_end;