diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-02-07 09:25:08 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-02-07 09:25:08 +0100 |
| commit | 513077cfec0ea87303ba19502c368f5adcc8ed99 (patch) | |
| tree | 8ed03e4ebbd78366b7e8ce6c3647e990261d521d /dev/Kernel | |
| parent | d282d5301dcc7d46c2d9a40a71eecfc1f674b107 (diff) | |
ADD: VGA logging and tweaks.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel')
| -rw-r--r-- | dev/Kernel/FirmwareKit/EFI/API.h | 2 | ||||
| -rw-r--r-- | dev/Kernel/FirmwareKit/EPM.h | 5 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/HalApplicationProcessorStartup.asm | 2 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/HalBoot.asm | 2 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/HalCommonAPI.asm | 2 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/HalDebugOutput.cc | 20 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/HalUtils.asm | 2 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/PCI/DMA.cc | 2 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/Storage/ATA.cc | 21 | ||||
| -rw-r--r-- | dev/Kernel/KernelKit/DebugOutput.h | 2 | ||||
| -rw-r--r-- | dev/Kernel/KernelKit/MemoryMgr.h | 4 | ||||
| -rw-r--r-- | dev/Kernel/NewKit/Crc32.h | 2 | ||||
| -rw-r--r-- | dev/Kernel/NewKit/ErrorOr.h | 2 | ||||
| -rw-r--r-- | dev/Kernel/NewKit/Json.h | 28 | ||||
| -rw-r--r-- | dev/Kernel/NewKit/Variant.h | 2 | ||||
| -rw-r--r-- | dev/Kernel/src/FS/NeFS.cc | 22 | ||||
| -rw-r--r-- | dev/Kernel/src/Json.cc | 2 | ||||
| -rw-r--r-- | dev/Kernel/src/MemoryMgr.cc | 14 | ||||
| -rw-r--r-- | dev/Kernel/src/User.cc | 2 |
19 files changed, 69 insertions, 69 deletions
diff --git a/dev/Kernel/FirmwareKit/EFI/API.h b/dev/Kernel/FirmwareKit/EFI/API.h index 2c4a7275..1edbaae7 100644 --- a/dev/Kernel/FirmwareKit/EFI/API.h +++ b/dev/Kernel/FirmwareKit/EFI/API.h @@ -12,7 +12,7 @@ #include <KernelKit/MSDOS.h> #include <KernelKit/PE.h> -#define kZKASubsystem (17) +#define kNeKernelSubsystem (17) #ifdef __ZBAOSLDR__ // forward decl. diff --git a/dev/Kernel/FirmwareKit/EPM.h b/dev/Kernel/FirmwareKit/EPM.h index 2f1e1507..d580cbd0 100644 --- a/dev/Kernel/FirmwareKit/EPM.h +++ b/dev/Kernel/FirmwareKit/EPM.h @@ -87,8 +87,9 @@ struct PACKED EPM_PART_BLOCK Kernel::Int64 NumBlocks; Kernel::Int64 SectorSz; Kernel::Int64 LbaStart; // base offset - Kernel::Int64 LbaEnd; // addition of lba_start to get the end of partition. + Kernel::Int64 LbaEnd; // end offset Kernel::Int16 Kind; + Kernel::Int16 Flags; Kernel::Int32 FsVersion; Kernel::Char Fs[kEPMFilesystemLength]; /* NeFS, ffs2... */ Kernel::Char Reserved[kEPMReserveLen]; // to fill a full sector. @@ -103,7 +104,7 @@ enum kEPMGenericOS = 0xcf, // Generic OS kEPMLinux = 0x8f, // Linux on EPM kEPMBSD = 0x9f, // Berkeley Soft. Distribution - kEPMZkaOS = 0x1f, // This OS. + kEPMNeOS = 0x1f, // This OS. kEPMInvalidOS = 0xff, }; diff --git a/dev/Kernel/HALKit/AMD64/HalApplicationProcessorStartup.asm b/dev/Kernel/HALKit/AMD64/HalApplicationProcessorStartup.asm index 2e2411c3..aaed18fa 100644 --- a/dev/Kernel/HALKit/AMD64/HalApplicationProcessorStartup.asm +++ b/dev/Kernel/HALKit/AMD64/HalApplicationProcessorStartup.asm @@ -1,7 +1,7 @@ ;; /* ;; * ======================================================== ;; * -;; * ZKA +;; * NeKernel ;; * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. ;; * ;; * ======================================================== diff --git a/dev/Kernel/HALKit/AMD64/HalBoot.asm b/dev/Kernel/HALKit/AMD64/HalBoot.asm index 5141c662..5a285673 100644 --- a/dev/Kernel/HALKit/AMD64/HalBoot.asm +++ b/dev/Kernel/HALKit/AMD64/HalBoot.asm @@ -1,7 +1,7 @@ ;; /* ;; * ======================================================== ;; * -;; * ZKA +;; * NeKernel ;; * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. ;; * ;; * ======================================================== diff --git a/dev/Kernel/HALKit/AMD64/HalCommonAPI.asm b/dev/Kernel/HALKit/AMD64/HalCommonAPI.asm index f6c85215..a4b0c841 100644 --- a/dev/Kernel/HALKit/AMD64/HalCommonAPI.asm +++ b/dev/Kernel/HALKit/AMD64/HalCommonAPI.asm @@ -1,7 +1,7 @@ ;; /* ;; * ======================================================== ;; * -;; * ZKA +;; * NeKernel ;; * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. ;; * ;; * ======================================================== diff --git a/dev/Kernel/HALKit/AMD64/HalDebugOutput.cc b/dev/Kernel/HALKit/AMD64/HalDebugOutput.cc index 6a484723..539d8178 100644 --- a/dev/Kernel/HALKit/AMD64/HalDebugOutput.cc +++ b/dev/Kernel/HALKit/AMD64/HalDebugOutput.cc @@ -8,6 +8,8 @@ #include <KernelKit/DebugOutput.h> #include <NewKit/Utils.h> #include <NewKit/New.h> +#include <Mod/CoreGfx/FBMgr.h> +#include <Mod/CoreGfx/TextMgr.h> namespace Kernel { @@ -80,12 +82,30 @@ namespace Kernel index = 0; len = rt_string_len(bytes, 255); + static int x = kFontSizeX, y = kFontSizeY; + auto log_txt = RGB(0xff, 0xff, 0xff); + while (index < len) { if (bytes[index] == '\r') HAL::rt_out8(Detail::kPort, '\r'); HAL::rt_out8(Detail::kPort, bytes[index] == '\r' ? '\n' : bytes[index]); + + char tmp_str[2]; + tmp_str[0] = bytes[index]; + tmp_str[1] = 0; + + fb_render_string(tmp_str, y, x, log_txt); + + if (bytes[index] == '\r') + { + y += kFontSizeY; + x = kFontSizeX; + } + + x += kFontSizeX; + ++index; } diff --git a/dev/Kernel/HALKit/AMD64/HalUtils.asm b/dev/Kernel/HALKit/AMD64/HalUtils.asm index 2894ca5d..2dc8f815 100644 --- a/dev/Kernel/HALKit/AMD64/HalUtils.asm +++ b/dev/Kernel/HALKit/AMD64/HalUtils.asm @@ -1,7 +1,7 @@ ;; /* ;; * ======================================================== ;; * -;; * ZKA +;; * NeKernel ;; * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. ;; * ;; * ======================================================== diff --git a/dev/Kernel/HALKit/AMD64/PCI/DMA.cc b/dev/Kernel/HALKit/AMD64/PCI/DMA.cc index 541e9533..e9981315 100644 --- a/dev/Kernel/HALKit/AMD64/PCI/DMA.cc +++ b/dev/Kernel/HALKit/AMD64/PCI/DMA.cc @@ -22,7 +22,7 @@ namespace Kernel { if (!fAddress) return false; - + if (offset == 0) return false; diff --git a/dev/Kernel/HALKit/AMD64/Storage/ATA.cc b/dev/Kernel/HALKit/AMD64/Storage/ATA.cc index dcb6d816..25143a6d 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/ATA.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/ATA.cc @@ -20,12 +20,12 @@ #if defined(__ATA_PIO__) || defined(__ATA_DMA__) +#define kATADataLen 256 + using namespace Kernel; using namespace Kernel::HAL; -/// bugs: 0 - -#define kATADataLen 256 +/// BUGS: 0 STATIC Boolean kATADetected = false; STATIC Int32 kATADeviceType = kATADeviceCount; @@ -128,6 +128,8 @@ Boolean drv_std_init(UInt16 Bus, UInt8 Drive, UInt16& OutBus, UInt8& OutMaster) } #endif // __ATA_DMA__ + kout << "ATA is enabled now.\r"; + return YES; } @@ -149,10 +151,6 @@ Void drv_std_read(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorSz UInt8 Command = ((!Master) ? 0xE0 : 0xF0); -#ifdef __ATA_PIO__ - drv_std_wait_io(IO); -#endif - drv_std_select(IO); rt_out8(IO + ATA_REG_HDDEVSEL, (Command) | (((Lba) >> 24) & 0x0F)); @@ -167,8 +165,6 @@ Void drv_std_read(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorSz #ifdef __ATA_PIO__ rt_out8(ATA_REG_COMMAND, ATA_CMD_READ_PIO); - drv_std_wait_io(IO); - for (SizeT IndexOff = 0; IndexOff < Size; ++IndexOff) { drv_std_wait_io(IO); @@ -201,10 +197,6 @@ Void drv_std_write(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorS UInt8 Command = ((!Master) ? 0xE0 : 0xF0); -#ifdef __ATA_PIO__ - drv_std_wait_io(IO); -#endif - drv_std_select(IO); rt_out8(IO + ATA_REG_HDDEVSEL, (Command) | (((Lba) >> 24) & 0x0F)); @@ -219,8 +211,6 @@ Void drv_std_write(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorS #ifdef __ATA_PIO__ rt_out8(ATA_REG_COMMAND, ATA_CMD_WRITE_PIO); - drv_std_wait_io(IO); - for (SizeT IndexOff = 0; IndexOff < Size; ++IndexOff) { drv_std_wait_io(IO); @@ -243,6 +233,7 @@ Void drv_std_write(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorS while (rt_in8(ATA_REG_STATUS) & 0x01) ; + rt_out8(IO + 0x00, 0x00); // Start DMA engine #endif // __ATA_PIO__ } diff --git a/dev/Kernel/KernelKit/DebugOutput.h b/dev/Kernel/KernelKit/DebugOutput.h index 7ef1f30c..7f0ff3cf 100644 --- a/dev/Kernel/KernelKit/DebugOutput.h +++ b/dev/Kernel/KernelKit/DebugOutput.h @@ -206,6 +206,6 @@ namespace Kernel #undef kout #endif // ifdef kout -#define kout Kernel::TerminalDevice::The() << "\e[0;31m [NeKernel] " << __FILE__ << " \e[0m: " +#define kout Kernel::TerminalDevice::The() << "[NeKernel] " << __FILE__ << ": " #define endl Kernel::TerminalDevice::The() << Kernel::end_line() diff --git a/dev/Kernel/KernelKit/MemoryMgr.h b/dev/Kernel/KernelKit/MemoryMgr.h index 1c42d71d..81cfe63b 100644 --- a/dev/Kernel/KernelKit/MemoryMgr.h +++ b/dev/Kernel/KernelKit/MemoryMgr.h @@ -71,8 +71,8 @@ namespace Kernel } *cls = new T(move(args)...); - return *cls; - } + return *cls; + } /// @brief Delete and nullify C++ class. /// @param cls The class to delete. diff --git a/dev/Kernel/NewKit/Crc32.h b/dev/Kernel/NewKit/Crc32.h index 1925d5bc..1facaace 100644 --- a/dev/Kernel/NewKit/Crc32.h +++ b/dev/Kernel/NewKit/Crc32.h @@ -1,7 +1,7 @@ /* * ======================================================== * - * ZKA + * NeKernel * Date Added: 13/02/2023 * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. * diff --git a/dev/Kernel/NewKit/ErrorOr.h b/dev/Kernel/NewKit/ErrorOr.h index b6bc629b..433e7c9b 100644 --- a/dev/Kernel/NewKit/ErrorOr.h +++ b/dev/Kernel/NewKit/ErrorOr.h @@ -1,7 +1,7 @@ /* * ======================================================== * - * ZKA + * NeKernel * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. * * ======================================================== diff --git a/dev/Kernel/NewKit/Json.h b/dev/Kernel/NewKit/Json.h index 0af87387..a376c15a 100644 --- a/dev/Kernel/NewKit/Json.h +++ b/dev/Kernel/NewKit/Json.h @@ -15,17 +15,17 @@ #include <NewKit/KString.h> #include <NewKit/Utils.h> -#define kMaxJsonPath 4096 -#define kJSONLen 32 -#define kJSONNull "null" +#define kMaxJsonPath 8196 +#define kJSONLen 256 +#define kJSONNull "[]" namespace Kernel { - /// @brief Json class - class JSON final + /// @brief JavaScript object class + class Json final { public: - explicit JSON() + explicit Json() { auto len = kJSONLen; KString key = KString(len); @@ -35,14 +35,14 @@ namespace Kernel this->AsValue() = key; } - explicit JSON(SizeT lhsLen, SizeT rhsLen) + explicit Json(SizeT lhsLen, SizeT rhsLen) : fKey(lhsLen), fValue(rhsLen) { } - ~JSON() = default; + ~Json() = default; - NE_COPY_DEFAULT(JSON); + NE_COPY_DEFAULT(Json); const Bool& IsUndefined() { @@ -69,13 +69,13 @@ namespace Kernel return fValue; } - static JSON kNull; + static Json kNull; }; /// @brief Json stream reader helper. struct JsonStreamReader final { - STATIC JSON In(const Char* full_array) + STATIC Json In(const Char* full_array) { auto start_val = '{'; auto end_val = '}'; @@ -84,7 +84,7 @@ namespace Kernel if (full_array[0] != start_val) { if (full_array[0] != '[') - return JSON::kNull; + return Json::kNull; start_val = '['; end_val = ']'; @@ -97,7 +97,7 @@ namespace Kernel SizeT key_len = 0; SizeT value_len = 0; - JSON type(kMaxJsonPath, kMaxJsonPath); + Json type(kMaxJsonPath, kMaxJsonPath); for (SizeT i = 1; i < len; ++i) { @@ -147,5 +147,5 @@ namespace Kernel } }; - using JsonStream = Stream<JsonStreamReader, JSON>; + using JsonStream = Stream<JsonStreamReader, Json>; } // namespace Kernel diff --git a/dev/Kernel/NewKit/Variant.h b/dev/Kernel/NewKit/Variant.h index fcaa0b0b..352f486f 100644 --- a/dev/Kernel/NewKit/Variant.h +++ b/dev/Kernel/NewKit/Variant.h @@ -38,7 +38,7 @@ namespace Kernel { } - explicit Variant(JSON* json) + explicit Variant(Json* json) : fPtr((VoidPtr)json), fKind(VariantKind::kJson) { } diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc index d954230d..418cc7cc 100644 --- a/dev/Kernel/src/FS/NeFS.cc +++ b/dev/Kernel/src/FS/NeFS.cc @@ -150,7 +150,7 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input NFS_FORK_STRUCT& the_fork) /// log what we have now. kout << "Fork offset is at: " << hex_number(the_fork.DataOffset) - << endl; + << endl; kout << "Wrote fork metadata at: " << hex_number(lba) << endl; @@ -413,9 +413,9 @@ _Output NFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char* drive.fOutput(drive.fPacket); kout << "Create new catalog with flags: " - << hex_number(child_catalog->Flags) << endl; + << hex_number(child_catalog->Flags) << endl; kout << "Create new catalog with name: " << child_catalog->Name - << endl; + << endl; delete catalog; catalog = nullptr; @@ -944,7 +944,7 @@ VoidPtr NeFileSystemParser::ReadCatalog(_Input _Output NFS_CATALOG_STRUCT* catal { if (!catalog) { - err_global_get() = kErrorFileNotFound; + err_global_get() = kErrorInvalidData; return nullptr; } @@ -952,7 +952,7 @@ VoidPtr NeFileSystemParser::ReadCatalog(_Input _Output NFS_CATALOG_STRUCT* catal Size dataForkSize = (!is_rsrc_fork) ? catalog->DataForkSize : catalog->ResourceForkSize; kout << "catalog " << catalog->Name - << ", fork: " << hex_number(dataForkLba) << endl; + << ", fork: " << hex_number(dataForkLba) << endl; NFS_FORK_STRUCT* fs_buf = new NFS_FORK_STRUCT(); auto drive = kMountpoint.A(); @@ -1000,12 +1000,6 @@ VoidPtr NeFileSystemParser::ReadCatalog(_Input _Output NFS_CATALOG_STRUCT* catal bool NeFileSystemParser::Seek(_Input _Output NFS_CATALOG_STRUCT* catalog, SizeT off) { - if (!catalog) - { - err_global_get() = kErrorFileNotFound; - return false; - } - err_global_get() = kErrorUnimplemented; return false; } @@ -1018,12 +1012,6 @@ bool NeFileSystemParser::Seek(_Input _Output NFS_CATALOG_STRUCT* catalog, SizeT SizeT NeFileSystemParser::Tell(_Input _Output NFS_CATALOG_STRUCT* catalog) { - if (!catalog) - { - err_global_get() = kErrorFileNotFound; - return 0; - } - err_global_get() = kErrorUnimplemented; return 0; } diff --git a/dev/Kernel/src/Json.cc b/dev/Kernel/src/Json.cc index 47f6f3f3..2e0a1465 100644 --- a/dev/Kernel/src/Json.cc +++ b/dev/Kernel/src/Json.cc @@ -7,4 +7,4 @@ #include <NewKit/Json.h> /// @brief Undefined object, is null in length. -RTL_INIT_OBJECT(Kernel::JSON::kNull, Kernel::JSON); +RTL_INIT_OBJECT(Kernel::Json::kNull, Kernel::Json); diff --git a/dev/Kernel/src/MemoryMgr.cc b/dev/Kernel/src/MemoryMgr.cc index bdaec674..989a4e95 100644 --- a/dev/Kernel/src/MemoryMgr.cc +++ b/dev/Kernel/src/MemoryMgr.cc @@ -24,7 +24,7 @@ //! @file Heap.cc //! @brief This Heap algorithm serves as the main memory manager. -#define kKernelHeapMagic (0xD4D7D5) +#define kKernelHeapMagic (0xD4D75) #define kKernelHeapAlignSz (__BIGGEST_ALIGNMENT__) namespace Kernel @@ -40,25 +40,25 @@ namespace Kernel struct PACKED HEAP_INFORMATION_BLOCK final { ///! @brief 32-bit value which contains the magic number of the heap. - UInt64 fMagic; + UInt32 fMagic : 24; ///! @brief Is the heap present? - Boolean fPresent : 1; + UInt8 fPresent : 1; /// @brief Is this valued owned by the user? - Boolean fWriteRead : 1; + UInt8 fWriteRead : 1; /// @brief Is this valued owned by the user? - Boolean fUser : 1; + UInt8 fUser : 1; /// @brief Is this a page pointer? - Boolean fPage : 1; + UInt8 fPage : 1; /// @brief 32-bit CRC checksum. UInt32 fCRC32; /// @brief 64-bit Allocation flags. - UInt64 fFlags; + UInt16 fFlags; /// @brief 64-bit pointer size. SizeT fSize; diff --git a/dev/Kernel/src/User.cc b/dev/Kernel/src/User.cc index f42ca69a..e8ed9be6 100644 --- a/dev/Kernel/src/User.cc +++ b/dev/Kernel/src/User.cc @@ -1,7 +1,7 @@ /* * ======================================================== * - * ZKA + * NeKernel * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. * * File: User.cc |
