ReactOS 0.4.16-dev-306-g647d351
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
22#include <debug.h>
24
25#define MAX_XBOX_COM_PORTS 2
26
27extern PVOID FrameBuffer;
29
32{
33 /* We emulate PCI BIOS here, there are 2 known working PCI buses on an original Xbox */
34
35 BusData->NoBuses = 2;
36 BusData->MajorRevision = 1;
37 BusData->MinorRevision = 0;
38 BusData->HardwareMechanism = 1;
39 return TRUE;
40}
41
42extern
43VOID
45
46static
49{
50 /*
51 * Xbox may have maximum two Serial COM ports
52 * if the Super I/O chip is connected via LPC
53 */
55 ULONG ComBase = 0;
56
58
59 // Select serial device
61
62 // Check if selected device is active
64 {
65 ComBase = LpcGetIoBase();
66 *Irq = LpcGetIrqPrimary();
67 }
68
70
71 return ComBase;
72}
73
74extern
75VOID
79 _In_ GET_SERIAL_PORT MachGetSerialPort,
81
82VOID
84{
85 TRACE("XboxGetExtendedBIOSData(): UNIMPLEMENTED\n");
88}
89
90// NOTE: Similar to machpc.c!PcGetHarddiskConfigurationData(),
91// but without extended geometry support.
92static
95{
96 PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
98 GEOMETRY Geometry;
99 ULONG Size;
100
101 /* Initialize returned size */
102 *pSize = 0;
103
104 /* Set 'Configuration Data' value */
107 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
108 if (PartialResourceList == NULL)
109 {
110 ERR("Failed to allocate resource descriptor\n");
111 return NULL;
112 }
113
114 RtlZeroMemory(PartialResourceList, Size);
115 PartialResourceList->Version = 1;
116 PartialResourceList->Revision = 1;
117 PartialResourceList->Count = 1;
118 PartialResourceList->PartialDescriptors[0].Type =
120// PartialResourceList->PartialDescriptors[0].ShareDisposition =
121// PartialResourceList->PartialDescriptors[0].Flags =
122 PartialResourceList->PartialDescriptors[0].u.DeviceSpecificData.DataSize =
124
125 /* Get pointer to geometry data */
126 DiskGeometry = (PVOID)(((ULONG_PTR)PartialResourceList) + sizeof(CM_PARTIAL_RESOURCE_LIST));
127
128 /* Get the disk geometry */
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
156{
157 PCONFIGURATION_COMPONENT_DATA ControllerKey;
158 PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
159 PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
160 ULONG Size;
161
162 if (FrameBufferSize == 0)
163 return;
164
166 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
167 if (PartialResourceList == NULL)
168 {
169 ERR("Failed to allocate resource descriptor\n");
170 return;
171 }
172
173 /* Initialize resource descriptor */
174 RtlZeroMemory(PartialResourceList, Size);
175 PartialResourceList->Version = 1;
176 PartialResourceList->Revision = 1;
177 PartialResourceList->Count = 1;
178
179 /* Set Memory */
180 PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
181 PartialDescriptor->Type = CmResourceTypeMemory;
183 PartialDescriptor->Flags = CM_RESOURCE_MEMORY_READ_WRITE;
184 PartialDescriptor->u.Memory.Start.LowPart = (ULONG_PTR)FrameBuffer & 0x0FFFFFFF;
185 PartialDescriptor->u.Memory.Length = FrameBufferSize;
186
191 0,
192 0xFFFFFFFF,
193 "NV2A Framebuffer",
194 PartialResourceList,
195 Size,
196 &ControllerKey);
197}
198
199static
200VOID
205{
206 PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
208 ULONG Size;
209
210 /* Set 'Configuration Data' value */
213 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
214 if (PartialResourceList == NULL)
215 {
216 ERR("Failed to allocate resource descriptor\n");
217 return;
218 }
219
220 /* Initialize resource descriptor */
221 RtlZeroMemory(PartialResourceList, Size);
222 PartialResourceList->Version = 1;
223 PartialResourceList->Revision = 1;
224 PartialResourceList->Count = 0;
225
226 /* Create new bus key */
227 FldrCreateComponentKey(SystemKey,
230 0,
231 0,
232 0xFFFFFFFF,
233 "ISA",
234 PartialResourceList,
235 Size,
236 &BusKey);
237
238 /* Increment bus number */
239 (*BusNumber)++;
240
241 /* Detect ISA/BIOS devices */
242 DetectBiosDisks(SystemKey, BusKey);
245
246 /* FIXME: Detect more ISA devices */
247}
248
249static
250UCHAR
252{
253 /* On a PC we use CMOS/RTC I/O ports 0x70 and 0x71 to detect floppies.
254 * However an Xbox CMOS memory range [0x10, 0x70) and [0x80, 0x100)
255 * is filled with 0x55 0xAA 0x55 0xAA ... byte pattern which is used
256 * to validate the date/time settings by Xbox OS.
257 *
258 * Technically it's possible to connect a floppy drive to Xbox, but
259 * CMOS detection method should not be used here. */
260
261 WARN("XboxGetFloppyCount() is UNIMPLEMENTED, returning 0\n");
262 return 0;
263}
264
268{
270 ULONG BusNumber = 0;
271
272 TRACE("DetectHardware()\n");
273
274 /* Create the 'System' key */
275 FldrCreateSystemKey(&SystemKey, "Original Xbox (PC/AT like)");
276
279
280 /* TODO: Build actual xbox's hardware configuration tree */
281 DetectPciBios(SystemKey, &BusNumber);
282 DetectIsaBios(Options, SystemKey, &BusNumber);
283
284 TRACE("DetectHardware() Done\n");
285 return SystemKey;
286}
287
289{
290 /* UNIMPLEMENTED */
291}
292
293
294/******************************************************************************/
295
296VOID
297MachInit(const char *CmdLine)
298{
299 PCI_TYPE1_CFG_BITS PciCfg1;
300 ULONG PciId;
301
302 /* Check for Xbox by identifying device at PCI 0:0:0, if it's
303 * 0x10DE/0x02A5 then we're running on an Xbox */
304
305 /* Select Host to PCI bridge */
306 PciCfg1.u.bits.Enable = 1;
307 PciCfg1.u.bits.BusNumber = 0;
308 PciCfg1.u.bits.DeviceNumber = 0;
309 PciCfg1.u.bits.FunctionNumber = 0;
310 /* Select register VendorID & DeviceID */
311 PciCfg1.u.bits.RegisterNumber = 0x00;
312 PciCfg1.u.bits.Reserved = 0;
313
316 if (PciId != 0x02A510DE)
317 {
318 ERR("This is not an original Xbox!\n");
319
320 /* Disable and halt the CPU */
321 _disable();
322 __halt();
323
324 while (TRUE)
325 NOTHING;
326 }
327
328 /* Set LEDs to red before anything is initialized */
329 XboxSetLED("rrrr");
330
331 /* Setup vtbl */
361
362 /* Initialize our stuff */
363 XboxMemInit();
365
366 /* Set LEDs to orange after init */
367 XboxSetLED("oooo");
368
370}
371
372VOID
374{
375 /* On Xbox, prepare video and disk support */
379
380 /* Turn off debug messages to screen */
382}
383
384/* EOF */
unsigned char BOOLEAN
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:176
FIND_PCI_BIOS FindPciBios
Definition: hwpci.c:26
#define PCI_TYPE1_DATA_PORT
Definition: hardware.h:34
ULONG(* GET_SERIAL_PORT)(ULONG Index, PULONG Irq)
Definition: hardware.h:69
#define PCI_TYPE1_ADDRESS_PORT
Definition: hardware.h:33
#define DebugDisableScreenPort()
Definition: debug.h:123
#define DBG_DEFAULT_CHANNEL(ch)
Definition: debug.h:106
FORCEINLINE VOID FrLdrHeapFree(PVOID MemoryPointer, ULONG Tag)
Definition: mm.h:181
FORCEINLINE PVOID FrLdrHeapAlloc(SIZE_T MemorySize, ULONG Tag)
Definition: mm.h:174
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static const WCHAR CmdLine[]
Definition: install.c:48
#define ULONG_PTR
Definition: config.h:101
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:473
#define CmResourceTypeMemory
Definition: hwresource.cpp:125
struct _CM_PARTIAL_RESOURCE_LIST CM_PARTIAL_RESOURCE_LIST
#define CmResourceTypeDeviceSpecific
Definition: hwresource.cpp:127
#define NOTHING
Definition: input_list.c:10
void __cdecl _disable(void)
Definition: intrin_arm.h:365
__INTRIN_INLINE void __halt(void)
Definition: intrin_x86.h:1714
VOID XboxGetExtendedBIOSData(PULONG ExtendedBIOSDataArea, PULONG ExtendedBIOSDataSize)
Definition: machxbox.c:83
ULONG FrameBufferSize
Definition: xboxvideo.c:29
static PCM_PARTIAL_RESOURCE_LIST XboxGetHarddiskConfigurationData(UCHAR DriveNumber, ULONG *pSize)
Definition: machxbox.c:94
VOID XboxHwIdle(VOID)
Definition: machxbox.c:288
static VOID DetectIsaBios(_In_opt_ PCSTR Options, _Inout_ PCONFIGURATION_COMPONENT_DATA SystemKey, _Out_ ULONG *BusNumber)
Definition: machxbox.c:201
VOID MachInit(const char *CmdLine)
Definition: machxbox.c:297
PVOID FrameBuffer
Definition: xboxvideo.c:28
PCONFIGURATION_COMPONENT_DATA XboxHwDetect(_In_opt_ PCSTR Options)
Definition: machxbox.c:266
#define MAX_XBOX_COM_PORTS
Definition: machxbox.c:25
static ULONG XboxGetSerialPort(ULONG Index, PULONG Irq)
Definition: machxbox.c:48
static UCHAR XboxGetFloppyCount(VOID)
Definition: machxbox.c:251
VOID DetectSerialPointerPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey, PUCHAR Base)
BOOLEAN XboxFindPciBios(PPCI_REGISTRY_INFO BusData)
Definition: machxbox.c:31
VOID DetectSerialPorts(_In_opt_ PCSTR Options, _Inout_ PCONFIGURATION_COMPONENT_DATA BusKey, _In_ GET_SERIAL_PORT MachGetSerialPort, _In_ ULONG Count)
Definition: machpc.c:766
static VOID DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
Definition: machxbox.c:155
VOID XboxPrepareForReactOS(VOID)
Definition: machxbox.c:373
#define CM_RESOURCE_MEMORY_READ_WRITE
Definition: cmtypes.h:120
_In_opt_ ULONG Base
Definition: rtlfuncs.h:2451
#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 __cdecl DiskStopFloppyMotor(VOID)
Definition: pc98hw.c:1235
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:344
GET_HARDDISK_CONFIG_DATA GetHarddiskConfigurationData
Definition: pchw.c:45
@ ControllerClass
Definition: arc.h:94
@ AdapterClass
Definition: arc.h:93
@ MultiFunctionAdapter
Definition: arc.h:116
@ DisplayController
Definition: arc.h:123
@ ConsoleOut
Definition: arc.h:83
@ Output
Definition: arc.h:85
#define TRACE(s)
Definition: solgame.cpp:4
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@391::@400 DeviceSpecificData
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@391::@396 Memory
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@391 u
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
Definition: hwresource.cpp:119
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
struct _PCI_TYPE1_CFG_BITS::@157::@158 bits
union _PCI_TYPE1_CFG_BITS::@157 u
VOID(* VideoGetPaletteColor)(UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
Definition: machine.h:56
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
VIDEODISPLAYMODE(* VideoSetDisplayMode)(char *DisplayMode, BOOLEAN Init)
Definition: machine.h:46
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
void * PVOID
Definition: typedefs.h:50
const char * PCSTR
Definition: typedefs.h:52
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG_PTR
Definition: typedefs.h:65
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:3534
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
BOOLEAN XboxConsKbHit(VOID)
Definition: xboxcons.c:69
VOID XboxConsPutChar(int c)
Definition: xboxcons.c:26
int XboxConsGetCh(void)
Definition: xboxcons.c:76
BOOLEAN XboxDiskReadLogicalSectors(IN UCHAR DriveNumber, IN ULONGLONG SectorNumber, IN ULONG SectorCount, OUT PVOID Buffer)
Definition: xboxdisk.c:84
ULONG XboxDiskGetCacheableBlockCount(UCHAR DriveNumber)
Definition: xboxdisk.c:123
BOOLEAN XboxDiskGetDriveGeometry(UCHAR DriveNumber, PGEOMETRY Geometry)
Definition: xboxdisk.c:103
VOID XboxDiskInit(BOOLEAN Init)
Definition: xboxdisk.c:26
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:40
VOID XboxVideoGetPaletteColor(UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
Definition: xboxvideo.c:303
VOID XboxVideoInit(VOID)
Definition: xboxvideo.c:196
VOID XboxVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
Definition: xboxvideo.c:136
VOID XboxVideoPrepareForReactOS(VOID)
Definition: xboxvideo.c:315
VOID XboxVideoSetTextCursorPosition(UCHAR X, UCHAR Y)
Definition: xboxvideo.c:263
VOID XboxVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
Definition: xboxvideo.c:297
VOID XboxVideoCopyOffScreenBufferToVRAM(PVOID Buffer)
Definition: xboxvideo.c:275
VOID XboxVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth)
Definition: xboxvideo.c:243
ULONG XboxVideoGetBufferSize(VOID)
Definition: xboxvideo.c:251
VOID XboxVideoSync(VOID)
Definition: xboxvideo.c:309
VIDEODISPLAYMODE XboxVideoSetDisplayMode(char *DisplayMode, BOOLEAN Init)
Definition: xboxvideo.c:236
VOID XboxVideoHideShowTextCursor(BOOLEAN Show)
Definition: xboxvideo.c:269
BOOLEAN XboxVideoIsPaletteFixed(VOID)
Definition: xboxvideo.c:291
VOID XboxVideoClearScreen(UCHAR Attr)
Definition: xboxvideo.c:126
VOID XboxVideoGetFontsFromFirmware(PULONG RomFontPointers)
Definition: xboxvideo.c:257
struct _CM_DISK_GEOMETRY_DEVICE_DATA CM_DISK_GEOMETRY_DEVICE_DATA
@ CmResourceShareDeviceExclusive
Definition: cmtypes.h:241
_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