13#include <reactos/buildno.h>
35 SIZE_T NumberOfPhysicalPages = 0;
38 for (ListEntry = LoaderBlock->MemoryDescriptorListHead.
Flink;
39 ListEntry != &LoaderBlock->MemoryDescriptorListHead;
40 ListEntry = ListEntry->
Flink)
61 NumberOfPhysicalPages +=
Descriptor->PageCount;
74 DPRINT1(
"-----------------------------------------------------\n");
75 DPRINT1(
"ReactOS " KERNEL_VERSION_STR
" (Build " KERNEL_VERSION_BUILD_STR
") (Commit " KERNEL_VERSION_COMMIT_HASH
")\n");
119 NextEntry = NextEntry->
Flink;
122 if ((CurrentHeader == DataHeader) || (CurrentHeader->
OwnerTag ==
Tag))
131 DataHeader->OwnerTag =
Tag;
132 DataHeader->Size =
Size;
146 BOOLEAN EnableKd, DisableKdAfterInit =
FALSE, BlockEnable;
147 PSTR CommandLine, DebugLine, DebugOptionStart, DebugOptionEnd;
154 CHAR NameBuffer[256];
227 CommandLine = LoaderBlock->LoadOptions;
237 if (
strstr(CommandLine,
"CRASHDEBUG"))
242 else if (
strstr(CommandLine,
"NODEBUG"))
247 else if ((DebugLine =
strstr(CommandLine,
"DEBUG")) !=
NULL)
253 if (DebugLine[5] ==
'=')
256 DebugOptionStart = DebugOptionEnd = &DebugLine[6];
265 if ((*DebugOptionEnd ==
',') ||
266 (*DebugOptionEnd ==
' ') ||
267 (*DebugOptionEnd ==
'\t'))
283 DebugOptionLength = (DebugOptionEnd - DebugOptionStart);
289 if (!DebugOptionLength)
break;
292 if ((DebugOptionLength == 10) &&
293 !(
strncmp(DebugOptionStart,
"AUTOENABLE", 10)))
299 DisableKdAfterInit =
TRUE;
303 else if ((DebugOptionLength == 7) &&
304 !(
strncmp(DebugOptionStart,
"DISABLE", 7)))
307 DisableKdAfterInit =
TRUE;
311 else if ((DebugOptionLength == 6) &&
312 !(
strncmp(DebugOptionStart,
"NOUMEX", 6)))
322 if (*DebugOptionEnd !=
',')
330 DebugOptionStart = DebugOptionEnd;
396 KdpPrintBanner(MemSizeMBs);
399 if (DisableKdAfterInit)
416 NextEntry = LoaderBlock->LoadOrderListHead.
Flink;
418 while ((NextEntry != &LoaderBlock->LoadOrderListHead) && (
i < 2))
445 NextEntry = NextEntry->
Flink;
#define ALIGN_UP_BY(size, align)
char * strstr(char *String1, char *String2)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
#define NT_SUCCESS(StatCode)
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
#define InsertTailList(ListHead, Entry)
#define KeReleaseSpinLock(sl, irql)
#define KeAcquireSpinLock(sl, irql)
#define InitializeListHead(ListHead)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
LARGE_INTEGER NTAPI KeQueryPerformanceCounter(IN PLARGE_INTEGER PerformanceFreq)
BOOLEAN NTAPI KdpTrap(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame, IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT ContextRecord, IN KPROCESSOR_MODE PreviousMode, IN BOOLEAN SecondChanceException)
#define KD_BREAKPOINT_MAX
BREAKPOINT_ENTRY KdpBreakpointTable[KD_BREAKPOINT_MAX]
NTSTATUS NTAPI KdDisableDebuggerWithLock(IN BOOLEAN NeedLock)
LARGE_INTEGER KdPerformanceCounterRate
BOOLEAN KdBreakAfterSymbolLoad
DBGKD_GET_VERSION64 KdVersionBlock
VOID NTAPI KdpTimeSlipWork(IN PVOID Context)
LARGE_INTEGER KdTimerStart
BOOLEAN KdIgnoreUmExceptions
PKDEBUG_ROUTINE KiDebugRoutine
BOOLEAN NTAPI KdpStub(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame, IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT ContextRecord, IN KPROCESSOR_MODE PreviousMode, IN BOOLEAN SecondChanceException)
WORK_QUEUE_ITEM KdpTimeSlipWorkItem
KSPIN_LOCK KdpDataSpinLock
LIST_ENTRY KdpDebuggerDataListHead
BOOLEAN KdpDebuggerStructuresInitialized
VOID NTAPI KdpTimeSlipDpcRoutine(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
BOOLEAN KdAutoEnableOnEvent
NTSTATUS NTAPI KdDebuggerInitialize0(IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
BOOLEAN KdDebuggerNotPresent
BOOLEAN KdDebuggerEnabled
KDDEBUGGER_DATA64 * KdDebuggerDataBlock
BOOLEAN NTAPI KdInitSystem(_In_ ULONG BootPhase, _In_opt_ PLOADER_PARAMETER_BLOCK LoaderBlock)
BOOLEAN NTAPI KdRegisterDebuggerDataBlock(IN ULONG Tag, IN PDBGKD_DEBUG_DATA_HEADER64 DataHeader, IN ULONG Size)
VOID NTAPI KdUpdateDataBlock(VOID)
BOOLEAN NTAPI KdPollBreakIn(VOID)
PLOADER_PARAMETER_BLOCK KeLoaderBlock
static const char * ImageName
VOID NTAPI DbgLoadImageSymbols(_In_ PSTRING Name, _In_ PVOID Base, _In_ ULONG_PTR ProcessId)
NTSYSAPI VOID NTAPI RtlInitString(PSTRING DestinationString, PCSZ SourceString)
_In_ ULONG _In_ ULONG _In_ ULONG Length
PVOID KeUserCallbackDispatcher
HANDLE NTAPI PsGetCurrentProcessId(VOID)
LIST_ENTRY PsLoadedModuleList
ULONG_PTR PsNtosImageBase
_CRTIMP char *__cdecl _strupr(_Inout_z_ char *_String)
#define DBGKD_VERS_FLAG_MP
@ LoaderFirmwarePermanent
ULONG_PTR DirectoryTableBase
ULONG64 PsLoadedModuleList
ULONG64 KeUserCallbackDispatcher
DBGKD_DEBUG_DATA_HEADER64 Header
UNICODE_STRING FullDllName
struct _LIST_ENTRY * Flink
VOID NTAPI KeInitializeTimer(OUT PKTIMER Timer)
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_Must_inspect_result_ _In_ WDFCMRESLIST List
#define DbgKdMaximumStateChange
#define DbgKdMinimumStateChange
#define DbgKdMaximumManipulate
#define DbgKdMinimumManipulate
#define ExInitializeWorkItem(Item, Routine, Context)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql