6b289a1423
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 |
||
---|---|---|
.. | ||
accloff | ||
frontend | ||
include | ||
muen | ||
nova | ||
patches | ||
spec | ||
audiodrv.cpp | ||
devices.cc | ||
devxhci.cc | ||
drivers.cc | ||
dummies.cc | ||
dynlib.cc | ||
guest_memory.h | ||
hm.cc | ||
iommio.cc | ||
ioport.cc | ||
libc.cc | ||
logger.cc | ||
mm.cc | ||
mm.h | ||
network.cpp | ||
pdm.cc | ||
pgm.cc | ||
README | ||
rt.cc | ||
sup.cc | ||
sup.h | ||
target.inc | ||
target.mk | ||
thread.cc | ||
unimpl.cc | ||
util.h | ||
vmm_memory.h | ||
vmm_region.h | ||
vmm.h |
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.