Fix a couple of problems with FreeLDR portability.
[reactos.git] / reactos / boot / freeldr / freeldr / arch / i386 / machxbox.c
index dd44d36..ff13a59 100644 (file)
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include "freeldr.h"
-#include "mm.h"
-#include "machine.h"
-#include "machxbox.h"
+#include <freeldr.h>
 
 VOID
-XboxMachInit(VOID)
+XboxMachInit(const char *CmdLine)
 {
+  /* Set LEDs to red before anything is initialized */
+  XboxSetLED("rrrr");
+
   /* Initialize our stuff */
   XboxMemInit();
   XboxVideoInit();
@@ -44,12 +44,32 @@ XboxMachInit(VOID)
   MachVtbl.VideoSetPaletteColor = XboxVideoSetPaletteColor;
   MachVtbl.VideoGetPaletteColor = XboxVideoGetPaletteColor;
   MachVtbl.VideoSync = XboxVideoSync;
-  MachVtbl.VideoPrepareForReactOS = XboxVideoPrepareForReactOS;
+  MachVtbl.Beep = PcBeep;
+  MachVtbl.PrepareForReactOS = XboxPrepareForReactOS;
   MachVtbl.GetMemoryMap = XboxMemGetMemoryMap;
+  MachVtbl.DiskGetBootVolume = i386DiskGetBootVolume;
+  MachVtbl.DiskGetSystemVolume = i386DiskGetSystemVolume;
+  MachVtbl.DiskGetBootPath = i386DiskGetBootPath;
+  MachVtbl.DiskGetBootDevice = i386DiskGetBootDevice;
+  MachVtbl.DiskBootingFromFloppy = i386DiskBootingFromFloppy;
+  MachVtbl.DiskNormalizeSystemPath = i386DiskNormalizeSystemPath;
   MachVtbl.DiskReadLogicalSectors = XboxDiskReadLogicalSectors;
   MachVtbl.DiskGetPartitionEntry = XboxDiskGetPartitionEntry;
   MachVtbl.DiskGetDriveGeometry = XboxDiskGetDriveGeometry;
   MachVtbl.DiskGetCacheableBlockCount = XboxDiskGetCacheableBlockCount;
   MachVtbl.RTCGetCurrentDateTime = XboxRTCGetCurrentDateTime;
   MachVtbl.HwDetect = XboxHwDetect;
+
+  /* Set LEDs to orange after init */
+  XboxSetLED("oooo");
+}
+
+VOID
+XboxPrepareForReactOS(IN BOOLEAN Setup)
+{
+    //
+    // On XBOX, prepare video and turn off the floppy motor
+    //
+    XboxVideoPrepareForReactOS(Setup);
+    DiskStopFloppyMotor();
 }