ReactOS  0.4.15-dev-2103-g9dff498
headless.c File Reference
#include <freeldr.h>
#include <cportlib/cportlib.h>
#include "ntldropts.h"
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for headless.c:

Go to the source code of this file.

Classes

struct  _SYSID_UUID_ENTRY
 

Macros

#define SYSID_TYPE_UUID   "_UUID_"
 
#define SYSID_UUID_DATA_SIZE   16
 

Typedefs

typedef struct _SYSID_UUID_ENTRY SYSID_UUID_ENTRY
 
typedef struct _SYSID_UUID_ENTRYPSYSID_UUID_ENTRY
 

Functions

VOID WinLdrLoadGUID (OUT PGUID SystemGuid)
 
BOOLEAN WinLdrPortInitialize (IN ULONG BaudRate, IN ULONG PortNumber, IN PUCHAR PortAddress, IN BOOLEAN TerminalConnected, OUT PULONG PortId)
 
VOID WinLdrPortPutByte (IN ULONG PortId, IN UCHAR Byte)
 
BOOLEAN WinLdrPortGetByte (IN ULONG PortId, OUT PUCHAR Byte)
 
BOOLEAN WinLdrPortPollOnly (IN ULONG PortId)
 
VOID WinLdrEnableFifo (IN ULONG PortId, IN BOOLEAN Enable)
 
VOID WinLdrInitializeHeadlessPort (VOID)
 
VOID WinLdrSetupEms (IN PCSTR BootOptions)
 

Variables

HEADLESS_LOADER_BLOCK LoaderRedirectionInformation
 
BOOLEAN WinLdrTerminalConnected
 
ULONG WinLdrTerminalDeviceId
 
ULONG WinLdrTerminalDelay
 
CPPORT Port [4]
 

Macro Definition Documentation

◆ SYSID_TYPE_UUID

#define SYSID_TYPE_UUID   "_UUID_"

Definition at line 16 of file headless.c.

◆ SYSID_UUID_DATA_SIZE

#define SYSID_UUID_DATA_SIZE   16

Definition at line 17 of file headless.c.

Typedef Documentation

◆ PSYSID_UUID_ENTRY

◆ SYSID_UUID_ENTRY

Function Documentation

◆ WinLdrEnableFifo()

VOID WinLdrEnableFifo ( IN ULONG  PortId,
IN BOOLEAN  Enable 
)

Definition at line 199 of file headless.c.

201 {
202  CpEnableFifo(Port[PortId].Address, Enable);
203 }
CPPORT Port[4]
Definition: headless.c:35
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:140
static WCHAR Address[46]
Definition: ping.c:68
VOID NTAPI CpEnableFifo(IN PUCHAR Address, IN BOOLEAN Enable)
Definition: cport.c:54

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrInitializeHeadlessPort()

VOID WinLdrInitializeHeadlessPort ( VOID  )

Definition at line 206 of file headless.c.

207 {
208  ULONG PortNumber, BaudRate;
209  PUCHAR PortAddress;
210  PCSTR AnsiReset = "\x1B[m";
211  ULONG i;
212 
216 
217 #if defined(SARCH_PC98)
218  /* Pick a port address */
219  if (PortNumber)
220  {
221  if (!PortAddress)
222  {
223  if (PortNumber == 2)
225  else
227  }
228  }
229  else
230  {
231  /* No number, so no EMS */
233  return;
234  }
235 #else
236  /* Pick a port address */
237  if (PortNumber)
238  {
239  if (!PortAddress)
240  {
241  switch (PortNumber)
242  {
243  case 2:
245  break;
246 
247  case 3:
249  break;
250 
251  case 4:
253  break;
254 
255  default:
257  break;
258  }
259  }
260  }
261  else
262  {
263  /* No number, so no EMS */
265  return;
266  }
267 #endif
268 
269  /* Call arch code to initialize the port */
272  PortNumber,
273  PortAddress,
277  {
278  /* Port seems usable, set it up and get the BIOS GUID */
280 
282 
283  /* Calculate delay in us based on the baud, assume 9600 if none given */
284  if (!BaudRate)
285  {
286  BaudRate = 9600;
288  }
289 
290  WinLdrTerminalDelay = (10 * 1000 * 1000) / (BaudRate / 10) / 6;
291 
292  /* Sent an ANSI reset sequence to get the terminal up and running */
293  for (i = 0; i < strlen(AnsiReset); i++)
294  {
297  }
298  }
299 }
VOID StallExecutionProcessor(ULONG Microseconds)
Definition: pchw.c:60
ULONG WinLdrTerminalDeviceId
Definition: headless.c:32
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define TRUE
Definition: types.h:120
unsigned char * PUCHAR
Definition: retypes.h:3
HEADLESS_LOADER_BLOCK LoaderRedirectionInformation
Definition: headless.c:30
ULONG WinLdrTerminalDelay
Definition: headless.c:33
VOID WinLdrPortPutByte(IN ULONG PortId, IN UCHAR Byte)
Definition: headless.c:177
PUCHAR PortAddress
Definition: arc.h:312
#define FALSE
Definition: types.h:117
ULONG PortNumber
Definition: storport.c:18
BOOLEAN WinLdrPortInitialize(IN ULONG BaudRate, IN ULONG PortNumber, IN PUCHAR PortAddress, IN BOOLEAN TerminalConnected, OUT PULONG PortId)
Definition: headless.c:65
BOOLEAN WinLdrTerminalConnected
Definition: headless.c:31
VOID WinLdrEnableFifo(IN ULONG PortId, IN BOOLEAN Enable)
Definition: headless.c:199
VOID WinLdrLoadGUID(OUT PGUID SystemGuid)
Definition: headless.c:46
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int ULONG
Definition: retypes.h:1
const char * PCSTR
Definition: typedefs.h:52

