ReactOS  0.4.15-dev-499-g1f31905
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>
20 
21 #include <debug.h>
22 DBG_DEFAULT_CHANNEL(HWDETECT);
23 
24 extern PVOID FrameBuffer;
25 extern ULONG FrameBufferSize;
26 
27 BOOLEAN
29 {
30  /* We emulate PCI BIOS here, there are 2 known working PCI buses on an original Xbox */
31 
32  BusData->NoBuses = 2;
33  BusData->MajorRevision = 1;
34  BusData->MinorRevision = 0;
35  BusData->HardwareMechanism = 1;
36  return TRUE;
37 }
38 
39 extern
40 VOID
42 
43 static
44 ULONG
46 {
47  /*
48  * Xbox may have maximum two Serial COM ports
49  * if the Super I/O chip is connected via LPC
50  */
52  ULONG ComBase = 0;
53 
54  // Enter Configuration
56 
57  // Select serial device
60 
61  // Check if selected device is active
63  if (READ_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1)) == 1)
64  {
65  // Read LSB
67  ComBase = READ_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1));
68  // Read MSB
70  ComBase |= (READ_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1)) << 8);
71  // Read IRQ
73  *Irq = READ_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1));
74  }
75 
76  // Exit Configuration
78 
79  return ComBase;
80 }
81 
82 extern
83 VOID
85 
86 VOID
88 {
89  TRACE("XboxGetExtendedBIOSData(): UNIMPLEMENTED\n");
92 }
93 
94 // NOTE: Similar to machpc.c!PcGetHarddiskConfigurationData(),
95 // but without extended geometry support.
96 static
99 {
100  PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
101  PCM_DISK_GEOMETRY_DEVICE_DATA DiskGeometry;
102  //EXTENDED_GEOMETRY ExtGeometry;
103  GEOMETRY Geometry;
104  ULONG Size;
105 
106  //
107  // Initialize returned size
108  //
109  *pSize = 0;
110 
111  /* Set 'Configuration Data' value */
112  Size = sizeof(CM_PARTIAL_RESOURCE_LIST) +
114  PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
115  if (PartialResourceList == NULL)
116  {
117  ERR("Failed to allocate a full resource descriptor\n");
118  return NULL;
119  }
120 
121  memset(PartialResourceList, 0, Size);
122  PartialResourceList->Version = 1;
123  PartialResourceList->Revision = 1;
124  PartialResourceList->Count = 1;
125  PartialResourceList->PartialDescriptors[0].Type =
127 // PartialResourceList->PartialDescriptors[0].ShareDisposition =
128 // PartialResourceList->PartialDescriptors[0].Flags =
129  PartialResourceList->PartialDescriptors[0].u.DeviceSpecificData.DataSize =
131 
132  /* Get pointer to geometry data */
133  DiskGeometry = (PVOID)(((ULONG_PTR)PartialResourceList) + sizeof(CM_PARTIAL_RESOURCE_LIST));
134 
135  /* Get the disk geometry */
136  //ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY);
137 
138  if (XboxDiskGetDriveGeometry(DriveNumber, &Geometry))
139  {
140  DiskGeometry->BytesPerSector = Geometry.BytesPerSector;
141  DiskGeometry->NumberOfCylinders = Geometry.Cylinders;
142  DiskGeometry->SectorsPerTrack = Geometry.Sectors;
143  DiskGeometry->NumberOfHeads = Geometry.Heads;
144  }
145  else
146  {
147  ERR("Reading disk geometry failed\n");
148  FrLdrHeapFree(PartialResourceList, TAG_HW_RESOURCE_LIST);
149  return NULL;
150  }
151  TRACE("Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
152  DriveNumber,
153  DiskGeometry->NumberOfCylinders,
154  DiskGeometry->NumberOfHeads,
155  DiskGeometry->SectorsPerTrack,
156  DiskGeometry->BytesPerSector);
157 
158  //
159  // Return configuration data
160  //
161  *pSize = Size;
162  return PartialResourceList;
163 }
164 
165 static VOID
167 {
168  CHAR Buffer[80];
169  PCONFIGURATION_COMPONENT_DATA ControllerKey;
170  PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
171  PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
172  ULONG Size;
173 
174  if (FrameBufferSize == 0)
175  return;
176 
177  strcpy(Buffer, "NV2A Framebuffer");
178 
179  Size = sizeof(CM_PARTIAL_RESOURCE_LIST);
180  PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
181  if (PartialResourceList == NULL)
182  {
183  ERR("Failed to allocate resource descriptor\n");
184  return;
185  }
186  memset(PartialResourceList, 0, Size);
187 
188  /* Initialize resource descriptor */
189  PartialResourceList->Version = 1;
190  PartialResourceList->Revision = 1;
191  PartialResourceList->Count = 1;
192 
193  /* Set Memory */
194  PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
195  PartialDescriptor->Type = CmResourceTypeMemory;
197  PartialDescriptor->Flags = CM_RESOURCE_MEMORY_READ_WRITE;
198  PartialDescriptor->u.Memory.Start.LowPart = (ULONG_PTR)FrameBuffer & 0x0FFFFFFF;
199  PartialDescriptor->u.Memory.Length = FrameBufferSize;
200 
201  FldrCreateComponentKey(BusKey,
203  DisplayController,
204  0x0,
205  0x0,
206  0xFFFFFFFF,
207  Buffer,
208  PartialResourceList,
209  Size,
210  &ControllerKey);
211 
212  TRACE("Created key: DisplayController\\0\n");
213 }
214 
215 static
216 VOID
218 {
219  PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
221  ULONG Size;
222 
223  /* Set 'Configuration Data' value */
224  Size = sizeof(CM_PARTIAL_RESOURCE_LIST) -
226  PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
227  if (PartialResourceList == NULL)
228  {
229  TRACE("Failed to allocate resource descriptor\n");
230  return;
231  }
232 
233  /* Initialize resource descriptor */
234  memset(PartialResourceList, 0, Size);
235  PartialResourceList->Version = 1;
236  PartialResourceList->Revision = 1;
237  PartialResourceList->Count = 0;
238 
239  /* Create new bus key */
240  FldrCreateComponentKey(SystemKey,
241  AdapterClass,
242  MultiFunctionAdapter,
243  0x0,
244  0x0,
245  0xFFFFFFFF,
246  "ISA",
247  PartialResourceList,
248  Size,
249  &BusKey);
250 
251  /* Increment bus number */
252  (*BusNumber)++;
253 
254  /* Detect ISA/BIOS devices */
255  DetectBiosDisks(SystemKey, BusKey);
257  DetectDisplayController(BusKey);
258 
259  /* FIXME: Detect more ISA devices */
260 }
261 
262 static
263 UCHAR
265 {
266  /* On a PC we use CMOS/RTC I/O ports 0x70 and 0x71 to detect floppies.
267  * However an Xbox CMOS memory range [0x10, 0x70) and [0x80, 0x100)
268  * is filled with 0x55 0xAA 0x55 0xAA ... byte pattern which is used
269  * to validate the date/time settings by Xbox OS.
270  *
271  * Technically it's possible to connect a floppy drive to Xbox, but
272  * CMOS detection method should not be used here. */
273 
274  WARN("XboxGetFloppyCount() is UNIMPLEMENTED, returning 0\n");
275  return 0;
276 }
277 
280 {
282  ULONG BusNumber = 0;
283 
284  TRACE("DetectHardware()\n");
285 
286  /* Create the 'System' key */
287  FldrCreateSystemKey(&SystemKey);
288  FldrSetIdentifier(SystemKey, "Original Xbox (PC/AT like)");
289 
292 
293  /* TODO: Build actual xbox's hardware configuration tree */
294  DetectPciBios(SystemKey, &BusNumber);
295  DetectIsaBios(SystemKey, &BusNumber);
296 
297  TRACE("DetectHardware() Done\n");
298  return SystemKey;
299 }
300 
302 {
303  /* UNIMPLEMENTED */
304 }
305 
306 
307 /******************************************************************************/
308 
309 VOID
310 MachInit(const char *CmdLine)
311 {
312  ULONG PciId;
313 
314  memset(&MachVtbl, 0, sizeof(MACHVTBL));
315 
316  /* Check for Xbox by identifying device at PCI 0:0:0, if it's
317  * 0x10DE/0x02A5 then we're running on an Xbox */
318  WRITE_PORT_ULONG((PULONG)0xCF8, CONFIG_CMD(0, 0, 0));
319  PciId = READ_PORT_ULONG((PULONG)0xCFC);
320  if (PciId != 0x02A510DE)
321  {
322  ERR("This is not original Xbox!\n");
323 
324  /* Disable and halt the CPU */
325  _disable();
326  __halt();
327 
328  while (TRUE);
329  }
330 
331  /* Set LEDs to red before anything is initialized */
332  XboxSetLED("rrrr");
333 
334  /* Setup vtbl */
351  MachVtbl.Beep = PcBeep;
363 
364  /* Initialize our stuff */
365  XboxMemInit();
366  XboxVideoInit();
367 
368  /* Set LEDs to orange after init */
369  XboxSetLED("oooo");
370 
372 }
373 
374 VOID
376 {
377  /* On Xbox, prepare video and disk support */
381 
382  /* Turn off debug messages to screen */
383  DebugDisableScreenPort();
384 }
385 
386 /* EOF */
VOID NTAPI FldrSetIdentifier(IN PCONFIGURATION_COMPONENT_DATA ComponentData, IN PCHAR IdentifierString)
Definition: archwsup.c:56
struct _CM_PARTIAL_RESOURCE_LIST CM_PARTIAL_RESOURCE_LIST
BOOLEAN XboxConsKbHit(VOID)
Definition: xboxcons.c:69
VOID DetectSerialPorts(PCONFIGURATION_COMPONENT_DATA BusKey, GET_SERIAL_PORT MachGetSerialPort, ULONG Count)
Definition: machpc.c:659
PCONFIGURATION_COMPONENT_DATA XboxHwDetect(VOID)
Definition: machxbox.c:279
VOID DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey, PCONFIGURATION_COMPONENT_DATA BusKey)
Definition: pchw.c:344
#define CmResourceTypeDeviceSpecific
Definition: hwresource.cpp:127
PFREELDR_MEMORY_DESCRIPTOR(* GetMemoryMap)(PULONG MaxMemoryMapSize)
Definition: machine.h:63
#define ExtendedBIOSDataSize
Definition: winldr.c:421
#define TRUE
Definition: types.h:120
FORCEINLINE VOID FrLdrHeapFree(PVOID MemoryPointer, ULONG Tag)
Definition: mm.h:170
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@379::@384 Memory
_In_ PIRP _In_ PDEVICE_OBJECT Device
Definition: fatprocs.h:2029
#define LPC_CONFIG_DEVICE_BASE_ADDRESS_LOW
Definition: machxbox.h:37
GLint x0
Definition: linetemp.h:95
ULONG(* GET_SERIAL_PORT)(ULONG Index, PULONG Irq)
Definition: hardware.h:49
VOID(* GetExtendedBIOSData)(PULONG ExtendedBIOSDataArea, PULONG ExtendedBIOSDataSize)
Definition: machine.h:64
ULONG Cylinders
Definition: disk.h:26
VOID(* VideoClearScreen)(UCHAR Attr)
Definition: machine.h:45
unsigned char * PUCHAR
Definition: retypes.h:3
char CHAR
Definition: xmlstorage.h:175
UCHAR NTAPI READ_PORT_UCHAR(PUCHAR Address)
Definition: mach.c:528
#define WARN(fmt,...)
Definition: debug.h:112
__INTRIN_INLINE void __halt(void)
Definition: intrin_x86.h:1595
PCONFIGURATION_COMPONENT_DATA(* HwDetect)(VOID)
Definition: machine.h:77
_In_opt_ ULONG Base
Definition: rtlfuncs.h:2373
UCHAR HardwareMechanism
Definition: pci.h:110
VOID(* VideoGetDisplaySize)(PULONG Width, PULONG Height, PULONG Depth)
Definition: machine.h:47
ULONG NTAPI READ_PORT_ULONG(IN PULONG Port)
Definition: portio.c:70
static UCHAR XboxGetFloppyCount(VOID)
Definition: machxbox.c:264
VOID XboxVideoCopyOffScreenBufferToVRAM(PVOID Buffer)
Definition: xboxvideo.c:272
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1173
UCHAR MinorRevision
Definition: pci.h:108
VOID XboxVideoClearScreen(UCHAR Attr)
Definition: xboxvideo.c:123
VOID XboxConsPutChar(int c)
Definition: xboxcons.c:26
BOOLEAN(* VideoIsPaletteFixed)(VOID)
Definition: machine.h:54
static VOID DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
Definition: machxbox.c:166
UCHAR(* GetFloppyCount)(VOID)
Definition: machine.h:66
#define CM_RESOURCE_MEMORY_READ_WRITE
Definition: cmtypes.h:120
BOOLEAN XboxFindPciBios(PPCI_REGISTRY_INFO BusData)
Definition: machxbox.c:28
uint32_t ULONG_PTR
Definition: typedefs.h:64
VOID XboxMemInit(VOID)
Definition: xboxmem.c:57
VOID XboxVideoSetTextCursorPosition(UCHAR X, UCHAR Y)
Definition: xboxvideo.c:260
VOID NTAPI WRITE_PORT_ULONG(IN PULONG Port, IN ULONG Value)
Definition: portio.c:123
BOOLEAN XboxDiskReadLogicalSectors(IN UCHAR DriveNumber, IN ULONGLONG SectorNumber, IN ULONG SectorCount, OUT PVOID Buffer)
Definition: xboxdisk.c:84
FIND_PCI_BIOS FindPciBios
Definition: hwpci.c:26
BOOLEAN PcInitializeBootDevices(VOID)
Definition: hwdisk.c:470
UCHAR MajorRevision
Definition: pci.h:107
VOID(* VideoGetFontsFromFirmware)(PULONG RomFontPointers)
Definition: machine.h:49
#define MAX_XBOX_COM_PORTS
Definition: machxbox.h:25
#define LPC_CONFIG_DEVICE_NUMBER
Definition: machxbox.h:34
int XboxConsGetCh(void)
Definition: xboxcons.c:76
#define LPC_IO_BASE
Definition: machxbox.h:27
unsigned char BOOLEAN
BOOLEAN(* DiskGetDriveGeometry)(UCHAR DriveNumber, PGEOMETRY DriveGeometry)
Definition: machine.h:68
VOID(* VideoSetTextCursorPosition)(UCHAR X, UCHAR Y)
Definition: machine.h:50
smooth NULL
Definition: ftsmooth.c:416
ULONG XboxVideoGetBufferSize(VOID)
Definition: xboxvideo.c:248
Definition: bufpool.h:45
#define LPC_ENTER_CONFIG_KEY
Definition: machxbox.h:28
void * PVOID
Definition: retypes.h:9
TIMEINFO *(* GetTime)(VOID)
Definition: machine.h:72
GET_HARDDISK_CONFIG_DATA GetHarddiskConfigurationData
Definition: pchw.c:45
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: halfuncs.h:156
VOID XboxVideoGetFontsFromFirmware(PULONG RomFontPointers)
Definition: xboxvideo.c:254
BOOLEAN(* InitializeBootDevices)(VOID)
Definition: machine.h:76
ULONG Sectors
Definition: disk.h:28
#define ExtendedBIOSDataArea
Definition: winldr.c:420
FORCEINLINE PVOID FrLdrHeapAlloc(SIZE_T MemorySize, ULONG Tag)
Definition: mm.h:163
#define TRACE(s)
Definition: solgame.cpp:4
DBG_DEFAULT_CHANNEL(HWDETECT)
VOID(* VideoGetPaletteColor)(UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
Definition: machine.h:56
BOOLEAN XboxVideoIsPaletteFixed(VOID)
Definition: xboxvideo.c:288
VOID __cdecl DiskStopFloppyMotor(VOID)
Definition: pc98hw.c:1244
PFREELDR_MEMORY_DESCRIPTOR XboxMemGetMemoryMap(ULONG *MemoryMapSize)
Definition: xboxmem.c:157
VOID XboxVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth)
Definition: xboxvideo.c:240
static const UCHAR Index[8]
Definition: usbohci.c:18
VOID XboxPrepareForReactOS(VOID)
Definition: machxbox.c:375
#define LPC_CONFIG_DEVICE_ACTIVATE
Definition: machxbox.h:35
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@379::@388 DeviceSpecificData
VOID XboxHwIdle(VOID)
Definition: machxbox.c:301
VOID DetectPciBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
Definition: hwpci.c:176
BOOLEAN(* DiskReadLogicalSectors)(UCHAR DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer)
Definition: machine.h:67
BOOLEAN(* ConsKbHit)(VOID)
Definition: machine.h:42
PVOID FrameBuffer
Definition: xboxvideo.c:27
VOID XboxVideoSync(VOID)
Definition: xboxvideo.c:306
CHAR CmdLine[MAX_PATH]
Definition: mach.c:34
unsigned char UCHAR
Definition: xmlstorage.h:181
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
Definition: hwresource.cpp:119
VOID(* VideoPutChar)(int Ch, UCHAR Attr, unsigned X, unsigned Y)
Definition: machine.h:52
VOID XboxVideoInit(VOID)
Definition: xboxvideo.c:193
void XboxSetLED(PCSTR pattern)
Definition: xboxi2c.c:198
#define LPC_DEVICE_SERIAL_PORT_1
Definition: machxbox.h:31
VOID XboxVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
Definition: xboxvideo.c:133
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@379 u
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
static ULONG XboxGetSerialPort(ULONG Index, PULONG Irq)
Definition: machxbox.c:45
VOID(* VideoSetPaletteColor)(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
Definition: machine.h:55
VOID XboxVideoPrepareForReactOS(VOID)
Definition: xboxvideo.c:312
#define LPC_EXIT_CONFIG_KEY
Definition: machxbox.h:29
VOID XboxVideoHideShowTextCursor(BOOLEAN Show)
Definition: xboxvideo.c:266
VOID(* PrepareForReactOS)(VOID)
Definition: machine.h:59
VOID NTAPI 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 PCHAR IdentifierString, IN PCM_PARTIAL_RESOURCE_LIST ResourceList, IN ULONG Size, OUT PCONFIGURATION_COMPONENT_DATA *ComponentKey)
Definition: archwsup.c:147
ULONG(* VideoGetBufferSize)(VOID)
Definition: machine.h:48
#define LPC_DEVICE_SERIAL_PORT_2
Definition: machxbox.h:32
int(* ConsGetCh)(VOID)
Definition: machine.h:43
#define ERR(fmt,...)
Definition: debug.h:110
ULONG(* DiskGetCacheableBlockCount)(UCHAR DriveNumber)
Definition: machine.h:69
VOID(* ConsPutChar)(int Ch)
Definition: machine.h:41
BOOLEAN XboxDiskGetDriveGeometry(UCHAR DriveNumber, PGEOMETRY Geometry)
Definition: xboxdisk.c:103
MACHVTBL MachVtbl
Definition: arcemul.c:21
ULONG BytesPerSector
Definition: disk.h:29
#define LPC_CONFIG_DEVICE_BASE_ADDRESS_HIGH
Definition: machxbox.h:36
VOID PcBeep(VOID)
Definition: pcbeep.c:34
VOID DetectSerialPointerPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey, PUCHAR Base)
ULONG FrameBufferSize
Definition: xboxvideo.c:28
VOID(* HwIdle)(VOID)
Definition: machine.h:78
Definition: disk.h:24
VOID HalpCalibrateStallExecution(VOID)
Definition: pchw.c:105
unsigned int * PULONG
Definition: retypes.h:1
UCHAR NoBuses
Definition: pci.h:109
#define CONFIG_CMD(bus, dev_fn, where)
Definition: hardware.h:23
VOID MachInit(const char *CmdLine)
Definition: machxbox.c:310
VOID(* VideoSync)(VOID)
Definition: machine.h:57
void __cdecl _disable(void)
Definition: intrin_arm.h:365
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
VOID XboxVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
Definition: xboxvideo.c:294
unsigned int ULONG
Definition: retypes.h:1
VOID XboxVideoGetPaletteColor(UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
Definition: xboxvideo.c:300
void WRITE_PORT_UCHAR(PUCHAR Address, UCHAR Value)
Definition: mach.c:532
#define LPC_CONFIG_DEVICE_INTERRUPT
Definition: machxbox.h:38
VOID(* VideoCopyOffScreenBufferToVRAM)(PVOID Buffer)
Definition: machine.h:53
#define ULONG_PTR
Definition: config.h:101
VIDEODISPLAYMODE(* VideoSetDisplayMode)(char *DisplayMode, BOOLEAN Init)
Definition: machine.h:46
VOID NTAPI FldrCreateSystemKey(OUT PCONFIGURATION_COMPONENT_DATA *SystemNode)
Definition: archwsup.c:89
VOID XboxGetExtendedBIOSData(PULONG ExtendedBIOSDataArea, PULONG ExtendedBIOSDataSize)
Definition: machxbox.c:87
VIDEODISPLAYMODE XboxVideoSetDisplayMode(char *DisplayMode, BOOLEAN Init)
Definition: xboxvideo.c:233
#define CmResourceTypeMemory
Definition: hwresource.cpp:125
VOID(* Beep)(VOID)
Definition: machine.h:58
#define memset(x, y, z)
Definition: compat.h:39
TIMEINFO * XboxGetTime(VOID)
Definition: xboxrtc.c:40
static VOID DetectIsaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
Definition: machxbox.c:217
static PCM_PARTIAL_RESOURCE_LIST XboxGetHarddiskConfigurationData(UCHAR DriveNumber, ULONG *pSize)
Definition: machxbox.c:98
struct _CM_DISK_GEOMETRY_DEVICE_DATA CM_DISK_GEOMETRY_DEVICE_DATA
VOID XboxDiskInit(BOOLEAN Init)
Definition: xboxdisk.c:26
#define TAG_HW_RESOURCE_LIST
Definition: hardware.h:26
ULONG XboxDiskGetCacheableBlockCount(UCHAR DriveNumber)
Definition: xboxdisk.c:122
VOID(* VideoHideShowTextCursor)(BOOLEAN Show)
Definition: machine.h:51
ULONG Heads
Definition: disk.h:27