#include <machine_base.hpp>


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_device * | get_pci_device (pci_devfn devfn) |
| const machine_config & | get_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_bridge & | get_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< device > | legacy_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 |
Inherits from resource management classes and adds functions to configure and initialize the machine.
machine_config machine_base::config [protected] |
The machine's configuration struct.
Should be the only one. All other classes (including bases) should reference it.
Reimplemented from iospace_manager.
device_container<device> machine_base::legacy_devices [protected] |
Container to store all legacy devices.
(PCI devices are stored in the host-to-PCI bridge, a derived class has to own.)
host_resource_owner machine_base::host_owner [protected] |
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}
}