int ATA_ReadDMA(Uint8 Disk, Uint64 Address, Uint Count, void *Buffer);
int ATA_WriteDMA(Uint8 Disk, Uint64 Address, Uint Count, const void *Buffer);
// IRQs
-void ATA_IRQHandlerPri(int UNUSED(IRQ));
-void ATA_IRQHandlerSec(int UNUSED(IRQ));
+void ATA_IRQHandlerPri(int UNUSED(IRQ), void *UNUSED(Ptr));
+void ATA_IRQHandlerSec(int UNUSED(IRQ), void *UNUSED(Ptr));
// Controller IO
Uint8 ATA_int_BusMasterReadByte(int Ofs);
Uint32 ATA_int_BusMasterReadDWord(int Ofs);
ENTER("");
// Get IDE Controller's PCI Entry
- ent = PCI_GetDeviceByClass(0x0101, 0xFFFF, -1);
+ ent = PCI_GetDeviceByClass(0x010100, 0xFFFF00, -1);
LOG("ent = %i", ent);
gATA_BusMasterBase = PCI_GetBAR(ent, 4);
if( gATA_BusMasterBase == 0 ) {
}
// Register IRQs and get Buffers
- IRQ_AddHandler( gATA_IRQPri, ATA_IRQHandlerPri );
- IRQ_AddHandler( gATA_IRQSec, ATA_IRQHandlerSec );
+ IRQ_AddHandler( gATA_IRQPri, ATA_IRQHandlerPri, NULL );
+ IRQ_AddHandler( gATA_IRQSec, ATA_IRQHandlerSec, NULL );
gATA_PRDTs[0].PBufAddr = MM_GetPhysAddr( (tVAddr)&gATA_Buffers[0] );
gATA_PRDTs[1].PBufAddr = MM_GetPhysAddr( (tVAddr)&gATA_Buffers[1] );
int disk = Disk & 1;
Uint16 base;
Sint64 timeoutTime;
- Uint8 val;
ENTER("iDisk XAddress iCount pBuffer", Disk, Address, Count, Buffer);
// Complete Transfer
ATA_int_BusMasterWriteByte( cont * 8, 8 ); // Read and stop
- val = inb(base+0x7);
- LOG("Status byte = 0x%02x, Controller Status = 0x%02x",
- val, ATA_int_BusMasterReadByte(cont * 8 + 2));
+ #if DEBUG
+ {
+ Uint8 val = inb(base+0x7);
+ LOG("Status byte = 0x%02x, Controller Status = 0x%02x",
+ val, ATA_int_BusMasterReadByte(cont * 8 + 2));
+ }
+ #else
+ inb(base+0x7);
+ #endif
if( gaATA_IRQs[cont] == 0 )
{
/**
* \brief Primary ATA Channel IRQ handler
*/
-void ATA_IRQHandlerPri(int UNUSED(IRQ))
+void ATA_IRQHandlerPri(int UNUSED(IRQ), void *UNUSED(Ptr))
{
Uint8 val;
/**
* \brief Second ATA Channel IRQ handler
*/
-void ATA_IRQHandlerSec(int UNUSED(IRQ))
+void ATA_IRQHandlerSec(int UNUSED(IRQ), void *UNUSED(Ptr))
{
Uint8 val;
// IRQ bit set for Secondary Controller