summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests/block06
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-10-31 11:54:39 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-11-02 09:40:58 +0100
commit9f0a68ce5afca9d21d34bab83d42fbe4bb0cf8ef (patch)
treedb24c42e065ac766c55215f39eb729a337609cde /testsuites/libtests/block06
parentbsp/mpc55xx: SMSC9218i avoid mbuf migration (diff)
downloadrtems-9f0a68ce5afca9d21d34bab83d42fbe4bb0cf8ef.tar.bz2
libblock: Block device transfer request API change
Add and use rtems_blkdev_request_done(). Block device transfer requests must signal the completion status now with rtems_blkdev_request_done(). The return value of the block device IO control will be ignored for transfer requests. The first parameter of rtems_blkdev_request_cb is now the transfer request structure. Renamed rtems_blkdev_request::req_done to rtems_blkdev_request::done to break third party drivers at compile time, otherwise this API change would result in runtime errors.
Diffstat (limited to 'testsuites/libtests/block06')
-rw-r--r--testsuites/libtests/block06/init.c9
1 files changed, 5 insertions, 4 deletions
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;