From e394d5e78d85f33f5496cfcb6493b0998a7c9d5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Sun, 8 Jul 2007 20:13:20 +0000 Subject: [PATCH] Fix usage of KdComPortInUse svn path=/trunk/; revision=27515 --- reactos/drivers/serial/serial/pnp.c | 3 +-- reactos/hal/hal/hal.def | 2 +- reactos/hal/halx86/generic/sysinfo.c | 7 ++++++- reactos/hal/halx86/include/halp.h | 3 --- reactos/include/ndk/haltypes.h | 2 +- reactos/ntoskrnl/kd/kdio.c | 6 ++---- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/reactos/drivers/serial/serial/pnp.c b/reactos/drivers/serial/serial/pnp.c index 621c04874b3..a713fd06903 100644 --- a/reactos/drivers/serial/serial/pnp.c +++ b/reactos/drivers/serial/serial/pnp.c @@ -218,8 +218,7 @@ SerialPnpStartDevice( ComPortBase = ULongToPtr(DeviceExtension->BaseAddress); /* Test if we are trying to start the serial port used for debugging */ - DPRINT1("KdComPort: %p\n", KdComPortInUse); - if (KdComPortInUse == ULongToPtr(DeviceExtension->BaseAddress)) + if (*KdComPortInUse == ULongToPtr(DeviceExtension->BaseAddress)) { DPRINT("Failing IRP_MN_START_DEVICE as this serial port is used for debugging\n"); return STATUS_INSUFFICIENT_RESOURCES; diff --git a/reactos/hal/hal/hal.def b/reactos/hal/hal/hal.def index 688c9a34291..eb489728203 100644 --- a/reactos/hal/hal/hal.def +++ b/reactos/hal/hal/hal.def @@ -74,7 +74,7 @@ IoReadPartitionTable@16=HalpReadPartitionTable@16 IoSetPartitionInformation@16=HalpSetPartitionInformation@16 IoWritePartitionTable@20=HalpWritePartitionTable@20 KeAcquireSpinLock@8 -KdComPortInUse=_KdComPortInUse +KdComPortInUse=_KdComPortInUse DATA KeFlushWriteBuffer@0 KeGetCurrentIrql@0 KeLowerIrql@4 diff --git a/reactos/hal/halx86/generic/sysinfo.c b/reactos/hal/halx86/generic/sysinfo.c index 8968fd2784c..ffdb34f210e 100644 --- a/reactos/hal/halx86/generic/sysinfo.c +++ b/reactos/hal/halx86/generic/sysinfo.c @@ -12,7 +12,12 @@ #define NDEBUG #include -ULONG KdComPortInUse = 0; +#ifdef __GNUC__ +static PUCHAR realKdComPortInUse = 0; +PUCHAR *_KdComPortInUse = &realKdComPortInUse; +#else +PUCHAR _KdComPortInUse = 0; +#endif /* FUNCTIONS *****************************************************************/ diff --git a/reactos/hal/halx86/include/halp.h b/reactos/hal/halx86/include/halp.h index cb540295512..f06e2ee5b61 100644 --- a/reactos/hal/halx86/include/halp.h +++ b/reactos/hal/halx86/include/halp.h @@ -8,9 +8,6 @@ /* Temporary hack */ #define KPCR_BASE 0xFF000000 -/* WDK Hack */ -#define KdComPortInUse _KdComPortInUse - #define HAL_APC_REQUEST 0 #define HAL_DPC_REQUEST 1 diff --git a/reactos/include/ndk/haltypes.h b/reactos/include/ndk/haltypes.h index 4bfffef3ef1..eac9b0faae0 100644 --- a/reactos/include/ndk/haltypes.h +++ b/reactos/include/ndk/haltypes.h @@ -224,7 +224,7 @@ extern NTSYSAPI HAL_PRIVATE_DISPATCH HalPrivateDispatchTable; // HAL Exports // #ifndef _NTHAL_ -extern PUCHAR *KdComPortInUse; +extern DECL_IMPORT PUCHAR *KdComPortInUse; #endif #endif diff --git a/reactos/ntoskrnl/kd/kdio.c b/reactos/ntoskrnl/kd/kdio.c index 7f94a1016dd..3e48a801ffa 100644 --- a/reactos/ntoskrnl/kd/kdio.c +++ b/reactos/ntoskrnl/kd/kdio.c @@ -26,8 +26,6 @@ KD_PORT_INFORMATION SerialPortInfo = {DEFAULT_DEBUG_PORT, DEFAULT_DEBUG_BAUD_RAT /* Current Port in use. FIXME: Do we support more then one? */ ULONG KdpPort; -/* If serial debugging is enabled, is pointing to the UART base address. */ -PUCHAR *KdComPortInUse; /* DEBUG LOG FUNCTIONS *******************************************************/ @@ -99,7 +97,7 @@ KdpInitDebugLog(PKD_DISPATCH_TABLE DispatchTable, if (BootPhase == 0) { - KdComPortInUse = NULL; + *KdComPortInUse = NULL; /* Write out the functions that we support for now */ DispatchTable->KdpInitRoutine = KdpInitDebugLog; @@ -184,7 +182,7 @@ KdpSerialInit(PKD_DISPATCH_TABLE DispatchTable, KdpDebugMode.Serial = FALSE; return; } - KdComPortInUse = (PUCHAR*)&SerialPortInfo.BaseAddress; + *KdComPortInUse = (PUCHAR)(ULONG_PTR)SerialPortInfo.BaseAddress; /* Register as a Provider */ InsertTailList(&KdProviders, &DispatchTable->KdProvidersList);