use `int` as return type for ecrt_voe_handler_*

See #101
This commit is contained in:
Bjarne von Horn 2024-02-09 11:48:14 +01:00
parent 8c30331e6e
commit e78237ed31
4 changed files with 43 additions and 34 deletions

View File

@ -2262,8 +2262,9 @@ EC_PUBLIC_API int ecrt_soe_request_read(
* change the header later on in realtime context.
*
* \ingroup ApplicationInterfaceRT
* \return 0 on success, otherwise negative error code.
*/
EC_PUBLIC_API void ecrt_voe_handler_send_header(
EC_PUBLIC_API int ecrt_voe_handler_send_header(
ec_voe_handler_t *voe, /**< VoE handler. */
uint32_t vendor_id, /**< Vendor ID. */
uint16_t vendor_type /**< Vendor-specific type. */
@ -2281,8 +2282,9 @@ EC_PUBLIC_API void ecrt_voe_handler_send_header(
* activation).
*
* \ingroup ApplicationInterfaceRT
* \return 0 on success, otherwise negative error code.
*/
EC_PUBLIC_API void ecrt_voe_handler_received_header(
EC_PUBLIC_API int ecrt_voe_handler_received_header(
const ec_voe_handler_t *voe, /**< VoE handler. */
uint32_t *vendor_id, /**< Vendor ID. */
uint16_t *vendor_type /**< Vendor-specific type. */
@ -2339,8 +2341,9 @@ EC_PUBLIC_API size_t ecrt_voe_handler_data_size(
* activation).
*
* \ingroup ApplicationInterfaceRT
* \return 0 on success, otherwise negative error code.
*/
EC_PUBLIC_API void ecrt_voe_handler_write(
EC_PUBLIC_API int ecrt_voe_handler_write(
ec_voe_handler_t *voe, /**< VoE handler. */
size_t size /**< Number of bytes to write (without the VoE header). */
);
@ -2364,8 +2367,9 @@ EC_PUBLIC_API void ecrt_voe_handler_write(
* activation).
*
* \ingroup ApplicationInterfaceRT
* \return 0 on success, otherwise negative error code.
*/
EC_PUBLIC_API void ecrt_voe_handler_read(
EC_PUBLIC_API int ecrt_voe_handler_read(
ec_voe_handler_t *voe /**< VoE handler. */
);
@ -2389,8 +2393,9 @@ EC_PUBLIC_API void ecrt_voe_handler_read(
* activation).
*
* \ingroup ApplicationInterfaceRT
* \return 0 on success, otherwise negative error code.
*/
EC_PUBLIC_API void ecrt_voe_handler_read_nosync(
EC_PUBLIC_API int ecrt_voe_handler_read_nosync(
ec_voe_handler_t *voe /**< VoE handler. */
);

View File

@ -46,7 +46,7 @@ void ec_voe_handler_clear(ec_voe_handler_t *voe)
/****************************************************************************/
void ecrt_voe_handler_send_header(ec_voe_handler_t *voe, uint32_t vendor_id,
int ecrt_voe_handler_send_header(ec_voe_handler_t *voe, uint32_t vendor_id,
uint16_t vendor_type)
{
ec_ioctl_voe_t data;
@ -59,14 +59,14 @@ void ecrt_voe_handler_send_header(ec_voe_handler_t *voe, uint32_t vendor_id,
ret = ioctl(voe->config->master->fd, EC_IOCTL_VOE_SEND_HEADER, &data);
if (EC_IOCTL_IS_ERROR(ret)) {
fprintf(stderr, "Failed to set VoE send header: %s\n",
strerror(EC_IOCTL_ERRNO(ret)));
return -EC_IOCTL_ERRNO(ret);
}
return 0;
}
/****************************************************************************/
void ecrt_voe_handler_received_header(const ec_voe_handler_t *voe,
int ecrt_voe_handler_received_header(const ec_voe_handler_t *voe,
uint32_t *vendor_id, uint16_t *vendor_type)
{
ec_ioctl_voe_t data;
@ -79,9 +79,9 @@ void ecrt_voe_handler_received_header(const ec_voe_handler_t *voe,
ret = ioctl(voe->config->master->fd, EC_IOCTL_VOE_REC_HEADER, &data);
if (EC_IOCTL_IS_ERROR(ret)) {
fprintf(stderr, "Failed to get received VoE header: %s\n",
strerror(EC_IOCTL_ERRNO(ret)));
return -EC_IOCTL_ERRNO(ret);
}
return 0;
}
/****************************************************************************/
@ -100,7 +100,7 @@ size_t ecrt_voe_handler_data_size(const ec_voe_handler_t *voe)
/****************************************************************************/
void ecrt_voe_handler_read(ec_voe_handler_t *voe)
int ecrt_voe_handler_read(ec_voe_handler_t *voe)
{
ec_ioctl_voe_t data;
int ret;
@ -110,14 +110,14 @@ void ecrt_voe_handler_read(ec_voe_handler_t *voe)
ret = ioctl(voe->config->master->fd, EC_IOCTL_VOE_READ, &data);
if (EC_IOCTL_IS_ERROR(ret)) {
fprintf(stderr, "Failed to initiate VoE reading: %s\n",
strerror(EC_IOCTL_ERRNO(ret)));
return -EC_IOCTL_ERRNO(ret);
}
return 0;
}
/****************************************************************************/
void ecrt_voe_handler_read_nosync(ec_voe_handler_t *voe)
int ecrt_voe_handler_read_nosync(ec_voe_handler_t *voe)
{
ec_ioctl_voe_t data;
int ret;
@ -127,14 +127,14 @@ void ecrt_voe_handler_read_nosync(ec_voe_handler_t *voe)
ret = ioctl(voe->config->master->fd, EC_IOCTL_VOE_READ_NOSYNC, &data);
if (EC_IOCTL_IS_ERROR(ret)) {
fprintf(stderr, "Failed to initiate VoE reading: %s\n",
strerror(EC_IOCTL_ERRNO(ret)));
return -EC_IOCTL_ERRNO(ret);
}
return 0;
}
/****************************************************************************/
void ecrt_voe_handler_write(ec_voe_handler_t *voe, size_t size)
int ecrt_voe_handler_write(ec_voe_handler_t *voe, size_t size)
{
ec_ioctl_voe_t data;
int ret;
@ -146,9 +146,9 @@ void ecrt_voe_handler_write(ec_voe_handler_t *voe, size_t size)
ret = ioctl(voe->config->master->fd, EC_IOCTL_VOE_WRITE, &data);
if (EC_IOCTL_IS_ERROR(ret)) {
fprintf(stderr, "Failed to initiate VoE writing: %s\n",
strerror(EC_IOCTL_ERRNO(ret)));
return -EC_IOCTL_ERRNO(ret);
}
return 0;
}
/****************************************************************************/

View File

@ -4139,8 +4139,7 @@ static ATTRIBUTES int ec_ioctl_voe_send_header(
return -ENOENT;
}
ecrt_voe_handler_send_header(voe, vendor_id, vendor_type);
return 0;
return ecrt_voe_handler_send_header(voe, vendor_id, vendor_type);
}
/****************************************************************************/
@ -4160,6 +4159,7 @@ static ATTRIBUTES int ec_ioctl_voe_rec_header(
ec_voe_handler_t *voe;
uint32_t vendor_id;
uint16_t vendor_type;
int ret;
if (unlikely(!ctx->requested))
return -EPERM;
@ -4178,7 +4178,9 @@ static ATTRIBUTES int ec_ioctl_voe_rec_header(
return -ENOENT;
}
ecrt_voe_handler_received_header(voe, &vendor_id, &vendor_type);
ret = ecrt_voe_handler_received_header(voe, &vendor_id, &vendor_type);
if (ret)
return ret;
if (likely(data.vendor_id))
if (ec_copy_to_user(data.vendor_id, &vendor_id,
@ -4226,8 +4228,7 @@ static ATTRIBUTES int ec_ioctl_voe_read(
return -ENOENT;
}
ecrt_voe_handler_read(voe);
return 0;
return ecrt_voe_handler_read(voe);
}
/****************************************************************************/
@ -4263,8 +4264,7 @@ static ATTRIBUTES int ec_ioctl_voe_read_nosync(
return -ENOENT;
}
ecrt_voe_handler_read_nosync(voe);
return 0;
return ecrt_voe_handler_read_nosync(voe);
}
/****************************************************************************/
@ -4309,8 +4309,7 @@ static ATTRIBUTES int ec_ioctl_voe_write(
return -EFAULT;
}
ecrt_voe_handler_write(voe, data.size);
return 0;
return ecrt_voe_handler_write(voe, data.size);
}
/****************************************************************************/

View File

@ -112,16 +112,17 @@ size_t ec_voe_handler_mem_size(
* Application interface.
****************************************************************************/
void ecrt_voe_handler_send_header(ec_voe_handler_t *voe, uint32_t vendor_id,
int ecrt_voe_handler_send_header(ec_voe_handler_t *voe, uint32_t vendor_id,
uint16_t vendor_type)
{
voe->vendor_id = vendor_id;
voe->vendor_type = vendor_type;
return 0;
}
/****************************************************************************/
void ecrt_voe_handler_received_header(const ec_voe_handler_t *voe,
int ecrt_voe_handler_received_header(const ec_voe_handler_t *voe,
uint32_t *vendor_id, uint16_t *vendor_type)
{
uint8_t *header = voe->datagram.data + EC_MBOX_HEADER_SIZE;
@ -130,6 +131,7 @@ void ecrt_voe_handler_received_header(const ec_voe_handler_t *voe,
*vendor_id = EC_READ_U32(header);
if (vendor_type)
*vendor_type = EC_READ_U16(header + 4);
return 0;
}
/****************************************************************************/
@ -148,30 +150,33 @@ size_t ecrt_voe_handler_data_size(const ec_voe_handler_t *voe)
/****************************************************************************/
void ecrt_voe_handler_read(ec_voe_handler_t *voe)
int ecrt_voe_handler_read(ec_voe_handler_t *voe)
{
voe->dir = EC_DIR_INPUT;
voe->state = ec_voe_handler_state_read_start;
voe->request_state = EC_INT_REQUEST_BUSY;
return 0;
}
/****************************************************************************/
void ecrt_voe_handler_read_nosync(ec_voe_handler_t *voe)
int ecrt_voe_handler_read_nosync(ec_voe_handler_t *voe)
{
voe->dir = EC_DIR_INPUT;
voe->state = ec_voe_handler_state_read_nosync_start;
voe->request_state = EC_INT_REQUEST_BUSY;
return 0;
}
/****************************************************************************/
void ecrt_voe_handler_write(ec_voe_handler_t *voe, size_t size)
int ecrt_voe_handler_write(ec_voe_handler_t *voe, size_t size)
{
voe->dir = EC_DIR_OUTPUT;
voe->data_size = size;
voe->state = ec_voe_handler_state_write_start;
voe->request_state = EC_INT_REQUEST_BUSY;
return 0;
}
/****************************************************************************/