55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
/*++
|
|
Copyright (c) 1990 Microsoft Corporation
|
|
|
|
Module Name:
|
|
kdpcpu.h
|
|
|
|
Abstract:
|
|
Machine specific kernel debugger data types and constants
|
|
|
|
Author:
|
|
Mark Lucovsky (markl) 29-Aug-1990
|
|
Joe Notarangelo 24-June-1992 (ALPHA version)
|
|
*/
|
|
|
|
#ifndef _KDPCPU_
|
|
#define _KDPCPU_
|
|
|
|
#include "alphaops.h"
|
|
|
|
// Define KD private PCR routines.
|
|
|
|
// Using the following private KD routines allows the kernel debugger to step over breakpoints in modules that call the standard PCR routines.
|
|
|
|
PKPCR KdpGetPcr();
|
|
ULONG KdpReadInternalProcessorState(PVOID, ULONG);
|
|
ULONG KdpReadInternalProcessorCounters(PVOID, ULONG);
|
|
VOID KdpReadIoSpaceExtended (IN PDBGKD_MANIPULATE_STATE m, IN PSTRING AdditionalData, IN PCONTEXT Context);
|
|
VOID KdpWriteIoSpaceExtended (IN PDBGKD_MANIPULATE_STATE m, IN PSTRING AdditionalData, IN PCONTEXT Context);
|
|
|
|
struct _KPRCB * KdpGetCurrentPrcb();
|
|
struct _KTHREAD * KdpGetCurrentThread();
|
|
|
|
// Redefine the standard PCR routines
|
|
#undef KiPcr
|
|
#define KiPcr KdpGetPcr()
|
|
|
|
#undef KeGetPcr
|
|
#undef KeGetCurrentPrcb
|
|
#undef KeGetCurrentThread
|
|
#undef KeIsExecutingDpc
|
|
#define KeGetPcr() KdpGetPcr()
|
|
#define KeGetCurrentPrcb() KdpGetCurrentPrcb()
|
|
#define KeGetCurrentThread() KdpGetCurrentThread()
|
|
|
|
// Define TYPES
|
|
#define KDP_BREAKPOINT_TYPE ULONG
|
|
|
|
// longword aligned
|
|
#define KDP_BREAKPOINT_ALIGN 3
|
|
|
|
// actual instruction is "call_pal kbpt"
|
|
#define KDP_BREAKPOINT_VALUE KBPT_FUNC
|
|
|
|
#endif // _KDPCPU_
|