Fix usage of KdComPortInUse

svn path=/trunk/; revision=27515
This commit is contained in:
Hervé Poussineau 2007-07-08 20:13:20 +00:00
parent add1532e20
commit e394d5e78d
6 changed files with 11 additions and 12 deletions

View file

@ -218,8 +218,7 @@ SerialPnpStartDevice(
ComPortBase = ULongToPtr(DeviceExtension->BaseAddress); ComPortBase = ULongToPtr(DeviceExtension->BaseAddress);
/* Test if we are trying to start the serial port used for debugging */ /* 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"); DPRINT("Failing IRP_MN_START_DEVICE as this serial port is used for debugging\n");
return STATUS_INSUFFICIENT_RESOURCES; return STATUS_INSUFFICIENT_RESOURCES;

View file

@ -74,7 +74,7 @@ IoReadPartitionTable@16=HalpReadPartitionTable@16
IoSetPartitionInformation@16=HalpSetPartitionInformation@16 IoSetPartitionInformation@16=HalpSetPartitionInformation@16
IoWritePartitionTable@20=HalpWritePartitionTable@20 IoWritePartitionTable@20=HalpWritePartitionTable@20
KeAcquireSpinLock@8 KeAcquireSpinLock@8
KdComPortInUse=_KdComPortInUse KdComPortInUse=_KdComPortInUse DATA
KeFlushWriteBuffer@0 KeFlushWriteBuffer@0
KeGetCurrentIrql@0 KeGetCurrentIrql@0
KeLowerIrql@4 KeLowerIrql@4

View file

@ -12,7 +12,12 @@
#define NDEBUG #define NDEBUG
#include <debug.h> #include <debug.h>
ULONG KdComPortInUse = 0; #ifdef __GNUC__
static PUCHAR realKdComPortInUse = 0;
PUCHAR *_KdComPortInUse = &realKdComPortInUse;
#else
PUCHAR _KdComPortInUse = 0;
#endif
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/

View file

@ -8,9 +8,6 @@
/* Temporary hack */ /* Temporary hack */
#define KPCR_BASE 0xFF000000 #define KPCR_BASE 0xFF000000
/* WDK Hack */
#define KdComPortInUse _KdComPortInUse
#define HAL_APC_REQUEST 0 #define HAL_APC_REQUEST 0
#define HAL_DPC_REQUEST 1 #define HAL_DPC_REQUEST 1

View file

@ -224,7 +224,7 @@ extern NTSYSAPI HAL_PRIVATE_DISPATCH HalPrivateDispatchTable;
// HAL Exports // HAL Exports
// //
#ifndef _NTHAL_ #ifndef _NTHAL_
extern PUCHAR *KdComPortInUse; extern DECL_IMPORT PUCHAR *KdComPortInUse;
#endif #endif
#endif #endif

View file

@ -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? */ /* Current Port in use. FIXME: Do we support more then one? */
ULONG KdpPort; ULONG KdpPort;
/* If serial debugging is enabled, is pointing to the UART base address. */
PUCHAR *KdComPortInUse;
/* DEBUG LOG FUNCTIONS *******************************************************/ /* DEBUG LOG FUNCTIONS *******************************************************/
@ -99,7 +97,7 @@ KdpInitDebugLog(PKD_DISPATCH_TABLE DispatchTable,
if (BootPhase == 0) if (BootPhase == 0)
{ {
KdComPortInUse = NULL; *KdComPortInUse = NULL;
/* Write out the functions that we support for now */ /* Write out the functions that we support for now */
DispatchTable->KdpInitRoutine = KdpInitDebugLog; DispatchTable->KdpInitRoutine = KdpInitDebugLog;
@ -184,7 +182,7 @@ KdpSerialInit(PKD_DISPATCH_TABLE DispatchTable,
KdpDebugMode.Serial = FALSE; KdpDebugMode.Serial = FALSE;
return; return;
} }
KdComPortInUse = (PUCHAR*)&SerialPortInfo.BaseAddress; *KdComPortInUse = (PUCHAR)(ULONG_PTR)SerialPortInfo.BaseAddress;
/* Register as a Provider */ /* Register as a Provider */
InsertTailList(&KdProviders, &DispatchTable->KdProvidersList); InsertTailList(&KdProviders, &DispatchTable->KdProvidersList);