mirror of
https://github.com/reactos/reactos.git
synced 2025-08-01 19:53:22 +00:00
Delete "ghost" old(*) files that have been mysteriously added back during the SVN-to-Git transition.
To check that these changes are correct, checkout in a directory (let's call it "ros_svn") the /trunk/reactos/ of our read-only SVN repo r76032 and in /trunk/reactos/modules/, the rosapps, rostests and wallpapers. In a second directory (let's call it "ros_git"), clone the corresponding Git-converted ReactOS directory. Before applying this patch (and the previous one that added back the empty directories), you should see additional files in ros_git that are not in ros_svn, corresponding to these files I'm deleting here (plus some .gitignore files), and you should also see additional files in ros_svn that do not appear in ros_git: these are the empty directories I've restored in my previous patch. Now, after the application of both the previous patch that restores the empty directories (and deletes the .gitignore files), and this patch that removes the ghost files, you should only see that the only differences between ros_git and ros_svn are the extra .keep files in the empty directories, and that's all! Command-line for the tests: diff --strip-trailing-cr -r ros_svn ros_git > diff_svn2git.txt "-r" means recursive, and "--strip-trailing-cr" ignores the CR-LF vs. LF (or CR) EOLs. (*): by "ghost" old(*) files I understand files that existed previously in the far past, that then were deleted long ago in SVN, and that popped out back during the Git migration.
This commit is contained in:
parent
acdf04bad2
commit
f9b6429468
151 changed files with 0 additions and 43256 deletions
|
@ -1,267 +0,0 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||
* FILE: drivers/base/kdcom/arm/kdbg.c
|
||||
* PURPOSE: Serial Port Kernel Debugging Transport Library
|
||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||
*/
|
||||
|
||||
/* INCLUDES *******************************************************************/
|
||||
|
||||
#define NOEXTAPI
|
||||
#include <ntifs.h>
|
||||
#define NDEBUG
|
||||
#include <halfuncs.h>
|
||||
#include <stdio.h>
|
||||
#include <debug.h>
|
||||
#include "arc/arc.h"
|
||||
#include "windbgkd.h"
|
||||
#include <kddll.h>
|
||||
#include <ioaccess.h>
|
||||
#include <arm/peripherals/pl011.h>
|
||||
|
||||
/* GLOBALS ********************************************************************/
|
||||
|
||||
typedef struct _KD_PORT_INFORMATION
|
||||
{
|
||||
ULONG ComPort;
|
||||
ULONG BaudRate;
|
||||
ULONG BaseAddress;
|
||||
} KD_PORT_INFORMATION, *PKD_PORT_INFORMATION;
|
||||
|
||||
KD_PORT_INFORMATION DefaultPort = {0, 0, 0};
|
||||
|
||||
//
|
||||
// We need to build this in the configuration root and use KeFindConfigurationEntry
|
||||
// to recover it later.
|
||||
//
|
||||
#define HACK 24000000
|
||||
|
||||
/* REACTOS FUNCTIONS **********************************************************/
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortInitializeEx(IN PKD_PORT_INFORMATION PortInformation,
|
||||
IN ULONG Unknown1,
|
||||
IN ULONG Unknown2)
|
||||
{
|
||||
ULONG Divider, Remainder, Fraction;
|
||||
ULONG Baudrate = PortInformation->BaudRate;
|
||||
|
||||
//
|
||||
// Calculate baudrate clock divider and remainder
|
||||
//
|
||||
Divider = HACK / (16 * Baudrate);
|
||||
Remainder = HACK % (16 * Baudrate);
|
||||
|
||||
//
|
||||
// Calculate the fractional part
|
||||
//
|
||||
Fraction = (8 * Remainder / Baudrate) >> 1;
|
||||
Fraction += (8 * Remainder / Baudrate) & 1;
|
||||
|
||||
//
|
||||
// Disable interrupts
|
||||
//
|
||||
WRITE_REGISTER_ULONG(UART_PL011_CR, 0);
|
||||
|
||||
//
|
||||
// Set the baud rate
|
||||
//
|
||||
WRITE_REGISTER_ULONG(UART_PL011_IBRD, Divider);
|
||||
WRITE_REGISTER_ULONG(UART_PL011_FBRD, Fraction);
|
||||
|
||||
//
|
||||
// Set 8 bits for data, 1 stop bit, no parity, FIFO enabled
|
||||
//
|
||||
WRITE_REGISTER_ULONG(UART_PL011_LCRH,
|
||||
UART_PL011_LCRH_WLEN_8 | UART_PL011_LCRH_FEN);
|
||||
|
||||
//
|
||||
// Clear and enable FIFO
|
||||
//
|
||||
WRITE_REGISTER_ULONG(UART_PL011_CR,
|
||||
UART_PL011_CR_UARTEN |
|
||||
UART_PL011_CR_TXE |
|
||||
UART_PL011_CR_RXE);
|
||||
|
||||
//
|
||||
// Done
|
||||
//
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortInitialize(IN PKD_PORT_INFORMATION PortInformation,
|
||||
IN ULONG Unknown1,
|
||||
IN ULONG Unknown2)
|
||||
{
|
||||
//
|
||||
// Call the extended version
|
||||
//
|
||||
return KdPortInitializeEx(PortInformation, Unknown1, Unknown2);
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortGetByteEx(IN PKD_PORT_INFORMATION PortInformation,
|
||||
OUT PUCHAR ByteReceived)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortGetByte(OUT PUCHAR ByteReceived)
|
||||
{
|
||||
//
|
||||
// Call the extended version
|
||||
//
|
||||
return KdPortGetByteEx(&DefaultPort, ByteReceived);
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortPollByteEx(IN PKD_PORT_INFORMATION PortInformation,
|
||||
OUT PUCHAR ByteReceived)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortPollByte(OUT PUCHAR ByteReceived)
|
||||
{
|
||||
//
|
||||
// Call the extended version
|
||||
//
|
||||
return KdPortPollByteEx(&DefaultPort, ByteReceived);
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortPutByteEx(IN PKD_PORT_INFORMATION PortInformation,
|
||||
IN UCHAR ByteToSend)
|
||||
{
|
||||
//
|
||||
// Wait for ready
|
||||
//
|
||||
while ((READ_REGISTER_ULONG(UART_PL01x_FR) & UART_PL01x_FR_TXFF) != 0);
|
||||
|
||||
//
|
||||
// Send the character
|
||||
//
|
||||
WRITE_REGISTER_ULONG(UART_PL01x_DR, ByteToSend);
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortPutByte(IN UCHAR ByteToSend)
|
||||
{
|
||||
//
|
||||
// Call the extended version
|
||||
//
|
||||
KdPortPutByteEx(&DefaultPort, ByteToSend);
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortRestore(VOID)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortSave(VOID)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortDisableInterrupts(VOID)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortEnableInterrupts(VOID)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* WINDOWS FUNCTIONS **********************************************************/
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdDebuggerInitialize0(IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdDebuggerInitialize1(IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdSave(IN BOOLEAN SleepTransition)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdRestore(IN BOOLEAN SleepTransition)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
KdSendPacket(IN ULONG PacketType,
|
||||
IN PSTRING MessageHeader,
|
||||
IN PSTRING MessageData,
|
||||
IN OUT PKD_CONTEXT Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
return;
|
||||
}
|
||||
|
||||
KDSTATUS
|
||||
NTAPI
|
||||
KdReceivePacket(IN ULONG PacketType,
|
||||
OUT PSTRING MessageHeader,
|
||||
OUT PSTRING MessageData,
|
||||
OUT PULONG DataLength,
|
||||
IN OUT PKD_CONTEXT Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* EOF */
|
|
@ -1,499 +0,0 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: drivers/base/kdcom/kdbg.c
|
||||
* PURPOSE: Serial i/o functions for the kernel debugger.
|
||||
* PROGRAMMER: Alex Ionescu
|
||||
* Hervé Poussineau
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
|
||||
#define NOEXTAPI
|
||||
#include <ntifs.h>
|
||||
#include <halfuncs.h>
|
||||
#include <stdio.h>
|
||||
#include "arc/arc.h"
|
||||
#include "windbgkd.h"
|
||||
#include <kddll.h>
|
||||
#include <ioaccess.h> /* port intrinsics */
|
||||
#include <cportlib/cportlib.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
|
||||
typedef struct _KD_PORT_INFORMATION
|
||||
{
|
||||
ULONG ComPort;
|
||||
ULONG BaudRate;
|
||||
ULONG BaseAddress;
|
||||
} KD_PORT_INFORMATION, *PKD_PORT_INFORMATION;
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortInitializeEx(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
IN ULONG Unknown1,
|
||||
IN ULONG Unknown2);
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortGetByteEx(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
OUT PUCHAR ByteReceived);
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortPollByteEx(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
OUT PUCHAR ByteReceived);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortPutByteEx(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
IN UCHAR ByteToSend);
|
||||
|
||||
#define DEFAULT_BAUD_RATE 19200
|
||||
|
||||
#if defined(_M_IX86) || defined(_M_AMD64)
|
||||
const ULONG BaseArray[] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8};
|
||||
#elif defined(_M_PPC)
|
||||
const ULONG BaseArray[] = {0, 0x800003F8};
|
||||
#elif defined(_M_MIPS)
|
||||
const ULONG BaseArray[] = {0, 0x80006000, 0x80007000};
|
||||
#elif defined(_M_ARM)
|
||||
const ULONG BaseArray[] = {0, 0xF1012000};
|
||||
#else
|
||||
#error Unknown architecture
|
||||
#endif
|
||||
|
||||
/* MACROS *******************************************************************/
|
||||
|
||||
#define SER_RBR(x) ((PUCHAR)(x)+0)
|
||||
#define SER_THR(x) ((PUCHAR)(x)+0)
|
||||
#define SER_DLL(x) ((PUCHAR)(x)+0)
|
||||
#define SER_IER(x) ((PUCHAR)(x)+1)
|
||||
#define SR_IER_ERDA 0x01
|
||||
#define SR_IER_ETHRE 0x02
|
||||
#define SR_IER_ERLSI 0x04
|
||||
#define SR_IER_EMS 0x08
|
||||
#define SR_IER_ALL 0x0F
|
||||
#define SER_DLM(x) ((PUCHAR)(x)+1)
|
||||
#define SER_IIR(x) ((PUCHAR)(x)+2)
|
||||
#define SER_FCR(x) ((PUCHAR)(x)+2)
|
||||
#define SR_FCR_ENABLE_FIFO 0x01
|
||||
#define SR_FCR_CLEAR_RCVR 0x02
|
||||
#define SR_FCR_CLEAR_XMIT 0x04
|
||||
#define SER_LCR(x) ((PUCHAR)(x)+3)
|
||||
#define SR_LCR_CS5 0x00
|
||||
#define SR_LCR_CS6 0x01
|
||||
#define SR_LCR_CS7 0x02
|
||||
#define SR_LCR_CS8 0x03
|
||||
#define SR_LCR_ST1 0x00
|
||||
#define SR_LCR_ST2 0x04
|
||||
#define SR_LCR_PNO 0x00
|
||||
#define SR_LCR_POD 0x08
|
||||
#define SR_LCR_PEV 0x18
|
||||
#define SR_LCR_PMK 0x28
|
||||
#define SR_LCR_PSP 0x38
|
||||
#define SR_LCR_BRK 0x40
|
||||
#define SR_LCR_DLAB 0x80
|
||||
#define SER_MCR(x) ((PUCHAR)(x)+4)
|
||||
#define SR_MCR_DTR 0x01
|
||||
#define SR_MCR_RTS 0x02
|
||||
#define SR_MCR_OUT1 0x04
|
||||
#define SR_MCR_OUT2 0x08
|
||||
#define SR_MCR_LOOP 0x10
|
||||
#define SER_LSR(x) ((PUCHAR)(x)+5)
|
||||
#define SR_LSR_DR 0x01
|
||||
#define SR_LSR_TBE 0x20
|
||||
#define SER_MSR(x) ((PUCHAR)(x)+6)
|
||||
#define SR_MSR_CTS 0x10
|
||||
#define SR_MSR_DSR 0x20
|
||||
#define SER_SCR(x) ((PUCHAR)(x)+7)
|
||||
|
||||
|
||||
/* GLOBAL VARIABLES *********************************************************/
|
||||
|
||||
/* STATIC VARIABLES *********************************************************/
|
||||
|
||||
static KD_PORT_INFORMATION DefaultPort = { 0, 0, 0 };
|
||||
|
||||
/* The com port must only be initialized once! */
|
||||
static BOOLEAN PortInitialized = FALSE;
|
||||
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
/* HAL.KdPortInitialize */
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortInitialize(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
IN ULONG Unknown1,
|
||||
IN ULONG Unknown2)
|
||||
{
|
||||
SIZE_T i;
|
||||
CHAR buffer[80];
|
||||
|
||||
if (!PortInitialized)
|
||||
{
|
||||
DefaultPort.BaudRate = PortInformation->BaudRate;
|
||||
|
||||
if (PortInformation->ComPort == 0)
|
||||
{
|
||||
/*
|
||||
* Start enumerating COM ports from the last one to the first one,
|
||||
* and break when we find a valid port.
|
||||
* If we reach the first element of the list, the invalid COM port,
|
||||
* then it means that no valid port was found.
|
||||
*/
|
||||
for (i = sizeof(BaseArray) / sizeof(BaseArray[0]) - 1; i > 0; i--)
|
||||
{
|
||||
if (CpDoesPortExist(UlongToPtr(BaseArray[i])))
|
||||
{
|
||||
PortInformation->BaseAddress = DefaultPort.BaseAddress = BaseArray[i];
|
||||
PortInformation->ComPort = DefaultPort.ComPort = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == 0)
|
||||
{
|
||||
sprintf(buffer,
|
||||
"\nKernel Debugger: No COM port found!\n\n");
|
||||
HalDisplayString(buffer);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
PortInitialized = TRUE;
|
||||
}
|
||||
|
||||
/* initialize port */
|
||||
if (!KdPortInitializeEx(&DefaultPort, Unknown1, Unknown2))
|
||||
return FALSE;
|
||||
|
||||
/* set global info */
|
||||
KdComPortInUse = (PUCHAR)DefaultPort.BaseAddress;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortInitializeEx ; ReactOS-specific */
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortInitializeEx(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
IN ULONG Unknown1,
|
||||
IN ULONG Unknown2)
|
||||
{
|
||||
ULONG ComPortBase;
|
||||
CHAR buffer[80];
|
||||
ULONG divisor;
|
||||
UCHAR lcr;
|
||||
|
||||
#ifdef _ARM_
|
||||
UNIMPLEMENTED;
|
||||
return FALSE;
|
||||
#endif
|
||||
|
||||
if (PortInformation->BaudRate == 0)
|
||||
PortInformation->BaudRate = DEFAULT_BAUD_RATE;
|
||||
|
||||
if (PortInformation->ComPort != 0)
|
||||
{
|
||||
if (!CpDoesPortExist(UlongToPtr(BaseArray[PortInformation->ComPort])))
|
||||
{
|
||||
sprintf(buffer,
|
||||
"\nKernel Debugger: Serial port not found!\n\n");
|
||||
HalDisplayString(buffer);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ComPortBase = BaseArray[PortInformation->ComPort];
|
||||
PortInformation->BaseAddress = ComPortBase;
|
||||
}
|
||||
else
|
||||
{
|
||||
ComPortBase = PortInformation->BaseAddress;
|
||||
}
|
||||
|
||||
if (ComPortBase == 0)
|
||||
return FALSE;
|
||||
|
||||
#ifndef NDEBUG
|
||||
sprintf(buffer,
|
||||
"\nSerial port COM%ld found at 0x%lx\n",
|
||||
PortInformation->ComPort,
|
||||
ComPortBase);
|
||||
HalDisplayString(buffer);
|
||||
#endif /* NDEBUG */
|
||||
|
||||
/* set baud rate and data format (8N1) */
|
||||
|
||||
/* turn on DTR and RTS */
|
||||
WRITE_PORT_UCHAR(SER_MCR(ComPortBase), SR_MCR_DTR | SR_MCR_RTS);
|
||||
|
||||
/* set DLAB */
|
||||
lcr = READ_PORT_UCHAR(SER_LCR(ComPortBase)) | SR_LCR_DLAB;
|
||||
WRITE_PORT_UCHAR(SER_LCR(ComPortBase), lcr);
|
||||
|
||||
/* set baud rate */
|
||||
divisor = 115200 / PortInformation->BaudRate;
|
||||
WRITE_PORT_UCHAR(SER_DLL(ComPortBase), (UCHAR)(divisor & 0xff));
|
||||
WRITE_PORT_UCHAR(SER_DLM(ComPortBase), (UCHAR)((divisor >> 8) & 0xff));
|
||||
|
||||
/* reset DLAB and set 8N1 format */
|
||||
WRITE_PORT_UCHAR(SER_LCR(ComPortBase),
|
||||
SR_LCR_CS8 | SR_LCR_ST1 | SR_LCR_PNO);
|
||||
|
||||
/* read junk out of the RBR */
|
||||
lcr = READ_PORT_UCHAR(SER_RBR(ComPortBase));
|
||||
|
||||
#ifndef NDEBUG
|
||||
/* print message to blue screen */
|
||||
sprintf(buffer,
|
||||
"\nKernel Debugger: COM%ld (Port 0x%lx) BaudRate %ld\n\n",
|
||||
PortInformation->ComPort,
|
||||
ComPortBase,
|
||||
PortInformation->BaudRate);
|
||||
|
||||
HalDisplayString(buffer);
|
||||
#endif /* NDEBUG */
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortGetByte */
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortGetByte(
|
||||
OUT PUCHAR ByteReceived)
|
||||
{
|
||||
if (!PortInitialized)
|
||||
return FALSE;
|
||||
return KdPortGetByteEx(&DefaultPort, ByteReceived);
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortGetByteEx ; ReactOS-specific */
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortGetByteEx(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
OUT PUCHAR ByteReceived)
|
||||
{
|
||||
PUCHAR ComPortBase = (PUCHAR)PortInformation->BaseAddress;
|
||||
|
||||
if ((READ_PORT_UCHAR(SER_LSR(ComPortBase)) & SR_LSR_DR))
|
||||
{
|
||||
*ByteReceived = READ_PORT_UCHAR(SER_RBR(ComPortBase));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortPollByte */
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortPollByte(
|
||||
OUT PUCHAR ByteReceived)
|
||||
{
|
||||
if (!PortInitialized)
|
||||
return FALSE;
|
||||
return KdPortPollByteEx(&DefaultPort, ByteReceived);
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortPollByteEx ; ReactOS-specific */
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortPollByteEx(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
OUT PUCHAR ByteReceived)
|
||||
{
|
||||
PUCHAR ComPortBase = (PUCHAR)PortInformation->BaseAddress;
|
||||
|
||||
while ((READ_PORT_UCHAR(SER_LSR(ComPortBase)) & SR_LSR_DR) == 0)
|
||||
;
|
||||
|
||||
*ByteReceived = READ_PORT_UCHAR(SER_RBR(ComPortBase));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortPutByte */
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortPutByte(
|
||||
IN UCHAR ByteToSend)
|
||||
{
|
||||
if (!PortInitialized)
|
||||
return;
|
||||
KdPortPutByteEx(&DefaultPort, ByteToSend);
|
||||
}
|
||||
|
||||
/* HAL.KdPortPutByteEx ; ReactOS-specific */
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortPutByteEx(
|
||||
IN PKD_PORT_INFORMATION PortInformation,
|
||||
IN UCHAR ByteToSend)
|
||||
{
|
||||
PUCHAR ComPortBase = (PUCHAR)PortInformation->BaseAddress;
|
||||
|
||||
while ((READ_PORT_UCHAR(SER_LSR(ComPortBase)) & SR_LSR_TBE) == 0)
|
||||
;
|
||||
|
||||
WRITE_PORT_UCHAR(SER_THR(ComPortBase), ByteToSend);
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortRestore */
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortRestore(VOID)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortSave */
|
||||
VOID
|
||||
NTAPI
|
||||
KdPortSave(VOID)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortDisableInterrupts */
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortDisableInterrupts(VOID)
|
||||
{
|
||||
UCHAR ch;
|
||||
|
||||
if (!PortInitialized)
|
||||
return FALSE;
|
||||
|
||||
ch = READ_PORT_UCHAR(SER_MCR(DefaultPort.BaseAddress));
|
||||
ch &= (~(SR_MCR_OUT1 | SR_MCR_OUT2));
|
||||
WRITE_PORT_UCHAR(SER_MCR(DefaultPort.BaseAddress), ch);
|
||||
|
||||
ch = READ_PORT_UCHAR(SER_IER(DefaultPort.BaseAddress));
|
||||
ch &= (~SR_IER_ALL);
|
||||
WRITE_PORT_UCHAR(SER_IER(DefaultPort.BaseAddress), ch);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* HAL.KdPortEnableInterrupts */
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdPortEnableInterrupts(VOID)
|
||||
{
|
||||
UCHAR ch;
|
||||
|
||||
if (PortInitialized == FALSE)
|
||||
return FALSE;
|
||||
|
||||
ch = READ_PORT_UCHAR(SER_IER(DefaultPort.BaseAddress));
|
||||
ch &= (~SR_IER_ALL);
|
||||
ch |= SR_IER_ERDA;
|
||||
WRITE_PORT_UCHAR(SER_IER(DefaultPort.BaseAddress), ch);
|
||||
|
||||
ch = READ_PORT_UCHAR(SER_MCR(DefaultPort.BaseAddress));
|
||||
ch &= (~SR_MCR_LOOP);
|
||||
ch |= (SR_MCR_OUT1 | SR_MCR_OUT2);
|
||||
WRITE_PORT_UCHAR(SER_MCR(DefaultPort.BaseAddress), ch);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdDebuggerInitialize0(
|
||||
IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdDebuggerInitialize1(
|
||||
IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdSave(
|
||||
IN BOOLEAN SleepTransition)
|
||||
{
|
||||
/* Nothing to do on COM ports */
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdRestore(
|
||||
IN BOOLEAN SleepTransition)
|
||||
{
|
||||
/* Nothing to do on COM ports */
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID
|
||||
NTAPI
|
||||
KdSendPacket(
|
||||
IN ULONG PacketType,
|
||||
IN PSTRING MessageHeader,
|
||||
IN PSTRING MessageData,
|
||||
IN OUT PKD_CONTEXT Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
KDSTATUS
|
||||
NTAPI
|
||||
KdReceivePacket(
|
||||
IN ULONG PacketType,
|
||||
OUT PSTRING MessageHeader,
|
||||
OUT PSTRING MessageData,
|
||||
OUT PULONG DataLength,
|
||||
IN OUT PKD_CONTEXT Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* EOF */
|
Loading…
Add table
Add a link
Reference in a new issue