Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 1518 of file id_sata.cpp.
Referenced by AtapiInterrupt__().
{ PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; PHW_CHANNEL chan = &deviceExtension->chan[lChannel]; //ULONG Channel = deviceExtension->Channel + lChannel; //ULONG hIS; PATA_REQ AtaReq = (PATA_REQ)(Srb->SrbExtension); ULONG TFD; PUCHAR RCV_FIS = &(chan->AhciCtlBlock->rcv_fis.rfis[0]); KdPrint2(("UniataAhciEndTransaction: lChan %d\n", chan->lChannel)); TFD = UniataAhciReadChannelPort4(chan, IDX_AHCI_P_TFD); KdPrint2((" TFD %#x\n", TFD)); if(TFD & IDE_STATUS_ERROR) { KdPrint2((" ERROR %#x\n", (UCHAR)(TFD >> 8))); } AtaReq->ahci.in_status = TFD; //if (request->flags & ATA_R_CONTROL) { AtaReq->ahci.in_bcount = (ULONG)(RCV_FIS[12]) | ((ULONG)(RCV_FIS[13]) << 8); AtaReq->ahci.in_lba = (ULONG)(RCV_FIS[4]) | ((ULONGLONG)(RCV_FIS[5]) << 8) | ((ULONGLONG)(RCV_FIS[6]) << 16); if(chan->ChannelCtrlFlags & CTRFLAGS_LBA48) { AtaReq->ahci.in_lba |= ((ULONGLONG)(RCV_FIS[8]) << 24) | ((ULONGLONG)(RCV_FIS[9]) << 32) | ((ULONGLONG)(RCV_FIS[10]) << 40); } else { AtaReq->ahci.in_lba |= ((ULONGLONG)(RCV_FIS[8]) << 24) | ((ULONGLONG)(RCV_FIS[9]) << 32) | ((ULONGLONG)(RCV_FIS[7] & 0x0f) << 24); } //} return 0; } // end UniataAhciEndTransaction()