20#include "pedigree/kernel/Log.h"
21#include "pedigree/kernel/Spinlock.h"
22#include "pedigree/kernel/machine/Machine.h"
23#include "pedigree/kernel/machine/Serial.h"
24#include "pedigree/kernel/utilities/Cord.h"
31 virtual void callback(
const LogCord& cord,
bool locked =
true);
41void installSerialLogger() {
45SerialLogger::SerialLogger() : m_pSerial(nullptr), m_bInitialised(false), m_Lock(false) {}
47SerialLogger::~SerialLogger() {
51void SerialLogger::callback(
const LogCord& cord,
bool locked) {
52 if (!m_bInitialised) {
53 m_bInitialised = Machine::instance().isInitialised();
54 if (!m_bInitialised) {
57 m_pSerial = Machine::instance().
getSerial(0);
64 m_pSerial->write_str(cord);
70 m_pSerial->write(
'\r');
EXPORTED_PUBLIC bool removeCallback(LogCallback *pCallback)
static EXPORTED_PUBLIC Log & instance()
EXPORTED_PUBLIC bool installCallback(LogCallback *pCallback, bool bSkipBacklog=false)
virtual Serial * getSerial(size_t n)=0
bool acquire(bool recurse=false, bool safe=true)