The Pedigree Project  0.1
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
Machine Class Referenceabstract

#include <Machine.h>

+ Inheritance diagram for Machine:
+ Collaboration diagram for Machine:

Public Member Functions

virtual void initialise ()=0
 
virtual void initialise2 ()
 Called after debugger startup.
 
virtual void initialise3 ()
 Called after processor startup - for thread creation etc.
 
virtual void deinitialise ()
 
bool isInitialised ()
 
virtual void initialiseDeviceTree ()
 
virtual SerialgetSerial (size_t n)=0
 
virtual size_t getNumSerial ()=0
 
virtual VgagetVga (size_t n)=0
 
virtual size_t getNumVga ()=0
 
virtual IrqManagergetIrqManager ()=0
 
virtual SchedulerTimergetSchedulerTimer ()=0
 
virtual TimergetTimer ()=0
 
virtual KeyboardgetKeyboard ()=0
 
virtual void setKeyboard (Keyboard *kb)=0
 

Static Public Member Functions

static Machineinstance ()
 

Protected Attributes

bool m_bInitialised
 

Private Member Functions

 Machine (const Machine &)
 
Machineoperator= (const Machine &)
 

Friends

void system_reset ()
 

Detailed Description

This is an abstraction on a machine, or board. It provides functions to retrieve Timers, Serial controllers, VGA controllers, Ethernet controllers etc, without having to know the exact implementation required or memory map. It also provides a "probe" function, which will attempt to detect if a machine is present.

Definition at line 41 of file include/pedigree/kernel/machine/Machine.h.

Member Function Documentation

virtual Keyboard* Machine::getKeyboard ( )
pure virtual

Returns the keyboard device.

Implemented in Pc, HostedMachine, ArmBeagle, Mac, ArmVersatile, Bonito64, and Malta.

Referenced by Debugger::start().

+ Here is the caller graph for this function:

virtual size_t Machine::getNumSerial ( )
pure virtual

Returns the number of Serial device.

Implemented in Pc, HostedMachine, ArmBeagle, Mac, ArmVersatile, Bonito64, Malta, and Db1500.

virtual size_t Machine::getNumVga ( )
pure virtual

Returns the number of VGA devices.

Implemented in Pc, HostedMachine, ArmBeagle, Mac, ArmVersatile, Bonito64, Malta, and Db1500.

Referenced by FramebufferFile::command().

+ Here is the caller graph for this function:

virtual SchedulerTimer* Machine::getSchedulerTimer ( )
pure virtual

Returns the SchedulerTimer device.

Implemented in Pc, HostedMachine, ArmBeagle, Mac, ArmVersatile, Bonito64, Malta, and Db1500.

Referenced by PerProcessorScheduler::initialise().

+ Here is the caller graph for this function:

virtual Serial* Machine::getSerial ( size_t  n)
pure virtual

Returns the n'th Serial device.

Implemented in Pc, HostedMachine, ArmBeagle, Mac, ArmVersatile, Bonito64, Malta, and Db1500.

Referenced by SlamCommand::execute(), BootIO::initialise(), HostedTimer::irq(), and Rtc::irq().

+ Here is the caller graph for this function:

virtual Timer* Machine::getTimer ( )
pure virtual
virtual Vga* Machine::getVga ( size_t  n)
pure virtual

Returns the n'th VGA device.

Implemented in Pc, HostedMachine, ArmBeagle, Mac, ArmVersatile, Bonito64, Malta, and Db1500.

Referenced by FramebufferFile::command(), BootIO::initialise(), TextIO::initialise(), VbeDisplay::setScreenMode(), and VmwareGraphics::setScreenMode().

+ Here is the caller graph for this function:

virtual void Machine::initialise ( )
pure virtual

Initialises the machine.

Implemented in Pc, HostedMachine, Mac, ArmBeagle, ArmVersatile, Bonito64, Malta, and Db1500.

virtual void Machine::initialiseDeviceTree ( )
inlinevirtual

Initialises the machine's base device tree, if one exists, to prefill the tree with those devices that are not otherwise able to be detected via some sort of bus support.

Reimplemented in Pc, ArmBeagle, Mac, ArmVersatile, and HostedMachine.

Definition at line 74 of file include/pedigree/kernel/machine/Machine.h.

virtual void Machine::setKeyboard ( Keyboard kb)
pure virtual

Sets the keyboard device.

Implemented in Pc, HostedMachine, ArmBeagle, and ArmVersatile.


The documentation for this class was generated from the following files: