use int as return type for ecrt_domain_*

See #101
This commit is contained in:
Bjarne von Horn
2024-02-09 09:20:07 +01:00
parent 3870a66c8f
commit 06b408ef1b
4 changed files with 29 additions and 20 deletions

View File

@@ -1901,8 +1901,9 @@ EC_PUBLIC_API uint8_t *ecrt_domain_data(
* ecrt_domain_state() return the result of the last process data exchange.
*
* \ingroup ApplicationInterfaceRT
* \return 0 on success, otherwise negative error code.
*/
EC_PUBLIC_API void ecrt_domain_process(
EC_PUBLIC_API int ecrt_domain_process(
ec_domain_t *domain /**< Domain. */
);
@@ -1912,8 +1913,9 @@ EC_PUBLIC_API void ecrt_domain_process(
* next call of ecrt_master_send().
*
* \ingroup ApplicationInterfaceRT
* \return 0 on success, otherwise negative error code.
*/
EC_PUBLIC_API void ecrt_domain_queue(
EC_PUBLIC_API int ecrt_domain_queue(
ec_domain_t *domain /**< Domain. */
);
@@ -1924,8 +1926,9 @@ EC_PUBLIC_API void ecrt_domain_queue(
* Using this method, the process data exchange can be monitored in realtime.
*
* \ingroup ApplicationInterfaceRT
* \return 0 on success, otherwise negative error code.
*/
EC_PUBLIC_API void ecrt_domain_state(
EC_PUBLIC_API int ecrt_domain_state(
const ec_domain_t *domain, /**< Domain. */
ec_domain_state_t *state /**< Pointer to a state object to store the
information. */

View File

@@ -90,33 +90,33 @@ uint8_t *ecrt_domain_data(const ec_domain_t *domain)
/****************************************************************************/
void ecrt_domain_process(ec_domain_t *domain)
int ecrt_domain_process(ec_domain_t *domain)
{
int ret;
ret = ioctl(domain->master->fd, EC_IOCTL_DOMAIN_PROCESS, domain->index);
if (EC_IOCTL_IS_ERROR(ret)) {
fprintf(stderr, "Failed to process domain: %s\n",
strerror(EC_IOCTL_ERRNO(ret)));
return -EC_IOCTL_ERRNO(ret);
}
return 0;
}
/****************************************************************************/
void ecrt_domain_queue(ec_domain_t *domain)
int ecrt_domain_queue(ec_domain_t *domain)
{
int ret;
ret = ioctl(domain->master->fd, EC_IOCTL_DOMAIN_QUEUE, domain->index);
if (EC_IOCTL_IS_ERROR(ret)) {
fprintf(stderr, "Failed to queue domain: %s\n",
strerror(EC_IOCTL_ERRNO(ret)));
return -EC_IOCTL_ERRNO(ret);
}
return 0;
}
/****************************************************************************/
void ecrt_domain_state(const ec_domain_t *domain, ec_domain_state_t *state)
int ecrt_domain_state(const ec_domain_t *domain, ec_domain_state_t *state)
{
ec_ioctl_domain_state_t data;
int ret;
@@ -126,9 +126,9 @@ void ecrt_domain_state(const ec_domain_t *domain, ec_domain_state_t *state)
ret = ioctl(domain->master->fd, EC_IOCTL_DOMAIN_STATE, &data);
if (EC_IOCTL_IS_ERROR(ret)) {
fprintf(stderr, "Failed to get domain state: %s\n",
strerror(EC_IOCTL_ERRNO(ret)));
return -EC_IOCTL_ERRNO(ret);
}
return 0;
}
/****************************************************************************/

View File

@@ -447,7 +447,7 @@ uint8_t *ecrt_domain_data(const ec_domain_t *domain)
/****************************************************************************/
void ecrt_domain_process(ec_domain_t *domain)
int ecrt_domain_process(ec_domain_t *domain)
{
uint16_t wc_sum[EC_MAX_NUM_DEVICES] = {}, wc_total;
ec_datagram_pair_t *pair;
@@ -633,11 +633,12 @@ void ecrt_domain_process(ec_domain_t *domain)
domain->working_counter_changes = 0;
}
#endif
return 0;
}
/****************************************************************************/
void ecrt_domain_queue(ec_domain_t *domain)
int ecrt_domain_queue(ec_domain_t *domain)
{
ec_datagram_pair_t *datagram_pair;
ec_device_index_t dev_idx;
@@ -663,11 +664,12 @@ void ecrt_domain_queue(ec_domain_t *domain)
&datagram_pair->datagrams[dev_idx]);
}
}
return 0;
}
/****************************************************************************/
void ecrt_domain_state(const ec_domain_t *domain, ec_domain_state_t *state)
int ecrt_domain_state(const ec_domain_t *domain, ec_domain_state_t *state)
{
unsigned int dev_idx;
uint16_t wc = 0;
@@ -690,6 +692,7 @@ void ecrt_domain_state(const ec_domain_t *domain, ec_domain_state_t *state)
}
state->redundancy_active = domain->redundancy_active;
return 0;
}
/****************************************************************************/

View File

@@ -3334,8 +3334,7 @@ static ATTRIBUTES int ec_ioctl_domain_process(
return -ENOENT;
}
ecrt_domain_process(domain);
return 0;
return ecrt_domain_process(domain);
}
/****************************************************************************/
@@ -3351,6 +3350,7 @@ static ATTRIBUTES int ec_ioctl_domain_queue(
)
{
ec_domain_t *domain;
int ret;
if (unlikely(!ctx->requested))
return -EPERM;
@@ -3365,9 +3365,9 @@ static ATTRIBUTES int ec_ioctl_domain_queue(
if (ec_ioctl_lock_interruptible(&master->io_mutex))
return -EINTR;
ecrt_domain_queue(domain);
ret = ecrt_domain_queue(domain);
ec_ioctl_unlock(&master->io_mutex);
return 0;
return ret;
}
/****************************************************************************/
@@ -3385,6 +3385,7 @@ static ATTRIBUTES int ec_ioctl_domain_state(
ec_ioctl_domain_state_t data;
const ec_domain_t *domain;
ec_domain_state_t state;
int ret;
if (unlikely(!ctx->requested))
return -EPERM;
@@ -3400,7 +3401,9 @@ static ATTRIBUTES int ec_ioctl_domain_state(
return -ENOENT;
}
ecrt_domain_state(domain, &state);
ret = ecrt_domain_state(domain, &state);
if (ret)
return ret;
if (ec_copy_to_user((void __user *) data.state, &state, sizeof(state),
ctx))