ATA_CYL_LSB
length = ATA_IDX_INB(ch, ATA_CYL_LSB)|(ATA_IDX_INB(ch, ATA_CYL_MSB)<<8);
lsb = ATA_IDX_INB(ch, ATA_CYL_LSB);
lsb = ATA_IDX_INB(ch, ATA_CYL_LSB);
ATA_IDX_OUTB(ch, ATA_CYL_LSB, 0);
ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->transfersize);
((u_int64_t)(ATA_IDX_INB(ch, ATA_CYL_LSB)) << 32) |
(ATA_IDX_INB(ch, ATA_CYL_LSB) << 8) |
(ATA_IDX_INB(ch, ATA_CYL_LSB) << 8) |
ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 32);
ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 8);
ATA_IDX_OUTB(ch, ATA_CYL_LSB,
ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 8);
ch->r_io[ATA_CYL_LSB].offset = ch_offset + 0x10;
ATA_IDX_OUTW(ch, ATA_CYL_LSB, ((request->u.ata.lba >> 24) & 0xff00) |
ATA_IDX_OUTB(ch, ATA_CYL_LSB,
ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 8);
bytep[i++] = 0x10 | ATA_CYL_LSB;
bytep[i++] = 0x10 | ATA_CYL_LSB;
bytep[i++] = ATA_PDC_2B | ATA_PDC_WRITE_REG | ATA_CYL_LSB;
bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_REG | ATA_CYL_LSB;
(ATA_IDX_INB(ch, ATA_CYL_LSB) << 16) |
ch->r_io[ATA_CYL_LSB].offset = ch_offset + 0x10;
temp = ATA_IDX_INW(ch, ATA_CYL_LSB);
((ATA_IDX_INW(ch, ATA_CYL_LSB) & 0x00ff) << 8) |
ATA_IDX_OUTW(ch, ATA_CYL_LSB, ((request->u.ata.lba >> 24) & 0xff00) |
ATA_IDX_OUTW(ch, ATA_CYL_LSB,
ATA_IDX_OUTW(ch, ATA_CYL_LSB, request->u.ata.lba >> 8);