/*++ 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