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

362 lines
7 KiB
C++

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
kdext.h
Abstract:
Header files for KD extension
Author:
Stephane Plante (splante) 21-Mar-1997
Based on Code by:
Peter Wieland (peterwie) 16-Oct-1995
Environment:
User Mode.
Revision History:
--*/
#ifndef _KDEXT_H_
#define _KDEXT_H_
//
// Various Defines
//
#define Move(dst, src) \
try { \
b = ReadMemory( (ULONG_PTR) (src), &(dst), sizeof(dst), NULL ); \
if (!b) { \
return; \
} \
} except (EXCEPTION_EXECUTE_HANDLER) { \
return; \
}
#define MoveBlock( dst, src, size ) \
try { \
b = ReadMemory( (ULONG_PTR) (src), &(ds), size, NULL ); \
if (!b) { \
return; \
} \
} except (EXCEPTION_EXECUTE_HANDLER) { \
return; \
}
//
// Various Structures
//
typedef struct _EXTERNAL_HELP_TABLE {
PUCHAR ExternalName;
PUCHAR ExternalDescription;
} EXTERNAL_HELP_TABLE, *PEXTERNAL_HELP_TABLE;
//
// Verbose flags (for contexts)
//
#define VERBOSE_CONTEXT 0x01
#define VERBOSE_CALL 0x02
#define VERBOSE_HEAP 0x04
#define VERBOSE_OBJECT 0x08
#define VERBOSE_NSOBJ 0x10
#define VERBOSE_RECURSE 0x20
//
// Verbose flags (for device extensions)
//
#define VERBOSE_1 0x01
#define VERBOSE_2 0x02
#define VERBOSE_3 0x04
#define VERBOSE_4 0x08
#define VERBOSE_ALL 0x0f
//
// Verbose Flags (for walking the tree)
//
#define VERBOSE_LOOP 0x10
#define VERBOSE_THERMAL 0x20
#define VERBOSE_PRESENT 0x40
//
// Various data and externs
//
extern UCHAR Buffer[2048];
BOOL
GetUlong(
IN PCHAR Name,
IN PULONG Value
);
BOOL
GetUlongPtr(
IN PCHAR Name,
IN PULONG_PTR Address
);
BOOL
ReadPhysicalOrVirtual(
IN ULONG_PTR Address,
IN PVOID Buffer,
IN ULONG Size,
IN OUT PULONG ReturnLength,
IN BOOL Virtual
);
VOID
displayAcpiDeviceExtension(
IN PDEVICE_EXTENSION DeviceExtension,
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
displayAcpiDeviceExtensionBrief(
IN PDEVICE_EXTENSION DeviceExtension,
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
displayAcpiDeviceExtensionFlags(
IN PDEVICE_EXTENSION DeviceExtension
);
VOID
displayAcpiDeviceExtensionName(
IN ULONG_PTR DeviceExtensionAddress
);
VOID
displayThermalInfo(
IN PTHRM_INFO Thrm,
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
displayThermalInfoEx(
IN PTHRM_INFO Thrm,
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpAccessFieldObject(
IN ULONG_PTR AccessFieldAddress,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpAccessFieldUnit(
IN ULONG_PTR AccessFieldAddress,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpAcpiDeviceNode(
IN PACPI_DEVICE_POWER_NODE DeviceNode,
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpAcpiDeviceNodes(
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpAcpiExtension(
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpAcpiGpeInformation(
VOID
);
VOID
dumpAcpiInformation(
VOID
);
VOID
dumpAcpiPowerList(
PUCHAR ListName
);
VOID
dumpAcpiPowerLists(
VOID
);
VOID
dumpAcpiPowerNode(
IN PACPI_POWER_DEVICE_NODE PowerNode,
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpAcpiPowerNodes(
VOID
);
VOID
dumpAmlTerm(
IN ULONG_PTR AmlTermAddress,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpCall(
IN ULONG_PTR CallAddress,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpContext(
IN ULONG_PTR ContextAddress,
IN ULONG Verbose
);
VOID
dumpDeviceListEntry(
IN PLIST_ENTRY ListEntry,
IN ULONG_PTR Address
);
VOID
dumpFieldAddress(
IN ULONG_PTR FieldAddress,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpIrpListEntry(
IN PLIST_ENTRY ListEntry,
IN ULONG_PTR Address
);
VOID
dumpMemory(
IN ULONG_PTR Address,
IN ULONG Length,
IN PUCHAR FileName
);
VOID
dumpNSObject(
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpNSTree(
IN ULONG_PTR Address,
IN ULONG Level
);
VOID
dumpObject(
IN ULONG_PTR Address,
IN POBJDATA Object,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpObjectOwner(
IN ULONG_PTR ObjOwnerAddress,
IN ULONG IndentLevel
);
VOID
dumpPM1StatusRegister(
IN ULONG Value,
IN ULONG IndentLevel
);
VOID
dumpPM1ControlRegister(
IN ULONG Value,
IN ULONG IndentLevel
);
VOID
dumpPnPResources(
IN ULONG_PTR Address
);
VOID
dumpPObject(
IN ULONG_PTR Address,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpScope(
IN ULONG_PTR ScopeAddress,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpStack(
IN ULONG_PTR ContextAddress,
IN PCTXT Context,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpTerm(
IN ULONG_PTR TermAddress,
IN ULONG Verbose,
IN ULONG IndentLevel
);
VOID
dumpIrqArb(
IN PVOID IrqArb
);
PUCHAR
TempToKelvins(
IN ULONG Temp
);
PUCHAR
TimeToSeconds(
IN ULONG Time
);
#endif