summaryrefslogtreecommitdiffhomepage
path: root/Private/NewBoot/BootKit/BootKit.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'Private/NewBoot/BootKit/BootKit.hxx')
-rw-r--r--Private/NewBoot/BootKit/BootKit.hxx11
1 files changed, 11 insertions, 0 deletions
diff --git a/Private/NewBoot/BootKit/BootKit.hxx b/Private/NewBoot/BootKit/BootKit.hxx
index 6272e4c9..ffa3af15 100644
--- a/Private/NewBoot/BootKit/BootKit.hxx
+++ b/Private/NewBoot/BootKit/BootKit.hxx
@@ -213,6 +213,17 @@ public:
/// @retval False failed to format.
Boolean Format(const char* partName, BFileDescriptor* fileBlobs, SizeT blobCount);
+ operator bool() noexcept {
+ fDiskDev.Leak().mBase = (kNewFSAddressAsLba / BootDev::kSectorSize);
+ fDiskDev.Leak().mSize = BootDev::kSectorSize;
+
+ Char buf[BootDev::kSectorSize] = { 0 };
+
+ fDiskDev.Read(buf, BootDev::kSectorSize);
+
+ return buf[0] == kNewFSIdent[0];
+ }
+
private:
/// @brief Write all of the requested catalogs into the filesystem.
Boolean WriteContent(BFileDescriptor* fileBlobs, SizeT blobCount,