ata_adapter_channel_info
void (*set_channel)(ata_adapter_channel_info *channel,
status_t (*write_command_block_regs)(ata_adapter_channel_info *channel,
status_t (*read_command_block_regs)(ata_adapter_channel_info *channel,
uint8 (*get_altstatus) (ata_adapter_channel_info *channel);
status_t (*write_device_control) (ata_adapter_channel_info *channel, uint8 val);
status_t (*write_pio)(ata_adapter_channel_info *channel, uint16 *data, int count, bool force_16bit);
status_t (*read_pio)(ata_adapter_channel_info *channel, uint16 *data, int count, bool force_16bit);
status_t (*prepare_dma)(ata_adapter_channel_info *channel, const physical_entry *sg_list,
status_t (*start_dma)(ata_adapter_channel_info *channel);
status_t (*finish_dma)(ata_adapter_channel_info *channel);
ata_adapter_channel_info **cookie, size_t total_data_size,
void (*uninit_channel)(ata_adapter_channel_info *channel);
void (*channel_removed)(ata_adapter_channel_info *channel);
return sATAAdapter->finish_dma((ata_adapter_channel_info *)channel_cookie);
(ata_adapter_channel_info **)channel_cookie,
sizeof(ata_adapter_channel_info), sATAAdapter->inthand);
sATAAdapter->uninit_channel((ata_adapter_channel_info *)channel_cookie);
sATAAdapter->channel_removed((ata_adapter_channel_info *)channel_cookie);
sATAAdapter->set_channel((ata_adapter_channel_info *)cookie, channel);
(ata_adapter_channel_info *)channel_cookie, tf, mask);
(ata_adapter_channel_info *)channel_cookie, tf, mask);
(ata_adapter_channel_info *)channel_cookie);
(ata_adapter_channel_info *)channel_cookie, val);
return sATAAdapter->write_pio((ata_adapter_channel_info *)channel_cookie,
return sATAAdapter->read_pio((ata_adapter_channel_info *)channel_cookie,
return sATAAdapter->prepare_dma((ata_adapter_channel_info *)channel_cookie,
return sATAAdapter->start_dma((ata_adapter_channel_info *)channel_cookie);
return sATAAdapter->read_pio((ata_adapter_channel_info *)channel_cookie,
return sATAAdapter->prepare_dma((ata_adapter_channel_info *)channel_cookie,
return sATAAdapter->start_dma((ata_adapter_channel_info *)channel_cookie);
return sATAAdapter->finish_dma((ata_adapter_channel_info *)channel_cookie);
(ata_adapter_channel_info **)channel_cookie,
sizeof(ata_adapter_channel_info), sATAAdapter->inthand);
ata_adapter_channel_info *channel TRACE_ONLY = NULL;
channel = (ata_adapter_channel_info *)*channel_cookie;
sATAAdapter->uninit_channel((ata_adapter_channel_info *)channel_cookie);
sATAAdapter->channel_removed((ata_adapter_channel_info *)channel_cookie);
sATAAdapter->set_channel((ata_adapter_channel_info *)cookie, channel);
(ata_adapter_channel_info *)channel_cookie, tf, mask);
(ata_adapter_channel_info *)channel_cookie, tf, mask);
(ata_adapter_channel_info *)channel_cookie);
(ata_adapter_channel_info *)channel_cookie, val);
return sATAAdapter->write_pio((ata_adapter_channel_info *)channel_cookie,
(ata_adapter_channel_info **)channelCookie,
sizeof(ata_adapter_channel_info), sATAAdapter->inthand);
sATAAdapter->uninit_channel((ata_adapter_channel_info *)channelCookie);
sATAAdapter->channel_removed((ata_adapter_channel_info *)channelCookie);
sATAAdapter->set_channel((ata_adapter_channel_info *)channelCookie,
(ata_adapter_channel_info *)channelCookie, taskFile, registerMask);
(ata_adapter_channel_info *)channelCookie, taskFile, registerMask);
return sATAAdapter->get_altstatus((ata_adapter_channel_info *)channelCookie);
(ata_adapter_channel_info *)channelCookie, value);
(ata_adapter_channel_info *)channelCookie, data, count, force16bit);
(ata_adapter_channel_info *)channelCookie, data, count, force16bit);
return sATAAdapter->prepare_dma((ata_adapter_channel_info *)channelCookie,
return sATAAdapter->start_dma((ata_adapter_channel_info *)channelCookie);
return sATAAdapter->finish_dma((ata_adapter_channel_info *)channelCookie);
(ata_adapter_channel_info**)channel_cookie,
sizeof(ata_adapter_channel_info), sATAAdapter->inthand);
sATAAdapter->uninit_channel((ata_adapter_channel_info*)channel_cookie);
sATAAdapter->channel_removed((ata_adapter_channel_info*)channel_cookie);
sATAAdapter->set_channel((ata_adapter_channel_info*)channel_cookie,
(ata_adapter_channel_info*)channel_cookie, tf, mask);
(ata_adapter_channel_info*)channel_cookie, tf, mask);
(ata_adapter_channel_info*)channel_cookie);
(ata_adapter_channel_info*)channel_cookie, val);
return sATAAdapter->write_pio((ata_adapter_channel_info*)channel_cookie,
return sATAAdapter->read_pio((ata_adapter_channel_info*)channel_cookie,
return sATAAdapter->prepare_dma((ata_adapter_channel_info*)channel_cookie,
return sATAAdapter->start_dma((ata_adapter_channel_info*)channel_cookie);
return sATAAdapter->finish_dma((ata_adapter_channel_info*)channel_cookie);
return sATAAdapter->prepare_dma((ata_adapter_channel_info *)channel_cookie, sg_list, sg_list_count, to_device);
return sATAAdapter->start_dma((ata_adapter_channel_info *)channel_cookie);
return sATAAdapter->finish_dma((ata_adapter_channel_info *)channel_cookie);
(ata_adapter_channel_info **)channel_cookie,
sizeof(ata_adapter_channel_info), handle_interrupt);
sATAAdapter->uninit_channel((ata_adapter_channel_info *)channel_cookie);
(ata_adapter_channel_info *)channel_cookie);
sATAAdapter->set_channel((ata_adapter_channel_info *)cookie, channel);
return sATAAdapter->write_command_block_regs((ata_adapter_channel_info *)channel_cookie, tf, mask);
return sATAAdapter->read_command_block_regs((ata_adapter_channel_info *)channel_cookie, tf, mask);
return sATAAdapter->get_altstatus((ata_adapter_channel_info *)channel_cookie);
return sATAAdapter->write_device_control((ata_adapter_channel_info *)channel_cookie, val);
return sATAAdapter->write_pio((ata_adapter_channel_info *)channel_cookie, data, count, force_16bit);
return sATAAdapter->read_pio((ata_adapter_channel_info *)channel_cookie, data, count, force_16bit);
ata_adapter_channel_info *channel = (ata_adapter_channel_info *)arg;
ata_adapter_get_altstatus(ata_adapter_channel_info *channel)
ata_adapter_write_device_control(ata_adapter_channel_info *channel, uint8 val)
ata_adapter_write_pio(ata_adapter_channel_info *channel, uint16 *data,
ata_adapter_read_pio(ata_adapter_channel_info *channel, uint16 *data,
ata_adapter_channel_info *channel = (ata_adapter_channel_info *)arg;
ata_adapter_prepare_dma(ata_adapter_channel_info *channel,
ata_adapter_start_dma(ata_adapter_channel_info *channel)
ata_adapter_finish_dma(ata_adapter_channel_info *channel)
ata_adapter_channel_info **cookie, size_t total_data_size,
ata_adapter_channel_info *channel;
channel = (ata_adapter_channel_info *)malloc(total_data_size);
ata_adapter_uninit_channel(ata_adapter_channel_info *channel)
set_channel(ata_adapter_channel_info *channel, ata_channel ataChannel)
ata_adapter_channel_removed(ata_adapter_channel_info *channel)
ata_adapter_write_command_block_regs(ata_adapter_channel_info *channel,
ata_adapter_read_command_block_regs(ata_adapter_channel_info *channel,