21#include "pedigree/kernel/Log.h"
22#include "pedigree/kernel/machine/Bus.h"
23#include "pedigree/kernel/machine/Controller.h"
24#include "pedigree/kernel/machine/Device.h"
25#include "pedigree/kernel/machine/Disk.h"
26#include "pedigree/kernel/panic.h"
28#include "../../core/processor/hosted/InterruptManager.h"
33 return HostedMachine::instance();
37 HostedIrqManager::instance().initialise();
41 if (!HostedTimer::instance().initialise1()) {
42 panic(
"HostedMachine: timer preparation failed");
45 panic(
"HostedMachine: scheduler timer initialisation failed");
49 m_bInitialised =
true;
56 panic(
"HostedMachine: timer bottom-half initialisation failed");
61 if (!m_bInitialised) {
70 NOTICE(
"HOSTED-SHUTDOWN: timers and signals quiesced");
90 return &HostedIrqManager::instance();
98 return &HostedTimer::instance();
static void quiesceProcessor()
HostedMachine() INITIALISATION_ONLY
virtual void setKeyboard(Keyboard *kb)
virtual void initialiseDeviceTree()
virtual void initialise3()
Called after processor startup - for thread creation etc.
MUST_USE_RESULT bool quiesceAllOtherProcessors() override
virtual size_t getNumSerial()
MUST_USE_RESULT bool resumeAllOtherProcessors() override
virtual Keyboard * getKeyboard()
virtual Timer * getTimer()
MUST_USE_RESULT bool stopAllOtherProcessors() override
virtual void deinitialise()
virtual Vga * getVga(size_t n)
virtual Serial * getSerial(size_t n)
virtual size_t getNumVga()
virtual SchedulerTimer * getSchedulerTimer()
virtual void initialise() INITIALISATION_ONLY
static HostedSchedulerTimer & instance()
virtual void setBase(uintptr_t nBaseAddr)
virtual void initialise()=0
virtual void deinitialise()
void EXPORTED_PUBLIC panic(const char *msg) NORETURN