master/master.h
changeset 334 2be97e069602
parent 332 e16093374dfd
child 335 1e37c856b74e
equal deleted inserted replaced
333:2b15335f9f35 334:2be97e069602
    95     unsigned int reserved; /**< non-zero, if the master is reserved for RT */
    95     unsigned int reserved; /**< non-zero, if the master is reserved for RT */
    96     unsigned int index; /**< master index */
    96     unsigned int index; /**< master index */
    97 
    97 
    98     struct kobject kobj; /**< kobject */
    98     struct kobject kobj; /**< kobject */
    99 
    99 
       
   100     ec_device_t *device; /**< EtherCAT device */
       
   101 
       
   102     ec_fsm_t fsm; /**< master state machine */
       
   103     ec_master_mode_t mode; /**< master mode */
       
   104 
   100     struct list_head slaves; /**< list of slaves on the bus */
   105     struct list_head slaves; /**< list of slaves on the bus */
   101     unsigned int slave_count; /**< number of slaves on the bus */
   106     unsigned int slave_count; /**< number of slaves on the bus */
   102 
       
   103     ec_device_t *device; /**< EtherCAT device */
       
   104 
   107 
   105     struct list_head datagram_queue; /**< datagram queue */
   108     struct list_head datagram_queue; /**< datagram queue */
   106     uint8_t datagram_index; /**< current datagram index */
   109     uint8_t datagram_index; /**< current datagram index */
   107 
   110 
   108     struct list_head domains; /**< list of domains */
   111     struct list_head domains; /**< list of domains */
   110     int debug_level; /**< master debug level */
   113     int debug_level; /**< master debug level */
   111     ec_stats_t stats; /**< cyclic statistics */
   114     ec_stats_t stats; /**< cyclic statistics */
   112 
   115 
   113     struct workqueue_struct *workqueue; /**< master workqueue */
   116     struct workqueue_struct *workqueue; /**< master workqueue */
   114     struct work_struct idle_work; /**< free run work object */
   117     struct work_struct idle_work; /**< free run work object */
   115     ec_fsm_t fsm; /**< master state machine */
   118     uint32_t idle_cycle_time; /**< Idle cycle time */
   116     ec_master_mode_t mode; /**< master mode */
       
   117 
   119 
   118     struct timer_list eoe_timer; /**< EoE timer object */
   120     struct timer_list eoe_timer; /**< EoE timer object */
       
   121     uint32_t eoe_cycle_time; /**< EoE cycle time */
   119     unsigned int eoe_running; /**< non-zero, if EoE processing is active. */
   122     unsigned int eoe_running; /**< non-zero, if EoE processing is active. */
   120     unsigned int eoe_checked; /**< non-zero, if EoE processing is not
   123     unsigned int eoe_checked; /**< non-zero, if EoE processing is not
   121                                  necessary. */
   124                                  necessary. */
   122     struct list_head eoe_handlers; /**< Ethernet-over-EtherCAT handlers */
   125     struct list_head eoe_handlers; /**< Ethernet-over-EtherCAT handlers */
       
   126 
   123     spinlock_t internal_lock; /**< spinlock used in idle mode */
   127     spinlock_t internal_lock; /**< spinlock used in idle mode */
   124     int (*request_cb)(void *); /**< lock request callback */
   128     int (*request_cb)(void *); /**< lock request callback */
   125     void (*release_cb)(void *); /**< lock release callback */
   129     void (*release_cb)(void *); /**< lock release callback */
   126     void *cb_data; /**< data parameter of locking callbacks */
   130     void *cb_data; /**< data parameter of locking callbacks */
   127 
   131