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, 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, request->u.ata.lba >> 8);
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) |
ATA_IDX_OUTB(ch, ATA_CYL_LSB, (value >> 16) & 0xff);
(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, request->u.ata.lba >> 8);
res->lba_mid_exp = ATA_INB(ch->r_mem, ATA_CYL_LSB);
res->lba_mid = ATA_INB(ch->r_mem, ATA_CYL_LSB);
ATA_OUTB(ch->r_mem, ATA_CYL_LSB, cmd->lba_mid_exp);
ATA_OUTB(ch->r_mem, ATA_CYL_LSB, cmd->lba_mid);
ATA_OUTB(ch->r_mem, ATA_CYL_LSB, 0);
ATA_OUTB(ch->r_mem, ATA_CYL_LSB, ch->transfersize);
length = ATA_INB(ch->r_mem,ATA_CYL_LSB) |