ReactOS 0.4.15-dev-8093-g3285f69
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 //EXTENDED_GEOMETRY ExtGeometry;
99 GEOMETRY Geometry;
100 ULONG Size;
101
102 //
103 // Initialize returned size
104 //
105 *pSize = 0;
106
107 /* Set 'Configuration Data' value */
110 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
111 if (PartialResourceList == NULL)
112 {
113 ERR("Failed to allocate resource descriptor\n");
114 return NULL;
115 }
116
117 RtlZeroMemory(PartialResourceList, Size);
118 PartialResourceList->Version = 1;
119 PartialResourceList->Revision = 1;
120 PartialResourceList->Count = 1;
121 PartialResourceList->PartialDescriptors[0].Type =
123// PartialResourceList->PartialDescriptors[0].ShareDisposition =
124// PartialResourceList->PartialDescriptors[0].Flags =
125 PartialResourceList->PartialDescriptors[0].u.DeviceSpecificData.DataSize =
127
128 /* Get pointer to geometry data */
129 DiskGeometry = (PVOID)(((ULONG_PTR)PartialResourceList) + sizeof(CM_PARTIAL_RESOURCE_LIST));
130
131 /* Get the disk geometry */
132 //ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY);
133
134 if (XboxDiskGetDriveGeometry(DriveNumber, &Geometry))
135 {
136 DiskGeometry->BytesPerSector = Geometry.BytesPerSector;
137 DiskGeometry->NumberOfCylinders = Geometry.Cylinders;
138 DiskGeometry->SectorsPerTrack = Geometry.Sectors;
139 DiskGeometry->NumberOfHeads = Geometry.Heads;
140 }
141 else
142 {
143 ERR("Reading disk geometry failed\n");
144 FrLdrHeapFree(PartialResourceList, TAG_HW_RESOURCE_LIST);
145 return NULL;
146 }
147 TRACE("Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
148 DriveNumber,
149 DiskGeometry->NumberOfCylinders,
150 DiskGeometry->NumberOfHeads,
151 DiskGeometry->SectorsPerTrack,
152 DiskGeometry->BytesPerSector);
153
154 //
155 // Return configuration data
156 //
157 *pSize = Size;
158 return PartialResourceList;
159}
160
161static VOID
163{
164 PCONFIGURATION_COMPONENT_DATA ControllerKey;
165 PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
166 PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
167 ULONG Size;
168
169 if (FrameBufferSize == 0)
170 return;
171
173 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
174 if (PartialResourceList == NULL)
175 {
176 ERR("Failed to allocate resource descriptor\n");
177 return;
178 }
179
180 /* Initialize resource descriptor */
181 RtlZeroMemory(PartialResourceList, Size);
182 PartialResourceList->Version = 1;
183 PartialResourceList->Revision = 1;
184 PartialResourceList->Count = 1;
185
186 /* Set Memory */
187 PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
188 PartialDescriptor->Type = CmResourceTypeMemory;
190 PartialDescriptor->Flags = CM_RESOURCE_MEMORY_READ_WRITE;
191 PartialDescriptor->u.Memory.Start.LowPart = (ULONG_PTR)FrameBuffer & 0x0FFFFFFF;
192 PartialDescriptor->u.Memory.Length = FrameBufferSize;
193
198 0,
199 0xFFFFFFFF,
200 "NV2A Framebuffer",
201 PartialResourceList,
202 Size,
203 &ControllerKey);
204}
205
206static
207VOID
212{
213 PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
215 ULONG Size;
216
217 /* Set 'Configuration Data' value */
220 PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
221 if (PartialResourceList == NULL)
222 {
223 ERR("Failed to allocate resource descriptor\n");
224 return;
225 }
226
227 /* Initialize resource descriptor */
228 RtlZeroMemory(PartialResourceList, Size);
229 PartialResourceList->Version = 1;
230 PartialResourceList->Revision = 1;
231 PartialResourceList->Count = 0;
232
233 /* Create new bus key */
234 FldrCreateComponentKey(SystemKey,
237 0,
238 0,
239 0xFFFFFFFF,
240 "ISA",
241 PartialResourceList,
242 Size,
243 &BusKey);
244
245 /* Increment bus number */
246 (*BusNumber)++;
247
248 /* Detect ISA/BIOS devices */
249 DetectBiosDisks(SystemKey, BusKey);
252
253 /* FIXME: Detect more ISA devices */
254}
255
256static
257UCHAR
259{
260 /* On a PC we use CMOS/RTC I/O ports 0x70 and 0x71 to detect floppies.
261 * However an Xbox CMOS memory range [0x10, 0x70) and [0x80, 0x100)
262 * is filled with 0x55 0xAA 0x55 0xAA ... byte pattern which is used
263 * to validate the date/time settings by Xbox OS.
264 *
265 * Technically it's possible to connect a floppy drive to Xbox, but
266 * CMOS detection method should not be used here. */
267
268 WARN("XboxGetFloppyCount() is UNIMPLEMENTED, returning 0\n");
269 return 0;
270}
271
275{
277 ULONG BusNumber = 0;
278
279 TRACE("DetectHardware()\n");
280
281 /* Create the 'System' key */
282 FldrCreateSystemKey(&SystemKey, "Original Xbox (PC/AT like)");
283
286
287 /* TODO: Build actual xbox's hardware configuration tree */
288 DetectPciBios(SystemKey, &BusNumber);
289 DetectIsaBios(Options, SystemKey, &BusNumber);
290
291 TRACE("DetectHardware() Done\n");
292 return SystemKey;
293}
294
296{
297 /* UNIMPLEMENTED */
298}
299
300
301/******************************************************************************/
302
303VOID
304MachInit(const char *CmdLine)
305{
306 PCI_TYPE1_CFG_BITS PciCfg1;
307 ULONG PciId;
308
309 /* Check for Xbox by identifying device at PCI 0:0:0, if it's
310 * 0x10DE/0x02A5 then we're running on an Xbox */
311
312 /* Select Host to PCI bridge */
313 PciCfg1.u.bits.Enable = 1;
314 PciCfg1.u.bits.BusNumber = 0;
315 PciCfg1.u.bits.DeviceNumber = 0;
316 PciCfg1.u.bits.FunctionNumber = 0;
317 /* Select register VendorID & DeviceID */
318 PciCfg1.u.bits.RegisterNumber = 0x00;
319 PciCfg1.u.bits.Reserved = 0;
320
323 if (PciId != 0x02A510DE)
324 {
325 ERR("This is not an original Xbox!\n");
326
327 /* Disable and halt the CPU */
328 _disable();
329 __halt();
330
331 while (TRUE)
332 NOTHING;
333 }
334
335 /* Set LEDs to red before anything is initialized */
336 XboxSetLED("rrrr");
337
338 /* Setup vtbl */
368
369 /* Initialize our stuff */
370 XboxMemInit();
372
373 /* Set LEDs to orange after init */
374 XboxSetLED("oooo");
375
377}
378
379VOID
381{
382 /* On Xbox, prepare video and disk support */
386
387 /* Turn off debug messages to screen */
389}
390
391/* 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
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 WARN(fmt,...)
Definition: debug.h:115
#define ERR(fmt,...)
Definition: debug.h:113
#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:295
static VOID DetectIsaBios(_In_opt_ PCSTR Options, _Inout_ PCONFIGURATION_COMPONENT_DATA SystemKey, _Out_ ULONG *BusNumber)
Definition: machxbox.c:208
VOID MachInit(const char *CmdLine)
Definition: machxbox.c:304
PVOID FrameBuffer
Definition: xboxvideo.c:28
PCONFIGURATION_COMPONENT_DATA XboxHwDetect(_In_opt_ PCSTR Options)
Definition: machxbox.c:273
#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:258
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:782
static VOID DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
Definition: machxbox.c:162
VOID XboxPrepareForReactOS(VOID)
Definition: machxbox.c:380
#define _Inout_
Definition: ms_sal.h:378
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
#define CM_RESOURCE_MEMORY_READ_WRITE
Definition: cmtypes.h:120
_In_opt_ ULONG Base
Definition: rtlfuncs.h:2439
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::@395::@400 Memory
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@395::@404 DeviceSpecificData
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@395 u
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
Definition: hwresource.cpp:119
Definition: disk.h:25
ULONG BytesPerSector
Definition: disk.h:29
ULONG Sectors
Definition: disk.h:28
ULONG Cylinders
Definition: disk.h:26
ULONG Heads
Definition: disk.h:27
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::@165 u
struct _PCI_TYPE1_CFG_BITS::@165::@166 bits
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:122
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