equal
deleted
inserted
replaced
480 const uint8_t *data, /**< category data */ |
480 const uint8_t *data, /**< category data */ |
481 size_t word_count /**< number of words */ |
481 size_t word_count /**< number of words */ |
482 ) |
482 ) |
483 { |
483 { |
484 unsigned int i; |
484 unsigned int i; |
485 ec_sii_sync_t *sync; |
485 ec_sync_t *sync; |
486 |
486 |
487 // sync manager struct is 4 words long |
487 // sync manager struct is 4 words long |
488 slave->sii_sync_count = word_count / 4; |
488 slave->sii_sync_count = word_count / 4; |
489 |
489 |
490 if (!(slave->sii_syncs = kmalloc(sizeof(ec_sii_sync_t) * |
490 if (!(slave->sii_syncs = kmalloc(sizeof(ec_sync_t) * |
491 slave->sii_sync_count, GFP_ATOMIC))) { |
491 slave->sii_sync_count, GFP_ATOMIC))) { |
492 EC_ERR("Failed to allocate Sync-Manager memory.\n"); |
492 EC_ERR("Failed to allocate Sync-Manager memory.\n"); |
493 return -1; |
493 return -1; |
494 } |
494 } |
495 |
495 |
606 \return 0 in case of success, else < 0 |
606 \return 0 in case of success, else < 0 |
607 */ |
607 */ |
608 |
608 |
609 int ec_slave_prepare_fmmu(ec_slave_t *slave, /**< EtherCAT slave */ |
609 int ec_slave_prepare_fmmu(ec_slave_t *slave, /**< EtherCAT slave */ |
610 const ec_domain_t *domain, /**< domain */ |
610 const ec_domain_t *domain, /**< domain */ |
611 const ec_sii_sync_t *sync /**< sync manager */ |
611 const ec_sync_t *sync /**< sync manager */ |
612 ) |
612 ) |
613 { |
613 { |
614 unsigned int i; |
614 unsigned int i; |
615 ec_fmmu_t *fmmu; |
615 ec_fmmu_t *fmmu; |
616 |
616 |
652 size_t ec_slave_info(const ec_slave_t *slave, /**< EtherCAT slave */ |
652 size_t ec_slave_info(const ec_slave_t *slave, /**< EtherCAT slave */ |
653 char *buffer /**< Output buffer */ |
653 char *buffer /**< Output buffer */ |
654 ) |
654 ) |
655 { |
655 { |
656 off_t off = 0; |
656 off_t off = 0; |
657 ec_sii_sync_t *sync; |
657 ec_sync_t *sync; |
658 ec_pdo_t *pdo; |
658 ec_pdo_t *pdo; |
659 ec_pdo_entry_t *pdo_entry; |
659 ec_pdo_entry_t *pdo_entry; |
660 int first, i; |
660 int first, i; |
661 ec_sdo_data_t *sdodata; |
661 ec_sdo_data_t *sdodata; |
662 char str[20]; |
662 char str[20]; |
1065 \return sync manager size |
1065 \return sync manager size |
1066 */ |
1066 */ |
1067 |
1067 |
1068 uint16_t ec_slave_calc_sync_size(const ec_slave_t *slave, |
1068 uint16_t ec_slave_calc_sync_size(const ec_slave_t *slave, |
1069 /**< EtherCAT slave */ |
1069 /**< EtherCAT slave */ |
1070 const ec_sii_sync_t *sync |
1070 const ec_sync_t *sync |
1071 /**< sync manager */ |
1071 /**< sync manager */ |
1072 ) |
1072 ) |
1073 { |
1073 { |
1074 ec_pdo_t *pdo; |
1074 ec_pdo_t *pdo; |
1075 ec_pdo_entry_t *pdo_entry; |
1075 ec_pdo_entry_t *pdo_entry; |
1098 /*****************************************************************************/ |
1098 /*****************************************************************************/ |
1099 |
1099 |
1100 /** |
1100 /** |
1101 */ |
1101 */ |
1102 |
1102 |
1103 ec_sii_sync_t *ec_slave_get_pdo_sync( |
1103 ec_sync_t *ec_slave_get_pdo_sync( |
1104 ec_slave_t *slave, /**< EtherCAT slave */ |
1104 ec_slave_t *slave, /**< EtherCAT slave */ |
1105 ec_direction_t dir /**< input or output */ |
1105 ec_direction_t dir /**< input or output */ |
1106 ) |
1106 ) |
1107 { |
1107 { |
1108 unsigned int sync_index; |
1108 unsigned int sync_index; |
1131 Initializes a sync manager configuration page with EEPROM data. |
1131 Initializes a sync manager configuration page with EEPROM data. |
1132 The referenced memory (\a data) must be at least EC_SYNC_SIZE bytes. |
1132 The referenced memory (\a data) must be at least EC_SYNC_SIZE bytes. |
1133 */ |
1133 */ |
1134 |
1134 |
1135 void ec_slave_sync_config(const ec_slave_t *slave, /**< EtherCAT slave */ |
1135 void ec_slave_sync_config(const ec_slave_t *slave, /**< EtherCAT slave */ |
1136 const ec_sii_sync_t *sync, /**< sync manager */ |
1136 const ec_sync_t *sync, /**< sync manager */ |
1137 uint8_t *data /**> configuration memory */ |
1137 uint8_t *data /**> configuration memory */ |
1138 ) |
1138 ) |
1139 { |
1139 { |
1140 size_t sync_size; |
1140 size_t sync_size; |
1141 |
1141 |