Referenced by WinLdrSetupEms().

◆ WinLdrLoadGUID()

VOID WinLdrLoadGUID ( OUT PGUID  SystemGuid)

Definition at line 46 of file headless.c.

47 {
48  PSYSID_UUID_ENTRY CurrentAddress;
49 
50  CurrentAddress = (PSYSID_UUID_ENTRY)0xE0000;
51  while (CurrentAddress < (PSYSID_UUID_ENTRY)0x100000)
52  {
53  if (RtlCompareMemory(&CurrentAddress->Type, SYSID_TYPE_UUID, 6) == 6)
54  {
55  RtlCopyMemory(SystemGuid, &CurrentAddress->UUID, SYSID_UUID_DATA_SIZE);
56  return;
57  }
58  CurrentAddress = (PSYSID_UUID_ENTRY)((ULONG_PTR)CurrentAddress + 1);
59  }
60 
62 }
UCHAR Type[6]
Definition: headless.c:21
#define SYSID_TYPE_UUID
Definition: headless.c:16
UCHAR UUID[SYSID_UUID_DATA_SIZE]
Definition: headless.c:24
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define SYSID_UUID_DATA_SIZE
Definition: headless.c:17
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
struct _SYSID_UUID_ENTRY * PSYSID_UUID_ENTRY
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
Definition: headless.c:19
#define RtlCompareMemory(s1, s2, l)
Definition: env_spec_w32.h:465

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrPortGetByte()

BOOLEAN WinLdrPortGetByte ( IN ULONG  PortId,
OUT PUCHAR  Byte 
)

Definition at line 184 of file headless.c.

186 {
187  return CpGetByte(&Port[PortId], Byte, TRUE, FALSE) == CP_GET_SUCCESS;
188 }
CPPORT Port[4]
Definition: headless.c:35
#define TRUE
Definition: types.h:120
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
unsigned char Byte
Definition: zlib.h:37

◆ WinLdrPortInitialize()

BOOLEAN WinLdrPortInitialize ( IN ULONG  BaudRate,
IN ULONG  PortNumber,
IN PUCHAR  PortAddress,
IN BOOLEAN  TerminalConnected,
OUT PULONG  PortId 
)

Definition at line 65 of file headless.c.

70 {
71 #if defined(SARCH_PC98)
72  /* Set default baud rate */
73  if (BaudRate == 0) BaudRate = 9600;
74 
75  /* Check if port or address given */
76  if (PortNumber)
77  {
78  /* Pick correct address for port */
79  if (!PortAddress)
80  {
81  if (PortNumber == 1)
82  {
83  PortAddress = (PUCHAR)0x30;
84  }
85  else
86  {
87  PortAddress = (PUCHAR)0x238;
88  PortNumber = 2;
89  }
90  }
91  }
92  else
93  {
94  /* Pick correct port for address */
95  PortAddress = (PUCHAR)0x30;
96  if (CpDoesPortExist(PortAddress))
97  {
98  PortNumber = 1;
99  }
100  else
101  {
102  PortAddress = (PUCHAR)0x238;
103  if (!CpDoesPortExist(PortAddress))
104  return FALSE;
105 
106  PortNumber = 2;
107  }
108  }
109 #else
110  /* Set default baud rate */
111  if (BaudRate == 0) BaudRate = 19200;
112 
113  /* Check if port or address given */
114  if (PortNumber)
115  {
116  /* Pick correct address for port */
117  if (!PortAddress)
118  {
119  switch (PortNumber)
120  {
121  case 1:
122  PortAddress = (PUCHAR)0x3F8;
123  break;
124 
125  case 2:
126  PortAddress = (PUCHAR)0x2F8;
127  break;
128 
129  case 3:
130  PortAddress = (PUCHAR)0x3E8;
131  break;
132 
133  default:
134  PortNumber = 4;
135  PortAddress = (PUCHAR)0x2E8;
136  }
137  }
138  }
139  else
140  {
141  /* Pick correct port for address */
142  PortAddress = (PUCHAR)0x2F8;
143  if (CpDoesPortExist(PortAddress))
144  {
145  PortNumber = 2;
146  }
147  else
148  {
149  PortAddress = (PUCHAR)0x3F8;
150  if (!CpDoesPortExist(PortAddress)) return FALSE;
151  PortNumber = 1;
152  }
153  }
154 #endif
155 
156  /* Not yet supported */
158 
159  /* Check if port exists */
160  if ((CpDoesPortExist(PortAddress)) || (CpDoesPortExist(PortAddress)))
161  {
162  /* Initialize port for first time, or re-initialize if specified */
163  if (((TerminalConnected) && (Port[PortNumber - 1].Address)) ||
164  !(Port[PortNumber - 1].Address))
165  {
166  /* Initialize the port, return it */
167  CpInitialize(&Port[PortNumber - 1], PortAddress, BaudRate);
168  *PortId = PortNumber - 1;
169  return TRUE;
170  }
171  }
172 
173  return FALSE;
174 }
CPPORT Port[4]
Definition: headless.c:35
#define TRUE
Definition: types.h:120
unsigned char * PUCHAR
Definition: retypes.h:3
HEADLESS_LOADER_BLOCK LoaderRedirectionInformation
Definition: headless.c:30
BOOLEAN NTAPI CpDoesPortExist(IN PUCHAR Address)
Definition: cport.c:227
#define FALSE
Definition: types.h:117
ULONG PortNumber
Definition: storport.c:18
static WCHAR Address[46]
Definition: ping.c:68
#define ASSERT(a)
Definition: mode.c:45
NTSTATUS NTAPI CpInitialize(IN PCPPORT Port, IN PUCHAR Address, IN ULONG BaudRate)
Definition: cport.c:88
UCHAR IsMMIODevice
Definition: arc.h:320

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrPortPollOnly()

BOOLEAN WinLdrPortPollOnly ( IN ULONG  PortId)

Definition at line 191 of file headless.c.

192 {
193  UCHAR Dummy;
194 
195  return CpGetByte(&Port[PortId], &Dummy, FALSE, TRUE) == CP_GET_SUCCESS;
196 }
CPPORT Port[4]
Definition: headless.c:35
#define TRUE
Definition: types.h:120
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
unsigned char UCHAR
Definition: xmlstorage.h:181
#define CP_GET_SUCCESS
Definition: cportlib.h:18

◆ WinLdrPortPutByte()

VOID WinLdrPortPutByte ( IN ULONG  PortId,
IN UCHAR  Byte 
)

Definition at line 177 of file headless.c.

179 {
180  CpPutByte(&Port[PortId], Byte);
181 }
CPPORT Port[4]
Definition: headless.c:35
VOID NTAPI CpPutByte(IN PCPPORT Port, IN UCHAR Byte)
Definition: cport.c:306
unsigned char Byte
Definition: zlib.h:37

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrSetupEms()

VOID WinLdrSetupEms ( IN PCSTR  BootOptions)

Definition at line 302 of file headless.c.

