summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-05-01 11:59:48 +0200
committerAmlal <amlal@nekernel.org>2025-05-01 11:59:48 +0200
commit1e8b22f34ce423b23d1b4c4ea59ed16aa29842d8 (patch)
tree270042aea172fa5785303763cb739ea5ce3e4f69 /dev
parentc613812ef130388ac82b24bdce12389de96b7ce4 (diff)
tooling, fs: Improve tooling and clean up HeFS filesystem code.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev')
-rw-r--r--dev/boot/BootKit/BootKit.h1
-rw-r--r--dev/boot/src/HEL/AMD64/BootEFI.cc17
-rw-r--r--dev/kernel/src/FS/HeFS.cc9
3 files changed, 10 insertions, 17 deletions
diff --git a/dev/boot/BootKit/BootKit.h b/dev/boot/BootKit/BootKit.h
index 5f4a65c4..3f871b9a 100644
--- a/dev/boot/BootKit/BootKit.h
+++ b/dev/boot/BootKit/BootKit.h
@@ -148,6 +148,7 @@ class BootFileReader final {
typedef UInt8* BlobType;
+/// @brief Bootloader Version String.
class BVersionString final {
public:
static const CharacterTypeUTF8* The() { return BOOTLOADER_VERSION; }
diff --git a/dev/boot/src/HEL/AMD64/BootEFI.cc b/dev/boot/src/HEL/AMD64/BootEFI.cc
index ffc3c692..260d7c00 100644
--- a/dev/boot/src/HEL/AMD64/BootEFI.cc
+++ b/dev/boot/src/HEL/AMD64/BootEFI.cc
@@ -199,15 +199,15 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa
// Assign to global 'kHandoverHeader'.
WideChar kernel_path[256U] = L"krnl.efi";
- UInt32 kernel_path_sz = 256U;
+ UInt32 kernel_path_sz = StrLen("krnl.efi");
- if (ST->RuntimeServices->GetVariable(L"/props/boot_path", kEfiGlobalNamespaceVarGUID, nullptr,
+ if (ST->RuntimeServices->GetVariable(L"/props/kernel_path", kEfiGlobalNamespaceVarGUID, nullptr,
&kernel_path_sz, kernel_path) != kEfiOk) {
/// access attributes (in order)
/// EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS
UInt32 attr = 0x00000001 | 0x00000002 | 0x00000004;
- ST->RuntimeServices->SetVariable(L"/props/boot_path", kEfiGlobalNamespaceVarGUID, &attr,
+ ST->RuntimeServices->SetVariable(L"/props/kernel_path", kEfiGlobalNamespaceVarGUID, &attr,
&kernel_path_sz, kernel_path);
}
@@ -217,17 +217,18 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa
ST->RuntimeServices->GetVariable(L"/props/kern_ver", kEfiGlobalNamespaceVarGUID, nullptr, &sz_ver,
&ver);
- if (ver != KERNEL_VERSION_BCD) {
+ if (ver < KERNEL_VERSION_BCD) {
ver = KERNEL_VERSION_BCD;
ST->RuntimeServices->SetVariable(L"/props/kern_ver", kEfiGlobalNamespaceVarGUID, nullptr,
&sz_ver, &ver);
- writer.Write("BootZ: version has been updated: ").Write(ver).Write("\r");
- }
- writer.Write("BootZ: version: ").Write(ver).Write("\r");
+ writer.Write("BootZ: Version has been updated: ").Write(ver).Write("\r");
+ } else {
+ writer.Write("BootZ: Version: ").Write(ver).Write("\r");
+ }
- // boot to kernel, if not netboot this.
+ // boot to kernel, if not bootnet this.
Boot::BootFileReader reader_kernel(kernel_path, image_handle);
diff --git a/dev/kernel/src/FS/HeFS.cc b/dev/kernel/src/FS/HeFS.cc
index 2f5bb55d..89415ee5 100644
--- a/dev/kernel/src/FS/HeFS.cc
+++ b/dev/kernel/src/FS/HeFS.cc
@@ -825,8 +825,6 @@ _Output Bool HeFileSystemParser::CreateDirectory(_Input DriveTrait* drive, _Inpu
const Utf8Char* dir) {
HEFS_BOOT_NODE* root = (HEFS_BOOT_NODE*) mm_new_heap(sizeof(HEFS_BOOT_NODE), Yes, No);
- kout << "CreateDirectory...\r";
-
rt_copy_memory((VoidPtr) "fs/hefs-packet", drive->fPacket.fPacketMime,
rt_string_len("fs/hefs-packet"));
@@ -870,16 +868,9 @@ _Output Bool HeFileSystemParser::CreateDirectory(_Input DriveTrait* drive, _Inpu
/// @return If it was sucessful, see err_local_get().
_Output Bool HeFileSystemParser::CreateFile(_Input DriveTrait* drive, _Input const Int32 flags,
const Utf8Char* dir, const Utf8Char* name) {
- NE_UNUSED(drive);
- NE_UNUSED(flags);
- NE_UNUSED(dir);
- NE_UNUSED(name);
-
HEFS_INDEX_NODE* node = (HEFS_INDEX_NODE*) RTL_ALLOCA(sizeof(HEFS_INDEX_NODE));
HEFS_BOOT_NODE* root = (HEFS_BOOT_NODE*) RTL_ALLOCA(sizeof(HEFS_BOOT_NODE));
- kout << "CreateFile...\r";
-
rt_copy_memory((VoidPtr) "fs/hefs-packet", drive->fPacket.fPacketMime,
rt_string_len("fs/hefs-packet"));