96 lines
1.6 KiB
C
96 lines
1.6 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1997 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
acpilock.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This moulde is the header for acpilock.c
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
NT Kernel Mode Driver Only
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _ACPILOCK_H_
|
||
|
#define _ACPILOCK_H_
|
||
|
|
||
|
//
|
||
|
// Global lock request structure is in acpiioct.h
|
||
|
// Used only if the requestor must wait for the lock.
|
||
|
// Cannot grow beyond 4 DWORDs
|
||
|
//
|
||
|
|
||
|
// An IRP is queued (LockContext == Irp)
|
||
|
#define ACPI_GL_QTYPE_IRP 1
|
||
|
// Internal, LockContext == CallBack
|
||
|
#define ACPI_GL_QTYPE_INTERNAL 2
|
||
|
|
||
|
typedef struct _ACPI_GLOBAL_LOCK {
|
||
|
PVOID LockContext;
|
||
|
USHORT Type;
|
||
|
USHORT Depth;
|
||
|
LIST_ENTRY ListEntry;
|
||
|
} ACPI_GLOBAL_LOCK, *PACPI_GLOBAL_LOCK;
|
||
|
|
||
|
//
|
||
|
// Public interfaces
|
||
|
//
|
||
|
NTSTATUS
|
||
|
EXPORT
|
||
|
GlobalLockEventHandler(
|
||
|
ULONG EventType,
|
||
|
ULONG What,
|
||
|
ULONG dwParam,
|
||
|
PFNAA pfnCallBack,
|
||
|
PVOID pvCtxt
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Internal interfaces
|
||
|
//
|
||
|
NTSTATUS
|
||
|
ACPIAsyncAcquireGlobalLock(
|
||
|
PACPI_GLOBAL_LOCK Request
|
||
|
);
|
||
|
|
||
|
NTSTATUS
|
||
|
ACPIReleaseGlobalLock(
|
||
|
PVOID OwnerContext
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Hardware Interfaces
|
||
|
//
|
||
|
BOOLEAN
|
||
|
ACPIAcquireHardwareGlobalLock(
|
||
|
PULONG GlobalLock
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
ACPIReleaseHardwareGlobalLock(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
ACPIHardwareGlobalLockReleased (
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Utility procedures
|
||
|
//
|
||
|
VOID
|
||
|
ACPIStartNextGlobalLockRequest (
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
#endif
|
||
|
|