parent
8c30331e6e
commit
e78237ed31
|
|
@ -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. */
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
|
|
|
|||
Loading…
Reference in New Issue