[ros-diffs] [ion] 25833: - Add EXCEPTION_RECORD64 and LIST_ENTRY64, KeTryToAcquireSpinLockAtDpcLevel, BREAKPOINT_COMMAND_STRING, Ke386SetCr2, Ke386SetDr3, Ke386SetDr6. - Remove non-kernel routines from kdfuncs.h and remove deprecated routines from ke.h. - Implement KiRestoreProcessorControlState, KeFreezeExecution, KeThawExecution, ExAcquireTimeRefreshLock, ExReleaseTimeRefreshLock. - Rename ModuleLoadList to PsLoadedModuleList. Add PsNtosImageBase and set value in it. - Add skeleton wdbgexts.h with what's needed until now, this is a PSDK header. - Add kddll.h for KDCOM/1394/USB2.DLL prototypes. - Add windbgkd.h with KD protocol definitions. Used to be an NT5 DDK header, but was removed, so this goes into include\reactos.
ion at svn.reactos.org
ion at svn.reactos.org
Sun Feb 18 08:21:05 CET 2007
Author: ion
Date: Sun Feb 18 10:21:03 2007
New Revision: 25833
URL: http://svn.reactos.org/svn/reactos?rev=25833&view=rev
Log:
- Add EXCEPTION_RECORD64 and LIST_ENTRY64, KeTryToAcquireSpinLockAtDpcLevel, BREAKPOINT_COMMAND_STRING, Ke386SetCr2, Ke386SetDr3, Ke386SetDr6.
- Remove non-kernel routines from kdfuncs.h and remove deprecated routines from ke.h.
- Implement KiRestoreProcessorControlState, KeFreezeExecution, KeThawExecution, ExAcquireTimeRefreshLock, ExReleaseTimeRefreshLock.
- Rename ModuleLoadList to PsLoadedModuleList. Add PsNtosImageBase and set value in it.
- Add skeleton wdbgexts.h with what's needed until now, this is a PSDK header.
- Add kddll.h for KDCOM/1394/USB2.DLL prototypes.
- Add windbgkd.h with KD protocol definitions. Used to be an NT5 DDK header, but was removed, so this goes into include\reactos.
Added:
branches/alex-kd-branch/reactos/include/psdk/wdbgexts.h
branches/alex-kd-branch/reactos/include/reactos/kddll.h
branches/alex-kd-branch/reactos/include/reactos/windbgkd.h
Modified:
branches/alex-kd-branch/reactos/include/ddk/winddk.h
branches/alex-kd-branch/reactos/include/ndk/kdfuncs.h
branches/alex-kd-branch/reactos/include/ndk/kdtypes.h
branches/alex-kd-branch/reactos/include/psdk/ntdef.h
branches/alex-kd-branch/reactos/ntoskrnl/ex/time.c
branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ex.h
branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/intrin_i.h
branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/ke.h
branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ke.h
branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ps.h
branches/alex-kd-branch/reactos/ntoskrnl/include/ntoskrnl.h
branches/alex-kd-branch/reactos/ntoskrnl/ke/bug.c
branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/cpu.c
branches/alex-kd-branch/reactos/ntoskrnl/ldr/loader.c
branches/alex-kd-branch/reactos/ntoskrnl/mm/mm.c
branches/alex-kd-branch/reactos/ntoskrnl/mm/rpoolmgr.h
branches/alex-kd-branch/reactos/ntoskrnl/mm/verifier.c
Modified: branches/alex-kd-branch/reactos/include/ddk/winddk.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/include/ddk/winddk.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/include/ddk/winddk.h (original)
+++ branches/alex-kd-branch/reactos/include/ddk/winddk.h Sun Feb 18 10:21:03 2007
@@ -634,6 +634,17 @@
IN struct _IRP *Irp,
IN PVOID MapRegisterBase,
IN PVOID Context);
+
+typedef struct _EXCEPTION_RECORD64
+{
+ NTSTATUS ExceptionCode;
+ ULONG ExceptionFlags;
+ ULONG64 ExceptionRecord;
+ ULONG64 ExceptionAddress;
+ ULONG NumberParameters;
+ ULONG __unusedAlignment;
+ ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
+} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
typedef EXCEPTION_DISPOSITION
(DDKAPI *PEXCEPTION_ROUTINE)(
@@ -5423,6 +5434,13 @@
IN PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+KeTryToAcquireSpinLockAtDpcLevel(
+ IN OUT PKSPIN_LOCK SpinLock
+);
+
#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
Modified: branches/alex-kd-branch/reactos/include/ndk/kdfuncs.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/include/ndk/kdfuncs.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/include/ndk/kdfuncs.h (original)
+++ branches/alex-kd-branch/reactos/include/ndk/kdfuncs.h Sun Feb 18 10:21:03 2007
@@ -28,29 +28,6 @@
#ifndef NTOS_MODE_USER
//
-// Port Functions
-//
-UCHAR
-NTAPI
-KdPollBreakIn(VOID);
-
-NTSTATUS
-NTAPI
-KdRestore(IN BOOLEAN DisableDbgPorts);
-
-NTSTATUS
-NTAPI
-KdSave(IN ULONG Unknown);
-
-#ifdef _ARC_
-NTSTATUS
-NTAPI
-KdDebuggerInitialize0(
- IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock
-);
-#endif
-
-//
// Debugger API
//
NTSTATUS
@@ -63,6 +40,12 @@
ULONG OutputBufferLength,
PULONG ReturnLength,
KPROCESSOR_MODE PreviousMode
+);
+
+BOOLEAN
+NTAPI
+KdPollBreakIn(
+ VOID
);
#endif
Modified: branches/alex-kd-branch/reactos/include/ndk/kdtypes.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/include/ndk/kdtypes.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/include/ndk/kdtypes.h (original)
+++ branches/alex-kd-branch/reactos/include/ndk/kdtypes.h Sun Feb 18 10:21:03 2007
@@ -52,6 +52,7 @@
#define BREAKPOINT_PROMPT 2
#define BREAKPOINT_LOAD_SYMBOLS 3
#define BREAKPOINT_UNLOAD_SYMBOLS 4
+#define BREAKPOINT_COMMAND_STRING 5
//
// Debug Control Codes for NtSystemDebugcontrol
Modified: branches/alex-kd-branch/reactos/include/psdk/ntdef.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/include/psdk/ntdef.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/include/psdk/ntdef.h (original)
+++ branches/alex-kd-branch/reactos/include/psdk/ntdef.h Sun Feb 18 10:21:03 2007
@@ -89,6 +89,21 @@
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
#endif
+
+typedef struct LIST_ENTRY32
+{
+ ULONG Flink;
+ ULONG Blink;
+} LIST_ENTRY32;
+typedef LIST_ENTRY32 *PLIST_ENTRY32;
+
+typedef struct LIST_ENTRY64
+{
+ ULONGLONG Flink;
+ ULONGLONG Blink;
+} LIST_ENTRY64;
+typedef LIST_ENTRY64 *PLIST_ENTRY64;
+
#define NOTHING
#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
#define TYPE_ALIGNMENT( t ) FIELD_OFFSET( struct { char x; t test; }, test )
Added: branches/alex-kd-branch/reactos/include/psdk/wdbgexts.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/include/psdk/wdbgexts.h?rev=25833&view=auto
==============================================================================
--- branches/alex-kd-branch/reactos/include/psdk/wdbgexts.h (added)
+++ branches/alex-kd-branch/reactos/include/psdk/wdbgexts.h Sun Feb 18 10:21:03 2007
@@ -1,0 +1,185 @@
+#ifndef _WDBGEXTS_
+#define _WDBGEXTS_
+
+enum
+{
+ DBGKD_SIMULATION_NONE,
+ DBGKD_SIMULATION_EXDI
+};
+
+#define KD_SECONDARY_VERSION_DEFAULT 0
+#define KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_1 0
+#define KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_2 1
+#define KD_SECONDARY_VERSION_AMD64_CONTEXT 2
+#define CURRENT_KD_SECONDARY_VERSION KD_SECONDARY_VERSION_DEFAULT
+
+#define DBGKD_VERS_FLAG_MP 0x0001
+#define DBGKD_VERS_FLAG_DATA 0x0002
+#define DBGKD_VERS_FLAG_PTR64 0x0004
+#define DBGKD_VERS_FLAG_NOMM 0x0008
+#define DBGKD_VERS_FLAG_HSS 0x0010
+#define DBGKD_VERS_FLAG_PARTITIONS 0x0020
+
+#define KDBG_TAG TAG('G', 'B', 'D', 'K')
+
+typedef struct _DBGKD_GET_VERSION64
+{
+ USHORT MajorVersion;
+ USHORT MinorVersion;
+ UCHAR ProtocolVersion;
+ UCHAR KdSecondaryVersion;
+ USHORT Flags;
+ USHORT MachineType;
+ UCHAR MaxPacketType;
+ UCHAR MaxStateChange;
+ UCHAR MaxManipulate;
+ UCHAR Simulation;
+ USHORT Unused[1];
+ ULONG64 KernBase;
+ ULONG64 PsLoadedModuleList;
+ ULONG64 DebuggerDataList;
+} DBGKD_GET_VERSION64, *PDBGKD_GET_VERSION64;
+
+typedef struct _DBGKD_DEBUG_DATA_HEADER64
+{
+ LIST_ENTRY64 List;
+ ULONG OwnerTag;
+ ULONG Size;
+} DBGKD_DEBUG_DATA_HEADER64, *PDBGKD_DEBUG_DATA_HEADER64;
+
+typedef struct _KDDEBUGGER_DATA64
+{
+ DBGKD_DEBUG_DATA_HEADER64 Header;
+ ULONG64 KernBase;
+ ULONG64 BreakpointWithStatus;
+ ULONG64 SavedContext;
+ USHORT ThCallbackStack;
+ USHORT NextCallback;
+ USHORT FramePointer;
+ USHORT PaeEnabled:1;
+ ULONG64 KiCallUserMode;
+ ULONG64 KeUserCallbackDispatcher;
+ ULONG64 PsLoadedModuleList;
+ ULONG64 PsActiveProcessHead;
+ ULONG64 PspCidTable;
+ ULONG64 ExpSystemResourcesList;
+ ULONG64 ExpPagedPoolDescriptor;
+ ULONG64 ExpNumberOfPagedPools;
+ ULONG64 KeTimeIncrement;
+ ULONG64 KeBugCheckCallbackListHead;
+ ULONG64 KiBugcheckData;
+ ULONG64 IopErrorLogListHead;
+ ULONG64 ObpRootDirectoryObject;
+ ULONG64 ObpTypeObjectType;
+ ULONG64 MmSystemCacheStart;
+ ULONG64 MmSystemCacheEnd;
+ ULONG64 MmSystemCacheWs;
+ ULONG64 MmPfnDatabase;
+ ULONG64 MmSystemPtesStart;
+ ULONG64 MmSystemPtesEnd;
+ ULONG64 MmSubsectionBase;
+ ULONG64 MmNumberOfPagingFiles;
+ ULONG64 MmLowestPhysicalPage;
+ ULONG64 MmHighestPhysicalPage;
+ ULONG64 MmNumberOfPhysicalPages;
+ ULONG64 MmMaximumNonPagedPoolInBytes;
+ ULONG64 MmNonPagedSystemStart;
+ ULONG64 MmNonPagedPoolStart;
+ ULONG64 MmNonPagedPoolEnd;
+ ULONG64 MmPagedPoolStart;
+ ULONG64 MmPagedPoolEnd;
+ ULONG64 MmPagedPoolInformation;
+ ULONG64 MmPageSize;
+ ULONG64 MmSizeOfPagedPoolInBytes;
+ ULONG64 MmTotalCommitLimit;
+ ULONG64 MmTotalCommittedPages;
+ ULONG64 MmSharedCommit;
+ ULONG64 MmDriverCommit;
+ ULONG64 MmProcessCommit;
+ ULONG64 MmPagedPoolCommit;
+ ULONG64 MmExtendedCommit;
+ ULONG64 MmZeroedPageListHead;
+ ULONG64 MmFreePageListHead;
+ ULONG64 MmStandbyPageListHead;
+ ULONG64 MmModifiedPageListHead;
+ ULONG64 MmModifiedNoWritePageListHead;
+ ULONG64 MmAvailablePages;
+ ULONG64 MmResidentAvailablePages;
+ ULONG64 PoolTrackTable;
+ ULONG64 NonPagedPoolDescriptor;
+ ULONG64 MmHighestUserAddress;
+ ULONG64 MmSystemRangeStart;
+ ULONG64 MmUserProbeAddress;
+ ULONG64 KdPrintCircularBuffer;
+ ULONG64 KdPrintCircularBufferEnd;
+ ULONG64 KdPrintWritePointer;
+ ULONG64 KdPrintRolloverCount;
+ ULONG64 MmLoadedUserImageList;
+ ULONG64 NtBuildLab;
+ ULONG64 KiNormalSystemCall;
+ ULONG64 KiProcessorBlock;
+ ULONG64 MmUnloadedDrivers;
+ ULONG64 MmLastUnloadedDriver;
+ ULONG64 MmTriageActionTaken;
+ ULONG64 MmSpecialPoolTag;
+ ULONG64 KernelVerifier;
+ ULONG64 MmVerifierData;
+ ULONG64 MmAllocatedNonPagedPool;
+ ULONG64 MmPeakCommitment;
+ ULONG64 MmTotalCommitLimitMaximum;
+ ULONG64 CmNtCSDVersion;
+ ULONG64 MmPhysicalMemoryBlock;
+ ULONG64 MmSessionBase;
+ ULONG64 MmSessionSize;
+ ULONG64 MmSystemParentTablePage;
+ ULONG64 MmVirtualTranslationBase;
+ USHORT OffsetKThreadNextProcessor;
+ USHORT OffsetKThreadTeb;
+ USHORT OffsetKThreadKernelStack;
+ USHORT OffsetKThreadInitialStack;
+ USHORT OffsetKThreadApcProcess;
+ USHORT OffsetKThreadState;
+ USHORT OffsetKThreadBStore;
+ USHORT OffsetKThreadBStoreLimit;
+ USHORT SizeEProcess;
+ USHORT OffsetEprocessPeb;
+ USHORT OffsetEprocessParentCID;
+ USHORT OffsetEprocessDirectoryTableBase;
+ USHORT SizePrcb;
+ USHORT OffsetPrcbDpcRoutine;
+ USHORT OffsetPrcbCurrentThread;
+ USHORT OffsetPrcbMhz;
+ USHORT OffsetPrcbCpuType;
+ USHORT OffsetPrcbVendorString;
+ USHORT OffsetPrcbProcStateContext;
+ USHORT OffsetPrcbNumber;
+ USHORT SizeEThread;
+ ULONG64 KdPrintCircularBufferPtr;
+ ULONG64 KdPrintBufferSize;
+ ULONG64 KeLoaderBlock;
+ USHORT SizePcr;
+ USHORT OffsetPcrSelfPcr;
+ USHORT OffsetPcrCurrentPrcb;
+ USHORT OffsetPcrContainedPrcb;
+ USHORT OffsetPcrInitialBStore;
+ USHORT OffsetPcrBStoreLimit;
+ USHORT OffsetPcrInitialStack;
+ USHORT OffsetPcrStackLimit;
+ USHORT OffsetPrcbPcrPage;
+ USHORT OffsetPrcbProcStateSpecialReg;
+ USHORT GdtR0Code;
+ USHORT GdtR0Data;
+ USHORT GdtR0Pcr;
+ USHORT GdtR3Code;
+ USHORT GdtR3Data;
+ USHORT GdtR3Teb;
+ USHORT GdtLdt;
+ USHORT GdtTss;
+ USHORT Gdt64R3CmCode;
+ USHORT Gdt64R3CmTeb;
+ ULONG64 IopNumTriageDumpDataBlocks;
+ ULONG64 IopTriageDumpDataBlocks;
+ ULONG64 VfCrashDataBlock;
+} KDDEBUGGER_DATA64, *PKDDEBUGGER_DATA64;
+
+#endif
Added: branches/alex-kd-branch/reactos/include/reactos/kddll.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/include/reactos/kddll.h?rev=25833&view=auto
==============================================================================
--- branches/alex-kd-branch/reactos/include/reactos/kddll.h (added)
+++ branches/alex-kd-branch/reactos/include/reactos/kddll.h Sun Feb 18 10:21:03 2007
@@ -1,0 +1,41 @@
+#ifndef _KDDLL_
+#define _KDDLL_
+
+NTSTATUS
+NTAPI
+KdDebuggerInitialize0(
+ IN PLOADER_PARAMETER_BLOCK LoaderBlock
+);
+
+ULONG
+NTAPI
+KdReceivePacket(
+ IN ULONG PacketType,
+ OUT PSTRING MessageHeader,
+ OUT PSTRING MessageData,
+ OUT PULONG DataLength,
+ IN OUT PKD_CONTEXT Context
+);
+
+NTSTATUS
+NTAPI
+KdRestore(
+ IN BOOLEAN SleepTransition
+);
+
+NTSTATUS
+NTAPI
+KdSave(
+ IN BOOLEAN SleepTransition
+);
+
+VOID
+NTAPI
+KdSendPacket(
+ IN ULONG PacketType,
+ IN PSTRING MessageHeader,
+ IN PSTRING MessageData,
+ IN OUT PKD_CONTEXT Context
+);
+
+#endif
Added: branches/alex-kd-branch/reactos/include/reactos/windbgkd.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/include/reactos/windbgkd.h?rev=25833&view=auto
==============================================================================
--- branches/alex-kd-branch/reactos/include/reactos/windbgkd.h (added)
+++ branches/alex-kd-branch/reactos/include/reactos/windbgkd.h Sun Feb 18 10:21:03 2007
@@ -1,0 +1,229 @@
+#ifndef _WINDBGKD_
+#define _WINDBGKG_
+
+//
+// Packet Size and Control Stream Size
+//
+#define PACKET_MAX_SIZE 4000
+#define DBGKD_MAXSTREAM 16
+
+//
+// Magic Packet IDs
+//
+#define INITIAL_PACKET_ID 0x80800000
+#define SYNC_PACKET_ID 0x00000800
+
+//
+// Magic Packet bytes
+//
+#define BREAKIN_PACKET 0x62626262
+#define BREAKIN_PACKET_BYTE 0x62
+#define PACKET_LEADER 0x30303030
+#define PACKET_LEADER_BYTE 0x30
+#define CONTROL_PACKET_LEADER 0x69696969
+#define CONTROL_PACKET_LEADER_BYTE 0x69
+#define PACKET_TRAILING_BYTE 0xAA
+
+//
+// Packet Types
+//
+#define PACKET_TYPE_UNUSED 0
+#define PACKET_TYPE_KD_STATE_CHANGE32 1
+#define PACKET_TYPE_KD_STATE_MANIPULATE 2
+#define PACKET_TYPE_KD_DEBUG_IO 3
+#define PACKET_TYPE_KD_ACKNOWLEDGE 4
+#define PACKET_TYPE_KD_RESEND 5
+#define PACKET_TYPE_KD_RESET 6
+#define PACKET_TYPE_KD_STATE_CHANGE64 7
+#define PACKET_TYPE_KD_POLL_BREAKIN 8
+#define PACKET_TYPE_KD_TRACE_IO 9
+#define PACKET_TYPE_KD_CONTROL_REQUEST 10
+#define PACKET_TYPE_KD_FILE_IO 11
+#define PACKET_TYPE_MAX 12
+
+//
+// Wait State Change Types
+//
+#define DbgKdMinimumStateChange 0x00003030
+#define DbgKdExceptionStateChange 0x00003030
+#define DbgKdLoadSymbolsStateChange 0x00003031
+#define DbgKdCommandStringStateChange 0x00003032
+#define DbgKdMaximumStateChange 0x00003033
+
+//
+// Manipulate Types
+//
+#define DbgKdMinimumManipulate 0x00003130
+#define DbgKdReadVirtualMemoryApi 0x00003130
+#define DbgKdWriteVirtualMemoryApi 0x00003131
+#define DbgKdGetContextApi 0x00003132
+#define DbgKdSetContextApi 0x00003133
+#define DbgKdWriteBreakPointApi 0x00003134
+#define DbgKdRestoreBreakPointApi 0x00003135
+#define DbgKdContinueApi 0x00003136
+#define DbgKdReadControlSpaceApi 0x00003137
+#define DbgKdWriteControlSpaceApi 0x00003138
+#define DbgKdReadIoSpaceApi 0x00003139
+#define DbgKdWriteIoSpaceApi 0x0000313A
+#define DbgKdRebootApi 0x0000313B
+#define DbgKdContinueApi2 0x0000313C
+#define DbgKdReadPhysicalMemoryApi 0x0000313D
+#define DbgKdWritePhysicalMemoryApi 0x0000313E
+#define DbgKdQuerySpecialCallsApi 0x0000313F
+#define DbgKdSetSpecialCallApi 0x00003140
+#define DbgKdClearSpecialCallsApi 0x00003141
+#define DbgKdSetInternalBreakPointApi 0x00003142
+#define DbgKdGetInternalBreakPointApi 0x00003143
+#define DbgKdReadIoSpaceExtendedApi 0x00003144
+#define DbgKdWriteIoSpaceExtendedApi 0x00003145
+#define DbgKdGetVersionApi 0x00003146
+#define DbgKdWriteBreakPointExApi 0x00003147
+#define DbgKdRestoreBreakPointExApi 0x00003148
+#define DbgKdCauseBugCheckApi 0x00003149
+#define DbgKdSwitchProcessor 0x00003150
+#define DbgKdPageInApi 0x00003151
+#define DbgKdReadMachineSpecificRegister 0x00003152
+#define DbgKdWriteMachineSpecificRegister 0x00003153
+#define OldVlm1 0x00003154
+#define OldVlm2 0x00003155
+#define DbgKdSearchMemoryApi 0x00003156
+#define DbgKdGetBusDataApi 0x00003157
+#define DbgKdSetBusDataApi 0x00003158
+#define DbgKdCheckLowMemoryApi 0x00003159
+#define DbgKdClearAllInternalBreakpointsApi 0x0000315A
+#define DbgKdFillMemoryApi 0x0000315B
+#define DbgKdQueryMemoryApi 0x0000315C
+#define DbgKdSwitchPartition 0x0000315D
+#define DbgKdMaximumManipulate 0x0000315E
+
+//
+// Debug I/O Types
+//
+#define DbgKdPrintStringApi 0x00003230
+#define DbgKdGetStringApi 0x00003231
+
+//
+// Control Report Flags
+//
+#define REPORT_INCLUDES_SEGS 0x0001
+#define REPORT_INCLUDES_CS 0x0002
+
+//
+// Protocol Versions
+//
+#define DBGKD_64BIT_PROTOCOL_VERSION1 5
+#define DBGKD_64BIT_PROTOCOL_VERSION2 6
+
+//
+// KD Packet Structure
+//
+typedef struct _KD_PACKET
+{
+ ULONG PacketLeader;
+ USHORT PacketType;
+ USHORT ByteCount;
+ ULONG PacketId;
+ ULONG Checksum;
+} KD_PACKET, *PKD_PACKET;
+
+//
+// KD Context
+//
+typedef struct _KD_CONTEXT
+{
+ ULONG KdpDefaultRetries;
+ BOOLEAN KdpControlCPending;
+} KD_CONTEXT, *PKD_CONTEXT;
+
+//
+// DBGKM Structure for Exceptions
+//
+typedef struct _DBGKM_EXCEPTION64
+{
+ EXCEPTION_RECORD64 ExceptionRecord;
+ ULONG FirstChance;
+} DBGKM_EXCEPTION64, *PDBGKM_EXCEPTION64;
+
+//
+// DBGKD Structure for State Change
+//
+typedef struct _DBGKD_CONTROL_REPORT
+{
+ ULONG Dr6;
+ ULONG Dr7;
+ USHORT InstructionCount;
+ USHORT ReportFlags;
+ UCHAR InstructionStream[DBGKD_MAXSTREAM];
+ USHORT SegCs;
+ USHORT SegDs;
+ USHORT SegEs;
+ USHORT SegFs;
+ ULONG EFlags;
+} DBGKD_CONTROL_REPORT, *PDBGKD_CONTROL_REPORT;
+
+//
+// DBGKD Structure for Debug I/O Type Print String
+//
+typedef struct _DBGKD_PRINT_STRING
+{
+ ULONG LengthOfString;
+} DBGKD_PRINT_STRING, *PDBGKD_PRINT_STRING;
+
+//
+// DBGKD Structure for Debug I/O Type Get String
+//
+typedef struct _DBGKD_GET_STRING
+{
+ ULONG LengthOfPromptString;
+ ULONG LengthOfStringRead;
+} DBGKD_GET_STRING, *PDBGKD_GET_STRING;
+
+//
+// DBGKD Structure for Debug I/O
+//
+typedef struct _DBGKD_DEBUG_IO
+{
+ ULONG ApiNumber;
+ USHORT ProcessorLevel;
+ USHORT Processor;
+ union
+ {
+ DBGKD_PRINT_STRING PrintString;
+ DBGKD_GET_STRING GetString;
+ } u;
+} DBGKD_DEBUG_IO, *PDBGKD_DEBUG_IO;
+
+//
+// DBGKD Structure for Load Symbols
+//
+typedef struct _DBGKD_LOAD_SYMBOLS64
+{
+ ULONG PathNameLength;
+ ULONG64 BaseOfDll;
+ ULONG64 ProcessId;
+ ULONG CheckSum;
+ ULONG SizeOfImage;
+ BOOLEAN UnloadSymbols;
+} DBGKD_LOAD_SYMBOLS64, *PDBGKD_LOAD_SYMBOLS64;
+
+//
+// DBGKD Structure for Wait State Change
+//
+typedef struct _DBGKD_WAIT_STATE_CHANGE64
+{
+ ULONG NewState;
+ USHORT ProcessorLevel;
+ USHORT Processor;
+ ULONG NumberProcessors;
+ ULONG64 Thread;
+ ULONG64 ProgramCounter;
+ union
+ {
+ DBGKM_EXCEPTION64 Exception;
+ DBGKD_LOAD_SYMBOLS64 LoadSymbols;
+ } u;
+ DBGKD_CONTROL_REPORT ControlReport;
+ CONTEXT Context;
+} DBGKD_WAIT_STATE_CHANGE64, *PDBGKD_WAIT_STATE_CHANGE64;
+
+#endif
Modified: branches/alex-kd-branch/reactos/ntoskrnl/ex/time.c
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/ex/time.c?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/ex/time.c (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/ex/time.c Sun Feb 18 10:21:03 2007
@@ -23,8 +23,44 @@
LARGE_INTEGER ExpTimeZoneBias;
ULONG ExpTimeZoneId;
ULONG ExpTickCountMultiplier;
+ERESOURCE ExpTimeRefreshLock;
/* FUNCTIONS ****************************************************************/
+
+BOOLEAN
+NTAPI
+ExAcquireTimeRefreshLock(BOOLEAN Wait)
+{
+ /* Simply acquire the Resource */
+ KeEnterCriticalRegion();
+ if (!(ExAcquireResourceExclusiveLite(&ExpTimeRefreshLock, Wait)))
+ {
+ /* We failed! */
+ KeLeaveCriticalRegion();
+ return FALSE;
+ }
+
+ /* Success */
+ return TRUE;
+}
+
+VOID
+NTAPI
+ExReleaseTimeRefreshLock(VOID)
+{
+ /* Simply release the Resource */
+ ExReleaseResourceLite(&ExpTimeRefreshLock);
+ KeLeaveCriticalRegion();
+}
+
+VOID
+NTAPI
+ExUpdateSystemTimeFromCmos(IN BOOLEAN UpdateInterruptTime,
+ IN ULONG MaxSepInSeconds)
+{
+ /* FIXME: TODO */
+ return;
+}
BOOLEAN
NTAPI
Modified: branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ex.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ex.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ex.h (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ex.h Sun Feb 18 10:21:03 2007
@@ -17,6 +17,7 @@
extern ERESOURCE ExpFirmwareTableResource;
extern LIST_ENTRY ExpFirmwareTableProviderListHead;
extern BOOLEAN ExpIsWinPEMode;
+extern ULONG NtGlobalFlag;
ULONG ExpAnsiCodePageDataOffset, ExpOemCodePageDataOffset;
ULONG ExpUnicodeCaseTableDataOffset;
PVOID ExpNlsSectionPointer;
@@ -910,7 +911,7 @@
/* Unlock the pushlock */
OldValue.Value = InterlockedExchangeAddSizeT((PLONG)PushLock,
- -EX_PUSH_LOCK_LOCK);
+ -(LONG)EX_PUSH_LOCK_LOCK);
/* Sanity checks */
ASSERT(OldValue.Locked);
@@ -989,6 +990,19 @@
NTSTATUS
ExpSetTimeZoneInformation(PTIME_ZONE_INFORMATION TimeZoneInformation);
+BOOLEAN
+NTAPI
+ExAcquireTimeRefreshLock(BOOLEAN Wait);
+
+VOID
+NTAPI
+ExReleaseTimeRefreshLock(VOID);
+
+VOID
+NTAPI
+ExUpdateSystemTimeFromCmos(IN BOOLEAN UpdateInterruptTime,
+ IN ULONG MaxSepInSeconds);
+
NTSTATUS
NTAPI
ExpAllocateLocallyUniqueId(OUT LUID *LocallyUniqueId);
Modified: branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/intrin_i.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/intrin_i.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/intrin_i.h (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/intrin_i.h Sun Feb 18 10:21:03 2007
@@ -81,17 +81,25 @@
#define Ke386FnInit() __asm__("fninit\n\t");
//
+// CR Macros
+//
+#define Ke386SetCr2(X) __asm__ __volatile__("movl %0,%%cr2" : :"r" (X));
+
+//
// DR Macros
//
#define Ke386GetDr0() _Ke386GetDr(0)
#define Ke386GetDr1() _Ke386GetDr(1)
#define Ke386SetDr0(X) _Ke386SetDr(0,X)
+#define Ke386SetDr1(X) _Ke386SetDr(1,X)
#define Ke386GetDr2() _Ke386GetDr(2)
#define Ke386SetDr2(X) _Ke386SetDr(2,X)
#define Ke386GetDr3() _Ke386GetDr(3)
+#define Ke386SetDr3(X) _Ke386SetDr(3,X)
#define Ke386GetDr4() _Ke386GetDr(4)
#define Ke386SetDr4(X) _Ke386SetDr(4,X)
#define Ke386GetDr6() _Ke386GetDr(6)
+#define Ke386SetDr6(X) _Ke386SetDr(6,X)
#define Ke386GetDr7() _Ke386GetDr(7)
#define Ke386SetDr7(X) _Ke386SetDr(7,X)
@@ -193,6 +201,17 @@
}
//
+// CR Macros
+//
+VOID
+FORCEINLINE
+Ke386SetCr2(IN ULONG Value)
+{
+ __asm mov eax, Value;
+ __asm mov cr2, eax;
+}
+
+//
// DR Macros
//
ULONG
@@ -243,6 +262,14 @@
{
__asm mov eax, Value;
__asm mov dr0, eax;
+}
+
+VOID
+FORCEINLINE
+Ke386SetDr1(IN ULONG Value)
+{
+ __asm mov eax, Value;
+ __asm mov dr1, eax;
}
VOID
Modified: branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/ke.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/ke.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/ke.h (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/include/internal/i386/ke.h Sun Feb 18 10:21:03 2007
@@ -63,8 +63,14 @@
VOID
NTAPI
+KiRestoreProcessorControlState(
+ IN PKPROCESSOR_STATE ProcessorState
+);
+
+VOID
+NTAPI
KiSaveProcessorControlState(
- IN PKPROCESSOR_STATE ProcessorState
+ OUT PKPROCESSOR_STATE ProcessorState
);
VOID
Modified: branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ke.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ke.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ke.h (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ke.h Sun Feb 18 10:21:03 2007
@@ -70,11 +70,6 @@
IN PCHAR Ansi,
IN ULONG Length
);
-
-struct _KIRQ_TRAPFRAME;
-struct _KPCR;
-struct _KPRCB;
-struct _KEXCEPTION_FRAME;
extern ULONG_PTR MmFreeLdrFirstKrnlPhysAddr;
extern ULONG_PTR MmFreeLdrLastKrnlPhysAddr;
@@ -154,6 +149,7 @@
extern PVOID KeRaiseUserExceptionDispatcher;
extern UCHAR KiDebugRegisterTrapOffsets[9];
extern UCHAR KiDebugRegisterContextOffsets[9];
+extern ULONG KiFreezeFlag;
/* MACROS *************************************************************************/
@@ -193,16 +189,6 @@
/* INTERNAL KERNEL FUNCTIONS ************************************************/
-/* Readies a Thread for Execution. */
-BOOLEAN
-NTAPI
-KiDispatchThreadNoLock(ULONG NewThreadStatus);
-
-/* Readies a Thread for Execution. */
-VOID
-NTAPI
-KiDispatchThread(ULONG NewThreadStatus);
-
/* Finds a new thread to run */
NTSTATUS
FASTCALL
@@ -392,10 +378,6 @@
IN PKTRAP_FRAME TrapFrame,
IN KPROFILE_SOURCE Source
);
-
-BOOLEAN
-NTAPI
-KiRosPrintAddress(PVOID Address);
VOID
NTAPI
@@ -520,27 +502,11 @@
IN KPRIORITY Priority
);
-BOOLEAN
-NTAPI
-KiDispatcherObjectWake(
- DISPATCHER_HEADER* hdr,
- KPRIORITY increment
-);
-
VOID
FASTCALL
KiUnlinkThread(
IN PKTHREAD Thread,
IN NTSTATUS WaitStatus
-);
-
-VOID
-NTAPI
-KeExpireTimers(
- PKDPC Apc,
- PVOID Arg1,
- PVOID Arg2,
- PVOID Arg3
);
VOID
@@ -726,10 +692,6 @@
VOID
NTAPI
-KiInitializeSystemClock(VOID);
-
-VOID
-NTAPI
KiSystemStartup(
IN PLOADER_PARAMETER_BLOCK LoaderBlock
);
@@ -949,6 +911,15 @@
IN LONGLONG Value
);
+BOOLEAN
+NTAPI
+KeFreezeExecution(IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame);
+
+VOID
+NTAPI
+KeThawExecution(IN BOOLEAN Enable);
+
#include "ke_x.h"
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_KE_H */
Modified: branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ps.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ps.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ps.h (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/include/internal/ps.h Sun Feb 18 10:21:03 2007
@@ -384,7 +384,8 @@
extern POBJECT_TYPE PsJobType;
extern LARGE_INTEGER ShortPsLockDelay;
extern UNICODE_STRING PsNtDllPathName;
-extern LIST_ENTRY PriorityListHead[MAXIMUM_PRIORITY];
+extern LIST_ENTRY PsLoadedModuleList;
+extern ULONG PsNtosImageBase;
//
// Inlined Functions
Modified: branches/alex-kd-branch/reactos/ntoskrnl/include/ntoskrnl.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/include/ntoskrnl.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/include/ntoskrnl.h (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/include/ntoskrnl.h Sun Feb 18 10:21:03 2007
@@ -12,6 +12,7 @@
#define _WIN32_WINNT _WIN32_WINNT_WS03
#define NTDDI_VERSION NTDDI_WS03SP1
#define NTKERNELAPI
+#define NOEXTAPI
/* DDK/IFS/NDK Headers */
#include <ntifs.h>
@@ -51,6 +52,11 @@
/* SetupLDR Support */
#include <arc/setupblk.h>
+/* KD Support */
+#include <windbgkd.h>
+#include <wdbgexts.h>
+#include <kddll.h>
+
/* PNP GUIDs */
#include <umpnpmgr/sysguid.h>
Modified: branches/alex-kd-branch/reactos/ntoskrnl/ke/bug.c
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/ke/bug.c?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/ke/bug.c (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/ke/bug.c Sun Feb 18 10:21:03 2007
@@ -37,15 +37,15 @@
{
PLIST_ENTRY current_entry;
PLDR_DATA_TABLE_ENTRY current;
- extern LIST_ENTRY ModuleListHead;
+ extern LIST_ENTRY PsLoadedModuleList;
ULONG_PTR RelativeAddress;
ULONG i = 0;
do
{
- current_entry = ModuleListHead.Flink;
-
- while (current_entry != &ModuleListHead)
+ current_entry = PsLoadedModuleList.Flink;
+
+ while (current_entry != &PsLoadedModuleList)
{
current = CONTAINING_RECORD(current_entry,
LDR_DATA_TABLE_ENTRY,
@@ -267,13 +267,13 @@
PVOID ImageBase, EipBase = NULL;
PLDR_DATA_TABLE_ENTRY Entry;
PLIST_ENTRY ListHead, NextEntry;
- extern LIST_ENTRY ModuleListHead;
+ extern LIST_ENTRY PsLoadedModuleList;
/* Assume no */
*InKernel = FALSE;
/* Set list pointers and make sure it's valid */
- ListHead = &ModuleListHead;
+ ListHead = &PsLoadedModuleList;
NextEntry = ListHead->Flink;
if (NextEntry)
{
Modified: branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/cpu.c
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/cpu.c?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/cpu.c (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/cpu.c Sun Feb 18 10:21:03 2007
@@ -74,6 +74,10 @@
BOOLEAN KiI386PentiumLockErrataPresent;
BOOLEAN KiSMTProcessorsPresent;
+/* Freeze data */
+KIRQL KiOldIrql;
+ULONG KiFreezeFlag;
+
/* CPU Signatures */
static const CHAR CmpIntelID[] = "GenuineIntel";
static const CHAR CmpAmdID[] = "AuthenticAMD";
@@ -672,7 +676,36 @@
VOID
NTAPI
-KiSaveProcessorControlState(IN PKPROCESSOR_STATE ProcessorState)
+KiRestoreProcessorControlState(PKPROCESSOR_STATE ProcessorState)
+{
+ /* Restore the CR registers */
+ __writecr0(ProcessorState->SpecialRegisters.Cr0);
+ Ke386SetCr2(ProcessorState->SpecialRegisters.Cr2);
+ __writecr3(ProcessorState->SpecialRegisters.Cr3);
+ __writecr4(ProcessorState->SpecialRegisters.Cr4);
+
+ //
+ // Restore the DR registers
+ //
+ Ke386SetDr0(ProcessorState->SpecialRegisters.KernelDr0);
+ Ke386SetDr1(ProcessorState->SpecialRegisters.KernelDr1);
+ Ke386SetDr2(ProcessorState->SpecialRegisters.KernelDr2);
+ Ke386SetDr3(ProcessorState->SpecialRegisters.KernelDr3);
+ Ke386SetDr6(ProcessorState->SpecialRegisters.KernelDr6);
+ Ke386SetDr7(ProcessorState->SpecialRegisters.KernelDr7);
+
+ //
+ // Restore GDT, IDT, LDT and TSS
+ //
+ Ke386SetGlobalDescriptorTable(ProcessorState->SpecialRegisters.Gdtr);
+ Ke386SetInterruptDescriptorTable(ProcessorState->SpecialRegisters.Idtr);
+ Ke386SetTr(ProcessorState->SpecialRegisters.Tr);
+ Ke386SetLocalDescriptorTable(ProcessorState->SpecialRegisters.Ldtr);
+}
+
+VOID
+NTAPI
+KiSaveProcessorControlState(OUT PKPROCESSOR_STATE ProcessorState)
{
/* Save the CR registers */
ProcessorState->SpecialRegisters.Cr0 = __readcr0();
@@ -807,6 +840,39 @@
MmSetPageProtect(NULL, NewIdt, PAGE_READONLY);
}
+BOOLEAN
+NTAPI
+KeFreezeExecution(IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame)
+{
+ ULONG Flags;
+
+ /* Disable interrupts and get previous state */
+ Ke386SaveFlags(Flags);
+ //Flags = __getcallerseflags();
+ _disable();
+
+ /* Save freeze flag */
+ KiFreezeFlag = 4;
+
+ /* Save the old IRQL */
+ KiOldIrql = KeGetCurrentIrql();
+
+ /* Return whether interrupts were enabled */
+ return (Flags & EFLAGS_INTERRUPT_MASK) ? TRUE: FALSE;
+}
+
+VOID
+NTAPI
+KeThawExecution(IN BOOLEAN Enable)
+{
+ /* Cleanup CPU caches */
+ KeFlushCurrentTb();
+
+ /* Re-enable interrupts */
+ if (Enable) _enable();
+}
+
/* PUBLIC FUNCTIONS **********************************************************/
/*
Modified: branches/alex-kd-branch/reactos/ntoskrnl/ldr/loader.c
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/ldr/loader.c?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/ldr/loader.c (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/ldr/loader.c Sun Feb 18 10:21:03 2007
@@ -42,7 +42,8 @@
/* GLOBALS *******************************************************************/
-LIST_ENTRY ModuleListHead;
+LIST_ENTRY PsLoadedModuleList;
+ULONG PsNtosImageBase = 0x80100000;
KSPIN_LOCK ModuleListLock;
LDR_DATA_TABLE_ENTRY NtoskrnlModuleObject;
LDR_DATA_TABLE_ENTRY HalModuleObject;
@@ -101,7 +102,7 @@
PLDR_DATA_TABLE_ENTRY HalModuleObject, NtoskrnlModuleObject, LdrEntry;
/* Initialize the module list and spinlock */
- InitializeListHead(&ModuleListHead);
+ InitializeListHead(&PsLoadedModuleList);
KeInitializeSpinLock(&ModuleListLock);
/* Get the NTOSKRNL Entry from the loader */
@@ -112,13 +113,14 @@
sizeof(LDR_DATA_TABLE_ENTRY),
TAG('M', 'm', 'L', 'd'));
NtoskrnlModuleObject->DllBase = LdrEntry->DllBase;
+ PsNtosImageBase = PtrToUlong(LdrEntry->DllBase);
RtlInitUnicodeString(&NtoskrnlModuleObject->FullDllName, KERNEL_MODULE_NAME);
LdrpBuildModuleBaseName(&NtoskrnlModuleObject->BaseDllName, &NtoskrnlModuleObject->FullDllName);
NtoskrnlModuleObject->EntryPoint = LdrEntry->EntryPoint;
NtoskrnlModuleObject->SizeOfImage = LdrEntry->SizeOfImage;
/* Insert it into the list */
- InsertTailList(&ModuleListHead, &NtoskrnlModuleObject->InLoadOrderLinks);
+ InsertTailList(&PsLoadedModuleList, &NtoskrnlModuleObject->InLoadOrderLinks);
/* Get the HAL Entry from the loader */
LdrEntry = CONTAINING_RECORD(KeLoaderBlock->LoadOrderListHead.Flink->Flink, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
@@ -134,7 +136,7 @@
HalModuleObject->SizeOfImage = LdrEntry->SizeOfImage;
/* Insert it into the list */
- InsertTailList(&ModuleListHead, &HalModuleObject->InLoadOrderLinks);
+ InsertTailList(&PsLoadedModuleList, &HalModuleObject->InLoadOrderLinks);
}
NTSTATUS
@@ -384,8 +386,8 @@
KeAcquireSpinLock(&ModuleListLock,&Irql);
/* calculate required size */
- current_entry = ModuleListHead.Flink;
- while (current_entry != (&ModuleListHead))
+ current_entry = PsLoadedModuleList.Flink;
+ while (current_entry != (&PsLoadedModuleList))
{
ModuleCount++;
current = CONTAINING_RECORD(current_entry,LDR_DATA_TABLE_ENTRY,InLoadOrderLinks);
@@ -418,8 +420,8 @@
Smi->NumberOfModules = ModuleCount;
ModuleCount = 0;
- current_entry = ModuleListHead.Flink;
- while (current_entry != (&ModuleListHead))
+ current_entry = PsLoadedModuleList.Flink;
+ while (current_entry != (&PsLoadedModuleList))
{
current = CONTAINING_RECORD(current_entry,LDR_DATA_TABLE_ENTRY,InLoadOrderLinks);
@@ -576,8 +578,8 @@
KeAcquireSpinLock(&ModuleListLock,&Irql);
- Entry = ModuleListHead.Flink;
- while (Entry != &ModuleListHead)
+ Entry = PsLoadedModuleList.Flink;
+ while (Entry != &PsLoadedModuleList)
{
Module = CONTAINING_RECORD(Entry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
@@ -871,7 +873,7 @@
/* Insert module */
KeAcquireSpinLock(&ModuleListLock, &Irql);
- InsertTailList(&ModuleListHead,
+ InsertTailList(&PsLoadedModuleList,
&CreatedModuleObject->InLoadOrderLinks);
KeReleaseSpinLock(&ModuleListLock, Irql);
Modified: branches/alex-kd-branch/reactos/ntoskrnl/mm/mm.c
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/mm/mm.c?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/mm/mm.c (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/mm/mm.c Sun Feb 18 10:21:03 2007
@@ -409,7 +409,7 @@
ANSI_STRING AnsiRoutineName;
NTSTATUS Status;
PLIST_ENTRY NextEntry;
- extern LIST_ENTRY ModuleListHead;
+ extern LIST_ENTRY PsLoadedModuleList;
PLDR_DATA_TABLE_ENTRY LdrEntry;
BOOLEAN Found = FALSE;
UNICODE_STRING KernelName = RTL_CONSTANT_STRING(L"ntoskrnl.exe");
@@ -422,8 +422,8 @@
if (!NT_SUCCESS(Status)) return NULL;
/* Loop the loaded module list */
- NextEntry = ModuleListHead.Flink;
- while (NextEntry != &ModuleListHead)
+ NextEntry = PsLoadedModuleList.Flink;
+ while (NextEntry != &PsLoadedModuleList)
{
/* Get the entry */
LdrEntry = CONTAINING_RECORD(NextEntry,
Modified: branches/alex-kd-branch/reactos/ntoskrnl/mm/rpoolmgr.h
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/mm/rpoolmgr.h?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/mm/rpoolmgr.h (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/mm/rpoolmgr.h Sun Feb 18 10:21:03 2007
@@ -143,7 +143,7 @@
if ( Block->LastOwnerStack[i] != 0xDEADBEEF )
{
R_DEBUG(" ");
- if (!R_PRINT_ADDRESS ((PVOID)Block->LastOwnerStack[i]) )
+ //if (!R_PRINT_ADDRESS ((PVOID)Block->LastOwnerStack[i]) )
{
R_DEBUG("<%X>", Block->LastOwnerStack[i] );
}
Modified: branches/alex-kd-branch/reactos/ntoskrnl/mm/verifier.c
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/mm/verifier.c?rev=25833&r1=25832&r2=25833&view=diff
==============================================================================
--- branches/alex-kd-branch/reactos/ntoskrnl/mm/verifier.c (original)
+++ branches/alex-kd-branch/reactos/ntoskrnl/mm/verifier.c Sun Feb 18 10:21:03 2007
@@ -19,7 +19,7 @@
KMUTANT MmSystemLoadLock;
ULONG MiActiveVerifierThunks;
-extern LIST_ENTRY ModuleListHead;
+extern LIST_ENTRY PsLoadedModuleList;
/* PRIVATE FUNCTIONS *********************************************************/
@@ -32,7 +32,7 @@
PAGED_CODE();
/* Loop entries */
- NextEntry = ModuleListHead.Flink;
+ NextEntry = PsLoadedModuleList.Flink;
do
{
/* Get the loader entry */
@@ -51,7 +51,7 @@
/* Move on */
NextEntry = NextEntry->Flink;
- } while(NextEntry != &ModuleListHead);
+ } while(NextEntry != &PsLoadedModuleList);
/* Return the entry */
return FoundEntry;
More information about the Ros-diffs
mailing list