summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/libtests/block05/init.c2
-rw-r--r--testsuites/libtests/block06/init.c9
-rw-r--r--testsuites/libtests/block08/test_disk.c27
-rw-r--r--testsuites/libtests/block09/init.c79
-rw-r--r--testsuites/libtests/block10/init.c2
-rw-r--r--testsuites/libtests/block12/init.c2
-rw-r--r--testsuites/libtests/block13/init.c2
-rw-r--r--testsuites/libtests/block14/init.c2
-rw-r--r--testsuites/libtests/block15/init.c2
9 files changed, 67 insertions, 60 deletions
diff --git a/testsuites/libtests/block05/init.c b/testsuites/libtests/block05/init.c
index dd5d646a41..0a56ec6aa5 100644
--- a/testsuites/libtests/block05/init.c
+++ b/testsuites/libtests/block05/init.c
@@ -379,7 +379,7 @@ static int disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
switch (r->req) {
case RTEMS_BLKDEV_REQ_READ:
case RTEMS_BLKDEV_REQ_WRITE:
- r->req_done(r->done_arg, RTEMS_SUCCESSFUL);
+ rtems_blkdev_request_done(r, RTEMS_SUCCESSFUL);
return 0;
default:
errno = EINVAL;
diff --git a/testsuites/libtests/block06/init.c b/testsuites/libtests/block06/init.c
index e007a5e49e..ff309b1bad 100644
--- a/testsuites/libtests/block06/init.c
+++ b/testsuites/libtests/block06/init.c
@@ -488,7 +488,7 @@ bdbuf_disk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp)
{
case RTEMS_BLKDEV_REQ_READ:
if (!bdbuf_disk_ioctl_process (bdd, r))
- errno = EIO;
+ rtems_blkdev_request_done(r, RTEMS_IO_ERROR);
else
{
rtems_blkdev_sg_buffer* sg = r->bufs;
@@ -511,15 +511,16 @@ bdbuf_disk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp)
remains -= length;
}
- r->req_done (r->done_arg, RTEMS_SUCCESSFUL);
+ rtems_blkdev_request_done (r, RTEMS_SUCCESSFUL);
}
bdbuf_disk_ioctl_leave (bdd, r->bufnum);
break;
case RTEMS_BLKDEV_REQ_WRITE:
if (!bdbuf_disk_ioctl_process (bdd, r))
- errno = EIO;
- r->req_done (r->done_arg, RTEMS_SUCCESSFUL);
+ rtems_blkdev_request_done(r, RTEMS_IO_ERROR);
+ else
+ rtems_blkdev_request_done(r, RTEMS_SUCCESSFUL);
bdbuf_disk_ioctl_leave (bdd, r->bufnum);
break;
diff --git a/testsuites/libtests/block08/test_disk.c b/testsuites/libtests/block08/test_disk.c
index 3040ab3bed..f743c00b5f 100644
--- a/testsuites/libtests/block08/test_disk.c
+++ b/testsuites/libtests/block08/test_disk.c
@@ -32,18 +32,20 @@ static Objects_Id testq_id = OBJECTS_ID_NONE;
static int
test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
{
- rtems_status_code rc;
- bdbuf_test_msg msg;
- size_t msg_size;
+ rtems_status_code rc;
+ bdbuf_test_msg msg;
+ size_t msg_size;
+ rtems_blkdev_request *r;
switch (req)
{
case RTEMS_BLKIO_REQUEST:
{
- rtems_blkdev_request *r = argp;
rtems_blkdev_sg_buffer *sg;
unsigned int i;
+ r = argp;
+
printk("DISK_DRV: %s ",
r->req == RTEMS_BLKDEV_REQ_READ ? "R" :
r->req == RTEMS_BLKDEV_REQ_WRITE ? "W" : "?");
@@ -71,7 +73,8 @@ test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
if (rc != RTEMS_SUCCESSFUL)
{
printf("Error while sending a message to Test task: %u\n", rc);
- return -1;
+ rtems_blkdev_request_done(r, RTEMS_IO_ERROR);
+ return 0;
}
/* Wait for a reply from the test task */
@@ -81,27 +84,27 @@ test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
if (rc != RTEMS_SUCCESSFUL)
{
printf("Error while reading a message from Test task: %u\n", rc);
- return rc;
+ rtems_blkdev_request_done(r, RTEMS_IO_ERROR);
+ return 0;
}
if (msg.type != BDBUF_TEST_MSG_TYPE_DRIVER_REPLY)
{
printf("Unexpected message comes to test disk driver: %d\n",
msg.type);
- return -1;
+ rtems_blkdev_request_done(r, RTEMS_IO_ERROR);
+ return 0;
}
if (msg.val.driver_reply.ret_val != 0)
{
- errno = msg.val.driver_reply.ret_errno;
+ rtems_blkdev_request_done(r, RTEMS_IO_ERROR);
}
else
{
- rtems_blkdev_request *r = (rtems_blkdev_request *)argp;
-
- r->req_done(r->done_arg, msg.val.driver_reply.res_status);
+ rtems_blkdev_request_done(r, msg.val.driver_reply.res_status);
}
- return msg.val.driver_reply.ret_val;
+ return 0;
}
rtems_device_driver
diff --git a/testsuites/libtests/block09/init.c b/testsuites/libtests/block09/init.c
index d29d6ac595..e17819f8c0 100644
--- a/testsuites/libtests/block09/init.c
+++ b/testsuites/libtests/block09/init.c
@@ -64,47 +64,50 @@ static int disk_ioctl(rtems_disk_device *dd, uint32_t req, void *arg)
rtems_blkdev_sg_buffer *sg = &r->bufs [i];
char *buf = sg->buffer;
- if (sg->length != 1) {
- return -1;
- }
-
- switch (r->req) {
- case RTEMS_BLKDEV_REQ_READ:
- switch (sg->block) {
- case BLOCK_READ_IO_ERROR:
- sc = RTEMS_IO_ERROR;
- break;
- case BLOCK_READ_UNSATISFIED:
- sc = RTEMS_UNSATISFIED;
- break;
- case BLOCK_READ_SUCCESSFUL:
- case BLOCK_WRITE_IO_ERROR:
- *buf = disk_data [sg->block];
- break;
- default:
- return -1;
- }
- break;
- case RTEMS_BLKDEV_REQ_WRITE:
- switch (sg->block) {
- case BLOCK_READ_IO_ERROR:
- case BLOCK_READ_UNSATISFIED:
- case BLOCK_READ_SUCCESSFUL:
- disk_data [sg->block] = *buf;
- break;
- case BLOCK_WRITE_IO_ERROR:
- sc = RTEMS_IO_ERROR;
- break;
- default:
- return -1;
- }
- break;
- default:
- return -1;
+ if (sg->length == 1) {
+ switch (r->req) {
+ case RTEMS_BLKDEV_REQ_READ:
+ switch (sg->block) {
+ case BLOCK_READ_IO_ERROR:
+ sc = RTEMS_IO_ERROR;
+ break;
+ case BLOCK_READ_UNSATISFIED:
+ sc = RTEMS_UNSATISFIED;
+ break;
+ case BLOCK_READ_SUCCESSFUL:
+ case BLOCK_WRITE_IO_ERROR:
+ *buf = disk_data [sg->block];
+ break;
+ default:
+ sc = RTEMS_IO_ERROR;
+ break;
+ }
+ break;
+ case RTEMS_BLKDEV_REQ_WRITE:
+ switch (sg->block) {
+ case BLOCK_READ_IO_ERROR:
+ case BLOCK_READ_UNSATISFIED:
+ case BLOCK_READ_SUCCESSFUL:
+ disk_data [sg->block] = *buf;
+ break;
+ case BLOCK_WRITE_IO_ERROR:
+ sc = RTEMS_IO_ERROR;
+ break;
+ default:
+ sc = RTEMS_IO_ERROR;
+ break;
+ }
+ break;
+ default:
+ sc = RTEMS_IO_ERROR;
+ break;
+ }
+ } else {
+ sc = RTEMS_IO_ERROR;
}
}
- r->req_done(r->done_arg, sc);
+ rtems_blkdev_request_done(r, sc);
return 0;
} else {
diff --git a/testsuites/libtests/block10/init.c b/testsuites/libtests/block10/init.c
index 37b757a4e6..fe8c21b75f 100644
--- a/testsuites/libtests/block10/init.c
+++ b/testsuites/libtests/block10/init.c
@@ -105,7 +105,7 @@ static int disk_ioctl(rtems_disk_device *dd, uint32_t req, void *arg)
set_task_prio(RTEMS_SELF, PRIORITY_SWAPOUT);
}
- r->req_done(r->done_arg, sc);
+ rtems_blkdev_request_done(r, sc);
return 0;
} else {
diff --git a/testsuites/libtests/block12/init.c b/testsuites/libtests/block12/init.c
index 8182cd6c74..9931c0b493 100644
--- a/testsuites/libtests/block12/init.c
+++ b/testsuites/libtests/block12/init.c
@@ -55,7 +55,7 @@ static int test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *arg)
++block_access_counts [block];
}
- breq->req_done(breq->done_arg, RTEMS_SUCCESSFUL);
+ rtems_blkdev_request_done(breq, RTEMS_SUCCESSFUL);
} else {
errno = EINVAL;
rv = -1;
diff --git a/testsuites/libtests/block13/init.c b/testsuites/libtests/block13/init.c
index 267e4ec34f..d5d2593dba 100644
--- a/testsuites/libtests/block13/init.c
+++ b/testsuites/libtests/block13/init.c
@@ -126,7 +126,7 @@ static int test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *arg)
++block_access_counts [block];
}
- (*breq->req_done)(breq->done_arg, RTEMS_SUCCESSFUL);
+ rtems_blkdev_request_done(breq, RTEMS_SUCCESSFUL);
} else {
errno = EINVAL;
rv = -1;
diff --git a/testsuites/libtests/block14/init.c b/testsuites/libtests/block14/init.c
index b95b86d740..1c4f1c7c9c 100644
--- a/testsuites/libtests/block14/init.c
+++ b/testsuites/libtests/block14/init.c
@@ -105,7 +105,7 @@ static int test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *arg)
}
}
- (*breq->req_done)(breq->done_arg, sc);
+ rtems_blkdev_request_done(breq, sc);
} else {
errno = EINVAL;
rv = -1;
diff --git a/testsuites/libtests/block15/init.c b/testsuites/libtests/block15/init.c
index e6de9c3d05..a6e49370fc 100644
--- a/testsuites/libtests/block15/init.c
+++ b/testsuites/libtests/block15/init.c
@@ -84,7 +84,7 @@ static int test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *arg)
}
}
- (*breq->req_done)(breq->done_arg, RTEMS_SUCCESSFUL);
+ rtems_blkdev_request_done(breq, RTEMS_SUCCESSFUL);
} else if (req == RTEMS_BLKIO_CAPABILITIES) {
*(uint32_t *) arg = RTEMS_BLKDEV_CAP_MULTISECTOR_CONT;
} else {