feat: introduce bootloader-agnostic Boot Contract, add btlist command to list connected Bluetooth devices
This commit is contained in:
+11
-11
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user