summaryrefslogtreecommitdiffhomepage
path: root/newBoot/Source
diff options
context:
space:
mode:
Diffstat (limited to 'newBoot/Source')
-rw-r--r--newBoot/Source/Arch/AMD64/BootAMD64.cxx4
-rw-r--r--newBoot/Source/Arch/AMD64/Processor.cxx7
-rw-r--r--newBoot/Source/MPT/API.cxx67
-rw-r--r--newBoot/Source/MPT/API.hxx2
-rw-r--r--newBoot/Source/MPT/MPT.hxx6
-rw-r--r--newBoot/Source/Start.cxx2
6 files changed, 50 insertions, 38 deletions
diff --git a/newBoot/Source/Arch/AMD64/BootAMD64.cxx b/newBoot/Source/Arch/AMD64/BootAMD64.cxx
index 5543a34f..0ed59ff0 100644
--- a/newBoot/Source/Arch/AMD64/BootAMD64.cxx
+++ b/newBoot/Source/Arch/AMD64/BootAMD64.cxx
@@ -23,7 +23,7 @@ long long int BStrLen(const char* ptr)
return cnt;
}
-void BTextWriter::WriteString(
+void BKTextWriter::WriteString(
const char* str,
unsigned char forecolour,
unsigned char backcolour,
@@ -41,7 +41,7 @@ void BTextWriter::WriteString(
}
}
-void BTextWriter::WriteCharacter(
+void BKTextWriter::WriteCharacter(
char c,
unsigned char forecolour,
unsigned char backcolour,
diff --git a/newBoot/Source/Arch/AMD64/Processor.cxx b/newBoot/Source/Arch/AMD64/Processor.cxx
index 18b5e8e7..50330e47 100644
--- a/newBoot/Source/Arch/AMD64/Processor.cxx
+++ b/newBoot/Source/Arch/AMD64/Processor.cxx
@@ -7,6 +7,13 @@
* ========================================================
*/
+/*
+ *
+ * @file Processor.cxx
+ * @brief Processor Specific Functions.
+ *
+ */
+
extern "C" void rt_halt(void) { asm volatile("hlt"); }
extern "C" void rt_cli(void) { asm volatile("cli"); }
diff --git a/newBoot/Source/MPT/API.cxx b/newBoot/Source/MPT/API.cxx
index c5e31d7f..e607eecd 100644
--- a/newBoot/Source/MPT/API.cxx
+++ b/newBoot/Source/MPT/API.cxx
@@ -10,22 +10,6 @@
#include "API.hxx"
#include "Detail.hxx"
-struct Files32FileHdr final
-{
- char Filename[32];
- char Ext[3];
- char Attr;
- char Case;
- char CreateMs;
- unsigned short Create;
- unsigned short CreateDate;
- unsigned short LastAccess;
- unsigned short Timestamp;
- unsigned short Datestamp;
- unsigned short StartLba;
- unsigned int SizeFile;
-};
-
#define kFilesR 0x01 /* read-only */
#define kFilesH 0x02 /* hidden */
#define kFilesS 0x04 /* system */
@@ -36,29 +20,50 @@ struct Files32FileHdr final
// @brief Array of unused bits.
#define kFilesU { 0x40, 0x80 }
-struct Files32FileGroup final
+namespace mpt::detail
{
- Files32FileHdr* fHdr{ nullptr };
+ struct Files32FileHdr final
+ {
+ char Filename[32];
+ char Ext[3];
+ char Attr;
+ char Case;
+ char CreateMs;
+ unsigned short Create;
+ unsigned short CreateDate;
+ unsigned short LastAccess;
+ unsigned short Timestamp;
+ unsigned short Datestamp;
+ unsigned short StartLba;
+ unsigned int SizeFile;
+ };
+
+ struct Files32FileGroup final
+ {
+ Files32FileHdr* fHdr{ nullptr };
+
+ Files32FileGroup* fUpper{ nullptr };
+ Files32FileGroup* fLower{ nullptr };
+ Files32FileGroup* fPrev{ nullptr };
+ Files32FileGroup* fNext{ nullptr };
+ };
- Files32FileGroup* fUpper{ nullptr };
- Files32FileGroup* fLower{ nullptr };
- Files32FileGroup* fPrev{ nullptr };
- Files32FileGroup* fNext{ nullptr };
-} kRootGroup = nullptr;
+ /* @brief external inits */
+ extern "C" int init_ata_mpt(void);
+ extern "C" int init_mpt(void);
-/* @brief external inits */
-extern "C" int init_ata_mpt(void);
-extern "C" int init_mpt(void);
+ Files32FileGroup* kRootGroup = nullptr;
+}
namespace mpt
{
- bool filesystem_init(void) noexcept
+ bool init_mpt() noexcept
{
- kRootGroup = detail::new_class<Files32FileGroup>();
+ detail::kRootGroup = detail::new_class<detail::Files32FileGroup>();
- assert(kRootGroup != nullptr);
- assert(init_ata_mpt() == detail::okay);
- assert(init_mpt() == detail::okay);
+ assert(detail::kRootGroup != nullptr);
+ assert(detail::init_ata_mpt() == detail::okay);
+ assert(detail::init_mpt() == detail::okay);
return true;
}
diff --git a/newBoot/Source/MPT/API.hxx b/newBoot/Source/MPT/API.hxx
index 1c5123b1..3ce689e7 100644
--- a/newBoot/Source/MPT/API.hxx
+++ b/newBoot/Source/MPT/API.hxx
@@ -13,5 +13,5 @@ namespace mpt
{
/// initializes the Master Partition Table and the Files32 filesystem.
/// \return status, assert(fail) is also triggered, use filesystem_hook_error if you want to catch it.
- bool filesystem_init(void) noexcept;
+ bool init_mpt() noexcept;
} \ No newline at end of file
diff --git a/newBoot/Source/MPT/MPT.hxx b/newBoot/Source/MPT/MPT.hxx
index cd97b113..e8bbe7cd 100644
--- a/newBoot/Source/MPT/MPT.hxx
+++ b/newBoot/Source/MPT/MPT.hxx
@@ -23,7 +23,7 @@ struct MasterPartitionTable final
enum
{
- kPartEfi = 'efi',
- kPartEpm = 'epm',
- kPartEbr = 'ebr',
+ kPartEfi = 0x10,
+ kPartEpm = 0x11,
+ kPartEbr = 0x12,
}; \ No newline at end of file
diff --git a/newBoot/Source/Start.cxx b/newBoot/Source/Start.cxx
index 0dbe1de0..5f320ac7 100644
--- a/newBoot/Source/Start.cxx
+++ b/newBoot/Source/Start.cxx
@@ -11,7 +11,7 @@
extern "C" void __AppMain(void)
{
- BTextWriter writer;
+ BKTextWriter writer;
writer.WriteString("Starting hCore...", kBlack, kWhite, 0, 0);
const char* args[] = { "/hCore.bin" };