Author: hbelusca
Date: Sat Nov 24 19:36:07 2012
New Revision: 57761
URL: http://svn.reactos.org/svn/reactos?rev=57761&view=rev
Log:
[KD64]
Use \t instead of hardcoding the tab character.
Modified:
trunk/reactos/ntoskrnl/kd64/kdinit.c
Modified: trunk/reactos/ntoskrnl/kd64/kdinit.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd64/kdinit.c?rev…
==============================================================================
--- trunk/reactos/ntoskrnl/kd64/kdinit.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/kd64/kdinit.c [iso-8859-1] Sat Nov 24 19:36:07 2012
@@ -193,7 +193,7 @@
/* Check if this is a comma, a space or a tab */
if ((*DebugOptionEnd == ',') ||
(*DebugOptionEnd == ' ') ||
- (*DebugOptionEnd == ' '))
+ (*DebugOptionEnd == '\t'))
{
/*
* We reached the end of the option or
Author: hbelusca
Date: Sat Nov 24 18:22:26 2012
New Revision: 57759
URL: http://svn.reactos.org/svn/reactos?rev=57759&view=rev
Log:
[CPORTLIB]
Code formatting only.
Modified:
trunk/reactos/include/reactos/drivers/serial/ns16550.h
trunk/reactos/include/reactos/libs/cportlib/cportlib.h
trunk/reactos/lib/cportlib/cport.c
Modified: trunk/reactos/include/reactos/drivers/serial/ns16550.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/drivers/se…
==============================================================================
--- trunk/reactos/include/reactos/drivers/serial/ns16550.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/drivers/serial/ns16550.h [iso-8859-1] Sat Nov 24 18:22:26 2012
@@ -11,8 +11,8 @@
#pragma once
/* Note: These definitions are the internal definitions used by Microsoft serial
- driver (see src/kernel/serial/serial.h in WDK source code). Linux uses its own, as
- do most other OS.
+ driver (see src/kernel/serial/serial.h in WDK source code). Linux uses its own,
+ as do most other OS.
*/
#if !defined(SERIAL_REGISTER_STRIDE)
Modified: trunk/reactos/include/reactos/libs/cportlib/cportlib.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/libs/cport…
==============================================================================
--- trunk/reactos/include/reactos/libs/cportlib/cportlib.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/libs/cportlib/cportlib.h [iso-8859-1] Sat Nov 24 18:22:26 2012
@@ -14,61 +14,63 @@
#define CP_GET_NODATA 1
#define CP_GET_ERROR 2
-#define CPPORT_FLAG_MODEM_CONTROL 0x02
+#define CPPORT_FLAG_MODEM_CONTROL 0x02
typedef struct _CPPORT
{
- PUCHAR Address;
- ULONG Baud;
- USHORT Flags;
+ PUCHAR Address;
+ ULONG Baud;
+ USHORT Flags;
} CPPORT, *PCPPORT;
-
+
VOID
NTAPI
CpInitialize(
- IN PCPPORT Port,
- IN PUCHAR Address,
- IN ULONG Rate
- );
+ IN PCPPORT Port,
+ IN PUCHAR Address,
+ IN ULONG Rate
+);
VOID
NTAPI
CpEnableFifo(
- IN PUCHAR Address,
- IN BOOLEAN Enable
- );
+ IN PUCHAR Address,
+ IN BOOLEAN Enable
+);
BOOLEAN
NTAPI
CpDoesPortExist(
- IN PUCHAR Address
- );
-
+ IN PUCHAR Address
+);
+
UCHAR
NTAPI
CpReadLsr(
- IN PCPPORT Port,
- IN UCHAR ExpectedValue
- );
+ IN PCPPORT Port,
+ IN UCHAR ExpectedValue
+);
VOID
NTAPI
CpSetBaud(
- IN PCPPORT Port,
- IN ULONG Rate
- );
+ IN PCPPORT Port,
+ IN ULONG Rate
+);
USHORT
NTAPI
CpGetByte(
- IN PCPPORT Port,
- IN PUCHAR Byte,
- IN BOOLEAN Wait,
- IN BOOLEAN Poll
- );
-
+ IN PCPPORT Port,
+ IN PUCHAR Byte,
+ IN BOOLEAN Wait,
+ IN BOOLEAN Poll
+);
+
VOID
NTAPI
CpPutByte(
- IN PCPPORT Port,
- IN UCHAR Byte
- );
+ IN PCPPORT Port,
+ IN UCHAR Byte
+);
+
+/* EOF */
Modified: trunk/reactos/lib/cportlib/cport.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/cportlib/cport.c?rev=5…
==============================================================================
--- trunk/reactos/lib/cportlib/cport.c [iso-8859-1] (original)
+++ trunk/reactos/lib/cportlib/cport.c [iso-8859-1] Sat Nov 24 18:22:26 2012
@@ -20,8 +20,8 @@
/* NOTE: The original code supports Modem Control. We currently do not */
/* FIXMEs:
- - Make this serial-port specific (NS16550 vs other serial port types)
- - Get x64 KDCOM, KDBG, FREELDR, and other current code to use this
+ - Make this serial-port specific (NS16550 vs other serial port types)
+ - Get x64 KDCOM, KDBG, FREELDR, and other current code to use this
*/
/* INCLUDES *******************************************************************/
@@ -41,19 +41,19 @@
VOID
NTAPI
CpInitialize(IN PCPPORT Port,
- IN PUCHAR Address,
- IN ULONG Rate)
-{
- /* Reset port data */
+ IN PUCHAR Address,
+ IN ULONG Rate)
+{
+ /* Reset port data */
Port->Address = Address;
Port->Baud = 0;
- /* Set the baud rate */
+ /* Set the baud rate */
CpSetBaud(Port, Rate);
/* Enable on DTR and RTS */
WRITE_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER,
- SERIAL_MCR_DTR | SERIAL_MCR_RTS);
+ SERIAL_MCR_DTR | SERIAL_MCR_RTS);
/* Disable interrupts */
WRITE_PORT_UCHAR(Address + INTERRUPT_ENABLE_REGISTER, 0);
@@ -61,10 +61,10 @@
VOID
NTAPI
-CpEnableFifo(IN PUCHAR Address,
- IN BOOLEAN Enable)
-{
- /* Set FIFO */
+CpEnableFifo(IN PUCHAR Address,
+ IN BOOLEAN Enable)
+{
+ /* Set FIFO */
WRITE_PORT_UCHAR(Address + FIFO_CONTROL_REGISTER, Enable ? SERIAL_FCR_ENABLE : 0);
}
@@ -72,58 +72,62 @@
NTAPI
CpDoesPortExist(IN PUCHAR Address)
{
- UCHAR Old;
- /*
- * See "Building Hardware and Firmware to Complement Microsoft Windows Headless Operation"
- * Out-of-Band Management Port Device Requirements:
- * The device must act as a 16550 or 16450 UART.
- * Windows Server 2003 will test this device using the following process.
- * 1. Save off the current modem status register.
- * 2. Place the UART into diagnostic mode (The UART is placed into loopback mode
- * by writing SERIAL_MCR_LOOP to the modem control register).
- * 3. The modem status register is read and the high bits are checked. This means
- * SERIAL_MSR_CTS, SERIAL_MSR_DSR, SERIAL_MSR_RI and SERIAL_MSR_DCD should
- * all be clear.
- * 4. Place the UART in diagnostic mode and turn on OUTPUT (Loopback Mode and
- * OUTPUT are both turned on by writing (SERIAL_MCR_LOOP | SERIAL_MCR_OUT1)
- * to the modem control register).
- * 5. The modem status register is read and the ring indicator is checked.
- * This means SERIAL_MSR_RI should be set.
- * 6. Restore original modem status register.
- */
- Old = READ_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER);
+ /*
+ * See "Building Hardware and Firmware to Complement Microsoft Windows Headless Operation"
+ * Out-of-Band Management Port Device Requirements:
+ * The device must act as a 16550 or 16450 UART.
+ * Windows Server 2003 will test this device using the following process:
+ * 1. Save off the current modem status register.
+ * 2. Place the UART into diagnostic mode (The UART is placed into loopback mode
+ * by writing SERIAL_MCR_LOOP to the modem control register).
+ * 3. The modem status register is read and the high bits are checked. This means
+ * SERIAL_MSR_CTS, SERIAL_MSR_DSR, SERIAL_MSR_RI and SERIAL_MSR_DCD should
+ * all be clear.
+ * 4. Place the UART in diagnostic mode and turn on OUTPUT (Loopback Mode and
+ * OUTPUT are both turned on by writing (SERIAL_MCR_LOOP | SERIAL_MCR_OUT1)
+ * to the modem control register).
+ * 5. The modem status register is read and the ring indicator is checked.
+ * This means SERIAL_MSR_RI should be set.
+ * 6. Restore original modem status register.
+ */
+
+ UCHAR Old = READ_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER);
+
WRITE_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER, SERIAL_MCR_LOOP);
WRITE_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER, SERIAL_MCR_LOOP);
+
if (!(READ_PORT_UCHAR(Address + MODEM_STATUS_REGISTER) &
- (SERIAL_MSR_CTS | SERIAL_MSR_DSR | SERIAL_MSR_RI | SERIAL_MSR_DCD)))
- {
- WRITE_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER,
- (SERIAL_MCR_OUT1 | SERIAL_MCR_LOOP));
- if (READ_PORT_UCHAR(Address + MODEM_STATUS_REGISTER) & SERIAL_MSR_RI)
- {
- WRITE_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER, Old);
- return TRUE;
- }
- }
+ (SERIAL_MSR_CTS | SERIAL_MSR_DSR | SERIAL_MSR_RI | SERIAL_MSR_DCD)))
+ {
+ WRITE_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER,
+ (SERIAL_MCR_OUT1 | SERIAL_MCR_LOOP));
+ if (READ_PORT_UCHAR(Address + MODEM_STATUS_REGISTER) & SERIAL_MSR_RI)
+ {
+ WRITE_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER, Old);
+ return TRUE;
+ }
+ }
+
WRITE_PORT_UCHAR(Address + MODEM_CONTROL_REGISTER, Old);
+
return FALSE;
}
UCHAR
NTAPI
CpReadLsr(IN PCPPORT Port,
- IN UCHAR ExpectedValue)
-{
- UCHAR Lsr, Msr;
-
- /* Read the LSR and check if the expected value is present */
+ IN UCHAR ExpectedValue)
+{
+ UCHAR Lsr, Msr;
+
+ /* Read the LSR and check if the expected value is present */
Lsr = READ_PORT_UCHAR(Port->Address + LINE_STATUS_REGISTER);
if (!(Lsr & ExpectedValue))
- {
- /* Check the MSR for ring indicator toggle */
+ {
+ /* Check the MSR for ring indicator toggle */
Msr = READ_PORT_UCHAR(Port->Address + MODEM_STATUS_REGISTER);
- /* If the indicator reaches 3, we've seen this on/off twice */
+ /* If the indicator reaches 3, we've seen this on/off twice */
RingIndicator |= (Msr & SERIAL_MSR_RI) ? 1 : 2;
if (RingIndicator == 3) Port->Flags |= CPPORT_FLAG_MODEM_CONTROL;
}
@@ -134,13 +138,13 @@
VOID
NTAPI
CpSetBaud(IN PCPPORT Port,
- IN ULONG Rate)
-{
- UCHAR Lcr;
- USHORT Mode;
+ IN ULONG Rate)
+{
+ UCHAR Lcr;
+ USHORT Mode;
/* Add DLAB */
- Lcr = READ_PORT_UCHAR(Port->Address + LINE_CONTROL_REGISTER);
+ Lcr = READ_PORT_UCHAR(Port->Address + LINE_CONTROL_REGISTER);
WRITE_PORT_UCHAR(Port->Address + LINE_CONTROL_REGISTER, Lcr | SERIAL_LCR_DLAB);
/* Set baud rate */
@@ -150,59 +154,59 @@
/* Reset DLAB and set 8 data bits, 1 stop bit, no parity, no break */
WRITE_PORT_UCHAR(Port->Address + LINE_CONTROL_REGISTER,
- SERIAL_8_DATA | SERIAL_1_STOP | SERIAL_NONE_PARITY);
-
- /* Save baud rate in port */
+ SERIAL_8_DATA | SERIAL_1_STOP | SERIAL_NONE_PARITY);
+
+ /* Save baud rate in port */
Port->Baud = Rate;
}
USHORT
NTAPI
CpGetByte(IN PCPPORT Port,
- IN PUCHAR Byte,
- IN BOOLEAN Wait,
- IN BOOLEAN Poll)
-{
- UCHAR Lsr;
- ULONG i;
-
- /* Handle early read-before-init */
- if (!Port->Address) return CP_GET_NODATA;
-
- /* If "wait" mode enabled, spin many times, otherwise attempt just once */
- i = Wait ? 204800 : 1;
+ IN PUCHAR Byte,
+ IN BOOLEAN Wait,
+ IN BOOLEAN Poll)
+{
+ UCHAR Lsr;
+ ULONG i;
+
+ /* Handle early read-before-init */
+ if (!Port->Address) return CP_GET_NODATA;
+
+ /* If "wait" mode enabled, spin many times, otherwise attempt just once */
+ i = Wait ? 204800 : 1;
while (i--)
- {
- /* Read LSR for data ready */
+ {
+ /* Read LSR for data ready */
Lsr = CpReadLsr(Port, SERIAL_LSR_DR);
if ((Lsr & SERIAL_LSR_DR) == SERIAL_LSR_DR)
- {
- /* If an error happened, clear the byte and fail */
+ {
+ /* If an error happened, clear the byte and fail */
if (Lsr & (SERIAL_LSR_FE | SERIAL_LSR_PE))
- {
+ {
*Byte = 0;
return CP_GET_ERROR;
}
- /* If only polling was requested by caller, return now */
+ /* If only polling was requested by caller, return now */
if (Poll) return CP_GET_SUCCESS;
- /* Otherwise read the byte and return it */
+ /* Otherwise read the byte and return it */
*Byte = READ_PORT_UCHAR(Port->Address + RECEIVE_BUFFER_REGISTER);
- /* Handle CD if port is in modem control mode */
+ /* Handle CD if port is in modem control mode */
if (Port->Flags & CPPORT_FLAG_MODEM_CONTROL)
- {
- /* Not implemented yet */
- DPRINT1("CP: CPPORT_FLAG_MODEM_CONTROL unexpected\n");
+ {
+ /* Not implemented yet */
+ DPRINT1("CP: CPPORT_FLAG_MODEM_CONTROL unexpected\n");
}
- /* Byte was read */
+ /* Byte was read */
return CP_GET_SUCCESS;
}
}
- /* Reset LSR, no data was found */
+ /* Reset LSR, no data was found */
CpReadLsr(Port, 0);
return CP_GET_NODATA;
}
@@ -210,18 +214,20 @@
VOID
NTAPI
CpPutByte(IN PCPPORT Port,
- IN UCHAR Byte)
-{
- /* Check if port is in modem control to handle CD */
+ IN UCHAR Byte)
+{
+ /* Check if port is in modem control to handle CD */
while (Port->Flags & CPPORT_FLAG_MODEM_CONTROL)
- {
- /* Not implemented yet */
- DPRINT1("CP: CPPORT_FLAG_MODEM_CONTROL unexpected\n");
- }
-
- /* Wait for LSR to say we can go ahead */
+ {
+ /* Not implemented yet */
+ DPRINT1("CP: CPPORT_FLAG_MODEM_CONTROL unexpected\n");
+ }
+
+ /* Wait for LSR to say we can go ahead */
while (!(CpReadLsr(Port, SERIAL_LSR_THRE) & SERIAL_LSR_THRE));
/* Send the byte */
WRITE_PORT_UCHAR(Port->Address + RECEIVE_BUFFER_REGISTER, Byte);
}
+
+/* EOF */
Author: hbelusca
Date: Sat Nov 24 12:40:56 2012
New Revision: 57756
URL: http://svn.reactos.org/svn/reactos?rev=57756&view=rev
Log:
[WIN32CSR]
Correct the initialization of text-mode console.
Modified:
trunk/reactos/win32ss/user/win32csr/console.c
Modified: trunk/reactos/win32ss/user/win32csr/console.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/win32csr/cons…
==============================================================================
--- trunk/reactos/win32ss/user/win32csr/console.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/win32csr/console.c [iso-8859-1] Sat Nov 24 12:40:56 2012
@@ -82,11 +82,11 @@
hInst = GetModuleHandleW(L"win32csr");
if (LoadStringW(hInst,IDS_COMMAND_PROMPT,Title,sizeof(Title)/sizeof(Title[0])))
{
- RtlCreateUnicodeString(&Console->Title, Title);
+ RtlCreateUnicodeString(&Console->Title, Title);
}
else
{
- RtlCreateUnicodeString(&Console->Title, L"Command Prompt");
+ RtlCreateUnicodeString(&Console->Title, L"Command Prompt");
}
Console->ReferenceCount = 0;
@@ -131,31 +131,47 @@
/* make console active, and insert into console list */
Console->ActiveBuffer = (PCSRSS_SCREEN_BUFFER) NewBuffer;
- if (! GuiMode)
- {
+ /*
+ * If we are not in GUI-mode, start the text-mode console. If we fail,
+ * try to start the GUI-mode console (win32k will automatically switch
+ * to graphical mode, therefore no additional code is needed).
+ */
+ if (!GuiMode)
+ {
+ DPRINT1("WIN32CSR: Opening text-mode console\n");
Status = TuiInitConsole(Console);
- if (! NT_SUCCESS(Status))
- {
- DPRINT1("Failed to open text-mode console, switching to gui-mode\n");
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("Failed to open text-mode console, switching to gui-mode, Status = 0x%08lx\n", Status);
GuiMode = TRUE;
}
}
- else /* GuiMode */
- {
+
+ /*
+ * Try to open the GUI-mode console. Two cases are possible:
+ * - We are in GUI-mode, therefore GuiMode == TRUE, the previous test-case
+ * failed and we start GUI-mode console.
+ * - We are in text-mode, therefore GuiMode == FALSE, the previous test-case
+ * succeeded BUT we failed at starting text-mode console. Then GuiMode
+ * was switched to TRUE in order to try to open the console in GUI-mode.
+ */
+ if (GuiMode)
+ {
+ DPRINT1("WIN32CSR: Opening GUI-mode console\n");
Status = GuiInitConsole(Console, ShowCmd);
- if (! NT_SUCCESS(Status))
+ if (!NT_SUCCESS(Status))
{
HeapFree(Win32CsrApiHeap,0, NewBuffer);
RtlFreeUnicodeString(&Console->Title);
DeleteCriticalSection(&Console->Lock);
CloseHandle(Console->ActiveEvent);
- DPRINT1("GuiInitConsole: failed\n");
+ DPRINT1("GuiInitConsole: failed, Status = 0x%08lx\n", Status);
return Status;
}
}
Status = CsrInitConsoleScreenBuffer(Console, NewBuffer);
- if (! NT_SUCCESS(Status))
+ if (!NT_SUCCESS(Status))
{
ConioCleanupConsole(Console);
RtlFreeUnicodeString(&Console->Title);