362 lines
7 KiB
C
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
|