ATA_IDX_INB
request->status = ATA_IDX_INB(ch, ATA_STATUS);
request->error = ATA_IDX_INB(ch, ATA_ERROR);
if (!(ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_DSC))
if (!(ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_DSC))
request->status = ATA_IDX_INB(ch, ATA_STATUS);
request->error = ATA_IDX_INB(ch, ATA_ERROR);
request->status = ATA_IDX_INB(ch, ATA_STATUS);
request->error = ATA_IDX_INB(ch, ATA_ERROR);
length = ATA_IDX_INB(ch, ATA_CYL_LSB)|(ATA_IDX_INB(ch, ATA_CYL_MSB)<<8);
switch ((ATA_IDX_INB(ch, ATA_IREASON) & (ATA_I_CMD | ATA_I_IN)) |
request->error = ATA_IDX_INB(ch, ATA_ERROR);
request->error = ATA_IDX_INB(ch, ATA_ERROR);
ostat0 = ATA_IDX_INB(ch, ATA_STATUS);
ostat1 = ATA_IDX_INB(ch, ATA_STATUS);
ATA_IDX_INB(ch, ATA_ERROR);
stat0 = ATA_IDX_INB(ch, ATA_STATUS);
err = ATA_IDX_INB(ch, ATA_ERROR);
lsb = ATA_IDX_INB(ch, ATA_CYL_LSB);
msb = ATA_IDX_INB(ch, ATA_CYL_MSB);
stat1 = ATA_IDX_INB(ch, ATA_STATUS);
err = ATA_IDX_INB(ch, ATA_ERROR);
lsb = ATA_IDX_INB(ch, ATA_CYL_LSB);
msb = ATA_IDX_INB(ch, ATA_CYL_MSB);
if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY) {
if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY)
status = ATA_IDX_INB(ch, ATA_ALTSTAT);
status = ATA_IDX_INB(ch, ATA_ALTSTAT);
int reason = ATA_IDX_INB(ch, ATA_IREASON);
int status = ATA_IDX_INB(ch, ATA_STATUS);
request->u.ata.count = (ATA_IDX_INB(ch, ATA_COUNT) << 8);
((u_int64_t)(ATA_IDX_INB(ch, ATA_SECTOR)) << 24) |
((u_int64_t)(ATA_IDX_INB(ch, ATA_CYL_LSB)) << 32) |
((u_int64_t)(ATA_IDX_INB(ch, ATA_CYL_MSB)) << 40);
request->u.ata.count |= ATA_IDX_INB(ch, ATA_COUNT);
(ATA_IDX_INB(ch, ATA_SECTOR) |
(ATA_IDX_INB(ch, ATA_CYL_LSB) << 8) |
(ATA_IDX_INB(ch, ATA_CYL_MSB) << 16));
request->u.ata.count = ATA_IDX_INB(ch, ATA_COUNT);
request->u.ata.lba = ATA_IDX_INB(ch, ATA_SECTOR) |
(ATA_IDX_INB(ch, ATA_CYL_LSB) << 8) |
(ATA_IDX_INB(ch, ATA_CYL_MSB) << 16) |
((ATA_IDX_INB(ch, ATA_DRIVE) & 0xf) << 24);
int bmstat = ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK;
if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY) {
if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY)
ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) |
(ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_WRITE_READ) |
ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP);
error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK;
ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP);
int bmstat = ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK;
ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP);
if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY) {
if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY)
if ((pcs == mask) && (ATA_IDX_INB(ch, ATA_STATUS) != 0xff))
ATA_IDX_INB(ch, ATA_BMDEVSPEC_0) & 0x01) {
ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) |
error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT);
ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP);
ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP);
ATA_IDX_INB(ch, ATA_BMDEVSPEC_1) & 0x04) {
if (ATA_IDX_INB(ch, ATA_BMDEVSPEC_1) & 0x20) {
u_int8_t status = ATA_IDX_INB(ch, ATA_STATUS);
*result = ATA_IDX_INB(ch, ATA_COUNT) |
(ATA_IDX_INB(ch, ATA_SECTOR) << 8) |
(ATA_IDX_INB(ch, ATA_CYL_LSB) << 16) |
(ATA_IDX_INB(ch, ATA_CYL_MSB) << 24);
u_int8_t status = ATA_IDX_INB(ch, ATA_STATUS);
return ATA_IDX_INB(ch, ATA_ERROR);
ATA_IDX_INB(ch, ATA_ERROR);
/* err = */ ATA_IDX_INB(ch, ATA_ERROR);
stat = ATA_IDX_INB(ch, ATA_STATUS);
return ATA_IDX_INB(ch, ATA_COUNT) |
(ATA_IDX_INB(ch, ATA_SECTOR) << 8) |
(ATA_IDX_INB(ch, ATA_CYL_LSB) << 16) |
(ATA_IDX_INB(ch, ATA_CYL_MSB) << 24);
status = ATA_IDX_INB(ch, ATA_STATUS);
status = ATA_IDX_INB(ch, ATA_STATUS);
if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY) {
if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY)