mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 22:46:17 +00:00
- Set the resource pointer back to the start of the list before looping a second time
- Remove the duplicate OSL - Disable more debug prints - ROS with ACPI has been booted successfully on VirtualBox (with additions), QEMU, and VMware svn path=/trunk/; revision=46242
This commit is contained in:
parent
44b4c1e7d1
commit
2545746a80
4 changed files with 4 additions and 754 deletions
|
@ -83,9 +83,6 @@
|
|||
<file>nsxfname.c</file>
|
||||
<file>nsxfobj.c</file>
|
||||
</directory>
|
||||
<!--directory name="osl">
|
||||
<file>osl.c</file>
|
||||
</directory-->
|
||||
<directory name="parser">
|
||||
<file>psargs.c</file>
|
||||
<file>psloop.c</file>
|
||||
|
|
|
@ -1,751 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* *
|
||||
* ACPI Component Architecture Operating System Layer (OSL) for ReactOS *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
|
||||
#include <acpi.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
#define NUM_SEMAPHORES 128
|
||||
|
||||
static PKINTERRUPT AcpiInterrupt;
|
||||
static BOOLEAN AcpiInterruptHandlerRegistered = FALSE;
|
||||
static ACPI_OSD_HANDLER AcpiIrqHandler = NULL;
|
||||
static PVOID AcpiIrqContext = NULL;
|
||||
static ULONG AcpiIrqNumber = 0;
|
||||
static KDPC AcpiDpc;
|
||||
static PVOID IVTVirtualAddress = NULL;
|
||||
|
||||
|
||||
typedef struct semaphore_entry
|
||||
{
|
||||
UINT16 MaxUnits;
|
||||
UINT16 CurrentUnits;
|
||||
void *OsHandle;
|
||||
} SEMAPHORE_ENTRY;
|
||||
|
||||
static SEMAPHORE_ENTRY AcpiGbl_Semaphores[NUM_SEMAPHORES];
|
||||
|
||||
VOID NTAPI
|
||||
OslDpcStub(
|
||||
IN PKDPC Dpc,
|
||||
IN PVOID DeferredContext,
|
||||
IN PVOID SystemArgument1,
|
||||
IN PVOID SystemArgument2)
|
||||
{
|
||||
ACPI_OSD_EXEC_CALLBACK Routine = (ACPI_OSD_EXEC_CALLBACK)SystemArgument1;
|
||||
|
||||
DPRINT("OslDpcStub()\n");
|
||||
DPRINT("Calling [%p]([%p])\n", Routine, SystemArgument2);
|
||||
(*Routine)(SystemArgument2);
|
||||
}
|
||||
|
||||
BOOLEAN NTAPI
|
||||
OslIsrStub(
|
||||
PKINTERRUPT Interrupt,
|
||||
PVOID ServiceContext)
|
||||
{
|
||||
INT32 Status;
|
||||
|
||||
Status = (*AcpiIrqHandler)(AcpiIrqContext);
|
||||
|
||||
if (ACPI_SUCCESS(Status))
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsRemoveInterruptHandler (
|
||||
UINT32 InterruptNumber,
|
||||
ACPI_OSD_HANDLER ServiceRoutine);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsInitialize (void)
|
||||
{
|
||||
DPRINT("AcpiOsInitialize called\n");
|
||||
|
||||
#ifndef NDEBUG
|
||||
/* Verboseness level of the acpica core */
|
||||
AcpiDbgLevel = 0x00FFFFFF;
|
||||
AcpiDbgLayer = 0xFFFFFFFF;
|
||||
#endif
|
||||
|
||||
UINT32 i;
|
||||
|
||||
for (i = 0; i < NUM_SEMAPHORES; i++)
|
||||
{
|
||||
AcpiGbl_Semaphores[i].OsHandle = NULL;
|
||||
}
|
||||
|
||||
KeInitializeDpc(&AcpiDpc, OslDpcStub, NULL);
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsTerminate(void)
|
||||
{
|
||||
DPRINT1("AcpiOsTerminate() called\n");
|
||||
|
||||
if (AcpiInterruptHandlerRegistered)
|
||||
AcpiOsRemoveInterruptHandler(AcpiIrqNumber, AcpiIrqHandler);
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
AcpiOsPrintf (
|
||||
const char *Fmt,
|
||||
...)
|
||||
{
|
||||
va_list Args;
|
||||
va_start (Args, Fmt);
|
||||
|
||||
AcpiOsVprintf (Fmt, Args);
|
||||
|
||||
va_end (Args);
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiOsVprintf (
|
||||
const char *Fmt,
|
||||
va_list Args)
|
||||
{
|
||||
vDbgPrintEx (-1, DPFLTR_ERROR_LEVEL, Fmt, Args);
|
||||
return;
|
||||
}
|
||||
|
||||
void *
|
||||
AcpiOsAllocate (ACPI_SIZE size)
|
||||
{
|
||||
DPRINT("AcpiOsAllocate size %d\n",size);
|
||||
return ExAllocatePool(NonPagedPool, size);
|
||||
}
|
||||
|
||||
void *
|
||||
AcpiOsCallocate(ACPI_SIZE size)
|
||||
{
|
||||
PVOID ptr = ExAllocatePool(NonPagedPool, size);
|
||||
if (ptr)
|
||||
memset(ptr, 0, size);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiOsFree(void *ptr)
|
||||
{
|
||||
if (!ptr)
|
||||
DPRINT1("Attempt to free null pointer!!!\n");
|
||||
ExFreePool(ptr);
|
||||
}
|
||||
|
||||
#ifndef ACPI_USE_LOCAL_CACHE
|
||||
|
||||
void*
|
||||
AcpiOsAcquireObjectHelper (
|
||||
POOL_TYPE PoolType,
|
||||
SIZE_T NumberOfBytes,
|
||||
ULONG Tag)
|
||||
{
|
||||
void* Alloc = ExAllocatePool(PoolType, NumberOfBytes);
|
||||
|
||||
/* acpica expects memory allocated from cache to be zeroed */
|
||||
RtlZeroMemory(Alloc,NumberOfBytes);
|
||||
return Alloc;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsCreateCache (
|
||||
char *CacheName,
|
||||
UINT16 ObjectSize,
|
||||
UINT16 MaxDepth,
|
||||
ACPI_CACHE_T **ReturnCache)
|
||||
{
|
||||
PNPAGED_LOOKASIDE_LIST Lookaside =
|
||||
ExAllocatePool(NonPagedPool,sizeof(NPAGED_LOOKASIDE_LIST));
|
||||
|
||||
ExInitializeNPagedLookasideList(Lookaside,
|
||||
(PALLOCATE_FUNCTION)AcpiOsAcquireObjectHelper,// custom memory allocator
|
||||
NULL,
|
||||
0,
|
||||
ObjectSize,
|
||||
'IPCA',
|
||||
0);
|
||||
*ReturnCache = (ACPI_CACHE_T *)Lookaside;
|
||||
|
||||
DPRINT("AcpiOsCreateCache %p\n", Lookaside);
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsDeleteCache (
|
||||
ACPI_CACHE_T *Cache)
|
||||
{
|
||||
DPRINT("AcpiOsDeleteCache %p\n", Cache);
|
||||
ExDeleteNPagedLookasideList(
|
||||
(PNPAGED_LOOKASIDE_LIST) Cache);
|
||||
ExFreePool(Cache);
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsPurgeCache (
|
||||
ACPI_CACHE_T *Cache)
|
||||
{
|
||||
DPRINT("AcpiOsPurgeCache\n");
|
||||
/* No such functionality for LookAside lists */
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
void *
|
||||
AcpiOsAcquireObject (
|
||||
ACPI_CACHE_T *Cache)
|
||||
{
|
||||
PNPAGED_LOOKASIDE_LIST List = (PNPAGED_LOOKASIDE_LIST)Cache;
|
||||
DPRINT("AcpiOsAcquireObject from %p\n", Cache);
|
||||
void* ptr =
|
||||
ExAllocateFromNPagedLookasideList(List);
|
||||
ASSERT(ptr);
|
||||
|
||||
RtlZeroMemory(ptr,List->L.Size);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsReleaseObject (
|
||||
ACPI_CACHE_T *Cache,
|
||||
void *Object)
|
||||
{
|
||||
DPRINT("AcpiOsReleaseObject %p from %p\n",Object, Cache);
|
||||
ExFreeToNPagedLookasideList(
|
||||
(PNPAGED_LOOKASIDE_LIST)Cache,
|
||||
Object);
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void *
|
||||
AcpiOsMapMemory (
|
||||
ACPI_PHYSICAL_ADDRESS phys,
|
||||
ACPI_SIZE length)
|
||||
{
|
||||
PHYSICAL_ADDRESS Address;
|
||||
|
||||
DPRINT("AcpiOsMapMemory(phys 0x%X size 0x%X)\n", (ULONG)phys, length);
|
||||
if (phys == 0x0)
|
||||
{
|
||||
IVTVirtualAddress = ExAllocatePool(NonPagedPool, length);
|
||||
return IVTVirtualAddress;
|
||||
}
|
||||
|
||||
Address.QuadPart = (ULONG)phys;
|
||||
return MmMapIoSpace(Address, length, MmNonCached);
|
||||
}
|
||||
|
||||
void
|
||||
AcpiOsUnmapMemory (
|
||||
void *virt,
|
||||
ACPI_SIZE length)
|
||||
{
|
||||
DPRINT("AcpiOsUnmapMemory()\n");
|
||||
|
||||
if (virt == 0x0)
|
||||
{
|
||||
ExFreePool(IVTVirtualAddress);
|
||||
return;
|
||||
}
|
||||
MmUnmapIoSpace(virt, length);
|
||||
}
|
||||
|
||||
UINT32
|
||||
AcpiOsInstallInterruptHandler (
|
||||
UINT32 InterruptNumber,
|
||||
ACPI_OSD_HANDLER ServiceRoutine,
|
||||
void *Context)
|
||||
{
|
||||
ULONG Vector;
|
||||
KIRQL DIrql;
|
||||
KAFFINITY Affinity;
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT("AcpiOsInstallInterruptHandler()\n");
|
||||
Vector = HalGetInterruptVector(
|
||||
Internal,
|
||||
0,
|
||||
InterruptNumber,
|
||||
0,
|
||||
&DIrql,
|
||||
&Affinity);
|
||||
|
||||
AcpiIrqNumber = InterruptNumber;
|
||||
AcpiIrqHandler = ServiceRoutine;
|
||||
AcpiIrqContext = Context;
|
||||
AcpiInterruptHandlerRegistered = TRUE;
|
||||
|
||||
Status = IoConnectInterrupt(
|
||||
&AcpiInterrupt,
|
||||
OslIsrStub,
|
||||
NULL,
|
||||
NULL,
|
||||
Vector,
|
||||
DIrql,
|
||||
DIrql,
|
||||
LevelSensitive, /* FIXME: LevelSensitive or Latched? */
|
||||
TRUE,
|
||||
Affinity,
|
||||
FALSE);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT("Could not connect to interrupt %d\n", Vector);
|
||||
return AE_ERROR;
|
||||
}
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsRemoveInterruptHandler (
|
||||
UINT32 InterruptNumber,
|
||||
ACPI_OSD_HANDLER ServiceRoutine)
|
||||
{
|
||||
DPRINT("AcpiOsRemoveInterruptHandler()\n");
|
||||
if (AcpiInterruptHandlerRegistered)
|
||||
{
|
||||
IoDisconnectInterrupt(AcpiInterrupt);
|
||||
AcpiInterrupt = NULL;
|
||||
AcpiInterruptHandlerRegistered = FALSE;
|
||||
}
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiOsStall (UINT32 microseconds)
|
||||
{
|
||||
DPRINT1("AcpiOsStall %d\n",microseconds);
|
||||
KeStallExecutionProcessor(microseconds);
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiOsSleep (ACPI_INTEGER milliseconds)
|
||||
{
|
||||
DPRINT1("AcpiOsSleep %d\n", milliseconds);
|
||||
KeStallExecutionProcessor(milliseconds*1000);
|
||||
return;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsReadPort (
|
||||
ACPI_IO_ADDRESS Address,
|
||||
UINT32 *Value,
|
||||
UINT32 Width)
|
||||
{
|
||||
DPRINT("AcpiOsReadPort %p, width %d\n",Address,Width);
|
||||
|
||||
switch (Width)
|
||||
{
|
||||
case 8:
|
||||
*Value = READ_PORT_UCHAR((PUCHAR)Address);
|
||||
break;
|
||||
|
||||
case 16:
|
||||
*Value = READ_PORT_USHORT((PUSHORT)Address);
|
||||
break;
|
||||
|
||||
case 32:
|
||||
*Value = READ_PORT_ULONG((PULONG)Address);
|
||||
break;
|
||||
default:
|
||||
DPRINT1("AcpiOsReadPort got bad width: %d\n",Width);
|
||||
return (AE_BAD_PARAMETER);
|
||||
break;
|
||||
}
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsWritePort (
|
||||
ACPI_IO_ADDRESS Address,
|
||||
UINT32 Value,
|
||||
UINT32 Width)
|
||||
{
|
||||
DPRINT("AcpiOsWritePort %p, width %d\n",Address,Width);
|
||||
switch (Width)
|
||||
{
|
||||
case 8:
|
||||
WRITE_PORT_UCHAR((PUCHAR)Address, Value);
|
||||
break;
|
||||
|
||||
case 16:
|
||||
WRITE_PORT_USHORT((PUSHORT)Address, Value);
|
||||
break;
|
||||
|
||||
case 32:
|
||||
WRITE_PORT_ULONG((PULONG)Address, Value);
|
||||
break;
|
||||
|
||||
default:
|
||||
DPRINT1("AcpiOsWritePort got bad width: %d\n",Width);
|
||||
return (AE_BAD_PARAMETER);
|
||||
break;
|
||||
}
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsReadMemory (
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 *Value,
|
||||
UINT32 Width)
|
||||
{
|
||||
DPRINT("AcpiOsReadMemory %p\n", Address);
|
||||
switch (Width)
|
||||
{
|
||||
case 8:
|
||||
*Value = (*(PUCHAR)(ULONG)Address);
|
||||
break;
|
||||
case 16:
|
||||
*Value = (*(PUSHORT)(ULONG)Address);
|
||||
break;
|
||||
case 32:
|
||||
*Value = (*(PULONG)(ULONG)Address);
|
||||
break;
|
||||
|
||||
default:
|
||||
DPRINT1("AcpiOsReadMemory got bad width: %d\n",Width);
|
||||
return (AE_BAD_PARAMETER);
|
||||
break;
|
||||
}
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsWriteMemory (
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 Value,
|
||||
UINT32 Width)
|
||||
{
|
||||
DPRINT("AcpiOsWriteMemory %p\n", Address);
|
||||
switch (Width)
|
||||
{
|
||||
case 8:
|
||||
*(PUCHAR)(ULONG)Address = Value;
|
||||
break;
|
||||
case 16:
|
||||
*(PUSHORT)(ULONG)Address = Value;
|
||||
break;
|
||||
case 32:
|
||||
*(PULONG)(ULONG)Address = Value;
|
||||
break;
|
||||
|
||||
default:
|
||||
DPRINT1("AcpiOsWriteMemory got bad width: %d\n",Width);
|
||||
return (AE_BAD_PARAMETER);
|
||||
break;
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsReadPciConfiguration (
|
||||
ACPI_PCI_ID *PciId,
|
||||
UINT32 Register,
|
||||
void *Value,
|
||||
UINT32 Width)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PCI_SLOT_NUMBER slot;
|
||||
|
||||
if (Register == 0)
|
||||
return AE_ERROR;
|
||||
|
||||
slot.u.AsULONG = 0;
|
||||
slot.u.bits.DeviceNumber = PciId->Bus;
|
||||
slot.u.bits.FunctionNumber = PciId->Function;
|
||||
|
||||
DPRINT("AcpiOsReadPciConfiguration, slot=0x%X, func=0x%X\n", slot.u.AsULONG, Register);
|
||||
Status = HalGetBusDataByOffset(PCIConfiguration,
|
||||
PciId->Bus,
|
||||
slot.u.AsULONG,
|
||||
Value,
|
||||
Register,
|
||||
Width);
|
||||
|
||||
if (NT_SUCCESS(Status))
|
||||
return AE_OK;
|
||||
else
|
||||
return AE_ERROR;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsWritePciConfiguration (
|
||||
ACPI_PCI_ID *PciId,
|
||||
UINT32 Register,
|
||||
ACPI_INTEGER Value,
|
||||
UINT32 Width)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
ULONG buf = Value;
|
||||
PCI_SLOT_NUMBER slot;
|
||||
|
||||
if (Register == 0)
|
||||
return AE_ERROR;
|
||||
|
||||
slot.u.AsULONG = 0;
|
||||
slot.u.bits.DeviceNumber = PciId->Bus;
|
||||
slot.u.bits.FunctionNumber = PciId->Function;
|
||||
|
||||
DPRINT("AcpiOsWritePciConfiguration, slot=0x%x\n", slot.u.AsULONG);
|
||||
Status = HalSetBusDataByOffset(PCIConfiguration,
|
||||
PciId->Bus,
|
||||
slot.u.AsULONG,
|
||||
&buf,
|
||||
Register,
|
||||
Width);
|
||||
|
||||
if (NT_SUCCESS(Status))
|
||||
return AE_OK;
|
||||
else
|
||||
return AE_ERROR;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsCreateSemaphore (
|
||||
UINT32 MaxUnits,
|
||||
UINT32 InitialUnits,
|
||||
ACPI_SEMAPHORE *OutHandle)
|
||||
{
|
||||
PFAST_MUTEX Mutex;
|
||||
|
||||
Mutex = ExAllocatePool(NonPagedPool, sizeof(FAST_MUTEX));
|
||||
if (!Mutex)
|
||||
return AE_NO_MEMORY;
|
||||
|
||||
DPRINT("AcpiOsCreateSemaphore() at 0x%X\n", Mutex);
|
||||
|
||||
ExInitializeFastMutex(Mutex);
|
||||
|
||||
*OutHandle = Mutex;
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsDeleteSemaphore (
|
||||
ACPI_SEMAPHORE Handle)
|
||||
{
|
||||
PFAST_MUTEX Mutex = (PFAST_MUTEX)Handle;
|
||||
|
||||
DPRINT("AcpiOsDeleteSemaphore(handle 0x%X)\n", Handle);
|
||||
|
||||
if (!Mutex)
|
||||
return AE_BAD_PARAMETER;
|
||||
|
||||
ExFreePool(Mutex);
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsWaitSemaphore(
|
||||
ACPI_SEMAPHORE Handle,
|
||||
UINT32 units,
|
||||
UINT16 timeout)
|
||||
{
|
||||
PFAST_MUTEX Mutex = (PFAST_MUTEX)Handle;
|
||||
|
||||
if (!Mutex || (units < 1))
|
||||
{
|
||||
DPRINT("AcpiOsWaitSemaphore(handle 0x%X, units %d) Bad parameters\n",
|
||||
Mutex, units);
|
||||
return AE_BAD_PARAMETER;
|
||||
}
|
||||
|
||||
DPRINT("Waiting for semaphore %p\n", Handle);
|
||||
ASSERT(Mutex);
|
||||
|
||||
ExAcquireFastMutex(Mutex);
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsSignalSemaphore (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Units)
|
||||
{
|
||||
PFAST_MUTEX Mutex = (PFAST_MUTEX)Handle;
|
||||
|
||||
DPRINT("AcpiOsSignalSemaphore %p\n",Handle);
|
||||
ASSERT(Mutex);
|
||||
|
||||
ExReleaseFastMutex(Mutex);
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsCreateLock (
|
||||
ACPI_SPINLOCK *OutHandle)
|
||||
{
|
||||
DPRINT("AcpiOsCreateLock\n");
|
||||
return (AcpiOsCreateSemaphore (1, 1, OutHandle));
|
||||
}
|
||||
|
||||
void
|
||||
AcpiOsDeleteLock (
|
||||
ACPI_SPINLOCK Handle)
|
||||
{
|
||||
DPRINT("AcpiOsDeleteLock %p\n", Handle);
|
||||
AcpiOsDeleteSemaphore (Handle);
|
||||
}
|
||||
|
||||
|
||||
ACPI_CPU_FLAGS
|
||||
AcpiOsAcquireLock (
|
||||
ACPI_HANDLE Handle)
|
||||
{
|
||||
DPRINT("AcpiOsAcquireLock, %p\n", Handle);
|
||||
AcpiOsWaitSemaphore (Handle, 1, 0xFFFF);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
AcpiOsReleaseLock (
|
||||
ACPI_SPINLOCK Handle,
|
||||
ACPI_CPU_FLAGS Flags)
|
||||
{
|
||||
DPRINT("AcpiOsReleaseLock %p\n",Handle);
|
||||
AcpiOsSignalSemaphore (Handle, 1);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsSignal (
|
||||
UINT32 Function,
|
||||
void *Info)
|
||||
{
|
||||
|
||||
switch (Function)
|
||||
{
|
||||
case ACPI_SIGNAL_FATAL:
|
||||
if (Info)
|
||||
AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Info);
|
||||
else
|
||||
AcpiOsPrintf ("AcpiOsBreakpoint ****\n");
|
||||
break;
|
||||
case ACPI_SIGNAL_BREAKPOINT:
|
||||
if (Info)
|
||||
AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Info);
|
||||
else
|
||||
AcpiOsPrintf ("AcpiOsBreakpoint ****\n");
|
||||
break;
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
ACPI_THREAD_ID
|
||||
AcpiOsGetThreadId (void)
|
||||
{
|
||||
return (ULONG)PsGetCurrentThreadId();
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsExecute (
|
||||
ACPI_EXECUTE_TYPE Type,
|
||||
ACPI_OSD_EXEC_CALLBACK Function,
|
||||
void *Context)
|
||||
{
|
||||
DPRINT1("AcpiOsExecute\n");
|
||||
|
||||
KeInsertQueueDpc(&AcpiDpc, (PVOID)Function, (PVOID)Context);
|
||||
|
||||
#ifdef _MULTI_THREADED
|
||||
//_beginthread (Function, (unsigned) 0, Context);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT64
|
||||
AcpiOsGetTimer (void)
|
||||
{
|
||||
DPRINT("AcpiOsGetTimer\n");
|
||||
LARGE_INTEGER Timer;
|
||||
KeQueryTickCount(&Timer);
|
||||
|
||||
return Timer.QuadPart;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiOsDerivePciId(
|
||||
ACPI_HANDLE rhandle,
|
||||
ACPI_HANDLE chandle,
|
||||
ACPI_PCI_ID **PciId)
|
||||
{
|
||||
DPRINT("AcpiOsDerivePciId\n");
|
||||
return;
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsPredefinedOverride (
|
||||
const ACPI_PREDEFINED_NAMES *InitVal,
|
||||
ACPI_STRING *NewVal)
|
||||
{
|
||||
if (!InitVal || !NewVal)
|
||||
return AE_BAD_PARAMETER;
|
||||
|
||||
*NewVal = ACPI_OS_NAME;
|
||||
DPRINT("AcpiOsPredefinedOverride\n");
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
ACPI_PHYSICAL_ADDRESS
|
||||
AcpiOsGetRootPointer (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsTableOverride (
|
||||
ACPI_TABLE_HEADER *ExistingTable,
|
||||
ACPI_TABLE_HEADER **NewTable)
|
||||
{
|
||||
DPRINT("AcpiOsTableOverride\n");
|
||||
*NewTable = NULL;
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsValidateInterface (
|
||||
char *Interface)
|
||||
{
|
||||
DPRINT("AcpiOsValidateInterface\n");
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsValidateAddress (
|
||||
UINT8 SpaceId,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
ACPI_SIZE Length)
|
||||
{
|
||||
DPRINT("AcpiOsValidateAddress\n");
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_PHYSICAL_ADDRESS
|
||||
AcpiOsGetRootPointer (
|
||||
void)
|
||||
{
|
||||
DPRINT("AcpiOsGetRootPointer\n");
|
||||
ACPI_PHYSICAL_ADDRESS pa = 0;
|
||||
|
||||
AcpiFindRootPointer(&pa);
|
||||
return pa;
|
||||
}
|
|
@ -679,6 +679,7 @@ Bus_PDO_QueryResources(
|
|||
ResourceDescriptor = ResourceList->List[0].PartialResourceList.PartialDescriptors;
|
||||
|
||||
/* Fill resources list structure */
|
||||
resource = Buffer.Pointer;
|
||||
while (resource->Type != ACPI_RESOURCE_TYPE_END_TAG)
|
||||
{
|
||||
switch (resource->Type)
|
||||
|
@ -1093,6 +1094,7 @@ Bus_PDO_QueryResourceRequirements(
|
|||
RequirementDescriptor = RequirementsList->List[0].Descriptors;
|
||||
|
||||
/* Fill resources list structure */
|
||||
resource = Buffer.Pointer;
|
||||
while (resource->Type != ACPI_RESOURCE_TYPE_END_TAG)
|
||||
{
|
||||
switch (resource->Type)
|
||||
|
|
|
@ -117,7 +117,9 @@ AcpiOsVprintf (
|
|||
const char *Fmt,
|
||||
va_list Args)
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
vDbgPrintEx (-1, DPFLTR_ERROR_LEVEL, Fmt, Args);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue