ReactOS 0.4.16-dev-2284-g3529151
machxbox.c
Go to the documentation of this file.
1/*
2 * FreeLoader
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18
19#include <freeldr.h>
21#include "../../vidfb.h"
22
23#include <debug.h>
25
26#define MAX_XBOX_COM_PORTS 2
27
28/* From xboxvideo.c */
29extern ULONG NvBase;
33
36{
37 /* We emulate PCI BIOS here, there are 2 known working PCI buses on an original Xbox */
38 BusData->NoBuses = 2;
39 BusData->MajorRevision = 1;
40 BusData->MinorRevision = 0;
41 BusData->HardwareMechanism = 1;
42 return TRUE;
43}
44
45extern
46VOID
48
49static
52{
53 /*
54 * Xbox may have maximum two Serial COM ports
55 * if the Super I/O chip is connected via LPC
56 */
58 ULONG ComBase = 0;
59
61
62 // Select serial device
64
65 // Check if selected device is active
67 {
68 ComBase = LpcGetIoBase();
69 *Irq = LpcGetIrqPrimary();
70 }
71
73
74 return ComBase;
75}
76
77extern
78VOID
82 _In_ GET_SERIAL_PORT MachGetSerialPort,
84
85VOID
87{
88 TRACE("XboxGetExtendedBIOSData(): UNIMPLEMENTED\n");
91}
92
93// NOTE: Similar to machpc.c!PcGetHarddiskConfigurationData(),
94// but without extended geometry support.
95static
98{
99 PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
101 GEOMETRY Geometry;
102 ULONG Size;
103
104 /* Initialize returned size */
105 *pSize = 0;
106
107 /* Set 'Configuration Data' value */
108 Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST, PartialDescriptors[1]) + sizeof(*DiskGeometry);
109 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
110 if (PartialResourceList == NULL)
111 {
112 ERR("Failed to allocate resource descriptor\n");
113 return NULL;
114 }
115
116 RtlZeroMemory(PartialResourceList, Size);
117 PartialResourceList->Version = 1;
118 PartialResourceList->Revision = 1;
119 PartialResourceList->Count = 1;
120 PartialResourceList->PartialDescriptors[0].Type =
122// PartialResourceList->PartialDescriptors[0].ShareDisposition =
123// PartialResourceList->PartialDescriptors[0].Flags =
124 PartialResourceList->PartialDescriptors[0].u.DeviceSpecificData.DataSize =
125 sizeof(*DiskGeometry);
126
127 /* Get the disk geometry */
128 DiskGeometry = (PCM_DISK_GEOMETRY_DEVICE_DATA)&PartialResourceList->PartialDescriptors[1];
129 if (XboxDiskGetDriveGeometry(DriveNumber, &Geometry))
130 {
131 DiskGeometry->BytesPerSector = Geometry.BytesPerSector;
132 DiskGeometry->NumberOfCylinders = Geometry.Cylinders;
133 DiskGeometry->SectorsPerTrack = Geometry.SectorsPerTrack;
134 DiskGeometry->NumberOfHeads = Geometry.Heads;
135 }
136 else
137 {
138 ERR("Reading disk geometry failed\n");
139 FrLdrHeapFree(PartialResourceList, TAG_HW_RESOURCE_LIST);
140 return NULL;
141 }
142 TRACE("Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
143 DriveNumber,
144 DiskGeometry->NumberOfCylinders,
145 DiskGeometry->NumberOfHeads,
146 DiskGeometry->SectorsPerTrack,
147 DiskGeometry->BytesPerSector);
148
149 /* Return configuration data */
150 *pSize = Size;
151 return PartialResourceList;
152}
153
154static VOID
157{
158 PCONFIGURATION_COMPONENT_DATA ControllerKey;
159 PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
160 PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
161 PCM_FRAMEBUF_DEVICE_DATA FramebufData;
162 ULONG Size;
163
165 return;
166
167 Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST, PartialDescriptors[3]) + sizeof(*FramebufData);
168 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
169 if (PartialResourceList == NULL)
170 {
171 ERR("Failed to allocate resource descriptor\n");
172 return;
173 }
174
175 /* Initialize resource descriptor */
176 RtlZeroMemory(PartialResourceList, Size);
177 PartialResourceList->Version = 1;
178 PartialResourceList->Revision = 2;
179 PartialResourceList->Count = 3;
180
181 /* Set IO Control Port */
182 PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
183 PartialDescriptor->Type = CmResourceTypePort;
185 PartialDescriptor->Flags = CM_RESOURCE_PORT_MEMORY;
186 PartialDescriptor->u.Port.Start.LowPart = NvBase;
187 PartialDescriptor->u.Port.Start.HighPart = 0;
188 PartialDescriptor->u.Port.Length = (16 * 1024 * 1024);
189
190 /* Set Memory */
191 PartialDescriptor = &PartialResourceList->PartialDescriptors[1];
192 PartialDescriptor->Type = CmResourceTypeMemory;
194 PartialDescriptor->Flags = CM_RESOURCE_MEMORY_READ_WRITE;
195 PartialDescriptor->u.Memory.Start.LowPart = (FrameBuffer & 0x0FFFFFFF);
196 PartialDescriptor->u.Memory.Length = FrameBufferSize;
197
198 /* Set framebuffer-specific data */
199 PartialDescriptor = &PartialResourceList->PartialDescriptors[2];
200 PartialDescriptor->Type = CmResourceTypeDeviceSpecific;
202 PartialDescriptor->Flags = 0;
203 PartialDescriptor->u.DeviceSpecificData.DataSize = sizeof(*FramebufData);
204
205 /* Get pointer to framebuffer-specific data */
206 FramebufData = (PCM_FRAMEBUF_DEVICE_DATA)(PartialDescriptor + 1);
207 RtlCopyMemory(FramebufData, FrameBufferData, sizeof(*FrameBufferData));
208 FramebufData->Version = 1;
209 FramebufData->Revision = 3;
210 FramebufData->VideoClock = 0;
211
216 0,
217 0xFFFFFFFF,
218 "NV2A Framebuffer",
219 PartialResourceList,
220 Size,
221 &ControllerKey);
222
223 // NOTE: Don't add a MonitorPeripheral for now.
224}
225
226static
227VOID
232{
233 PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
235 ULONG Size;
236
237 /* Set 'Configuration Data' value */
238 Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST, PartialDescriptors);
239 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
240 if (PartialResourceList == NULL)
241 {
242 ERR("Failed to allocate resource descriptor\n");
243 return;
244 }
245
246 /* Initialize resource descriptor */
247 RtlZeroMemory(PartialResourceList, Size);
248 PartialResourceList->Version = 1;
249 PartialResourceList->Revision = 1;
250 PartialResourceList->Count = 0;
251
252 /* Create new bus key */
253 FldrCreateComponentKey(SystemKey,
256 0,
257 0,
258 0xFFFFFFFF,
259 "ISA",
260 PartialResourceList,
261 Size,
262 &BusKey);
263
264 /* Increment bus number */
265 (*BusNumber)++;
266
267 /* Detect ISA/BIOS devices */
268 DetectBiosDisks(SystemKey, BusKey);
270
271 /* FIXME: Detect more ISA devices */
272}
273
274static
275UCHAR
277{
278 /* On a PC we use CMOS/RTC I/O ports 0x70 and 0x71 to detect floppies.
279 * However an Xbox CMOS memory range [0x10, 0x70) and [0x80, 0x100)
280 * is filled with 0x55 0xAA 0x55 0xAA ... byte pattern which is used
281 * to validate the date/time settings by Xbox OS.
282 *
283 * Technically it's possible to connect a floppy drive to Xbox, but
284 * CMOS detection method should not be used here. */
285
286 WARN("XboxGetFloppyCount() is UNIMPLEMENTED, returning 0\n");
287 return 0;
288}
289
293{
295 ULONG BusNumber = 0;
296
297 TRACE("DetectHardware()\n");
298
299 /* Create the 'System' key */
300 FldrCreateSystemKey(&SystemKey, "Original Xbox (PC/AT like)");
301
304
305 /* TODO: Build actual Xbox's hardware configuration tree */
306 DetectPciBios(SystemKey, &BusNumber);
307 DetectIsaBios(Options, SystemKey, &BusNumber);
308
309 /* On XBOX, the display controller is on PCI bus #1 */
310 {
312 ULONG NumPciBus = 0;
313 ULONG PciBusToFind = 1;
314
315 /* PCI buses are under the System Key (i.e. siblings) */
316 for (BusKey = SystemKey->Child; BusKey; BusKey = BusKey->Sibling)
317 {
318 ERR("** XBOX: Current bus '%s' **\n", BusKey->ComponentEntry.Identifier);
319
320 /* Try to get a match */
321 if ((BusKey->ComponentEntry.Class == AdapterClass) &&
323 /* Verify it's a PCI key */
324 (BusKey->ComponentEntry.Identifier &&
325 !_stricmp(BusKey->ComponentEntry.Identifier, "PCI")))
326 {
327 /* Got a PCI bus, check whether it's the one to find */
328 if (NumPciBus == PciBusToFind)
329 {
330 ERR("** XBOX: PCI bus #%lu found!\n **\n", PciBusToFind);
331 break;
332 }
333 /* Nope, continue */
334 ++NumPciBus;
335 }
336 }
337 if (BusKey)
338 {
339 ERR("** XBOX: Adding Display Controller on PCI #1 **\n");
341 }
342 }
343
344 TRACE("DetectHardware() Done\n");
345 return SystemKey;
346}
347
349{
350 /* UNIMPLEMENTED */
351}
352
353// FIXME: Dummy to make freeldr exports working.
355 IN UCHAR BootDrive OPTIONAL,
356 IN ULONG BootPartition OPTIONAL)
357{
358 /* No-op on XBOX */
359}
360
361/******************************************************************************/
362
363VOID
364MachInit(const char *CmdLine)
365{
366 PCI_TYPE1_CFG_BITS PciCfg1;
367 ULONG PciId;
368
369 /* Check for Xbox by identifying device at PCI 0:0:0, if it's
370 * 0x10DE/0x02A5 then we're running on an Xbox */
371
372 /* Select Host to PCI bridge */
373 PciCfg1.u.bits.Enable = 1;
374 PciCfg1.u.bits.BusNumber = 0;
375 PciCfg1.u.bits.DeviceNumber = 0;
376 PciCfg1.u.bits.FunctionNumber = 0;
377 /* Select register VendorID & DeviceID */
378 PciCfg1.u.bits.RegisterNumber = 0x00;
379 PciCfg1.u.bits.Reserved = 0;
380
383 if (PciId != 0x02A510DE)
384 {
385 ERR("This is not an original Xbox!\n");
386
387 /* Disable and halt the CPU */
388 _disable();
389 __halt();
390
391 while (TRUE)
392 NOTHING;
393 }
394
395 /* Set LEDs to red before anything is initialized */
396 XboxSetLED("rrrr");
397
398 /* Setup vtbl */
428
429 /* Initialize our stuff */
430 XboxMemInit();
432
433 /* Set LEDs to orange after init */
434 XboxSetLED("oooo");
435
437}
438
439VOID
441{
442 /* Prepare video and turn off debug messages to screen */
445}
446
447/* EOF */
unsigned char BOOLEAN
Definition: actypes.h:127
MACHVTBL MachVtbl
Definition: arcemul.c:21
#define ExtendedBIOSDataArea
Definition: winldr.c:346
#define ExtendedBIOSDataSize
Definition: winldr.c:347
VOID FldrCreateSystemKey(_Out_ PCONFIGURATION_COMPONENT_DATA *SystemNode, _In_ PCSTR IdentifierString)
Definition: archwsup.c:135
VOID FldrCreateComponentKey(_In_ PCONFIGURATION_COMPONENT_DATA SystemNode, _In_ CONFIGURATION_CLASS Class, _In_ CONFIGURATION_TYPE Type, _In_ IDENTIFIER_FLAG Flags, _In_ ULONG Key, _In_ ULONG Affinity, _In_ PCSTR IdentifierString, _In_ PCM_PARTIAL_RESOURCE_LIST ResourceList, _In_ ULONG Size, _Out_ PCONFIGURATION_COMPONENT_DATA *ComponentKey)
Definition: archwsup.c:198
#define WARN(fmt,...)
Definition: precomp.h:61
#define ERR(fmt,...)
Definition: precomp.h:57
VOID DetectPciBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
Definition: hwpci.c:174
FIND_PCI_BIOS FindPciBios
Definition: hwpci.c:26
#define PCI_TYPE1_DATA_PORT
Definition: hardware.h:45
ULONG(* GET_SERIAL_PORT)(ULONG Index, PULONG Irq)
Definition: hardware.h:80
#define PCI_TYPE1_ADDRESS_PORT
Definition: hardware.h:44
#define DebugDisableScreenPort()
Definition: debug.h:123
#define DBG_DEFAULT_CHANNEL(ch)
Definition: debug.h:106
VOID FrLdrHeapFree(PVOID MemoryPointer, ULONG Tag)
Definition: heap.c:539
PVOID FrLdrHeapAlloc(SIZE_T MemorySize, ULONG Tag)
Definition: heap.c:533
#define _stricmp
Definition: cat.c:22
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define __cdecl
Definition: corecrt.h:121
static const WCHAR CmdLine[]
Definition: install.c:48
ULONG NTAPI READ_PORT_ULONG(IN PULONG Port)
Definition: portio.c:70
VOID NTAPI WRITE_PORT_ULONG(IN PULONG Port, IN ULONG Value)
Definition: portio.c:123
BOOLEAN PcInitializeBootDevices(VOID)
Definition: hwdisk.c:458
#define NOTHING
Definition: input_list.c:10
__INTRIN_INLINE void __halt(void)
Definition: intrin_x86.h:1728
if(dx< 0)
Definition: linetemp.h:194
static VOID DetectDisplayController(_In_ PCONFIGURATION_COMPONENT_DATA BusKey)
Definition: machxbox.c:155
VOID XboxGetExtendedBIOSData(PULONG ExtendedBIOSDataArea, PULONG ExtendedBIOSDataSize)
Definition: machxbox.c:86
ULONG FrameBufferSize
Definition: xboxvideo.c:30
static PCM_PARTIAL_RESOURCE_LIST XboxGetHarddiskConfigurationData(UCHAR DriveNumber, ULONG *pSize)
Definition: machxbox.c:97
VOID XboxHwIdle(VOID)
Definition: machxbox.c:348
static VOID DetectIsaBios(_In_opt_ PCSTR Options, _Inout_ PCONFIGURATION_COMPONENT_DATA SystemKey, _Out_ ULONG *BusNumber)
Definition: machxbox.c:228
VOID MachInit(const char *CmdLine)
Definition: machxbox.c:364
PCONFIGURATION_COMPONENT_DATA XboxHwDetect(_In_opt_ PCSTR Options)
Definition: machxbox.c:291
#define MAX_XBOX_COM_PORTS
Definition: machxbox.c:26
static ULONG XboxGetSerialPort(ULONG Index, PULONG Irq)
Definition: machxbox.c:51
PCM_FRAMEBUF_DEVICE_DATA FrameBufferData
Definition: xboxvideo.c:31
ULONG NvBase
Definition: xboxvideo.c:28
static UCHAR XboxGetFloppyCount(VOID)
Definition: machxbox.c:276
VOID __cdecl ChainLoadBiosBootSectorCode(IN UCHAR BootDrive OPTIONAL, IN ULONG BootPartition OPTIONAL)
Definition: machxbox.c:354
VOID DetectSerialPointerPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey, PUCHAR Base)
ULONG_PTR FrameBuffer
Definition: xboxvideo.c:29
BOOLEAN XboxFindPciBios(PPCI_REGISTRY_INFO BusData)
Definition: machxbox.c:35
VOID DetectSerialPorts(_In_opt_ PCSTR Options, _Inout_ PCONFIGURATION_COMPONENT_DATA BusKey, _In_ GET_SERIAL_PORT MachGetSerialPort, _In_ ULONG Count)
Definition: machpc.c:780
VOID XboxPrepareForReactOS(VOID)
Definition: machxbox.c:440
#define CM_RESOURCE_PORT_MEMORY
Definition: cmtypes.h:108
#define CM_RESOURCE_MEMORY_READ_WRITE
Definition: cmtypes.h:120
_In_opt_ ULONG Base
Definition: rtlfuncs.h:2486
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
int Count
Definition: noreturn.cpp:7
VOID PcBeep(VOID)
Definition: pcbeep.c:34
VOID HalpCalibrateStallExecution(VOID)
Definition: pchw.c:105
VOID DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey, PCONFIGURATION_COMPONENT_DATA BusKey)
Definition: pchw.c:342
GET_HARDDISK_CONFIG_DATA GetHarddiskConfigurationData
Definition: pchw.c:45
#define CmResourceTypeMemory
Definition: restypes.h:106
#define CmResourceTypeDeviceSpecific
Definition: restypes.h:108
#define CmResourceTypePort
Definition: restypes.h:104
@ ControllerClass
Definition: arc.h:103
@ AdapterClass
Definition: arc.h:102
@ MultiFunctionAdapter
Definition: arc.h:125
@ DisplayController
Definition: arc.h:132
@ ConsoleOut
Definition: arc.h:92
@ Output
Definition: arc.h:94
struct _CM_FRAMEBUF_DEVICE_DATA * PCM_FRAMEBUF_DEVICE_DATA
void __cdecl _disable(void)
Definition: intrin_arm.h:365
#define TRACE(s)
Definition: solgame.cpp:4
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
ReactOS Framebuffer-specific video device configuration data.
Definition: framebuf.h:35
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@382::@391 DeviceSpecificData
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@382 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@382::@387 Memory
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@382::@384 Port
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
Definition: restypes.h:100
CONFIGURATION_COMPONENT ComponentEntry
Definition: arc.h:287
struct _CONFIGURATION_COMPONENT_DATA * Sibling
Definition: arc.h:286
struct _CONFIGURATION_COMPONENT_DATA * Child
Definition: arc.h:285
CONFIGURATION_TYPE Type
Definition: arc.h:161
CONFIGURATION_CLASS Class
Definition: arc.h:160
Definition: disk.h:26
ULONG BytesPerSector
Number of bytes per sector.
Definition: disk.h:30
ULONG Cylinders
Number of cylinders on the disk.
Definition: disk.h:27
ULONG SectorsPerTrack
Number of sectors per track.
Definition: disk.h:29
ULONG Heads
Number of heads on the disk.
Definition: disk.h:28
UCHAR MajorRevision
Definition: pci.h:107
UCHAR NoBuses
Definition: pci.h:109
UCHAR HardwareMechanism
Definition: pci.h:110
UCHAR MinorRevision
Definition: pci.h:108
union _PCI_TYPE1_CFG_BITS::@145 u
struct _PCI_TYPE1_CFG_BITS::@145::@146 bits
VOID(* VideoGetPaletteColor)(UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
Definition: machine.h:56
VIDEODISPLAYMODE(* VideoSetDisplayMode)(PCSTR DisplayMode, BOOLEAN Init)
Definition: machine.h:46
VOID(* GetExtendedBIOSData)(PULONG ExtendedBIOSDataArea, PULONG ExtendedBIOSDataSize)
Definition: machine.h:64
int(* ConsGetCh)(VOID)
Definition: machine.h:43
VOID(* PrepareForReactOS)(VOID)
Definition: machine.h:59
VOID(* VideoSetPaletteColor)(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
Definition: machine.h:55
BOOLEAN(* InitializeBootDevices)(VOID)
Definition: machine.h:76
VOID(* VideoCopyOffScreenBufferToVRAM)(PVOID Buffer)
Definition: machine.h:53
BOOLEAN(* ConsKbHit)(VOID)
Definition: machine.h:42
VOID(* VideoHideShowTextCursor)(BOOLEAN Show)
Definition: machine.h:51
TIMEINFO *(* GetTime)(VOID)
Definition: machine.h:72
UCHAR(* GetFloppyCount)(VOID)
Definition: machine.h:66
BOOLEAN(* DiskGetDriveGeometry)(UCHAR DriveNumber, PGEOMETRY DriveGeometry)
Definition: machine.h:68
BOOLEAN(* DiskReadLogicalSectors)(UCHAR DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer)
Definition: machine.h:67
PFREELDR_MEMORY_DESCRIPTOR(* GetMemoryMap)(PULONG MaxMemoryMapSize)
Definition: machine.h:63
VOID(* VideoGetFontsFromFirmware)(PULONG RomFontPointers)
Definition: machine.h:49
VOID(* Beep)(VOID)
Definition: machine.h:58
VOID(* VideoSetTextCursorPosition)(UCHAR X, UCHAR Y)
Definition: machine.h:50
ULONG(* VideoGetBufferSize)(VOID)
Definition: machine.h:48
VOID(* VideoPutChar)(int Ch, UCHAR Attr, unsigned X, unsigned Y)
Definition: machine.h:52
ULONG(* DiskGetCacheableBlockCount)(UCHAR DriveNumber)
Definition: machine.h:69
VOID(* VideoGetDisplaySize)(PULONG Width, PULONG Height, PULONG Depth)
Definition: machine.h:47
VOID(* VideoClearScreen)(UCHAR Attr)
Definition: machine.h:45
VOID(* HwIdle)(VOID)
Definition: machine.h:78
VOID(* VideoSync)(VOID)
Definition: machine.h:57
BOOLEAN(* VideoIsPaletteFixed)(VOID)
Definition: machine.h:54
PCONFIGURATION_COMPONENT_DATA(* HwDetect)(_In_opt_ PCSTR Options)
Definition: machine.h:77
VOID(* ConsPutChar)(int Ch)
Definition: machine.h:41
#define LPC_CONFIG_DEVICE_NUMBER
Definition: superio.h:30
#define LPC_CONFIG_DEVICE_ACTIVATE
Definition: superio.h:31
FORCEINLINE ULONG LpcGetIoBase(VOID)
Definition: superio.h:96
#define LPC_DEVICE_SERIAL_PORT_2
Definition: superio.h:24
FORCEINLINE ULONG LpcGetIrqPrimary(VOID)
Definition: superio.h:126
FORCEINLINE UCHAR LpcReadRegister(UCHAR Register)
Definition: superio.h:59
#define LPC_DEVICE_SERIAL_PORT_1
Definition: superio.h:23
FORCEINLINE VOID LpcWriteRegister(UCHAR Register, UCHAR Value)
Definition: superio.h:67
FORCEINLINE VOID LpcExitConfig(VOID)
Definition: superio.h:51
FORCEINLINE VOID LpcEnterConfig(VOID)
Definition: superio.h:43
uint32_t * PULONG
Definition: typedefs.h:59
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
const char * PCSTR
Definition: typedefs.h:52
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
#define TAG_HW_RESOURCE_LIST
Definition: uefidisk.c:15
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3540
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
BOOLEAN XboxConsKbHit(VOID)
Definition: xboxcons.c:72
VOID XboxConsPutChar(int c)
Definition: xboxcons.c:29
int XboxConsGetCh(void)
Definition: xboxcons.c:79
BOOLEAN XboxDiskReadLogicalSectors(IN UCHAR DriveNumber, IN ULONGLONG SectorNumber, IN ULONG SectorCount, OUT PVOID Buffer)
Definition: xboxdisk.c:151
ULONG XboxDiskGetCacheableBlockCount(UCHAR DriveNumber)
Definition: xboxdisk.c:194
BOOLEAN XboxDiskGetDriveGeometry(UCHAR DriveNumber, PGEOMETRY Geometry)
Definition: xboxdisk.c:174
void XboxSetLED(PCSTR pattern)
Definition: xboxi2c.c:198
PFREELDR_MEMORY_DESCRIPTOR XboxMemGetMemoryMap(ULONG *MemoryMapSize)
Definition: xboxmem.c:228
VOID XboxMemInit(VOID)
Definition: xboxmem.c:117
TIMEINFO * XboxGetTime(VOID)
Definition: xboxrtc.c:46
VOID XboxVideoGetPaletteColor(UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
Definition: xboxvideo.c:205
VOID XboxVideoInit(VOID)
Definition: xboxvideo.c:96
VOID XboxVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
Definition: xboxvideo.c:43
VOID XboxVideoPrepareForReactOS(VOID)
Definition: xboxvideo.c:217
VOID XboxVideoSetTextCursorPosition(UCHAR X, UCHAR Y)
Definition: xboxvideo.c:175
VOID XboxVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
Definition: xboxvideo.c:199
VOID XboxVideoCopyOffScreenBufferToVRAM(PVOID Buffer)
Definition: xboxvideo.c:187
VOID XboxVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth)
Definition: xboxvideo.c:157
ULONG XboxVideoGetBufferSize(VOID)
Definition: xboxvideo.c:163
VOID XboxVideoSync(VOID)
Definition: xboxvideo.c:211
VOID XboxVideoHideShowTextCursor(BOOLEAN Show)
Definition: xboxvideo.c:181
BOOLEAN XboxVideoIsPaletteFixed(VOID)
Definition: xboxvideo.c:193
VOID XboxVideoClearScreen(UCHAR Attr)
Definition: xboxvideo.c:37
VIDEODISPLAYMODE XboxVideoSetDisplayMode(PCSTR DisplayMode, BOOLEAN Init)
Definition: xboxvideo.c:150
VOID XboxVideoGetFontsFromFirmware(PULONG RomFontPointers)
Definition: xboxvideo.c:169
struct _CM_DISK_GEOMETRY_DEVICE_DATA * PCM_DISK_GEOMETRY_DEVICE_DATA
@ CmResourceShareDeviceExclusive
Definition: cmtypes.h:241
@ CmResourceShareUndetermined
Definition: cmtypes.h:240
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: halfuncs.h:160
unsigned char UCHAR
Definition: xmlstorage.h:181