ReactOS  0.4.15-dev-2153-g62b4c61
kdbg.c File Reference
#include <ntoskrnl.h>
#include <debug.h>
Include dependency graph for kdbg.c:

Go to the source code of this file.

Macros

#define NDEBUG
 
#define DEFAULT_BAUD_RATE   19200
 
#define MAX_COM_PORTS   (sizeof(BaseArray) / sizeof(BaseArray[0]) - 1)
 

Functions

BOOLEAN NTAPI KdPortInitializeEx (IN PCPPORT PortInformation, IN ULONG ComPortNumber)
 
BOOLEAN NTAPI KdPortGetByteEx (IN PCPPORT PortInformation, OUT PUCHAR ByteReceived)
 
VOID NTAPI KdPortPutByteEx (IN PCPPORT PortInformation, IN UCHAR ByteToSend)
 

Macro Definition Documentation

◆ DEFAULT_BAUD_RATE

#define DEFAULT_BAUD_RATE   19200

Definition at line 19 of file kdbg.c.

◆ MAX_COM_PORTS

#define MAX_COM_PORTS   (sizeof(BaseArray) / sizeof(BaseArray[0]) - 1)

Definition at line 38 of file kdbg.c.

◆ NDEBUG

#define NDEBUG

Definition at line 13 of file kdbg.c.

Function Documentation

◆ KdPortGetByteEx()

BOOLEAN NTAPI KdPortGetByteEx ( IN PCPPORT  PortInformation,
OUT PUCHAR  ByteReceived 
)

Definition at line 130 of file kdbg.c.

133 {
134  return (CpGetByte(PortInformation, ByteReceived, FALSE, FALSE) == CP_GET_SUCCESS);
135 }
IN CINT OUT PVOID PortInformation
Definition: dumpinfo.c:39
USHORT NTAPI CpGetByte(IN PCPPORT Port, OUT PUCHAR Byte, IN BOOLEAN Wait, IN BOOLEAN Poll)
Definition: cport.c:256
#define FALSE
Definition: types.h:117
#define CP_GET_SUCCESS
Definition: cportlib.h:18

◆ KdPortInitializeEx()

BOOLEAN NTAPI KdPortInitializeEx ( IN PCPPORT  PortInformation,
IN ULONG  ComPortNumber 
)

Definition at line 51 of file kdbg.c.

54 {
56 
57 #if 0 // Deactivated because never used in fact (was in KdPortInitialize but we use KdPortInitializeEx)
58  /*
59  * Find the port if needed
60  */
61 
62  if (!PortInitialized)
63  {
65 
66  if (ComPortNumber == 0)
67  {
68  /*
69  * Start enumerating COM ports from the last one to the first one,
70  * and break when we find a valid port.
71  * If we reach the first element of the list, the invalid COM port,
72  * then it means that no valid port was found.
73  */
74  for (ComPortNumber = MAX_COM_PORTS; ComPortNumber > 0; ComPortNumber--)
75  {
76  if (CpDoesPortExist(UlongToPtr(BaseArray[ComPortNumber])))
77  {
78  PortInformation->Address = DefaultPort.Address = BaseArray[ComPortNumber];
79  break;
80  }
81  }
82  if (ComPortNumber == 0)
83  {
84  HalDisplayString("\r\nKernel Debugger: No COM port found!\r\n\r\n");
85  return FALSE;
86  }
87  }
88 
89  PortInitialized = TRUE;
90  }
91 #endif
92 
93  /*
94  * Initialize the port
95  */
97  (ComPortNumber == 0 ? PortInformation->Address
98  : UlongToPtr(BaseArray[ComPortNumber])),
99  (PortInformation->BaudRate == 0 ? DEFAULT_BAUD_RATE
100  : PortInformation->BaudRate));
101  if (!NT_SUCCESS(Status))
102  {
103  HalDisplayString("\r\nKernel Debugger: Serial port not found!\r\n\r\n");
104  return FALSE;
105  }
106  else
107  {
108 #ifndef NDEBUG
109  CHAR buffer[80];
110 
111  /* Print message to blue screen */
112  sprintf(buffer,
113  "\r\nKernel Debugger: Serial port found: COM%ld (Port 0x%p) BaudRate %ld\r\n\r\n",
114  ComPortNumber,
115  PortInformation->Address,
116  PortInformation->BaudRate);
118 #endif /* NDEBUG */
119 
120 #if 0
121  /* Set global info */
123 #endif
124  return TRUE;
125  }
126 }
#define TRUE
Definition: types.h:120
char CHAR
Definition: xmlstorage.h:175
LONG NTSTATUS
Definition: precomp.h:26
IN CINT OUT PVOID PortInformation
Definition: dumpinfo.c:39
GLuint buffer
Definition: glext.h:5915
#define sprintf(buf, format,...)
Definition: sprintf.c:55
BOOLEAN NTAPI CpDoesPortExist(IN PUCHAR Address)
Definition: cport.c:227
#define MAX_COM_PORTS
Definition: kdbg.c:38
#define FALSE
Definition: types.h:117
#define UlongToPtr(u)
Definition: config.h:106
Status
Definition: gdiplustypes.h:24
PUCHAR KdComPortInUse
Definition: usage.c:17
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define DEFAULT_BAUD_RATE
Definition: kdbg.c:19
NTSTATUS NTAPI CpInitialize(IN PCPPORT Port, IN PUCHAR Address, IN ULONG BaudRate)
Definition: cport.c:88
PUCHAR Address
Definition: cportlib.h:29
ULONG BaudRate
Definition: cportlib.h:30
static const ULONG BaseArray[]
Definition: hwide.c:41
NTHALAPI VOID NTAPI HalDisplayString(PUCHAR String)
CPPORT DefaultPort
Definition: kdbg.c:18

◆ KdPortPutByteEx()

VOID NTAPI KdPortPutByteEx ( IN PCPPORT  PortInformation,
IN UCHAR  ByteToSend 
)

Definition at line 139 of file kdbg.c.

142 {
143  CpPutByte(PortInformation, ByteToSend);
144 }
IN CINT OUT PVOID PortInformation
Definition: dumpinfo.c:39
VOID NTAPI CpPutByte(IN PCPPORT Port, IN UCHAR Byte)
Definition: cport.c:306