Improved error case return codes of many functions.

This commit is contained in:
Florian Pose
2008-11-17 17:18:02 +00:00
parent bdbaf5d078
commit 8d46a283f6
22 changed files with 453 additions and 323 deletions
+4 -6
View File
@@ -59,11 +59,11 @@ int ecrt_domain_reg_pdo_entry_list(ec_domain_t *domain,
for (reg = regs; reg->index; reg++) {
if (!(sc = ecrt_master_slave_config(domain->master, reg->alias,
reg->position, reg->vendor_id, reg->product_code)))
return -1;
return -1; // FIXME
if ((ret = ecrt_slave_config_reg_pdo_entry(sc, reg->index,
reg->subindex, domain, reg->bit_position)) < 0)
return -1;
return -1; // FIXME
*reg->offset = ret;
}
@@ -98,8 +98,7 @@ void ecrt_domain_process(ec_domain_t *domain)
{
if (ioctl(domain->master->fd, EC_IOCTL_DOMAIN_PROCESS,
domain->index) == -1) {
fprintf(stderr, "Failed to process domain offset: %s\n",
strerror(errno));
fprintf(stderr, "Failed to process domain: %s\n", strerror(errno));
}
}
@@ -109,8 +108,7 @@ void ecrt_domain_queue(ec_domain_t *domain)
{
if (ioctl(domain->master->fd, EC_IOCTL_DOMAIN_QUEUE,
domain->index) == -1) {
fprintf(stderr, "Failed to queue domain offset: %s\n",
strerror(errno));
fprintf(stderr, "Failed to queue domain: %s\n", strerror(errno));
}
}
+2 -2
View File
@@ -111,7 +111,7 @@ int ecrt_master_activate(ec_master_t *master)
&master->process_data_size) == -1) {
fprintf(stderr, "Failed to activate master: %s\n",
strerror(errno));
return -1;
return -1; // FIXME
}
if (master->process_data_size) {
@@ -121,7 +121,7 @@ int ecrt_master_activate(ec_master_t *master)
fprintf(stderr, "Failed to map process data: %s", strerror(errno));
master->process_data = NULL;
master->process_data_size = 0;
return -1;
return -1; // FIXME
}
// Access the mapped region to cause the initial page fault
+23 -19
View File
@@ -51,7 +51,7 @@ int ecrt_slave_config_sync_manager(ec_slave_config_t *sc, uint8_t sync_index,
unsigned int i;
if (sync_index >= EC_MAX_SYNC_MANAGERS)
return -1;
return -ENOENT;
memset(&data, 0x00, sizeof(ec_ioctl_config_t));
data.config_index = sc->index;
@@ -60,7 +60,7 @@ int ecrt_slave_config_sync_manager(ec_slave_config_t *sc, uint8_t sync_index,
if (ioctl(sc->master->fd, EC_IOCTL_SC_SYNC, &data) == -1) {
fprintf(stderr, "Failed to config sync manager: %s\n",
strerror(errno));
return -1;
return -1; // FIXME
}
return 0;
@@ -80,7 +80,7 @@ int ecrt_slave_config_pdo_assign_add(ec_slave_config_t *sc,
if (ioctl(sc->master->fd, EC_IOCTL_SC_ADD_PDO, &data) == -1) {
fprintf(stderr, "Failed to add Pdo: %s\n",
strerror(errno));
return -1;
return -1; // FIXME
}
return 0;
@@ -119,7 +119,7 @@ int ecrt_slave_config_pdo_mapping_add(ec_slave_config_t *sc,
if (ioctl(sc->master->fd, EC_IOCTL_SC_ADD_ENTRY, &data) == -1) {
fprintf(stderr, "Failed to add Pdo entry: %s\n",
strerror(errno));
return -1;
return -1; // FIXME
}
return 0;
@@ -146,6 +146,7 @@ void ecrt_slave_config_pdo_mapping_clear(ec_slave_config_t *sc,
int ecrt_slave_config_pdos(ec_slave_config_t *sc,
unsigned int n_syncs, const ec_sync_info_t syncs[])
{
int ret;
unsigned int i, j, k;
const ec_sync_info_t *sync_info;
const ec_pdo_info_t *pdo_info;
@@ -163,12 +164,13 @@ int ecrt_slave_config_pdos(ec_slave_config_t *sc,
if (sync_info->index >= EC_MAX_SYNC_MANAGERS) {
fprintf(stderr, "Invalid sync manager index %u!\n",
sync_info->index);
return -1;
return -ENOENT;
}
if (ecrt_slave_config_sync_manager(
sc, sync_info->index, sync_info->dir))
return -1;
ret = ecrt_slave_config_sync_manager(
sc, sync_info->index, sync_info->dir);
if (ret)
return ret;
if (sync_info->n_pdos && sync_info->pdos) {
ecrt_slave_config_pdo_assign_clear(sc, sync_info->index);
@@ -176,9 +178,10 @@ int ecrt_slave_config_pdos(ec_slave_config_t *sc,
for (j = 0; j < sync_info->n_pdos; j++) {
pdo_info = &sync_info->pdos[j];
if (ecrt_slave_config_pdo_assign_add(
sc, sync_info->index, pdo_info->index))
return -1;
ret = ecrt_slave_config_pdo_assign_add(
sc, sync_info->index, pdo_info->index);
if (ret)
return ret;
if (pdo_info->n_entries && pdo_info->entries) {
ecrt_slave_config_pdo_mapping_clear(sc, pdo_info->index);
@@ -186,11 +189,12 @@ int ecrt_slave_config_pdos(ec_slave_config_t *sc,
for (k = 0; k < pdo_info->n_entries; k++) {
entry_info = &pdo_info->entries[k];
if (ecrt_slave_config_pdo_mapping_add(sc,
pdo_info->index, entry_info->index,
entry_info->subindex,
entry_info->bit_length))
return -1;
ret = ecrt_slave_config_pdo_mapping_add(sc,
pdo_info->index, entry_info->index,
entry_info->subindex,
entry_info->bit_length);
if (ret)
return ret;
}
}
}
@@ -222,7 +226,7 @@ int ecrt_slave_config_reg_pdo_entry(
if (ret == -1) {
fprintf(stderr, "Failed to register Pdo entry: %s\n",
strerror(errno));
return -2;
return -2; // FIXME
}
if (bit_position) {
@@ -232,7 +236,7 @@ int ecrt_slave_config_reg_pdo_entry(
fprintf(stderr, "Pdo entry 0x%04X:%02X does not byte-align "
"in config %u:%u.\n", index, subindex,
sc->alias, sc->position);
return -3;
return -3; // FIXME
}
}
@@ -254,7 +258,7 @@ int ecrt_slave_config_sdo(ec_slave_config_t *sc, uint16_t index,
if (ioctl(sc->master->fd, EC_IOCTL_SC_REG_PDO_ENTRY, &data) == -1) {
fprintf(stderr, "Failed to configure Sdo.\n");
return -1;
return -1; // FIXME
}
return 0;