49#define _COMPONENT ACPI_EVENTS
52#if (!ACPI_REDUCED_HARDWARE)
97 "Initializing General Purpose Events (GPEs):\n"));
130 if (AcpiGbl_FADT.Gpe0BlockLength &&
131 AcpiGbl_FADT.XGpe0Block.Address)
135 RegisterCount0 = (
UINT16) (AcpiGbl_FADT.Gpe0BlockLength / 2);
141 AcpiGbl_FADT.XGpe0Block.Address,
142 AcpiGbl_FADT.XGpe0Block.SpaceId,
144 AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[0]);
149 "Could not create GPE Block 0"));
153 if (AcpiGbl_FADT.Gpe1BlockLength &&
154 AcpiGbl_FADT.XGpe1Block.Address)
158 RegisterCount1 = (
UINT16) (AcpiGbl_FADT.Gpe1BlockLength / 2);
162 if ((RegisterCount0) &&
163 (GpeNumberMax >= AcpiGbl_FADT.Gpe1Base))
166 "GPE0 block (GPE 0 to %u) overlaps the GPE1 block "
167 "(GPE %u to %u) - Ignoring GPE1",
168 GpeNumberMax, AcpiGbl_FADT.Gpe1Base,
169 AcpiGbl_FADT.Gpe1Base +
181 AcpiGbl_FADT.XGpe1Block.Address,
182 AcpiGbl_FADT.XGpe1Block.SpaceId,
184 AcpiGbl_FADT.Gpe1Base,
185 AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[1]);
190 "Could not create GPE Block 1"));
202 if ((RegisterCount0 + RegisterCount1) == 0)
207 "There are no GPE blocks defined in the FADT\n"));
258 WalkInfo.
OwnerId = TableOwnerId;
263 GpeXruptInfo = AcpiGbl_GpeXruptListHead;
281 "While decoding _Lxx/_Exx methods"));
284 GpeBlock = GpeBlock->
Next;
287 GpeXruptInfo = GpeXruptInfo->
Next;
390 "Ignoring unknown GPE method type: %s "
391 "(name not of form _Lxx or _Exx)",
Name));
403 "Could not extract GPE number from name: %s "
404 "(name is not of form _Lxx or _Exx)",
Name));
442 "For GPE 0x%.2X, found both _L%2.2X and _E%2.2X methods",
461 "Registered GPE method %s as GPE number 0x%.2X\n",
UINT32 void void ** ReturnValue
ACPI_GPE_EVENT_INFO * GpeEventInfo
ACPI_GPE_EVENT_INFO UINT32 GpeNumber
#define ACPI_MTX_NAMESPACE
#define ACPI_MOVE_32_TO_32(d, s)
#define ACPI_NS_WALK_NO_UNLOCK
ACPI_STATUS AcpiNsWalkNamespace(ACPI_OBJECT_TYPE Type, ACPI_HANDLE StartObject, UINT32 MaxDepth, UINT32 Flags, ACPI_WALK_CALLBACK DescendingCallback, ACPI_WALK_CALLBACK AscendingCallback, void *Context, void **ReturnValue)
#define ACPI_DEBUG_PRINT(pl)
#define ACPI_EXCEPTION(plist)
#define ACPI_MODULE_NAME(Name)
#define return_ACPI_STATUS(s)
#define ACPI_FUNCTION_TRACE(a)
#define ACPI_ERROR(plist)
#define ACPI_DEBUG_PRINT_RAW(pl)
#define ACPI_GPE_DISPATCH_MASK
#define ACPI_GPE_LEVEL_TRIGGERED
#define ACPI_GPE_DISPATCH_TYPE(flags)
#define ACPI_GPE_DISPATCH_METHOD
#define ACPI_CAST_PTR(t, p)
#define ACPI_GPE_DISPATCH_RAW_HANDLER
#define ACPI_GPE_XRUPT_TYPE_MASK
#define ACPI_GPE_EDGE_TRIGGERED
#define ACPI_GPE_REGISTER_WIDTH
#define ACPI_GPE_DISPATCH_HANDLER
#define ACPI_NAMESEG_SIZE
ACPI_STATUS AcpiUtAcquireMutex(ACPI_MUTEX_HANDLE MutexId)
ACPI_STATUS AcpiUtReleaseMutex(ACPI_MUTEX_HANDLE MutexId)
ACPI_STATUS AcpiUtAsciiToHexByte(char *TwoAsciiChars, UINT8 *ReturnByte)
static const WCHAR Cleanup[]
ACPI_GPE_EVENT_INFO * AcpiEvLowGetGpeInfo(UINT32 GpeNumber, ACPI_GPE_BLOCK_INFO *GpeBlock)
ACPI_STATUS AcpiEvCreateGpeBlock(ACPI_NAMESPACE_NODE *GpeDevice, UINT64 Address, UINT8 SpaceId, UINT32 RegisterCount, UINT16 GpeBlockBaseNumber, UINT32 InterruptNumber, ACPI_GPE_BLOCK_INFO **ReturnGpeBlock)
ACPI_STATUS AcpiEvMatchGpeMethod(ACPI_HANDLE ObjHandle, UINT32 Level, void *Context, void **ReturnValue)
ACPI_STATUS AcpiEvGpeInitialize(void)
void AcpiEvUpdateGpes(ACPI_OWNER_ID TableOwnerId)
ACPI_STATUS AcpiHwLowSetGpe(ACPI_GPE_EVENT_INFO *GpeEventInfo, UINT32 Action)
struct acpi_gpe_block_info * Next
ACPI_NAMESPACE_NODE * Node
union acpi_gpe_dispatch_info Dispatch
ACPI_GPE_BLOCK_INFO * GpeBlock
ACPI_NAMESPACE_NODE * GpeDevice
struct acpi_gpe_xrupt_info * Next
ACPI_GPE_BLOCK_INFO * GpeBlockListHead
ACPI_NAMESPACE_NODE * MethodNode
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level