You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
2.8 KiB
124 lines
2.8 KiB
/*++
|
|
|
|
Copyright (c) 2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
vector.h
|
|
|
|
Abstract:
|
|
|
|
contains all structures protyptes for connecting external
|
|
vectors to the Gpe Engine
|
|
|
|
Environment
|
|
|
|
Kernel mode only
|
|
|
|
Revision History:
|
|
|
|
03/22/00 - Initial Revision
|
|
|
|
--*/
|
|
|
|
#ifndef _VECTOR_H_
|
|
#define _VECTOR_H_
|
|
|
|
//
|
|
// Object returned by GpeConnectVector
|
|
//
|
|
typedef struct _GPE_VECTOR_OBJECT {
|
|
ULONG Vector;
|
|
PGPE_SERVICE_ROUTINE Handler;
|
|
PVOID Context;
|
|
BOOLEAN Sharable;
|
|
BOOLEAN HasControlMethod;
|
|
KINTERRUPT_MODE Mode;
|
|
} GPE_VECTOR_OBJECT, *PGPE_VECTOR_OBJECT;
|
|
|
|
//
|
|
// Structure of each entry in the global GPE vector table
|
|
//
|
|
typedef struct {
|
|
UCHAR Next;
|
|
PGPE_VECTOR_OBJECT GpeVectorObject;
|
|
} GPE_VECTOR_ENTRY, *PGPE_VECTOR_ENTRY;
|
|
|
|
extern PGPE_VECTOR_ENTRY GpeVectorTable;
|
|
extern UCHAR GpeVectorFree;
|
|
extern ULONG GpeVectorTableSize;
|
|
|
|
//
|
|
// Action parameter to ACPIGpeInstallRemoveIndex
|
|
//
|
|
#define ACPI_GPE_EDGE_INSTALL 0
|
|
#define ACPI_GPE_LEVEL_INSTALL 1
|
|
#define ACPI_GPE_REMOVE 2
|
|
|
|
//
|
|
// Type parameter to ACPIGpeInstallRemoveIndex
|
|
//
|
|
#define ACPI_GPE_HANDLER 0
|
|
#define ACPI_GPE_CONTROL_METHOD 1
|
|
|
|
VOID
|
|
ACPIVectorBuildVectorMasks(
|
|
VOID
|
|
);
|
|
|
|
NTSTATUS
|
|
ACPIVectorClear(
|
|
PDEVICE_OBJECT AcpiDeviceObject,
|
|
PVOID GpeVectorObject
|
|
);
|
|
|
|
NTSTATUS
|
|
ACPIVectorConnect(
|
|
PDEVICE_OBJECT AcpiDeviceObject,
|
|
ULONG GpeVector,
|
|
KINTERRUPT_MODE GpeMode,
|
|
BOOLEAN Sharable,
|
|
PGPE_SERVICE_ROUTINE ServiceRoutine,
|
|
PVOID ServiceContext,
|
|
PVOID *GpeVectorObject
|
|
);
|
|
|
|
NTSTATUS
|
|
ACPIVectorDisable(
|
|
PDEVICE_OBJECT AcpiDeviceObject,
|
|
PVOID GpeVectorObject
|
|
);
|
|
|
|
NTSTATUS
|
|
ACPIVectorDisconnect(
|
|
PVOID GpeVectorObject
|
|
);
|
|
|
|
NTSTATUS
|
|
ACPIVectorEnable(
|
|
PDEVICE_OBJECT AcpiDeviceObject,
|
|
PVOID GpeVectorObject
|
|
);
|
|
|
|
VOID
|
|
ACPIVectorFreeEntry (
|
|
ULONG TableIndex
|
|
);
|
|
|
|
BOOLEAN
|
|
ACPIVectorGetEntry (
|
|
PULONG TableIndex
|
|
);
|
|
|
|
BOOLEAN
|
|
ACPIVectorInstall(
|
|
ULONG GpeIndex,
|
|
PGPE_VECTOR_OBJECT GpeVectorObject
|
|
);
|
|
|
|
BOOLEAN
|
|
ACPIVectorRemove(
|
|
ULONG GpeIndex
|
|
);
|
|
|
|
#endif
|