diff options
Diffstat (limited to 'testsuites/libtests')
-rw-r--r-- | testsuites/libtests/block05/init.c | 2 | ||||
-rw-r--r-- | testsuites/libtests/block06/init.c | 9 | ||||
-rw-r--r-- | testsuites/libtests/block08/test_disk.c | 27 | ||||
-rw-r--r-- | testsuites/libtests/block09/init.c | 79 | ||||
-rw-r--r-- | testsuites/libtests/block10/init.c | 2 | ||||
-rw-r--r-- | testsuites/libtests/block12/init.c | 2 | ||||
-rw-r--r-- | testsuites/libtests/block13/init.c | 2 | ||||
-rw-r--r-- | testsuites/libtests/block14/init.c | 2 | ||||
-rw-r--r-- | testsuites/libtests/block15/init.c | 2 |
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 { |