diff options
Diffstat (limited to 'Private/Source')
| -rw-r--r-- | Private/Source/CxxAbi.cxx | 2 | ||||
| -rw-r--r-- | Private/Source/DriveManager.cxx | 76 | ||||
| -rw-r--r-- | Private/Source/IndexableProperty.cxx | 2 | ||||
| -rw-r--r-- | Private/Source/NewFS+Journal.cxx | 2 | ||||
| -rw-r--r-- | Private/Source/ThreadLocalStorage.cxx | 6 |
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"; } |
