master/fsm_master.h
branchstable-1.3
changeset 1744 7bc131b92039
parent 1739 5fcbd29151d2
child 1746 72e7507b3f1b
--- a/master/fsm_master.h	Fri Aug 10 15:08:44 2007 +0000
+++ b/master/fsm_master.h	Fri Aug 10 15:27:08 2007 +0000
@@ -51,6 +51,23 @@
 
 /*****************************************************************************/
 
+/**
+ * EEPROM write request.
+ */
+
+typedef struct
+{
+    struct list_head list;
+    ec_slave_t *slave;
+    off_t offset;
+    size_t size;
+    const uint16_t *words;
+    ec_request_state_t state;
+}
+ec_eeprom_write_request_t;
+
+/*****************************************************************************/
+
 typedef struct ec_fsm_master ec_fsm_master_t; /**< \see ec_fsm_master */
 
 /**
@@ -64,13 +81,19 @@
     unsigned int retries; /**< retries on datagram timeout. */
 
     void (*state)(ec_fsm_master_t *); /**< master state function */
+    int idle; /**< state machine is in idle phase */
+    unsigned long scan_jiffies; /**< beginning of slave scanning */
     unsigned int slaves_responding; /**< number of responding slaves */
     unsigned int topology_change_pending; /**< bus topology changed */
     ec_slave_state_t slave_states; /**< states of responding slaves */
     unsigned int validate; /**< non-zero, if validation to do */
+    unsigned int tainted; /**< non-zero, if the current bus topology does
+                            not meet the initial conditions */
+    unsigned int config_error; /**< error during slave configuration */
     ec_slave_t *slave; /**< current slave */
+    ec_eeprom_write_request_t *eeprom_request; /**< EEPROM write request */
+    off_t eeprom_index; /**< index to EEPROM write request data */
     ec_sdo_request_t *sdo_request; /**< SDO request to process */
-    uint16_t sii_offset; 
 
     ec_fsm_slave_t fsm_slave; /**< slave state machine */
     ec_fsm_sii_t fsm_sii; /**< SII state machine */
@@ -84,8 +107,8 @@
 void ec_fsm_master_clear(ec_fsm_master_t *);
 
 int ec_fsm_master_exec(ec_fsm_master_t *);
-int ec_fsm_master_running(ec_fsm_master_t *);
-int ec_fsm_master_success(ec_fsm_master_t *);
+int ec_fsm_master_running(const ec_fsm_master_t *);
+int ec_fsm_master_idle(const ec_fsm_master_t *);
 
 /*****************************************************************************/