Author: tkreuzer Date: Thu Jul 24 09:17:43 2008 New Revision: 34742
URL: http://svn.reactos.org/svn/reactos?rev=34742&view=rev Log: add a stubbed version of kdcom for amd64
Added: branches/ros-amd64-bringup/reactos/drivers/base/kdcom/amd64/ branches/ros-amd64-bringup/reactos/drivers/base/kdcom/amd64/kdbg.c (with props) Modified: branches/ros-amd64-bringup/reactos/drivers/base/kdcom/kdcom.rbuild
Added: branches/ros-amd64-bringup/reactos/drivers/base/kdcom/amd64/kdbg.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/driver... ============================================================================== --- branches/ros-amd64-bringup/reactos/drivers/base/kdcom/amd64/kdbg.c (added) +++ branches/ros-amd64-bringup/reactos/drivers/base/kdcom/amd64/kdbg.c [iso-8859-1] Thu Jul 24 09:17:43 2008 @@ -1,0 +1,360 @@ +/* + * 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 <ntddk.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> /* port intrinsics */ + +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 + +#ifdef _M_IX86 +const ULONG BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8}; +#elif defined(_M_PPC) +const ULONG BaseArray[2] = {0, 0x800003f8}; +#elif defined(_M_MIPS) +const ULONG BaseArray[3] = {0, 0x80006000, 0x80007000}; +#elif defined(_M_ARM) +const ULONG BaseArray[2] = {0, 0xF1012000}; +#elif defined(_M_AMD64) +const ULONG BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8}; +#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; + + +/* STATIC FUNCTIONS *********************************************************/ + +/* +static BOOLEAN +KdpDoesComPortExist( + IN ULONG BaseAddress) +{ + UNIMPLEMENTED; + return FALSE; +} +*/ + +/* FUNCTIONS ****************************************************************/ + +NTSTATUS +DriverEntry( + IN PDRIVER_OBJECT DriverObject, + IN PUNICODE_STRING RegistryPath) +{ + return STATUS_SUCCESS; +} + +/* HAL.KdPortInitialize */ +BOOLEAN +NTAPI +KdPortInitialize( + IN PKD_PORT_INFORMATION PortInformation, + IN ULONG Unknown1, + IN ULONG Unknown2) +{ + UNIMPLEMENTED; + return FALSE; +} + + +/* HAL.KdPortInitializeEx */ +BOOLEAN +NTAPI +KdPortInitializeEx( + IN PKD_PORT_INFORMATION PortInformation, + IN ULONG Unknown1, + IN ULONG Unknown2) +{ + UNIMPLEMENTED; + return FALSE; +} + + +/* HAL.KdPortGetByte */ +BOOLEAN +NTAPI +KdPortGetByte( + OUT PUCHAR ByteReceived) +{ + UNIMPLEMENTED; + return FALSE; +} + + +/* HAL.KdPortGetByteEx */ +BOOLEAN +NTAPI +KdPortGetByteEx( + IN PKD_PORT_INFORMATION PortInformation, + OUT PUCHAR ByteReceived) +{ + UNIMPLEMENTED; + return FALSE; +} + + +/* HAL.KdPortPollByte */ +BOOLEAN +NTAPI +KdPortPollByte( + OUT PUCHAR ByteReceived) +{ + UNIMPLEMENTED; + return FALSE; +} + + +/* HAL.KdPortPollByteEx */ +BOOLEAN +NTAPI +KdPortPollByteEx( + IN PKD_PORT_INFORMATION PortInformation, + OUT PUCHAR ByteReceived) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* HAL.KdPortPutByte */ +VOID +NTAPI +KdPortPutByte( + IN UCHAR ByteToSend) +{ + UNIMPLEMENTED; + return; +} + +/* HAL.KdPortPutByteEx */ +VOID +NTAPI +KdPortPutByteEx( + IN PKD_PORT_INFORMATION PortInformation, + IN UCHAR ByteToSend) +{ + UNIMPLEMENTED; + return; +} + + +/* HAL.KdPortRestore */ +VOID +NTAPI +KdPortRestore(VOID) +{ + UNIMPLEMENTED; +} + + +/* HAL.KdPortSave */ +VOID +NTAPI +KdPortSave(VOID) +{ + UNIMPLEMENTED; +} + + +/* HAL.KdPortDisableInterrupts */ +BOOLEAN +NTAPI +KdPortDisableInterrupts(VOID) +{ + UNIMPLEMENTED; + return FALSE; +} + + + +/* HAL.KdPortEnableInterrupts */ +BOOLEAN +NTAPI +KdPortEnableInterrupts(VOID) +{ + UNIMPLEMENTED; + return FALSE; +} + + +/* + * @unimplemented + */ +NTSTATUS +NTAPI +KdDebuggerInitialize0( + IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +NTAPI +KdDebuggerInitialize1( + IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL) +{ + UNIMPLEMENTED; + 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 */
Propchange: branches/ros-amd64-bringup/reactos/drivers/base/kdcom/amd64/kdbg.c ------------------------------------------------------------------------------ svn:eol-style = native
Modified: branches/ros-amd64-bringup/reactos/drivers/base/kdcom/kdcom.rbuild URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/driver... ============================================================================== --- branches/ros-amd64-bringup/reactos/drivers/base/kdcom/kdcom.rbuild [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/drivers/base/kdcom/kdcom.rbuild [iso-8859-1] Thu Jul 24 09:17:43 2008 @@ -12,7 +12,12 @@ </directory> </if> <if property="ARCH" value="arm"> - <directory name="arm"> + <directory name="arm"> + <file>kdbg.c</file> + </directory> + </if> + <if property="ARCH" value="amd64"> + <directory name="amd64"> <file>kdbg.c</file> </directory> </if>