feat: introduce bootloader-agnostic Boot Contract, add btlist command to list connected Bluetooth devices

This commit is contained in:
2026-06-20 21:25:24 +02:00
parent c86650d662
commit 3f26b8cdb4
20 changed files with 904 additions and 213 deletions
+11 -11
View File
@@ -28,26 +28,26 @@ namespace Fs {
return *lhs == *rhs;
}
bool InitializeRamdiskFromModules(const volatile limine_module_response* moduleResponse) {
if (moduleResponse == nullptr || moduleResponse->module_count == 0) {
bool InitializeRamdiskFromModules(const montauk::boot::ModuleList& modules) {
if (modules.modules == nullptr || modules.count == 0) {
Kt::KernelLogStream(Kt::WARNING, "Modules") << "No modules loaded (ramdisk unavailable)";
return false;
}
Kt::KernelLogStream(Kt::OK, "Modules")
<< "Found " << (uint64_t)moduleResponse->module_count << " module(s)";
<< "Found " << modules.count << " module(s)";
bool hasRamdisk = false;
for (uint64_t i = 0; i < moduleResponse->module_count; i++) {
limine_file* module = moduleResponse->modules[i];
if (module == nullptr || !StringsEqual(module->string, "ramdisk")) {
for (uint64_t i = 0; i < modules.count; i++) {
const montauk::boot::Module& module = modules.modules[i];
if (!StringsEqual(module.name, "ramdisk")) {
continue;
}
Kt::KernelLogStream(Kt::OK, "Modules")
<< "Ramdisk module at " << kcp::hex << (uint64_t)module->address
<< kcp::dec << ", size=" << module->size;
Ramdisk::Initialize(module->address, module->size);
<< "Ramdisk module at " << kcp::hex << (uint64_t)module.address
<< kcp::dec << ", size=" << module.size;
Ramdisk::Initialize(module.address, module.size);
hasRamdisk = true;
}
@@ -71,8 +71,8 @@ namespace Fs {
}
void InitializeBootFilesystems(const volatile limine_module_response* moduleResponse) {
bool hasRamdisk = InitializeRamdiskFromModules(moduleResponse);
void InitializeBootFilesystems(const montauk::boot::ModuleList& modules) {
bool hasRamdisk = InitializeRamdiskFromModules(modules);
Vfs::Initialize();
if (hasRamdisk) {
+2 -2
View File
@@ -5,10 +5,10 @@
*/
#pragma once
#include <limine.h>
#include <Boot/BootInfo.hpp>
namespace Fs {
void InitializeBootFilesystems(const volatile limine_module_response* moduleResponse);
void InitializeBootFilesystems(const montauk::boot::ModuleList& modules);
}