303 {
304  PCSTR Option;
305 
306  /* Start fresh */
309 
310  /* Use a direction port if one was given, or use ACPI to detect one instead */
311  Option = NtLdrGetOption(BootOptions, "redirect=");
312  if (Option)
313  {
314  Option += 9;
315  if (_strnicmp(Option, "com", 3) == 0)
316  {
317  Option += 3;
320  }
321  else if (_strnicmp(Option, "usebiossettings", 15) == 0)
322  {
323  // FIXME: TODO!
324  UiDrawStatusText("ACPI SRT/SPCR Table Not Supported...");
325  return;
326  }
327  else
328  {
331  {
333  }
334  }
335  }
336 
337  /* Use a direction baudrate if one was given */
338  Option = NtLdrGetOption(BootOptions, "redirectbaudrate=");
339  if (Option)
340  {
341  Option += 17;
342  // LoaderRedirectionInformation.BaudRate = atoi(Option);
343  if (strncmp(Option, "115200", 6) == 0)
344  {
346  }
347  else if (strncmp(Option, "57600", 5) == 0)
348  {
350  }
351  else if (strncmp(Option, "19200", 5) == 0)
352  {
354  }
355  else
356  {
358  }
359  }
360 
361  /* Enable headless support if parameters were found */
363  {
365  {
367  }
368 
370  }
371 }
UINT32 strtoul(const char *String, char **Terminator, UINT32 Base)
Definition: utclib.c:696
unsigned char * PUCHAR
Definition: retypes.h:3
HEADLESS_LOADER_BLOCK LoaderRedirectionInformation
Definition: headless.c:30
VOID WinLdrInitializeHeadlessPort(VOID)
Definition: headless.c:206
PUCHAR PortAddress
Definition: arc.h:312
UCHAR TerminalType
Definition: arc.h:321
#define PCI_INVALID_VENDORID
Definition: iotypes.h:3597
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
Definition: utclib.c:534
#define _strnicmp(_String1, _String2, _MaxCount)
Definition: compat.h:23
USHORT PciDeviceId
Definition: arc.h:313
VOID UiDrawStatusText(PCSTR StatusText)
Definition: ui.c:249
PCSTR NtLdrGetOption(IN PCSTR Options, IN PCSTR OptionName)
Definition: ntldropts.c:128
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
const char * PCSTR
Definition: typedefs.h:52

Referenced by LoadAndBootWindowsCommon().

Variable Documentation

◆ LoaderRedirectionInformation

HEADLESS_LOADER_BLOCK LoaderRedirectionInformation

◆ Port

CPPORT Port[4]
Initial value:
=
{
{NULL, 0, TRUE},
{NULL, 0, TRUE},
{NULL, 0, TRUE},
{NULL, 0, TRUE}
}
#define TRUE
Definition: types.h:120
#define NULL
Definition: types.h:112

Definition at line 35 of file headless.c.

