2008-07-03 Chris Johns <chrisj@rtems.org>

* ata.c: Change to the Chains API.
This commit is contained in:
Chris Johns
2008-07-03 01:34:27 +00:00
parent e806f13e28
commit b9c38ed727

View File

@@ -49,7 +49,7 @@
#define ATA_IRQ_CHAIN_MAX_CNT 4 /* support up to 4 ATA devices */ #define ATA_IRQ_CHAIN_MAX_CNT 4 /* support up to 4 ATA devices */
typedef struct { typedef struct {
rtems_irq_number name; rtems_irq_number name;
Chain_Control irq_chain; rtems_chain_control irq_chain;
} ata_irq_chain_t; } ata_irq_chain_t;
ata_irq_chain_t ata_irq_chain[ATA_IRQ_CHAIN_MAX_CNT]; ata_irq_chain_t ata_irq_chain[ATA_IRQ_CHAIN_MAX_CNT];
@@ -120,7 +120,7 @@ static rtems_id ata_queue_id;
#if defined (ATA_USE_OLD_EXCEPTIONS) #if defined (ATA_USE_OLD_EXCEPTIONS)
/* Mapping of interrupt vectors to devices */ /* Mapping of interrupt vectors to devices */
static Chain_Control ata_int_vec[ATA_MAX_RTEMS_INT_VEC_NUMBER + 1]; static rtems_chain_control ata_int_vec[ATA_MAX_RTEMS_INT_VEC_NUMBER + 1];
#endif #endif
static void static void
@@ -426,7 +426,7 @@ ata_process_request(rtems_device_minor_number ctrl_minor)
ISR_Level level; ISR_Level level;
/* if no requests to controller then do nothing */ /* if no requests to controller then do nothing */
if (Chain_Is_empty(&ata_ide_ctrls[ctrl_minor].reqs)) if (rtems_chain_is_empty(&ata_ide_ctrls[ctrl_minor].reqs))
return; return;
/* get first request in the controller's queue */ /* get first request in the controller's queue */
@@ -527,9 +527,9 @@ ata_request_done(ata_req_t *areq, rtems_device_minor_number ctrl_minor,
DISABLE_PREEMPTION(key); DISABLE_PREEMPTION(key);
ATA_EXEC_CALLBACK(areq, status, error); ATA_EXEC_CALLBACK(areq, status, error);
Chain_Extract(&areq->link); rtems_chain_extract(&areq->link);
if (!Chain_Is_empty(&ata_ide_ctrls[ctrl_minor].reqs)) if (!rtems_chain_is_empty(&ata_ide_ctrls[ctrl_minor].reqs))
{ {
ENABLE_PREEMPTION(key); ENABLE_PREEMPTION(key);
free(areq); free(areq);
@@ -577,8 +577,8 @@ static void
ata_add_to_controller_queue(rtems_device_minor_number ctrl_minor, ata_add_to_controller_queue(rtems_device_minor_number ctrl_minor,
ata_req_t *areq) ata_req_t *areq)
{ {
Chain_Append(&ata_ide_ctrls[ctrl_minor].reqs, &areq->link); rtems_chain_append(&ata_ide_ctrls[ctrl_minor].reqs, &areq->link);
if (Chain_Has_only_one_node(&ata_ide_ctrls[ctrl_minor].reqs)) if (rtems_chain_has_only_one_node(&ata_ide_ctrls[ctrl_minor].reqs))
{ {
ata_queue_msg_t msg; ata_queue_msg_t msg;
@@ -615,11 +615,11 @@ ata_add_to_controller_queue(rtems_device_minor_number ctrl_minor,
rtems_isr rtems_isr
ata_interrupt_handler(rtems_vector_number vec) ata_interrupt_handler(rtems_vector_number vec)
{ {
Chain_Node *the_node = ((Chain_Control *)(&ata_int_vec[vec]))->first; rtems_chain_node *the_node = ((rtems_chain_control *)(&ata_int_vec[vec]))->first;
ata_queue_msg_t msg; ata_queue_msg_t msg;
uint16_t byte; /* emphasize that only 8 low bits is meaningful */ uint16_t byte; /* emphasize that only 8 low bits is meaningful */
for ( ; !Chain_Is_tail(&ata_int_vec[vec], the_node) ; ) for ( ; !rtems_chain_is_tail(&ata_int_vec[vec], the_node) ; )
{ {
/* if (1) - is temporary hack - currently I don't know how to identify /* if (1) - is temporary hack - currently I don't know how to identify
* controller which asserted interrupt if few controllers share one * controller which asserted interrupt if few controllers share one
@@ -640,13 +640,13 @@ ata_interrupt_handler(rtems_vector_number vec)
void ata_interrupt_handler(rtems_irq_hdl_param handle) void ata_interrupt_handler(rtems_irq_hdl_param handle)
{ {
int ata_irq_chain_index = (int) handle; int ata_irq_chain_index = (int) handle;
Chain_Node *the_node = rtems_chain_node *the_node =
ata_irq_chain[ata_irq_chain_index].irq_chain.last; ata_irq_chain[ata_irq_chain_index].irq_chain.last;
ata_queue_msg_t msg; ata_queue_msg_t msg;
uint16_t byte; /* emphasize that only 8 low bits is meaningful */ uint16_t byte; /* emphasize that only 8 low bits is meaningful */
for ( ; !Chain_Is_tail(&ata_irq_chain[ata_irq_chain_index].irq_chain, for ( ; !rtems_chain_is_tail(&ata_irq_chain[ata_irq_chain_index].irq_chain,
the_node) ; ) the_node) ; )
{ {
/* if (1) - is temporary hack - currently I don't know how to identify /* if (1) - is temporary hack - currently I don't know how to identify
@@ -1092,10 +1092,10 @@ ata_initialize(rtems_device_major_number major,
#if defined(ATA_USE_OLD_EXCEPTIONS) #if defined(ATA_USE_OLD_EXCEPTIONS)
/* prepare ATA driver for handling interrupt driven devices */ /* prepare ATA driver for handling interrupt driven devices */
for (i = 0; i < ATA_MAX_RTEMS_INT_VEC_NUMBER; i++) for (i = 0; i < ATA_MAX_RTEMS_INT_VEC_NUMBER; i++)
Chain_Initialize_empty(&ata_int_vec[i]); rtems_chain_initialize_empty(&ata_int_vec[i]);
#else #else
for (i = 0; i < ATA_IRQ_CHAIN_MAX_CNT; i++) { for (i = 0; i < ATA_IRQ_CHAIN_MAX_CNT; i++) {
Chain_Initialize_empty(&(ata_irq_chain[i].irq_chain)); rtems_chain_initialize_empty(&(ata_irq_chain[i].irq_chain));
} }
#endif #endif
@@ -1121,7 +1121,7 @@ ata_initialize(rtems_device_major_number major,
for (ctrl_minor = 0; ctrl_minor < IDE_Controller_Count; ctrl_minor++) for (ctrl_minor = 0; ctrl_minor < IDE_Controller_Count; ctrl_minor++)
if (IDE_Controller_Table[ctrl_minor].status == IDE_CTRL_INITIALIZED) if (IDE_Controller_Table[ctrl_minor].status == IDE_CTRL_INITIALIZED)
{ {
Chain_Initialize_empty(&ata_ide_ctrls[ctrl_minor].reqs); rtems_chain_initialize_empty(&ata_ide_ctrls[ctrl_minor].reqs);
if (IDE_Controller_Table[ctrl_minor].int_driven == TRUE) if (IDE_Controller_Table[ctrl_minor].int_driven == TRUE)
{ {
@@ -1189,11 +1189,11 @@ ata_initialize(rtems_device_major_number major,
return status; return status;
} }
#if defined(ATA_USE_OLD_EXCEPTIONS) #if defined(ATA_USE_OLD_EXCEPTIONS)
Chain_Append( rtems_chain_append(
&ata_int_vec[IDE_Controller_Table[ctrl_minor].int_vec], &ata_int_vec[IDE_Controller_Table[ctrl_minor].int_vec],
&int_st->link); &int_st->link);
#else #else
Chain_Append( rtems_chain_append(
&(ata_irq_chain[ata_irq_chain_use].irq_chain), &(ata_irq_chain[ata_irq_chain_use].irq_chain),
&int_st->link); &int_st->link);
#endif #endif