diff options
author | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2010-01-19 09:10:03 +0000 |
---|---|---|
committer | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2010-01-19 09:10:03 +0000 |
commit | 5c587596f09da0c52528bcb6a0c3726fcd2cfb07 (patch) | |
tree | f3cf6cc9b9cea5f8313e673dc6e8f17b1f928c02 /c/src/libchip | |
parent | updates and new test cases (diff) | |
download | rtems-5c587596f09da0c52528bcb6a0c3726fcd2cfb07.tar.bz2 |
libblock API update
Diffstat (limited to 'c/src/libchip')
-rw-r--r-- | c/src/libchip/i2c/spi-sd-card.c | 8 | ||||
-rw-r--r-- | c/src/libchip/ide/ata.c | 40 | ||||
-rw-r--r-- | c/src/libchip/ide/ata_internal.h | 6 |
3 files changed, 23 insertions, 31 deletions
diff --git a/c/src/libchip/i2c/spi-sd-card.c b/c/src/libchip/i2c/spi-sd-card.c index 291d96b4a8..11380952d7 100644 --- a/c/src/libchip/i2c/spi-sd-card.c +++ b/c/src/libchip/i2c/spi-sd-card.c @@ -1005,7 +1005,7 @@ static int sd_card_disk_block_read( sd_card_driver_entry *e, rtems_blkdev_reques RTEMS_CHECK_SC_RV( sc, "Stop"); /* Done */ - r->req_done( r->done_arg, RTEMS_SUCCESSFUL, 0); + r->req_done( r->done_arg, RTEMS_SUCCESSFUL); return 0; @@ -1020,7 +1020,7 @@ sd_card_disk_block_read_cleanup: sd_card_stop( e); /* Done */ - r->req_done( r->done_arg, RTEMS_IO_ERROR, 0); + r->req_done( r->done_arg, RTEMS_IO_ERROR); return rv; } @@ -1094,7 +1094,7 @@ static int sd_card_disk_block_write( sd_card_driver_entry *e, rtems_blkdev_reque RTEMS_CHECK_SC_RV( sc, "Stop"); /* Done */ - r->req_done( r->done_arg, RTEMS_SUCCESSFUL, 0); + r->req_done( r->done_arg, RTEMS_SUCCESSFUL); return 0; @@ -1113,7 +1113,7 @@ sd_card_disk_block_write_cleanup: sd_card_stop( e); /* Done */ - r->req_done( r->done_arg, RTEMS_IO_ERROR, 0); + r->req_done( r->done_arg, RTEMS_IO_ERROR); return rv; } diff --git a/c/src/libchip/ide/ata.c b/c/src/libchip/ide/ata.c index 6a12c4efa0..e1fdd58b9d 100644 --- a/c/src/libchip/ide/ata.c +++ b/c/src/libchip/ide/ata.c @@ -546,7 +546,7 @@ ata_process_request(rtems_device_minor_number ctrl_minor) */ static inline void ata_request_done(ata_req_t *areq, rtems_device_minor_number ctrl_minor, - rtems_status_code status, int error) + rtems_status_code status) { assert(areq); @@ -554,7 +554,7 @@ ata_request_done(ata_req_t *areq, rtems_device_minor_number ctrl_minor, ata_printf("ata_request_done: entry\n"); #endif - ATA_EXEC_CALLBACK(areq, status, error); + ATA_EXEC_CALLBACK(areq, status); rtems_chain_extract(&areq->link); if (!rtems_chain_is_empty(&ata_ide_ctrls[ctrl_minor].reqs)) @@ -586,14 +586,14 @@ ata_request_done(ata_req_t *areq, rtems_device_minor_number ctrl_minor, static inline void ata_non_data_request_done(ata_req_t *areq, rtems_device_minor_number ctrl_minor, - rtems_status_code status, int error) + rtems_status_code status, int info) { #if ATA_DEBUG ata_printf("ata_non_data_request_done: entry\n"); #endif areq->status = status; - areq->error = error; + areq->info = info; rtems_semaphore_release(areq->sema); } @@ -784,7 +784,7 @@ ata_pio_in_protocol(rtems_device_minor_number ctrl_minor, ata_req_t *areq) if (areq->cnt == 0) { - ata_request_done(areq, ctrl_minor, RTEMS_SUCCESSFUL, RTEMS_SUCCESSFUL); + ata_request_done(areq, ctrl_minor, RTEMS_SUCCESSFUL); } else if (IDE_Controller_Table[ctrl_minor].int_driven == false) { @@ -822,7 +822,7 @@ ata_pio_out_protocol(rtems_device_minor_number ctrl_minor, ata_req_t *areq) if (areq->cnt == 0) { - ata_request_done(areq, ctrl_minor, RTEMS_SUCCESSFUL, RTEMS_SUCCESSFUL); + ata_request_done(areq, ctrl_minor, RTEMS_SUCCESSFUL); } else { @@ -909,8 +909,7 @@ ata_queue_task(rtems_task_argument arg) * status and start processing of the next request in the * controller queue */ - ata_request_done(areq, ctrl_minor, RTEMS_SUCCESSFUL, - msg.error); + ata_request_done(areq, ctrl_minor, RTEMS_SUCCESSFUL); break; case ATA_MSG_ERROR_EVT: @@ -919,8 +918,7 @@ ata_queue_task(rtems_task_argument arg) * status and start processing of the next request in the * controller queue */ - ata_request_done(areq, ctrl_minor, RTEMS_UNSATISFIED, - msg.error); + ata_request_done(areq, ctrl_minor, RTEMS_IO_ERROR); break; case ATA_MSG_GEN_EVT: @@ -948,8 +946,7 @@ ata_queue_task(rtems_task_argument arg) RTEMS_UNSATISFIED, RTEMS_IO_ERROR); else - ata_request_done(areq, ctrl_minor, RTEMS_UNSATISFIED, - RTEMS_IO_ERROR); + ata_request_done(areq, ctrl_minor, RTEMS_IO_ERROR); break; } } @@ -977,9 +974,7 @@ ata_queue_task(rtems_task_argument arg) #if ATA_DEBUG ata_printf("ata_queue_task: non-supported command type\n"); #endif - ata_request_done(areq, ctrl_minor, - RTEMS_UNSATISFIED, - RTEMS_NOT_IMPLEMENTED); + ata_request_done(areq, ctrl_minor, RTEMS_IO_ERROR); break; } break; @@ -1315,19 +1310,19 @@ rtems_ata_initialize(rtems_device_major_number major, if (breq.req.status == RTEMS_SUCCESSFUL) { /* disassemble returned diagnostic codes */ - if (breq.req.error == ATA_DEV0_PASSED_DEV1_PASSED_OR_NOT_PRSNT) + if (areq.info == ATA_DEV0_PASSED_DEV1_PASSED_OR_NOT_PRSNT) { printk("ATA: ctrl:%d: primary, secondary\n", ctrl_minor); ATA_DEV_INFO(ctrl_minor,0).present = true; ATA_DEV_INFO(ctrl_minor,1).present = true; } - else if (breq.req.error == ATA_DEV0_PASSED_DEV1_FAILED) + else if (areq.info == ATA_DEV0_PASSED_DEV1_FAILED) { printk("ATA: ctrl:%d: primary\n", ctrl_minor); ATA_DEV_INFO(ctrl_minor,0).present = true; ATA_DEV_INFO(ctrl_minor,1).present = false; } - else if (breq.req.error < ATA_DEV1_PASSED_DEV0_FAILED) + else if (areq.info < ATA_DEV1_PASSED_DEV0_FAILED) { printk("ATA: ctrl:%d: secondary\n", ctrl_minor); ATA_DEV_INFO(ctrl_minor,0).present = false; @@ -1521,7 +1516,6 @@ ata_process_request_on_init_phase(rtems_device_minor_number ctrl_minor, if ( 10000 == retries ) { /* probably no drive connected */ areq->breq->status = RTEMS_UNSATISFIED; - areq->breq->error = RTEMS_IO_ERROR; return; } } @@ -1545,8 +1539,7 @@ ata_process_request_on_init_phase(rtems_device_minor_number ctrl_minor, if (val & IDE_REGISTER_STATUS_ERR) { - areq->breq->status = RTEMS_UNSATISFIED; - areq->breq->error = RTEMS_IO_ERROR; + areq->breq->status = RTEMS_IO_ERROR; return; } @@ -1579,15 +1572,14 @@ ata_process_request_on_init_phase(rtems_device_minor_number ctrl_minor, case ATA_COMMAND_TYPE_NON_DATA: areq->breq->status = RTEMS_SUCCESSFUL; - areq->breq->error = val1; + areq->info = val1; break; default: #if ATA_DEBUG ata_printf("ata_queue_task: non-supported command type\n"); #endif - areq->breq->status = RTEMS_UNSATISFIED; - areq->breq->error = RTEMS_NOT_IMPLEMENTED; + areq->breq->status = RTEMS_IO_ERROR; break; } } diff --git a/c/src/libchip/ide/ata_internal.h b/c/src/libchip/ide/ata_internal.h index 99f98618b7..d0f5ccdeea 100644 --- a/c/src/libchip/ide/ata_internal.h +++ b/c/src/libchip/ide/ata_internal.h @@ -210,14 +210,14 @@ typedef struct ata_req_s { * processing of the ata request is required */ rtems_status_code status; /* status of ata request processing */ - int error; /* device error code */ + int info; /* device info code */ } ata_req_t; /* call callback provided by block device request if it is defined */ -#define ATA_EXEC_CALLBACK(areq, status, error) \ +#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, error); \ + (areq)->breq->req_done((areq)->breq->done_arg, status); \ } while (0) /* ATA RTEMS driver events types */ |