Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / drivers / base / kdcom / i386 / kdbg.c
diff --git a/reactos/drivers/base/kdcom/i386/kdbg.c b/reactos/drivers/base/kdcom/i386/kdbg.c
deleted file mode 100644 (file)
index 45a736d..0000000
+++ /dev/null
@@ -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 */