X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Fx86%2Facpica.c;h=153478923e2964ced7d674c68a3d4e67e4c61cd6;hb=faad72a08c4bbd6b3b536c6c9b5201a203d45889;hp=57d7fe85e1fdff339dad65ff7e2ea768fdfafc64;hpb=be5123fe1f4aa66b76ce8ef589362ad21b6bbf72;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/x86/acpica.c b/KernelLand/Kernel/arch/x86/acpica.c index 57d7fe85..15347892 100644 --- a/KernelLand/Kernel/arch/x86/acpica.c +++ b/KernelLand/Kernel/arch/x86/acpica.c @@ -94,7 +94,7 @@ ACPI_PHYSICAL_ADDRESS AcpiOsGetRootPointer(void) if( ACPI_FAILURE(rv) ) return 0; - LOG("val=%x", val); + LOG("val=0x%x", val); return val; // (Or use EFI) @@ -170,11 +170,15 @@ ACPI_STATUS AcpiOsDeleteCache(ACPI_CACHE_T *Cache) ACPI_STATUS AcpiOsPurgeCache(ACPI_CACHE_T *Cache) { - if( Cache == NULL ) + ENTER("pCache", Cache); + if( Cache == NULL ) { + LEAVE('i', AE_BAD_PARAMETER); return AE_BAD_PARAMETER; + } memset(Cache->ObjectStates, 0, sizeof(char)*Cache->nObj); + LEAVE('i', AE_OK); return AE_OK; } @@ -192,7 +196,8 @@ void *AcpiOsAcquireObject(ACPI_CACHE_T *Cache) } } - Log_Debug("ACPICA", "AcpiOsAcquireObject: %i objects used", Cache->nObj); + Log_Debug("ACPICA", "AcpiOsAcquireObject: All %i objects used in '%s'", + Cache->nObj, Cache->Name); LEAVE('n'); return NULL; @@ -202,6 +207,7 @@ ACPI_STATUS AcpiOsReleaseObject(ACPI_CACHE_T *Cache, void *Object) { if( Cache == NULL || Object == NULL ) return AE_BAD_PARAMETER; + ENTER("pCache pObject", Cache, Object); tVAddr delta = (tVAddr)Object - (tVAddr)Cache->First; delta /= Cache->ObjectSize; @@ -212,6 +218,7 @@ ACPI_STATUS AcpiOsReleaseObject(ACPI_CACHE_T *Cache, void *Object) Cache->ObjectStates[delta] = 0; + LEAVE('i', AE_OK); return AE_OK; } @@ -222,8 +229,13 @@ void *AcpiOsMapMemory(ACPI_PHYSICAL_ADDRESS PhysicalAddress, ACPI_SIZE Length) Uint ofs = PhysicalAddress & (PAGE_SIZE-1); int npages = (ofs + Length + (PAGE_SIZE-1)) / PAGE_SIZE; - void *rv = ((char*)MM_MapHWPages(PhysicalAddress, npages)) + ofs; + char *maploc = (void*)MM_MapHWPages(PhysicalAddress, npages); + if(!maploc) { + LOG("Mapping %P+0x%x failed", PhysicalAddress, Length); + return NULL; + } // MM_DumpTables(0, -1); + void *rv = maploc + ofs; LOG("Map (%P+%i pg) to %p", PhysicalAddress, npages, rv); return rv; }