65 #define EC_IOCTL_SLAVE_STATE EC_IOW(0x0a, ec_ioctl_slave_state_t) |
65 #define EC_IOCTL_SLAVE_STATE EC_IOW(0x0a, ec_ioctl_slave_state_t) |
66 #define EC_IOCTL_SDO EC_IOWR(0x0b, ec_ioctl_sdo_t) |
66 #define EC_IOCTL_SDO EC_IOWR(0x0b, ec_ioctl_sdo_t) |
67 #define EC_IOCTL_SDO_ENTRY EC_IOWR(0x0c, ec_ioctl_sdo_entry_t) |
67 #define EC_IOCTL_SDO_ENTRY EC_IOWR(0x0c, ec_ioctl_sdo_entry_t) |
68 #define EC_IOCTL_SDO_UPLOAD EC_IOWR(0x0d, ec_ioctl_sdo_upload_t) |
68 #define EC_IOCTL_SDO_UPLOAD EC_IOWR(0x0d, ec_ioctl_sdo_upload_t) |
69 #define EC_IOCTL_SDO_DOWNLOAD EC_IOW(0x0e, ec_ioctl_sdo_download_t) |
69 #define EC_IOCTL_SDO_DOWNLOAD EC_IOW(0x0e, ec_ioctl_sdo_download_t) |
70 |
70 #define EC_IOCTL_SII_READ EC_IOWR(0x0f, ec_ioctl_sii_read_t) |
71 /*****************************************************************************/ |
71 |
72 |
72 /*****************************************************************************/ |
73 typedef struct { |
73 |
74 unsigned int slave_count; |
74 typedef struct { |
|
75 uint32_t slave_count; |
75 uint8_t mode; |
76 uint8_t mode; |
76 struct { |
77 struct { |
77 uint8_t address[6]; |
78 uint8_t address[6]; |
78 uint8_t attached; |
79 uint8_t attached; |
79 unsigned int tx_count; |
80 uint32_t tx_count; |
80 unsigned int rx_count; |
81 uint32_t rx_count; |
81 } devices[2]; |
82 } devices[2]; |
82 } ec_ioctl_master_t; |
83 } ec_ioctl_master_t; |
83 |
84 |
84 /*****************************************************************************/ |
85 /*****************************************************************************/ |
85 |
86 |
86 #define EC_IOCTL_SLAVE_NAME_SIZE 104 |
87 #define EC_IOCTL_SLAVE_NAME_SIZE 100 |
87 |
88 |
88 typedef struct { |
89 typedef struct { |
89 // input |
90 // input |
90 uint16_t position; |
91 uint16_t position; |
91 |
92 |
96 uint32_t serial_number; |
97 uint32_t serial_number; |
97 uint16_t alias; |
98 uint16_t alias; |
98 uint8_t state; |
99 uint8_t state; |
99 uint8_t sync_count; |
100 uint8_t sync_count; |
100 uint16_t sdo_count; |
101 uint16_t sdo_count; |
|
102 uint32_t sii_nwords; |
101 char name[EC_IOCTL_SLAVE_NAME_SIZE]; |
103 char name[EC_IOCTL_SLAVE_NAME_SIZE]; |
102 } ec_ioctl_slave_t; |
104 } ec_ioctl_slave_t; |
103 |
105 |
104 /*****************************************************************************/ |
106 /*****************************************************************************/ |
105 |
107 |
106 typedef struct { |
108 typedef struct { |
107 // inputs |
109 // inputs |
108 uint16_t slave_position; |
110 uint16_t slave_position; |
109 unsigned int sync_index; |
111 uint32_t sync_index; |
110 |
112 |
111 // outputs |
113 // outputs |
112 uint16_t physical_start_address; |
114 uint16_t physical_start_address; |
113 uint16_t default_size; |
115 uint16_t default_size; |
114 uint8_t control_register; |
116 uint8_t control_register; |
154 |
156 |
155 /*****************************************************************************/ |
157 /*****************************************************************************/ |
156 |
158 |
157 typedef struct { |
159 typedef struct { |
158 // inputs |
160 // inputs |
159 unsigned int index; |
161 uint32_t index; |
160 |
162 |
161 // outputs |
163 // outputs |
162 unsigned int data_size; |
164 uint32_t data_size; |
163 uint32_t logical_base_address; |
165 uint32_t logical_base_address; |
164 uint16_t working_counter; |
166 uint16_t working_counter; |
165 uint16_t expected_working_counter; |
167 uint16_t expected_working_counter; |
166 unsigned int fmmu_count; |
168 uint32_t fmmu_count; |
167 } ec_ioctl_domain_t; |
169 } ec_ioctl_domain_t; |
168 |
170 |
169 /*****************************************************************************/ |
171 /*****************************************************************************/ |
170 |
172 |
171 typedef struct { |
173 typedef struct { |
172 // inputs |
174 // inputs |
173 unsigned int domain_index; |
175 uint32_t domain_index; |
174 unsigned int fmmu_index; |
176 uint32_t fmmu_index; |
175 |
177 |
176 // outputs |
178 // outputs |
177 uint16_t slave_config_alias; |
179 uint16_t slave_config_alias; |
178 uint16_t slave_config_position; |
180 uint16_t slave_config_position; |
179 uint8_t fmmu_dir; |
181 uint8_t fmmu_dir; |
180 uint32_t logical_address; |
182 uint32_t logical_address; |
181 unsigned int data_size; |
183 uint32_t data_size; |
182 } ec_ioctl_domain_fmmu_t; |
184 } ec_ioctl_domain_fmmu_t; |
183 |
185 |
184 /*****************************************************************************/ |
186 /*****************************************************************************/ |
185 |
187 |
186 typedef struct { |
188 typedef struct { |
187 // inputs |
189 // inputs |
188 unsigned int domain_index; |
190 uint32_t domain_index; |
189 unsigned int data_size; |
191 uint32_t data_size; |
190 unsigned char *target; |
192 unsigned char *target; |
191 } ec_ioctl_data_t; |
193 } ec_ioctl_data_t; |
192 |
194 |
193 /*****************************************************************************/ |
195 /*****************************************************************************/ |
194 |
196 |
234 typedef struct { |
236 typedef struct { |
235 // inputs |
237 // inputs |
236 uint16_t slave_position; |
238 uint16_t slave_position; |
237 uint16_t sdo_index; |
239 uint16_t sdo_index; |
238 uint8_t sdo_entry_subindex; |
240 uint8_t sdo_entry_subindex; |
239 unsigned int target_size; |
241 uint32_t target_size; |
240 uint8_t *target; |
242 uint8_t *target; |
241 |
243 |
242 // outputs |
244 // outputs |
243 unsigned int data_size; |
245 uint32_t data_size; |
244 } ec_ioctl_sdo_upload_t; |
246 } ec_ioctl_sdo_upload_t; |
245 |
247 |
246 /*****************************************************************************/ |
248 /*****************************************************************************/ |
247 |
249 |
248 typedef struct { |
250 typedef struct { |
249 // inputs |
251 // inputs |
250 uint16_t slave_position; |
252 uint16_t slave_position; |
251 uint16_t sdo_index; |
253 uint16_t sdo_index; |
252 uint8_t sdo_entry_subindex; |
254 uint8_t sdo_entry_subindex; |
253 unsigned int data_size; |
255 uint32_t data_size; |
254 uint8_t *data; |
256 uint8_t *data; |
255 } ec_ioctl_sdo_download_t; |
257 } ec_ioctl_sdo_download_t; |
256 |
258 |
257 /*****************************************************************************/ |
259 /*****************************************************************************/ |
258 |
260 |
|
261 typedef struct { |
|
262 // inputs |
|
263 uint16_t slave_position; |
|
264 uint16_t offset; |
|
265 uint32_t nwords; |
|
266 uint16_t *words; |
|
267 } ec_ioctl_sii_read_t; |
|
268 |
|
269 /*****************************************************************************/ |
|
270 |
259 #endif |
271 #endif |