Overview   API Reference  

machine_base Struct Reference

Class implementing basic machine functionality, common for all architectures. More...

#include <machine_base.hpp>

Inheritance diagram for machine_base:

Inheritance graph
[legend]
Collaboration diagram for machine_base:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 machine_base (const l4_threadid_t client=l4_myself())
virtual int init_machine (const machine_config &config, config_node *config_tree=nullptr)
virtual int reset (void)
virtual int set_emulation_mode (l4vmm_emulation_modes mode)
virtual pci_deviceget_pci_device (pci_devfn devfn)
const machine_configget_config (void) const
virtual int request_host_resources (const resource_descriptor &resource, bool verbose=VERBOSE_HOST_RESOURCES)
virtual int request_host_resources (config_node &host_node, bool verbose=VERBOSE_HOST_RESOURCES)
virtual void print_legacy_devices (const char *header=nullptr)
virtual void print_pci_devices (const char *header=nullptr)
virtual void print_machine_state (bool in_destruction=false)

Static Public Attributes

static const bool VERBOSE_HOST_RESOURCES = true
static const int NO_DEVICE_FOUND = 0xffff

Protected Member Functions

virtual const char * name (void) const =0
virtual pci_bridgeget_host_bridge (void)=0
virtual int set_option (config_node &option_node)
virtual int create_device (config_node &device_node)
virtual int parse_machine_section (config_node &machine_node)
virtual int request_host_ports (config_node &port_node, bool verbose=VERBOSE_HOST_RESOURCES)
virtual int request_host_memory (config_node &memory_node, bool verbose=VERBOSE_HOST_RESOURCES)
virtual int request_host_irqs (config_node &irq_node, bool verbose=VERBOSE_HOST_RESOURCES)
virtual int request_host_groups (config_node &group_node, bool verbose=VERBOSE_HOST_RESOURCES)
virtual int request_host_list (config_node &list_node, host_option::request_func_ptr request_func, bool verbose=VERBOSE_HOST_RESOURCES)

Protected Attributes

machine_config config
 The machine's configuration struct.
device_container< devicelegacy_devices
 Container to store all legacy devices.
host_resource_owner host_owner
 Dummy object to own all pre-allocated physical resources.

Static Protected Attributes

static struct
machine_base::host_option 
host_options []

Private Member Functions

template<typename DeviceT, typename ContainerT>
int create_device (ContainerT &container, config_node &device_node)

Classes

struct  host_option


Detailed Description

Class implementing basic machine functionality, common for all architectures.

Inherits from resource management classes and adds functions to configure and initialize the machine.


Member Data Documentation

The machine's configuration struct.

Should be the only one. All other classes (including bases) should reference it.

Reimplemented from iospace_manager.

Container to store all legacy devices.

(PCI devices are stored in the host-to-PCI bridge, a derived class has to own.)

Dummy object to own all pre-allocated physical resources.

Enters the kernel debugger, if one of its handler functions is ever called.

const machine_base::host_option machine_base::host_options [static, protected]

Initial value:

{
    
    {name: "groups", request_func: &machine_base::request_host_groups},
    {name: "group",  request_func: &machine_base::request_host_groups},
    
    {name: "ports",  request_func: &machine_base::request_host_ports},
    {name: "port",   request_func: &machine_base::request_host_ports},
    {name: "memory", request_func: &machine_base::request_host_memory},
    {name: "irqs",   request_func: &machine_base::request_host_irqs},
    {name: "irq",    request_func: &machine_base::request_host_irqs}
}


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

L4vmm Reference Manual, written by Mario Schwalbe  © 2006-2008