diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-10-31 11:54:39 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-02 09:40:58 +0100 |
commit | 9f0a68ce5afca9d21d34bab83d42fbe4bb0cf8ef (patch) | |
tree | db24c42e065ac766c55215f39eb729a337609cde /c/src/libchip/ide | |
parent | bsp/mpc55xx: SMSC9218i avoid mbuf migration (diff) | |
download | rtems-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 'c/src/libchip/ide')
-rw-r--r-- | c/src/libchip/ide/ata.c | 3 | ||||
-rw-r--r-- | c/src/libchip/ide/ata_internal.h | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/c/src/libchip/ide/ata.c b/c/src/libchip/ide/ata.c index 18d8d14386..1e25003698 100644 --- a/c/src/libchip/ide/ata.c +++ b/c/src/libchip/ide/ata.c @@ -185,7 +185,8 @@ ata_io_data_request(dev_t device, rtems_blkdev_request *req) areq = malloc(sizeof(ata_req_t)); if (areq == NULL) { - return RTEMS_NO_MEMORY; + rtems_blkdev_request_done(req, RTEMS_NO_MEMORY); + return RTEMS_SUCCESSFUL; } areq->breq = req; diff --git a/c/src/libchip/ide/ata_internal.h b/c/src/libchip/ide/ata_internal.h index 3eea2d1dd4..32c9422563 100644 --- a/c/src/libchip/ide/ata_internal.h +++ b/c/src/libchip/ide/ata_internal.h @@ -218,8 +218,8 @@ typedef struct ata_req_s { /* call callback provided by block device request if it is defined */ #define ATA_EXEC_CALLBACK(areq, status) \ do {\ - if (((areq)->breq != NULL) && ((areq)->breq->req_done != NULL)) \ - (areq)->breq->req_done((areq)->breq->done_arg, status); \ + if ((areq)->breq != NULL) \ + rtems_blkdev_request_done((areq)->breq, status); \ } while (0) /* ATA RTEMS driver events types */ |