forked from Imagelibrary/rtems
libblock API update
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -25,6 +25,7 @@ if HAS_NETWORKING
|
||||
SRCS += ../libchip/libnetchip.a
|
||||
endif
|
||||
SRCS += ../libchip/libi2cio.a
|
||||
SRCS += ../libchip/libdisplay.a
|
||||
|
||||
if HAS_MP
|
||||
SRCS += ../libchip/shmdr.rel
|
||||
|
||||
Reference in New Issue
Block a user