lib/slave_config.c
changeset 2068 3001f6523e63
parent 2025 2d7e29d82e9a
child 2589 2b9c78543663
equal deleted inserted replaced
2067:19732da2cf86 2068:3001f6523e63
   108     }
   108     }
   109 }
   109 }
   110 
   110 
   111 /*****************************************************************************/
   111 /*****************************************************************************/
   112 
   112 
       
   113 void ecrt_slave_config_overlapping_pdos(ec_slave_config_t *sc,
       
   114         uint8_t allow_overlapping_pdos)
       
   115 {
       
   116     ec_ioctl_config_t data;
       
   117 
       
   118     memset(&data, 0x00, sizeof(ec_ioctl_config_t));
       
   119     data.config_index = sc->index;
       
   120     data.allow_overlapping_pdos = allow_overlapping_pdos;
       
   121 
       
   122     if (ioctl(sc->master->fd, EC_IOCTL_SC_OVERLAPPING_IO, &data) == -1) {
       
   123         fprintf(stderr, "Failed to config overlapping PDOs: %s\n",
       
   124                 strerror(errno));
       
   125     }
       
   126 }
       
   127 
       
   128 /*****************************************************************************/
       
   129 
   113 int ecrt_slave_config_pdo_assign_add(ec_slave_config_t *sc,
   130 int ecrt_slave_config_pdo_assign_add(ec_slave_config_t *sc,
   114         uint8_t sync_index, uint16_t pdo_index)
   131         uint8_t sync_index, uint16_t pdo_index)
   115 {
   132 {
   116     ec_ioctl_config_pdo_t data;
   133     ec_ioctl_config_pdo_t data;
   117 
   134 
   413     }
   430     }
   414 
   431 
   415     if (size) {
   432     if (size) {
   416         req->data = malloc(size);
   433         req->data = malloc(size);
   417         if (!req->data) {
   434         if (!req->data) {
   418             fprintf(stderr, "Failed to allocate %u bytes of SDO data"
   435             fprintf(stderr, "Failed to allocate %zu bytes of SDO data"
   419                     " memory.\n", size);
   436                     " memory.\n", size);
   420             free(req);
   437             free(req);
   421             return 0;
   438             return 0;
   422         }
   439         }
   423     } else {
   440     } else {
   482     }
   499     }
   483 
   500 
   484     if (size) {
   501     if (size) {
   485         voe->data = malloc(size);
   502         voe->data = malloc(size);
   486         if (!voe->data) {
   503         if (!voe->data) {
   487             fprintf(stderr, "Failed to allocate %u bytes of VoE data"
   504             fprintf(stderr, "Failed to allocate %zu bytes of VoE data"
   488                     " memory.\n", size);
   505                     " memory.\n", size);
   489             free(voe);
   506             free(voe);
   490             return 0;
   507             return 0;
   491         }
   508         }
   492     } else {
   509     } else {