https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5d78952024da9cae29c7b…
commit 5d78952024da9cae29c7b1ecb545ead6ae0c20b4
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Sep 29 20:45:25 2024 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Tue Jan 28 22:00:34 2025 +0100
[NTOS:KD64] Simplify some code in debugging helpers
---
ntoskrnl/include/internal/kd64.h | 4 ++--
ntoskrnl/kd64/amd64/kdx64.c | 8 +++----
ntoskrnl/kd64/arm/kdarm.c | 4 ++--
ntoskrnl/kd64/i386/kdx86.c | 50 ++++++++++++++++++----------------------
ntoskrnl/kd64/kdapi.c | 18 +++++----------
5 files changed, 36 insertions(+), 48 deletions(-)
diff --git a/ntoskrnl/include/internal/kd64.h b/ntoskrnl/include/internal/kd64.h
index 060832423ba..d9be3e72cc3 100644
--- a/ntoskrnl/include/internal/kd64.h
+++ b/ntoskrnl/include/internal/kd64.h
@@ -401,13 +401,13 @@ NTSTATUS
NTAPI
KdpSysReadMsr(
_In_ ULONG Msr,
- _Out_ PLARGE_INTEGER MsrValue);
+ _Out_ PULONGLONG MsrValue);
NTSTATUS
NTAPI
KdpSysWriteMsr(
_In_ ULONG Msr,
- _In_ PLARGE_INTEGER MsrValue);
+ _In_ PULONGLONG MsrValue);
//
// Bus
diff --git a/ntoskrnl/kd64/amd64/kdx64.c b/ntoskrnl/kd64/amd64/kdx64.c
index b403bfa5918..c19505f634a 100644
--- a/ntoskrnl/kd64/amd64/kdx64.c
+++ b/ntoskrnl/kd64/amd64/kdx64.c
@@ -95,12 +95,12 @@ NTSTATUS
NTAPI
KdpSysReadMsr(
_In_ ULONG Msr,
- _Out_ PLARGE_INTEGER MsrValue)
+ _Out_ PULONGLONG MsrValue)
{
/* Use SEH to protect from invalid MSRs */
_SEH2_TRY
{
- MsrValue->QuadPart = __readmsr(Msr);
+ *MsrValue = __readmsr(Msr);
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
@@ -115,12 +115,12 @@ NTSTATUS
NTAPI
KdpSysWriteMsr(
_In_ ULONG Msr,
- _In_ PLARGE_INTEGER MsrValue)
+ _In_ PULONGLONG MsrValue)
{
/* Use SEH to protect from invalid MSRs */
_SEH2_TRY
{
- __writemsr(Msr, MsrValue->QuadPart);
+ __writemsr(Msr, *MsrValue);
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
diff --git a/ntoskrnl/kd64/arm/kdarm.c b/ntoskrnl/kd64/arm/kdarm.c
index e322726c548..5a8674046a0 100644
--- a/ntoskrnl/kd64/arm/kdarm.c
+++ b/ntoskrnl/kd64/arm/kdarm.c
@@ -37,7 +37,7 @@ NTSTATUS
NTAPI
KdpSysReadMsr(
_In_ ULONG Msr,
- _Out_ PLARGE_INTEGER MsrValue)
+ _Out_ PULONGLONG MsrValue)
{
UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL;
@@ -47,7 +47,7 @@ NTSTATUS
NTAPI
KdpSysWriteMsr(
_In_ ULONG Msr,
- _In_ PLARGE_INTEGER MsrValue)
+ _In_ PULONGLONG MsrValue)
{
UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL;
diff --git a/ntoskrnl/kd64/i386/kdx86.c b/ntoskrnl/kd64/i386/kdx86.c
index 64736cc8ef6..8fc77ebcf6e 100644
--- a/ntoskrnl/kd64/i386/kdx86.c
+++ b/ntoskrnl/kd64/i386/kdx86.c
@@ -93,22 +93,19 @@ NTSTATUS
NTAPI
KdpSysReadMsr(
_In_ ULONG Msr,
- _Out_ PLARGE_INTEGER MsrValue)
+ _Out_ PULONGLONG MsrValue)
{
- /* Wrap this in SEH in case the MSR doesn't exist */
+ /* Use SEH to protect from invalid MSRs */
_SEH2_TRY
{
- /* Read from the MSR */
- MsrValue->QuadPart = __readmsr(Msr);
+ *MsrValue = __readmsr(Msr);
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- /* Invalid MSR */
_SEH2_YIELD(return STATUS_NO_SUCH_DEVICE);
}
_SEH2_END;
- /* Success */
return STATUS_SUCCESS;
}
@@ -116,22 +113,19 @@ NTSTATUS
NTAPI
KdpSysWriteMsr(
_In_ ULONG Msr,
- _In_ PLARGE_INTEGER MsrValue)
+ _In_ PULONGLONG MsrValue)
{
- /* Wrap this in SEH in case the MSR doesn't exist */
+ /* Use SEH to protect from invalid MSRs */
_SEH2_TRY
{
- /* Write to the MSR */
- __writemsr(Msr, MsrValue->QuadPart);
+ __writemsr(Msr, *MsrValue);
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- /* Invalid MSR */
_SEH2_YIELD(return STATUS_NO_SUCH_DEVICE);
}
_SEH2_END;
- /* Success */
return STATUS_SUCCESS;
}
@@ -155,7 +149,7 @@ KdpSysReadBusData(
Length);
/* Return status */
- return *ActualLength != 0 ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL;
+ return (*ActualLength != 0 ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL);
}
NTSTATUS
@@ -178,7 +172,7 @@ KdpSysWriteBusData(
Length);
/* Return status */
- return *ActualLength != 0 ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL;
+ return (*ActualLength != 0 ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL);
}
NTSTATUS
@@ -272,9 +266,7 @@ KdpSysReadIoSpace(
NTSTATUS Status;
/* Verify parameters */
- if ((InterfaceType != Isa) ||
- (BusNumber != 0) ||
- (AddressSpace != 1))
+ if ((InterfaceType != Isa) || (BusNumber != 0) || (AddressSpace != 1))
{
/* Fail, we don't support this */
*ActualDataSize = 0;
@@ -285,16 +277,17 @@ KdpSysReadIoSpace(
switch (DataSize)
{
case sizeof(UCHAR):
-
+ {
/* Read 1 byte */
*(PUCHAR)DataValue =
READ_PORT_UCHAR((PUCHAR)(ULONG_PTR)IoAddress);
*ActualDataSize = sizeof(UCHAR);
Status = STATUS_SUCCESS;
break;
+ }
case sizeof(USHORT):
-
+ {
/* Make sure the address is aligned */
if ((IoAddress & (sizeof(USHORT) - 1)) != 0)
{
@@ -310,9 +303,10 @@ KdpSysReadIoSpace(
*ActualDataSize = sizeof(USHORT);
Status = STATUS_SUCCESS;
break;
+ }
case sizeof(ULONG):
-
+ {
/* Make sure the address is aligned */
if ((IoAddress & (sizeof(ULONG) - 1)) != 0)
{
@@ -328,9 +322,9 @@ KdpSysReadIoSpace(
*ActualDataSize = sizeof(ULONG);
Status = STATUS_SUCCESS;
break;
+ }
default:
-
/* Invalid size, fail */
*ActualDataSize = 0;
Status = STATUS_INVALID_PARAMETER;
@@ -354,9 +348,7 @@ KdpSysWriteIoSpace(
NTSTATUS Status;
/* Verify parameters */
- if ((InterfaceType != Isa) ||
- (BusNumber != 0) ||
- (AddressSpace != 1))
+ if ((InterfaceType != Isa) || (BusNumber != 0) || (AddressSpace != 1))
{
/* Fail, we don't support this */
*ActualDataSize = 0;
@@ -367,16 +359,17 @@ KdpSysWriteIoSpace(
switch (DataSize)
{
case sizeof(UCHAR):
-
+ {
/* Write 1 byte */
WRITE_PORT_UCHAR((PUCHAR)(ULONG_PTR)IoAddress,
*(PUCHAR)DataValue);
*ActualDataSize = sizeof(UCHAR);
Status = STATUS_SUCCESS;
break;
+ }
case sizeof(USHORT):
-
+ {
/* Make sure the address is aligned */
if ((IoAddress & (sizeof(USHORT) - 1)) != 0)
{
@@ -392,9 +385,10 @@ KdpSysWriteIoSpace(
*ActualDataSize = sizeof(USHORT);
Status = STATUS_SUCCESS;
break;
+ }
case sizeof(ULONG):
-
+ {
/* Make sure the address is aligned */
if ((IoAddress & (sizeof(ULONG) - 1)) != 0)
{
@@ -410,9 +404,9 @@ KdpSysWriteIoSpace(
*ActualDataSize = sizeof(ULONG);
Status = STATUS_SUCCESS;
break;
+ }
default:
-
/* Invalid size, fail */
*ActualDataSize = 0;
Status = STATUS_INVALID_PARAMETER;
diff --git a/ntoskrnl/kd64/kdapi.c b/ntoskrnl/kd64/kdapi.c
index bd27655346b..ba226ce6e17 100644
--- a/ntoskrnl/kd64/kdapi.c
+++ b/ntoskrnl/kd64/kdapi.c
@@ -961,7 +961,7 @@ KdpReadMachineSpecificRegister(IN PDBGKD_MANIPULATE_STATE64 State,
{
STRING Header;
PDBGKD_READ_WRITE_MSR ReadMsr = &State->u.ReadWriteMsr;
- LARGE_INTEGER MsrValue;
+ ULARGE_INTEGER MsrValue;
/* Setup the header */
Header.Length = sizeof(DBGKD_MANIPULATE_STATE64);
@@ -969,8 +969,7 @@ KdpReadMachineSpecificRegister(IN PDBGKD_MANIPULATE_STATE64 State,
ASSERT(Data->Length == 0);
/* Call the internal routine */
- State->ReturnStatus = KdpSysReadMsr(ReadMsr->Msr,
- &MsrValue);
+ State->ReturnStatus = KdpSysReadMsr(ReadMsr->Msr, &MsrValue.QuadPart);
/* Return the data */
ReadMsr->DataValueLow = MsrValue.LowPart;
@@ -991,7 +990,7 @@ KdpWriteMachineSpecificRegister(IN PDBGKD_MANIPULATE_STATE64 State,
{
STRING Header;
PDBGKD_READ_WRITE_MSR WriteMsr = &State->u.ReadWriteMsr;
- LARGE_INTEGER MsrValue;
+ ULARGE_INTEGER MsrValue;
/* Setup the header */
Header.Length = sizeof(DBGKD_MANIPULATE_STATE64);
@@ -1001,8 +1000,7 @@ KdpWriteMachineSpecificRegister(IN PDBGKD_MANIPULATE_STATE64
State,
/* Call the internal routine */
MsrValue.LowPart = WriteMsr->DataValueLow;
MsrValue.HighPart = WriteMsr->DataValueHigh;
- State->ReturnStatus = KdpSysWriteMsr(WriteMsr->Msr,
- &MsrValue);
+ State->ReturnStatus = KdpSysWriteMsr(WriteMsr->Msr, &MsrValue.QuadPart);
/* Send the reply */
KdSendPacket(PACKET_TYPE_KD_STATE_MANIPULATE,
@@ -1062,7 +1060,6 @@ KdpSetBusData(IN PDBGKD_MANIPULATE_STATE64 State,
{
STRING Header;
PDBGKD_GET_SET_BUS_DATA SetBusData = &State->u.GetSetBusData;
- ULONG Length;
/* Setup the header */
Header.Length = sizeof(DBGKD_MANIPULATE_STATE64);
@@ -1075,10 +1072,7 @@ KdpSetBusData(IN PDBGKD_MANIPULATE_STATE64 State,
SetBusData->Offset,
Data->Buffer,
SetBusData->Length,
- &Length);
-
- /* Return the actual length written */
- SetBusData->Length = Length;
+ &SetBusData->Length);
/* Send the reply */
KdSendPacket(PACKET_TYPE_KD_STATE_MANIPULATE,
@@ -1926,7 +1920,7 @@ KdEnterDebugger(IN PKTRAP_FRAME TrapFrame,
/* Freeze all CPUs, raising also the IRQL to HIGH_LEVEL */
Enable = KeFreezeExecution(TrapFrame, ExceptionFrame);
- /* Lock the port, save the state and set debugger entered */
+ /* Lock the port, save its state and set the debugger entered flag */
KdpPortLocked = KeTryToAcquireSpinLockAtDpcLevel(&KdpDebuggerLock);
KdSave(FALSE);
KdEnteredDebugger = TRUE;