windows-nt/Source/XPSP1/NT/base/busdrv/acpi/driver/nt/amlisupp.h
2020-09-26 16:20:57 +08:00

213 lines
5.4 KiB
C

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
amli.h
Abstract:
This contains some of the routines to read
and understand the AMLI library
Author:
Stephane Plante (splante)
Environment:
NT Kernel Model Driver only
--*/
#ifndef _AMLI_H_
#define _AMLI_H_
#define ACPIAmliFreeDataBuffers AMLIFreeDataBuffs
#define PACKED_AC0 ((ULONG)'0CA_')
#define PACKED_AC1 ((ULONG)'1CA_')
#define PACKED_AC2 ((ULONG)'2CA_')
#define PACKED_AC3 ((ULONG)'3CA_')
#define PACKED_AC4 ((ULONG)'4CA_')
#define PACKED_AC5 ((ULONG)'5CA_')
#define PACKED_AC6 ((ULONG)'6CA_')
#define PACKED_AC7 ((ULONG)'7CA_')
#define PACKED_AC8 ((ULONG)'8CA_')
#define PACKED_AC9 ((ULONG)'9CA_')
#define PACKED_ADR ((ULONG)'RDA_')
#define PACKED_AL0 ((ULONG)'0LA_')
#define PACKED_AL1 ((ULONG)'1LA_')
#define PACKED_AL2 ((ULONG)'2LA_')
#define PACKED_AL3 ((ULONG)'3LA_')
#define PACKED_AL4 ((ULONG)'4LA_')
#define PACKED_AL5 ((ULONG)'5LA_')
#define PACKED_AL6 ((ULONG)'6LA_')
#define PACKED_AL7 ((ULONG)'7LA_')
#define PACKED_AL8 ((ULONG)'8LA_')
#define PACKED_AL9 ((ULONG)'9LA_')
#define PACKED_BST ((ULONG)'TSB_')
#define PACKED_CID ((ULONG)'DIC_')
#define PACKED_CRS ((ULONG)'SRC_')
#define PACKED_CRT ((ULONG)'TRC_')
#define PACKED_DCK ((ULONG)'KCD_')
#define PACKED_DDN ((ULONG)'NDD_')
#define PACKED_DIS ((ULONG)'SID_')
#define PACKED_EJD ((ULONG)'DJE_')
#define PACKED_EJ0 ((ULONG)'0JE_')
#define PACKED_EJ1 ((ULONG)'1JE_')
#define PACKED_EJ2 ((ULONG)'2JE_')
#define PACKED_EJ3 ((ULONG)'3JE_')
#define PACKED_EJ4 ((ULONG)'4JE_')
#define PACKED_EJ5 ((ULONG)'5JE_')
#define PACKED_HID ((ULONG)'DIH_')
#define PACKED_INI ((ULONG)'INI_')
#define PACKED_IRC ((ULONG)'CRI_')
#define PACKED_LCK ((ULONG)'KCL_')
#define PACKED_LID ((ULONG)'DIL_')
#define PACKED_OFF ((ULONG)'FFO_')
#define PACKED_ON ((ULONG)'_NO_')
#define PACKED_PR0 ((ULONG)'0RP_')
#define PACKED_PR1 ((ULONG)'1RP_')
#define PACKED_PR2 ((ULONG)'2RP_')
#define PACKED_PRS ((ULONG)'SRP_')
#define PACKED_PRT ((ULONG)'TRP_')
#define PACKED_PRW ((ULONG)'WRP_')
#define PACKED_PS0 ((ULONG)'0SP_')
#define PACKED_PS1 ((ULONG)'1SP_')
#define PACKED_PS2 ((ULONG)'2SP_')
#define PACKED_PS3 ((ULONG)'3SP_')
#define PACKED_PSC ((ULONG)'CSP_')
#define PACKED_PSL ((ULONG)'LSP_')
#define PACKED_PSV ((ULONG)'VSP_')
#define PACKED_PSW ((ULONG)'WSP_')
#define PACKED_PTS ((ULONG)'STP_')
#define PACKED_REG ((ULONG)'GER_')
#define PACKED_RMV ((ULONG)'VMR_')
#define PACKED_S0 ((ULONG)'_0S_')
#define PACKED_S0D ((ULONG)'D0S_')
#define PACKED_S1 ((ULONG)'_1S_')
#define PACKED_S1D ((ULONG)'D1S_')
#define PACKED_S2 ((ULONG)'_2S_')
#define PACKED_S2D ((ULONG)'D2S_')
#define PACKED_S3 ((ULONG)'_3S_')
#define PACKED_S3D ((ULONG)'D3S_')
#define PACKED_S4 ((ULONG)'_4S_')
#define PACKED_S4D ((ULONG)'D4S_')
#define PACKED_S5 ((ULONG)'_5S_')
#define PACKED_S5D ((ULONG)'D5S_')
#define PACKED_SCP ((ULONG)'PCS_')
#define PACKED_SI ((ULONG)'_IS_')
#define PACKED_SRS ((ULONG)'SRS_')
#define PACKED_SST ((ULONG)'TSS_')
#define PACKED_STA ((ULONG)'ATS_')
#define PACKED_STD ((ULONG)'DTS_')
#define PACKED_SUN ((ULONG)'NUS_')
#define PACKED_SWD ((ULONG)'DWS_')
#define PACKED_TC1 ((ULONG)'1CT_')
#define PACKED_TC2 ((ULONG)'2CT_')
#define PACKED_TMP ((ULONG)'PMT_')
#define PACKED_TSP ((ULONG)'PST_')
#define PACKED_UID ((ULONG)'DIU_')
#define PACKED_WAK ((ULONG)'KAW_')
#define PACKED_BBN ((ULONG)'NBB_')
#define STA_STATUS_PRESENT 0x00000001
#define STA_STATUS_ENABLED 0x00000002
#define STA_STATUS_USER_INTERFACE 0x00000004
#define STA_STATUS_WORKING_OK 0x00000008
#define STA_STATUS_DEFAULT ( STA_STATUS_PRESENT | \
STA_STATUS_ENABLED | \
STA_STATUS_USER_INTERFACE | \
STA_STATUS_WORKING_OK)
typedef struct {
PVOID CompletionRoutine;
PVOID Context;
} AMLI_COMPLETION_CONTEXT, *PAMLI_COMPLETION_CONTEXT;
typedef struct {
KEVENT Event;
NTSTATUS Status;
} AMLISUPP_CONTEXT_PASSIVE, *PAMLISUPP_CONTEXT_PASSIVE;
typedef enum _ACPIENUM_CONTROL
{
ACPIENUM_STOP,
ACPIENUM_CONTINUE,
ACPIENUM_CONTINUE_NORECURSE
} ACPIENUM_CONTROL ;
typedef ACPIENUM_CONTROL (*ACPIENUM_CALLBACK)(
IN PNSOBJ,
IN OUT PVOID,
IN ULONG,
OUT NTSTATUS *
) ;
VOID
EXPORT
AmlisuppCompletePassive(
IN PNSOBJ AcpiObject,
IN NTSTATUS Status,
IN POBJDATA Result,
IN PVOID Context
);
VOID
ACPIAmliDoubleToName(
IN OUT PUCHAR ACPIName,
IN ULONG DwordID,
IN BOOLEAN ConvertToID
);
VOID
ACPIAmliDoubleToNameWide(
IN OUT PWCHAR ACPIName,
IN ULONG DwordID,
IN BOOLEAN ConvertToID
);
PNSOBJ
ACPIAmliGetNamedChild(
IN PNSOBJ AcpiObject,
IN ULONG ObjectId
);
PUCHAR
ACPIAmliNameObject(
IN PNSOBJ AcpiObject
);
VOID
EXPORT
ACPISimpleEvalComplete(
IN PNSOBJ AcpiObject,
IN NTSTATUS Status,
IN POBJDATA Result OPTIONAL,
IN PKEVENT Event
);
NTSTATUS
ACPIAmliFindObject(
IN PUCHAR ObjectName,
IN PNSOBJ Scope,
OUT PNSOBJ *Object
);
NTSTATUS
ACPIAmliGetFirstChild(
IN PUCHAR ObjectName,
OUT PNSOBJ *Object
);
NTSTATUS
ACPIAmliBuildObjectPathname(
IN PNSOBJ ACPIObject,
OUT PUCHAR *ConstructedPathName
);
#endif