genode/repos/ports/src/virtualbox
Norman Feske 6b289a1423 base/core: use references instead of pointers
This patch replaces the former prominent use of pointers by references
wherever feasible. This has the following benefits:

* The contract between caller and callee becomes more obvious. When
  passing a reference, the contract says that the argument cannot be
  a null pointer. The caller is responsible to ensure that. Therefore,
  the use of reference eliminates the need to add defensive null-pointer
  checks at the callee site, which sometimes merely exist to be on the
  safe side. The bottom line is that the code becomes easier to follow.

* Reference members must be initialized via an object initializer,
  which promotes a programming style that avoids intermediate object-
  construction states. Within core, there are still a few pointers
  as member variables left though. E.g., caused by the late association
  of 'Platform_thread' objects with their 'Platform_pd' objects.

* If no pointers are present as member variables, we don't need to
  manually provide declarations of a private copy constructor and
  an assignment operator to avoid -Weffc++ errors "class ... has
  pointer data members [-Werror=effc++]".

This patch also changes a few system bindings on NOVA and Fiasco.OC,
e.g., the return value of the global 'cap_map' accessor has become a
reference. Hence, the patch touches a few places outside of core.

Fixes #3135
2019-02-12 10:33:13 +01:00
..
accloff vbox: adjust to 'pthread_attr' removal in pthread 2018-05-30 13:36:05 +02:00
frontend os: new Input::Event representation 2018-05-03 15:31:25 +02:00
include vbox5: update to 5.1.22 2017-05-31 13:16:02 +02:00
muen Exclude higher-level repos from strict warnings 2018-01-17 12:14:36 +01:00
nova Exclude higher-level repos from strict warnings 2018-01-17 12:14:36 +01:00
patches vbox4/5: enable key/value store for guest addition 2017-05-31 13:16:00 +02:00
spec base/core: use references instead of pointers 2019-02-12 10:33:13 +01:00
audiodrv.cpp use Attached_dataspace at audio streams 2017-01-13 13:07:10 +01:00
devices.cc Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
devxhci.cc qemu-usb: avoid env deprecated warnings 2017-02-28 12:59:30 +01:00
drivers.cc Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
dummies.cc vbox4/5: enable key/value store for guest addition 2017-05-31 13:16:00 +02:00
dynlib.cc vbox4/5: enable key/value store for guest addition 2017-05-31 13:16:00 +02:00
guest_memory.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
hm.cc Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
iommio.cc Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
ioport.cc Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
libc.cc Merge pthread into libc library 2018-11-29 11:46:01 +01:00
logger.cc Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
mm.cc vbox4/5: enable key/value store for guest addition 2017-05-31 13:16:00 +02:00
mm.h base: support to attach RAM dataspaces readonly 2018-05-30 13:36:27 +02:00
network.cpp Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
pdm.cc Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
pgm.cc Streamline exception types 2017-05-31 13:16:07 +02:00
README vbox: support capslock state provided by ROM 2017-11-24 09:07:31 +01:00
rt.cc base: use 'Ram_quota' in 'Ram_session' args 2017-05-31 13:16:04 +02:00
sup.cc base: use 'Ram_quota' in 'Ram_session' args 2017-05-31 13:16:04 +02:00
sup.h vbox: adjust to 'pthread_attr' removal in pthread 2018-05-30 13:36:05 +02:00
target.inc Merge pthread into libc library 2018-11-29 11:46:01 +01:00
target.mk Exclude higher-level repos from strict warnings 2018-01-17 12:14:36 +01:00
thread.cc Merge pthread into libc library 2018-11-29 11:46:01 +01:00
unimpl.cc vbox: support symlinks on host file system 2018-01-17 12:14:43 +01:00
util.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
vmm_memory.h Streamline exception types 2017-05-31 13:16:07 +02:00
vmm_region.h vbox: attach executable memory as such 2017-10-19 13:46:41 +02:00
vmm.h vbox: avoid using deprecated env() 2017-01-13 13:07:08 +01:00

VirtualBox configuration options
################################

The configuration requires an attribute named vbox_file with the name of the
vbox configuration to be used (.vbox).

<config vbox_file="file.vbox">

XHCI controller
===============

The virtual XHCI controller can be enabled with the following
configuration option:

<config xhci="yes">

IOAPIC
======

The virtual PCI model delivers IRQs to the PIC by default and to the IOAPIC
only if the guest operating system selected the IOAPIC with the '_PIC' ACPI
method and if it called the '_PRT' ACPI method afterwards. When running a
guest operating system which uses the IOAPIC, but does not call these ACPI
methods (for example Genode/NOVA), the configuration option

<config force_ioapic="yes">

enforces the delivery of PCI IRQs to the IOAPIC.

CAPSLOCK
========

<config capslock="ROM">

If the capslock attribute is set to "ROM", virtualbox will open a connection
to the ROM named "capslock" and expect in the top-level node a attribute
'enabled' (yes|no). If the ROM capslock differ from the internal VM capslock,
the VMM will trigger aritifical capslock key events to the VM.