Convert to_dynamic_unit to OwnedStringView and rename the old variant to to_dynamic_unit_cstr
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
apio 2022-12-16 18:18:24 +01:00
parent be22cf6267
commit 41b3c8adb2
Signed by: apio
GPG Key ID: B8A7D06E42258954
3 changed files with 32 additions and 11 deletions

View File

@ -4,6 +4,7 @@
#include "arch/Timer.h"
#include "boot/Init.h"
#include "config.h"
#include "memory/Heap.h"
#include "memory/MemoryManager.h"
#include "thread/Scheduler.h"
#include <luna/Result.h>
@ -23,6 +24,13 @@ void async_thread()
}
}
void heap_thread()
{
CPU::disable_interrupts();
dump_heap_usage();
while (true) kernel_sleep(UINT64_MAX);
}
Result<void> init()
{
kinfoln("Starting Moon %s", MOON_VERSION);
@ -33,19 +41,15 @@ Result<void> init()
Timer::init();
char buffer[64];
to_dynamic_unit(MemoryManager::total(), buffer, sizeof(buffer));
kinfoln("Total memory: %s", buffer);
to_dynamic_unit(MemoryManager::free(), buffer, sizeof(buffer));
kinfoln("Free memory: %s", buffer);
to_dynamic_unit(MemoryManager::used(), buffer, sizeof(buffer));
kinfoln("Used memory: %s", buffer);
to_dynamic_unit(MemoryManager::reserved(), buffer, sizeof(buffer));
kinfoln("Reserved memory: %s", buffer);
kinfoln("Total memory: %s", to_dynamic_unit(MemoryManager::total()).release_value().chars());
kinfoln("Free memory: %s", to_dynamic_unit(MemoryManager::free()).release_value().chars());
kinfoln("Used memory: %s", to_dynamic_unit(MemoryManager::used()).release_value().chars());
kinfoln("Reserved memory: %s", to_dynamic_unit(MemoryManager::reserved()).release_value().chars());
Scheduler::init();
TRY(Scheduler::new_kernel_thread(async_thread));
TRY(Scheduler::new_kernel_thread(heap_thread));
CPU::platform_finish_init();

View File

@ -1,4 +1,6 @@
#pragma once
#include <luna/OwnedStringView.h>
#include <luna/Result.h>
Result<usize> to_dynamic_unit(usize value, char* buffer, usize max);
Result<usize> to_dynamic_unit_cstr(usize value, char* buffer, usize max);
Result<OwnedStringView> to_dynamic_unit(usize value);

View File

@ -1,8 +1,10 @@
#include <luna/Alloc.h>
#include <luna/Format.h>
#include <luna/Result.h>
#include <luna/ScopeGuard.h>
#include <luna/Units.h>
Result<usize> to_dynamic_unit(usize value, char* buffer, usize max)
Result<usize> to_dynamic_unit_cstr(usize value, char* buffer, usize max)
{
if (value < 1024) { return string_format(buffer, max, "%u bytes", value); }
@ -14,4 +16,17 @@ Result<usize> to_dynamic_unit(usize value, char* buffer, usize max)
}
return string_format(buffer, max, "%u.%u %ciB", value / 1024, (value % 1024) / 103, *unit_prefixes);
}
Result<OwnedStringView> to_dynamic_unit(usize value)
{
char* buf = TRY(make_array<char>(64));
auto guard = make_scope_guard([&] { destroy_array(buf); });
TRY(to_dynamic_unit_cstr(value, buf, 64));
guard.deactivate();
return OwnedStringView{buf};
}