equal
deleted
inserted
replaced
54 |
54 |
55 /** EtherCAT master ioctl() version magic. |
55 /** EtherCAT master ioctl() version magic. |
56 * |
56 * |
57 * Increment this when changing the ioctl interface! |
57 * Increment this when changing the ioctl interface! |
58 */ |
58 */ |
59 #define EC_IOCTL_VERSION_MAGIC 24 |
59 #define EC_IOCTL_VERSION_MAGIC 25 |
60 |
60 |
61 // Command-line tool |
61 // Command-line tool |
62 #define EC_IOCTL_MODULE EC_IOR(0x00, ec_ioctl_module_t) |
62 #define EC_IOCTL_MODULE EC_IOR(0x00, ec_ioctl_module_t) |
63 #define EC_IOCTL_MASTER EC_IOR(0x01, ec_ioctl_master_t) |
63 #define EC_IOCTL_MASTER EC_IOR(0x01, ec_ioctl_master_t) |
64 #define EC_IOCTL_SLAVE EC_IOWR(0x02, ec_ioctl_slave_t) |
64 #define EC_IOCTL_SLAVE EC_IOWR(0x02, ec_ioctl_slave_t) |
377 typedef struct { |
377 typedef struct { |
378 // inputs |
378 // inputs |
379 uint16_t slave_position; |
379 uint16_t slave_position; |
380 uint16_t sdo_index; |
380 uint16_t sdo_index; |
381 uint8_t sdo_entry_subindex; |
381 uint8_t sdo_entry_subindex; |
382 uint32_t target_size; |
382 size_t target_size; |
383 uint8_t *target; |
383 uint8_t *target; |
384 |
384 |
385 // outputs |
385 // outputs |
386 uint32_t data_size; |
386 size_t data_size; |
387 uint32_t abort_code; |
387 uint32_t abort_code; |
388 } ec_ioctl_slave_sdo_upload_t; |
388 } ec_ioctl_slave_sdo_upload_t; |
389 |
389 |
390 /*****************************************************************************/ |
390 /*****************************************************************************/ |
391 |
391 |
393 // inputs |
393 // inputs |
394 uint16_t slave_position; |
394 uint16_t slave_position; |
395 uint16_t sdo_index; |
395 uint16_t sdo_index; |
396 uint8_t sdo_entry_subindex; |
396 uint8_t sdo_entry_subindex; |
397 uint8_t complete_access; |
397 uint8_t complete_access; |
398 uint32_t data_size; |
398 size_t data_size; |
399 uint8_t *data; |
399 uint8_t *data; |
400 |
400 |
401 // outputs |
401 // outputs |
402 uint32_t abort_code; |
402 uint32_t abort_code; |
403 } ec_ioctl_slave_sdo_download_t; |
403 } ec_ioctl_slave_sdo_download_t; |
426 |
426 |
427 typedef struct { |
427 typedef struct { |
428 // inputs |
428 // inputs |
429 uint16_t slave_position; |
429 uint16_t slave_position; |
430 uint16_t offset; |
430 uint16_t offset; |
431 uint32_t buffer_size; |
431 size_t buffer_size; |
432 uint8_t *buffer; |
432 uint8_t *buffer; |
433 |
433 |
434 // outputs |
434 // outputs |
435 uint32_t data_size; |
435 size_t data_size; |
436 uint32_t result; |
436 uint32_t result; |
437 uint32_t error_code; |
437 uint32_t error_code; |
438 char file_name[32]; |
438 char file_name[32]; |
439 } ec_ioctl_slave_foe_t; |
439 } ec_ioctl_slave_foe_t; |
440 |
440 |
443 typedef struct { |
443 typedef struct { |
444 // inputs |
444 // inputs |
445 uint16_t slave_position; |
445 uint16_t slave_position; |
446 uint8_t drive_no; |
446 uint8_t drive_no; |
447 uint16_t idn; |
447 uint16_t idn; |
448 uint32_t mem_size; |
448 size_t mem_size; |
449 uint8_t *data; |
449 uint8_t *data; |
450 |
450 |
451 // outputs |
451 // outputs |
452 size_t data_size; |
452 size_t data_size; |
453 uint16_t error_code; |
453 uint16_t error_code; |
536 uint32_t sdo_pos; |
536 uint32_t sdo_pos; |
537 |
537 |
538 // outputs |
538 // outputs |
539 uint16_t index; |
539 uint16_t index; |
540 uint8_t subindex; |
540 uint8_t subindex; |
541 uint32_t size; |
541 size_t size; |
542 uint8_t data[EC_MAX_SDO_DATA_SIZE]; |
542 uint8_t data[EC_MAX_SDO_DATA_SIZE]; |
543 uint8_t complete_access; |
543 uint8_t complete_access; |
544 } ec_ioctl_config_sdo_t; |
544 } ec_ioctl_config_sdo_t; |
545 |
545 |
546 /*****************************************************************************/ |
546 /*****************************************************************************/ |