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 |