summaryrefslogtreecommitdiffhomepage
path: root/Private/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Private/Source')
-rw-r--r--Private/Source/CxxAbi.cxx2
-rw-r--r--Private/Source/DriveManager.cxx76
-rw-r--r--Private/Source/IndexableProperty.cxx2
-rw-r--r--Private/Source/NewFS+Journal.cxx2
-rw-r--r--Private/Source/ThreadLocalStorage.cxx6
5 files changed, 81 insertions, 7 deletions
diff --git a/Private/Source/CxxAbi.cxx b/Private/Source/CxxAbi.cxx
index 41df73fd..d79d688c 100644
--- a/Private/Source/CxxAbi.cxx
+++ b/Private/Source/CxxAbi.cxx
@@ -13,7 +13,7 @@ atexit_func_entry_t __atexit_funcs[kDSOMaxObjects];
uarch_t __atexit_func_count;
extern "C" void __cxa_pure_virtual() {
- NewOS::kcout << "NewKernel.exe: C++ placeholder method.\n";
+ NewOS::kcout << "NewOS: C++ placeholder method.\n";
}
extern "C" void ___chkstk_ms() {
diff --git a/Private/Source/DriveManager.cxx b/Private/Source/DriveManager.cxx
index 26cab611..41a623c9 100644
--- a/Private/Source/DriveManager.cxx
+++ b/Private/Source/DriveManager.cxx
@@ -6,5 +6,79 @@
#include <KernelKit/DebugOutput.hpp>
#include <KernelKit/DriveManager.hxx>
+#include <Builtins/ATA/Defines.hxx>
-namespace NewOS {} // namespace NewOS
+namespace NewOS {
+static UInt16 kATAIO = 0U;
+static UInt8 kATAMaster = 0U;
+
+/// @brief reads from an ATA drive.
+/// @param pckt
+/// @return
+Void ke_drv_input(DriveTrait::DrivePacket* pckt) {
+ if (!pckt) {
+ return;
+ }
+
+ pckt->fPacketGood = false;
+
+ drv_ata_read(pckt->fLba, kATAIO, kATAMaster, (Char*)pckt->fPacketContent, 1, pckt->fPacketSize);
+
+ pckt->fPacketGood = true;
+}
+
+/// @brief Writes to an ATA drive.
+/// @param pckt
+/// @return
+Void ke_drv_output(DriveTrait::DrivePacket* pckt) {
+ if (!pckt) {
+ return;
+ }
+
+ pckt->fPacketGood = false;
+
+ drv_ata_write(pckt->fLba, kATAIO, kATAMaster, (Char*)pckt->fPacketContent, 1, pckt->fPacketSize);
+
+ pckt->fPacketGood = true;
+}
+
+/// @brief Executes a disk check on the ATA drive.
+/// @param pckt
+/// @return
+Void ke_drv_check_disk(DriveTrait::DrivePacket* pckt) {
+ if (!pckt) {
+ return;
+ }
+
+ pckt->fPacketGood = false;
+}
+
+/// @brief Unimplemented drive.
+/// @param pckt
+/// @return
+Void ke_drv_unimplemented(DriveTrait::DrivePacket* pckt) {}
+
+/// @brief Makes a new drive.
+/// @return the new drive.
+DriveTrait construct_drive() noexcept {
+ DriveTrait trait;
+
+ trait.fInput = ke_drv_unimplemented;
+ trait.fOutput = ke_drv_unimplemented;
+ trait.fVerify = ke_drv_unimplemented;
+
+ return trait;
+}
+
+/// @brief Fetches the main drive.
+/// @return the new drive.
+DriveTrait main_drive() noexcept {
+ DriveTrait trait;
+
+ trait.fInput = ke_drv_input;
+ trait.fOutput = ke_drv_output;
+ trait.fVerify = ke_drv_check_disk;
+
+ return trait;
+}
+} // namespace NewOS
diff --git a/Private/Source/IndexableProperty.cxx b/Private/Source/IndexableProperty.cxx
index 8a2c1132..c3978fe9 100644
--- a/Private/Source/IndexableProperty.cxx
+++ b/Private/Source/IndexableProperty.cxx
@@ -34,7 +34,7 @@ Void fs_index_file(const Char* filename, SizeT filenameLen, IndexableProperty& i
indexer.AddFlag(kIndexerClaimed);
rt_copy_memory((VoidPtr)indexer.LeakProperty().Path, (VoidPtr)filename, filenameLen);
- kcout << "NewKernel.exe: FSKit: index new file: " << filename << endl;
+ kcout << "NewOS: FSKit: index new file: " << filename << endl;
}
}
} // namespace Indexer
diff --git a/Private/Source/NewFS+Journal.cxx b/Private/Source/NewFS+Journal.cxx
index 4eb2feb2..d6315603 100644
--- a/Private/Source/NewFS+Journal.cxx
+++ b/Private/Source/NewFS+Journal.cxx
@@ -45,7 +45,7 @@ class NewFSJournalRunner final {
switch (operation) {
case kNewFSOpLog: {
if (!classPtr) {
- kcout << "NewKernel.exe: Miss for classPtr at "
+ kcout << "NewOS: Miss for classPtr at "
"NewFSJournalManager::Run(classPtr) "
<< __FILE__ << "\n";
return false;
diff --git a/Private/Source/ThreadLocalStorage.cxx b/Private/Source/ThreadLocalStorage.cxx
index 9ee6a4be..20f9d337 100644
--- a/Private/Source/ThreadLocalStorage.cxx
+++ b/Private/Source/ThreadLocalStorage.cxx
@@ -31,7 +31,7 @@ Boolean tls_check_tib(ThreadInformationBlock* tib) {
Encoder encoder;
const char* tibAsBytes = encoder.AsBytes(tib);
- kcout << "NewKernel.exe: Checking for a valid cookie...\n";
+ kcout << "NewOS: Checking for a valid cookie...\n";
return tibAsBytes[0] == kCookieMag0 && tibAsBytes[1] == kCookieMag1 &&
tibAsBytes[2] == kCookieMag2;
@@ -46,9 +46,9 @@ EXTERN_C Void tls_check_syscall_impl(NewOS::HAL::StackFramePtr stackPtr) noexcep
ThreadInformationBlock* tib = (ThreadInformationBlock*)stackPtr->Gs;
if (!tls_check_tib(tib)) {
- kcout << "NewKernel.exe: Verification failed, Crashing...\n";
+ kcout << "NewOS: Verification failed, Crashing...\n";
ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
- kcout << "NewKernel.exe: Verification succeeded! Keeping on...\n";
+ kcout << "NewOS: Verification succeeded! Keeping on...\n";
}