ATA_COMMAND
ch->r_io[ATA_STATUS].res = ch->r_io[ATA_COMMAND].res;
ch->r_io[ATA_STATUS].offset = ch->r_io[ATA_COMMAND].offset;
for (i = ATA_DATA; i <= ATA_COMMAND; i++) {
ATA_IDX_OUTB(ch, ATA_COMMAND, ATA_PACKET_CMD);
ATA_IDX_OUTB(ch, ATA_COMMAND, request->u.ata.command);
for (i = ATA_DATA; i <= ATA_COMMAND; i ++) {
for (i = ATA_DATA; i <= ATA_COMMAND; i ++) {
ch->r_io[ATA_COMMAND].offset = ch_offset + 0x1d;
bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_END | ATA_COMMAND;
for (i = ATA_DATA; i <= ATA_COMMAND; i++) {
ATA_IDX_OUTB(ch, ATA_COMMAND, ATA_READ_PM);
ATA_IDX_OUTB(ch, ATA_COMMAND, ATA_WRITE_PM);
ch->r_io[ATA_COMMAND].offset = ch_offset + 0x1c;
for (i = ATA_DATA; i <= ATA_COMMAND; i++) {
for (i = ATA_DATA; i <= ATA_COMMAND; i ++) {
ATA_OUTB(ch->r_mem, ATA_COMMAND, cmd->command);
ATA_OUTB(ch->r_mem, ATA_COMMAND, ATA_PACKET_CMD);
for (i = ATA_DATA; i <= ATA_COMMAND; i++) {
for (i = ATA_DATA; i <= ATA_COMMAND; i++) {