summaryrefslogtreecommitdiffhomepage
path: root/dev/boot/modules/SysChk/SysChk.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dev/boot/modules/SysChk/SysChk.cc')
-rw-r--r--dev/boot/modules/SysChk/SysChk.cc18
1 files changed, 17 insertions, 1 deletions
diff --git a/dev/boot/modules/SysChk/SysChk.cc b/dev/boot/modules/SysChk/SysChk.cc
index f9af8517..3086cdc6 100644
--- a/dev/boot/modules/SysChk/SysChk.cc
+++ b/dev/boot/modules/SysChk/SysChk.cc
@@ -21,14 +21,30 @@
#include <BootKit/BootThread.h>
#include <modules/CoreGfx/CoreGfx.h>
+// Makes the compiler shut up.
+#ifndef kMachineModel
+#define kMachineModel "Ne"
+#endif // !kMachineModel
+
EXTERN_C Int32 SysChkModuleMain(Kernel::HEL::BootInfoHeader* handover)
{
-#ifdef __NE_AMD64__
+#ifdef __ATA_PIO__
Boot::BDiskFormatFactory<BootDeviceATA> partition_factory;
if (partition_factory.IsPartitionValid())
return kEfiOk;
+ Boot::BDiskFormatFactory<BootDeviceATA>::BFileDescriptor desc{};
+
+ desc.fFileName[0] = '/';
+ desc.fFileName[1] = 0;
+ desc.fKind = kNeFSCatalogKindDir;
+
+ partition_factory.Format(kMachineModel, &desc, 1);
+
+ if (partition_factory.IsPartitionValid())
+ return kEfiOk;
+
return kEfiFail;
#else
return kEfiOk;