ladybird/Kernel/Devices/DebugLogDevice.cpp
Andreas Kling 3817f5f619 Kernel+LibC: Add a DebugLogDevice that forwards everything to I/O port 0xe9.
This is then used to implement the userspace dbgprintf() in a far more
efficient way than what we had before. :^)
2019-04-18 16:08:52 +02:00

28 lines
480 B
C++

#include <Kernel/Devices/DebugLogDevice.h>
#include <Kernel/IO.h>
static DebugLogDevice* s_the;
DebugLogDevice& DebugLogDevice::the()
{
ASSERT(s_the);
return *s_the;
}
DebugLogDevice::DebugLogDevice()
: CharacterDevice(1, 18)
{
s_the = this;
}
DebugLogDevice::~DebugLogDevice()
{
}
ssize_t DebugLogDevice::write(Process&, const byte* data, ssize_t data_size)
{
for (int i = 0; i < data_size; ++i)
IO::out8(0xe9, data[i]);
return data_size;
}