aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-01-15 15:03:26 +0100
committerFelix Morgner <felix.morgner@ost.ch>2026-01-15 15:03:26 +0100
commitf8fdbe0f1cecabc303c472d7347ab7b6ec211f05 (patch)
treecc21c64217e3c5cb9512e91e9b5ec95998b10314 /arch/x86_64/include
parent693cedc76b061810dfc0dc55e3966d6bf849f397 (diff)
downloadteachos-f8fdbe0f1cecabc303c472d7347ab7b6ec211f05.tar.xz
teachos-f8fdbe0f1cecabc303c472d7347ab7b6ec211f05.zip
x86_64/debug: add missing documentation
Diffstat (limited to 'arch/x86_64/include')
-rw-r--r--arch/x86_64/include/x86_64/debug/qemu_output.hpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/x86_64/include/x86_64/debug/qemu_output.hpp b/arch/x86_64/include/x86_64/debug/qemu_output.hpp
index 759a66b..6ff4da6 100644
--- a/arch/x86_64/include/x86_64/debug/qemu_output.hpp
+++ b/arch/x86_64/include/x86_64/debug/qemu_output.hpp
@@ -9,15 +9,30 @@
namespace teachos::debug::x86_64
{
+
+ //! A QEMU debug console output device.
+ //!
+ //! This device implements output to the port 0xE9 debug console present in QEMU in Bochs. It is designed to wrap a
+ //! different output device (e.g. a VGA text output device) and forwards the written data accordingly.
+ //!
+ //! @note Support for the device has to be enabled when the emulator is started. Since there is no reliable way to
+ //! detect the presence of the port, writes will still happen even if the device is not enabled in the emulator. It is
+ //! thus possible that the output is simply lost.
struct qemu_output : cio::output_device
{
+ //! The port to write to.
using dbg = io::x86_64::port<0xE9, char, io::x86_64::port_write>;
- qemu_output(output_device & lower);
+ //! Construct a new debug device wrapper for the given output device.
+ //!
+ //! @param lower The device to forward the output to.
+ explicit qemu_output(output_device & lower);
+ //! @copydoc cio::output_device
auto write(cio::output_stream stream, std::string_view text) -> void override;
private:
+ //! The device to forward the output to.
output_device & m_lower;
};