Kernel: Add aarch64 version of kprintf.cpp

This allows us to use the AK formatting functions in the aarch64 Kernel.
Also add FIXME to make sure that this file will be removed when the
proper abstractions are in place in the normal Kernel/kprintf.cpp.
This commit is contained in:
Timon Kruiper 2022-05-02 18:39:31 +02:00 committed by Linus Groh
parent b3346aa08d
commit b9944ca905
Notes: sideshowbarker 2024-07-19 01:59:31 +09:00
3 changed files with 38 additions and 19 deletions

View file

@ -212,24 +212,5 @@ bool safe_atomic_store_relaxed(u32 volatile*, u32)
}
extern "C" {
FlatPtr kernel_mapping_base;
void kernelputstr(char const*, size_t);
void kernelputstr(char const*, size_t)
{
VERIFY_NOT_REACHED();
}
void kernelcriticalputstr(char const*, size_t);
void kernelcriticalputstr(char const*, size_t)
{
VERIFY_NOT_REACHED();
}
void kernelearlyputstr(char const*, size_t);
void kernelearlyputstr(char const*, size_t)
{
VERIFY_NOT_REACHED();
}
}

View file

@ -0,0 +1,37 @@
/*
* Copyright (c) 2022, Timon Kruiper <timonkruiper@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <Kernel/Arch/aarch64/RPi/UART.h>
#include <Kernel/kstdio.h>
// FIXME: Merge the code in this file with Kernel/kprintf.cpp once the proper abstractions are in place.
void kernelputstr(char const* characters, size_t)
{
if (!characters)
return;
auto& uart = Prekernel::UART::the();
uart.print_str(characters);
}
void kernelcriticalputstr(char const* characters, size_t)
{
if (!characters)
return;
auto& uart = Prekernel::UART::the();
uart.print_str(characters);
}
void kernelearlyputstr(char const* characters, size_t)
{
if (!characters)
return;
auto& uart = Prekernel::UART::the();
uart.print_str(characters);
}

View file

@ -415,6 +415,7 @@ else()
Arch/aarch64/BootPPMParser.cpp
Arch/aarch64/CrashHandler.cpp
Arch/aarch64/Dummy.cpp
Arch/aarch64/kprintf.cpp
Arch/aarch64/MainIdRegister.cpp
Arch/aarch64/PageDirectory.cpp
Arch/aarch64/ScopedCritical.cpp