master/master.h
changeset 325 7833cf70c4f2
parent 306 45886de3db87
child 326 ddb48b173680
equal deleted inserted replaced
324:9aa51cbdbfae 325:7833cf70c4f2
    57 
    57 
    58 typedef enum
    58 typedef enum
    59 {
    59 {
    60     EC_MASTER_MODE_ORPHANED,
    60     EC_MASTER_MODE_ORPHANED,
    61     EC_MASTER_MODE_IDLE,
    61     EC_MASTER_MODE_IDLE,
    62     EC_MASTER_MODE_RUNNING
    62     EC_MASTER_MODE_OPERATION
    63 }
    63 }
    64 ec_master_mode_t;
    64 ec_master_mode_t;
    65 
    65 
    66 /*****************************************************************************/
    66 /*****************************************************************************/
    67 
    67 
   102     struct list_head datagram_queue; /**< datagram queue */
   102     struct list_head datagram_queue; /**< datagram queue */
   103     uint8_t datagram_index; /**< current datagram index */
   103     uint8_t datagram_index; /**< current datagram index */
   104 
   104 
   105     struct list_head domains; /**< list of domains */
   105     struct list_head domains; /**< list of domains */
   106 
   106 
   107     ec_datagram_t simple_datagram; /**< datagram structure for
       
   108                                       initialization */
       
   109     unsigned int timeout; /**< timeout in synchronous IO */
       
   110 
       
   111     int debug_level; /**< master debug level */
   107     int debug_level; /**< master debug level */
   112     ec_stats_t stats; /**< cyclic statistics */
   108     ec_stats_t stats; /**< cyclic statistics */
   113 
   109 
   114     struct workqueue_struct *workqueue; /**< master workqueue */
   110     struct workqueue_struct *workqueue; /**< master workqueue */
   115     struct work_struct idle_work; /**< free run work object */
   111     struct work_struct idle_work; /**< free run work object */
   143 void ec_master_eoe_stop(ec_master_t *);
   139 void ec_master_eoe_stop(ec_master_t *);
   144 
   140 
   145 // IO
   141 // IO
   146 void ec_master_receive(ec_master_t *, const uint8_t *, size_t);
   142 void ec_master_receive(ec_master_t *, const uint8_t *, size_t);
   147 void ec_master_queue_datagram(ec_master_t *, ec_datagram_t *);
   143 void ec_master_queue_datagram(ec_master_t *, ec_datagram_t *);
   148 int ec_master_simple_io(ec_master_t *, ec_datagram_t *);
       
   149 
   144 
   150 // slave management
   145 // slave management
   151 int ec_master_bus_scan(ec_master_t *);
   146 int ec_master_bus_scan(ec_master_t *);
   152 
   147 
   153 // misc.
   148 // misc.
       
   149 void ec_master_output_stats(ec_master_t *);
   154 void ec_master_clear_slaves(ec_master_t *);
   150 void ec_master_clear_slaves(ec_master_t *);
   155 void ec_sync_config(const ec_sync_t *, const ec_slave_t *, uint8_t *);
   151 
   156 void ec_eeprom_sync_config(const ec_eeprom_sync_t *, const ec_slave_t *,
   152 // other methods
   157                            uint8_t *);
   153 void ec_sync_config(const ec_sii_sync_t *, const ec_slave_t *, uint8_t *);
   158 void ec_fmmu_config(const ec_fmmu_t *, const ec_slave_t *, uint8_t *);
   154 void ec_fmmu_config(const ec_fmmu_t *, const ec_slave_t *, uint8_t *);
   159 void ec_master_output_stats(ec_master_t *);
   155 void ec_master_calc_addressing(ec_master_t *);
   160 
   156 
   161 /*****************************************************************************/
   157 /*****************************************************************************/
   162 
   158 
   163 #endif
   159 #endif