From 0ae7a75158fa0803b082b4644c99a551f6a8a0c2 Mon Sep 17 00:00:00 2001 From: Sir Richard Date: Mon, 7 Jun 2010 20:59:46 +0000 Subject: [PATCH] [HAL]: Implement ISA BUS address translation. svn path=/trunk/; revision=47678 --- .../hal/halx86/generic/legacy/bus/isabus.c | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/reactos/hal/halx86/generic/legacy/bus/isabus.c b/reactos/hal/halx86/generic/legacy/bus/isabus.c index 884e6d026bb..4d716a1060c 100644 --- a/reactos/hal/halx86/generic/legacy/bus/isabus.c +++ b/reactos/hal/halx86/generic/legacy/bus/isabus.c @@ -24,9 +24,28 @@ HalpTranslateIsaBusAddress(IN PBUS_HANDLER BusHandler, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress) { - DPRINT1("ISA Translate\n"); - while (TRUE); - return FALSE; + BOOLEAN Status; + + /* Use system translation */ + Status = HalpTranslateSystemBusAddress(BusHandler, + RootHandler, + BusAddress, + AddressSpace, + TranslatedAddress); + + /* If it didn't work and it was memory address space... */ + if (!(Status) && (*AddressSpace == 0)) + { + /* Try EISA translation instead */ + Status = HalTranslateBusAddress(Eisa, + BusHandler->BusNumber, + BusAddress, + AddressSpace, + TranslatedAddress); + } + + /* Return the result */ + return Status; } /* EOF */