From 71257f229112a7721626e8a30b6101f07eb093cb Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Wed, 15 Oct 2008 16:08:29 +0000 Subject: [PATCH] Fixed VoE data reading in userspace. --- lib/voe_handler.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/lib/voe_handler.c b/lib/voe_handler.c index 72568472..a712b8e5 100644 --- a/lib/voe_handler.c +++ b/lib/voe_handler.c @@ -36,7 +36,11 @@ /*****************************************************************************/ +#include +#include #include +#include +#include #include "voe_handler.h" #include "slave_config.h" @@ -55,9 +59,9 @@ void ecrt_voe_handler_send_header(ec_voe_handler_t *voe, uint32_t vendor_id, data.vendor_id = &vendor_id; data.vendor_type = &vendor_type; - if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_SEND_HEADER, &data) == -1) { - fprintf(stderr, "Failed to set VoE send header.\n"); - } + if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_SEND_HEADER, &data) == -1) + fprintf(stderr, "Failed to set VoE send header: %s\n", + strerror(errno)); } /*****************************************************************************/ @@ -72,9 +76,9 @@ void ecrt_voe_handler_received_header(const ec_voe_handler_t *voe, data.vendor_id = vendor_id; data.vendor_type = vendor_type; - if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_REC_HEADER, &data) == -1) { - fprintf(stderr, "Failed to get received VoE header.\n"); - } + if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_REC_HEADER, &data) == -1) + fprintf(stderr, "Failed to get received VoE header: %s\n", + strerror(errno)); } /*****************************************************************************/ @@ -100,9 +104,9 @@ void ecrt_voe_handler_read(ec_voe_handler_t *voe) data.config_index = voe->config->index; data.voe_index = voe->index; - if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_READ, &data) == -1) { - fprintf(stderr, "Failed to initiate VoE reading.\n"); - } + if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_READ, &data) == -1) + fprintf(stderr, "Failed to initiate VoE reading: %s\n", + strerror(errno)); } /*****************************************************************************/ @@ -116,9 +120,9 @@ void ecrt_voe_handler_write(ec_voe_handler_t *voe, size_t size) data.size = size; data.data = voe->data; - if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_WRITE, &data) == -1) { - fprintf(stderr, "Failed to initiate VoE reading.\n"); - } + if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_WRITE, &data) == -1) + fprintf(stderr, "Failed to initiate VoE writing: %s\n", + strerror(errno)); } /*****************************************************************************/ @@ -132,7 +136,8 @@ ec_request_state_t ecrt_voe_handler_execute(ec_voe_handler_t *voe) data.size = 0; if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_EXEC, &data) == -1) { - fprintf(stderr, "Failed to initiate VoE reading.\n"); + fprintf(stderr, "Failed to execute VoE handler: %s\n", + strerror(errno)); return EC_REQUEST_ERROR; } @@ -149,8 +154,10 @@ ec_request_state_t ecrt_voe_handler_execute(ec_voe_handler_t *voe) voe->mem_size = data.size; } + data.data = voe->data; + if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_DATA, &data) == -1) { - fprintf(stderr, "Failed to get VoE data!\n"); + fprintf(stderr, "Failed to get VoE data: %s\n", strerror(errno)); return EC_REQUEST_ERROR; } voe->data_size = data.size;