Referenced by __inbyte(), __inbytestring(), __indword(), __indwordstring(), __inword(), __inwordstring(), __outbyte(), __outbytestring(), __outdword(), __outdwordstring(), __outword(), __outwordstring(), _inp(), _inpd(), _inpw(), _outp(), _outpd(), _outpw(), AddItem(), AddrBuildAddress(), AddrFindShared(), AddrGetAddress(), AddrSearchFirst(), AllocatePort(), CloneAddrInfo(), CmosReadData(), CmosWriteAddress(), CmosWriteData(), CpGetByte(), CpInitialize(), CpPutByte(), CpReadLsr(), CpSetBaud(), DbgkForwardException(), DbgkpSendApiMessageLpc(), DeallocatePort(), DECLARE_INTERFACE_(), CConfig::Default(), DetectSerialMouse(), DmaPageReadPort(), DmaPageWritePort(), DmaReadPort(), DmaWritePort(), DnsAddr_BuildFromIp4(), DnsAddr_BuildFromIp6(), DumpInfo(), EHCI_PollController(), EHCI_RH_ChirpRootPort(), EHCI_RH_ClearFeaturePortConnectChange(), EHCI_RH_ClearFeaturePortEnable(), EHCI_RH_ClearFeaturePortEnableChange(), EHCI_RH_ClearFeaturePortOvercurrentChange(), EHCI_RH_ClearFeaturePortPower(), EHCI_RH_ClearFeaturePortResetChange(), EHCI_RH_ClearFeaturePortSuspend(), EHCI_RH_ClearFeaturePortSuspendChange(), EHCI_RH_FinishReset(), EHCI_RH_GetPortStatus(), EHCI_RH_PortResetComplete(), EHCI_RH_PortResumeComplete(), EHCI_RH_SetFeaturePortEnable(), EHCI_RH_SetFeaturePortPower(), EHCI_RH_SetFeaturePortReset(), EHCI_RH_SetFeaturePortSuspend(), EHCI_StartController(), EmulatorReadIo(), EmulatorWriteIo(), FAST486_OPCODE_HANDLER(), Fast486IoReadCallback(), Fast486IoWriteCallback(), GetDiskBySCSI(), CConfig::GetPort(), GetPortName(), GetSerialMousePnpId(), GetTopologyMiniport(), HaliHandlePCIConfigSpaceAccess(), HalpReportResourceUsage(), i8042PacketWrite(), i8042SynchWritePort(), InitializeSerialPort(), InstallSubdevice(), IopCompleteRequest(), IOReadB(), IOReadD(), IOReadStrB(), IOReadStrD(), IOReadStrW(), IOReadW(), IOWriteB(), IOWriteD(), IOWriteStrB(), IOWriteStrD(), IOWriteStrW(), IOWriteW(), KdDebuggerInitialize0(), LlbHwGetUartBase(), LookupAddressForName(), LpcpClosePort(), LpcpCopyRequestData(), LpcpCreatePort(), LpcpDeletePort(), LpcpDestroyPortQueue(), LpcpFindDataInfoMessage(), LpcpFreeDataInfoMessage(), LpcpFreePortClientSecurity(), LpcpInitializePortQueue(), LpcpSaveDataInfoMessage(), LpcpSetPortToThread(), LpcpValidateClientPort(), LpcRequestPort(), LpcRequestWaitReplyPort(), NdisImmediateReadPortUchar(), NdisImmediateReadPortUlong(), NdisImmediateReadPortUshort(), NdisImmediateWritePortUchar(), NdisImmediateWritePortUlong(), NdisImmediateWritePortUshort(), NewAddrInfo(), NewPortDMus(), NewPortWaveCyclic(), NewPortWavePci(), NewPortWaveRT(), NtCompleteConnectPort(), NtImpersonateClientOfPort(), NtReplyPort(), NtReplyWaitReceivePortEx(), NtRequestPort(), NtRequestWaitReplyPort(), NtSecureConnectPort(), OHCI_RH_ClearFeaturePortConnectChange(), OHCI_RH_ClearFeaturePortEnable(), OHCI_RH_ClearFeaturePortEnableChange(), OHCI_RH_ClearFeaturePortOvercurrentChange(), OHCI_RH_ClearFeaturePortPower(), OHCI_RH_ClearFeaturePortResetChange(), OHCI_RH_ClearFeaturePortSuspend(), OHCI_RH_ClearFeaturePortSuspendChange(), OHCI_RH_GetPortStatus(), OHCI_RH_SetFeaturePortEnable(), OHCI_RH_SetFeaturePortPower(), OHCI_RH_SetFeaturePortReset(), OHCI_RH_SetFeaturePortSuspend(), PicReadCommand(), PicReadData(), PicWriteCommand(), PicWriteData(), PinPropertyHandler(), PitReadPort(), PitWritePort(), PortInB(), PortInsB(), PortInsW(), PortInW(), PortOutB(), PortOutsB(), PortOutsW(), PortOutW(), PpiReadPort(), PS2PortQueueRead(), PS2QueuePush(), PS2ReadControl(), PS2ReadData(), PS2SendCommand(), PS2WriteControl(), QueryDNS(), READ_PORT_BUFFER_UCHAR(), READ_PORT_BUFFER_ULONG(), READ_PORT_BUFFER_USHORT(), READ_PORT_UCHAR(), READ_PORT_ULONG(), READ_PORT_USHORT(), RegisterIoPort(), RtlIpv4AddressToStringExA(), RtlIpv4AddressToStringExW(), RtlIpv4StringToAddressExA(), RtlIpv4StringToAddressExW(), RtlIpv6AddressToStringExA(), RtlIpv6AddressToStringExW(), RtlIpv6StringToAddressExA(), RtlIpv6StringToAddressExW(), ScsiPortReadPortBufferUchar(), ScsiPortReadPortBufferUlong(), ScsiPortReadPortBufferUshort(), ScsiPortReadPortUchar(), ScsiPortReadPortUlong(), ScsiPortReadPortUshort(), ScsiPortWritePortBufferUchar(), ScsiPortWritePortBufferUlong(), ScsiPortWritePortBufferUshort(), ScsiPortWritePortUchar(), ScsiPortWritePortUlong(), ScsiPortWritePortUshort(), CConfig::SetPort(), SetUpListener(), START_TEST(), StorPortReadPortBufferUchar(), StorPortReadPortBufferUlong(), StorPortReadPortBufferUshort(), StorPortReadPortUchar(), StorPortReadPortUlong(), StorPortReadPortUshort(), StorPortWritePortBufferUchar(), StorPortWritePortBufferUlong(), StorPortWritePortBufferUshort(), StorPortWritePortUchar(), StorPortWritePortUlong(), StorPortWritePortUshort(), TCPFreePort(), TdiOpenTransport(), TdiReceiveDatagram(), TdiSendDatagram(), TestObjectTypes(), TryConnectPort(), TryCreatePort(), UDPFreePort(), UhciPollController(), UhciRHClearFeaturePortConnectChange(), UhciRHClearFeaturePortEnable(), UhciRHClearFeaturePortEnableChange(), UhciRHClearFeaturePortOvercurrentChange(), UhciRHClearFeaturePortPower(), UhciRHClearFeaturePortResetChange(), UhciRHClearFeaturePortSuspend(), UhciRHClearFeaturePortSuspendChange(), UhciRHGetPortStatus(), UhciRHPortEnable(), UhciRHPortResetComplete(), UhciRHSetFeaturePortEnable(), UhciRHSetFeaturePortPower(), UhciRHSetFeaturePortReset(), UhciRHSetFeaturePortResetWorker(), UhciRHSetFeaturePortSuspend(), UhciStartController(), UnregisterIoPort(), USBD_CreateDeviceEx(), USBH_ChangeIndication(), USBH_ChangeIndicationAckChange(), USBH_ChangeIndicationAckChangeComplete(), USBH_ChangeIndicationQueryChange(), USBH_ChangeIndicationWorker(), USBH_CheckDeviceIDUnique(), USBH_CheckHubIdle(), USBH_CheckIdleAbort(), USBH_CreateDevice(), USBH_FdoCleanup(), USBH_FdoIdleNotificationCallback(), USBH_FdoPower(), USBH_FdoQueryBusRelations(), USBH_FdoSurpriseRemoveDevice(), USBH_FlushPortPwrList(), USBH_HubQueuePortIdleIrps(), USBH_HubQueuePortWakeIrps(), USBH_PdoRemoveDevice(), USBH_ProcessPortStateChange(), USBH_ResetDevice(), USBH_ResetPortWorker(), USBH_StartHubFdoDevice(), USBH_SyncClearPortStatus(), USBH_SyncDisablePort(), USBH_SyncGetPortStatus(), USBH_SyncPowerOnPort(), USBH_SyncPowerOnPorts(), USBH_SyncResetPort(), USBPORT_CreateDevice(), USBPORT_RH_SetFeatureUSB2PortPower(), USBPORT_RootHubClassCommand(), USBPORT_RootHubPowerAndChirpAllCcPorts(), USBPORT_RootHubSCE(), ValidatePort(), VgaInterpretCmdStream(), VgaReadPort(), VgaWritePort(), WaitForReady(), WinLdrEnableFifo(), WinLdrPortGetByte(), WinLdrPortInitialize(), WinLdrPortPollOnly(), WinLdrPortPutByte(), WRITE_GDC_CSRFORM(), WRITE_GDC_CSRW(), WRITE_GDC_PITCH(), WRITE_GDC_PRAM(), WRITE_GDC_SYNC(), WRITE_GDC_ZOOM(), WRITE_PORT_BUFFER_UCHAR(), WRITE_PORT_BUFFER_ULONG(), WRITE_PORT_BUFFER_USHORT(), WRITE_PORT_UCHAR(), WRITE_PORT_ULONG(), WRITE_PORT_USHORT(), WSAAsyncGetServByPort(), x86IoRead(), and x86IoWrite().

◆ WinLdrTerminalConnected

BOOLEAN WinLdrTerminalConnected

Definition at line 31 of file headless.c.

Referenced by WinLdrInitializeHeadlessPort(), and WinLdrInitializePhase1().

◆ WinLdrTerminalDelay

ULONG WinLdrTerminalDelay

Definition at line 33 of file headless.c.

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrTerminalDeviceId

ULONG WinLdrTerminalDeviceId

Definition at line 32 of file headless.c.

Referenced by WinLdrInitializeHeadlessPort().