vbox: update to 5.1.8

Issue #2059
This commit is contained in:
Alexander Boettcher 2016-08-17 12:07:19 +02:00 committed by Christian Helmuth
parent ca3be471a9
commit f4a7223bbf
30 changed files with 405 additions and 169 deletions

View File

@ -4,27 +4,29 @@ ifeq ($(shell which yasm),)
REQUIRES += installation_of_yasm REQUIRES += installation_of_yasm
endif endif
SRC_O += VBoxPcBiosBin.o VBoxVgaBiosBin.o VBoxBiosLogoBin.o SRC_O += VBoxPcBiosBinary8086.o VBoxPcBiosBinary286.o VBoxPcBiosBinary386.o
SRC_O += VBoxVgaBiosBinary8086.o VBoxVgaBiosBinary286.o VBoxVgaBiosBinary386.o
SRC_O += XVBoxBiosLogoBin.o
VBox%Bin.o : VBox%Bin.rom VBox%.o : VBox%.rom
$(MSG_CONVERT)$@ $(MSG_CONVERT)$@
$(VERBOSE)echo ".global g_ab$*Binary, g_cb$*Binary;" \ $(VERBOSE)echo ".global g_ab$*, g_cb$*;" \
".data;" \ ".data;" \
"g_cb$*Binary:; .long g_ab$*BinaryEnd - g_ab$*Binary;" \ "g_cb$*:; .long g_ab$*End - g_ab$*;" \
".align 4096;" \ ".align 4096;" \
"g_ab$*Binary:; .incbin \"$<\";" \ "g_ab$*:; .incbin \"$<\";" \
"g_ab$*BinaryEnd:;" | \ "g_ab$*End:;" | \
$(AS) $(AS_OPT) -f -o $@ - $(AS) $(AS_OPT) -f -o $@ -
VBoxPcBiosBin.rom: Devices/PC/BIOS/VBoxBiosAlternative.asm VBoxPcBiosBinary%.rom: Devices/PC/BIOS/VBoxBiosAlternative%.asm
$(MSG_ASSEM) $(MSG_ASSEM)
$(VERBOSE)yasm -f bin -o $@ $< $(VERBOSE)yasm -f bin -o $@ $<
VBoxVgaBiosBin.rom: Devices/Graphics/BIOS/VBoxVgaBiosAlternative.asm VBoxVgaBiosBinary%.rom: Devices/Graphics/BIOS/VBoxVgaBiosAlternative%.asm
$(MSG_ASSEM) $(MSG_ASSEM)
$(VERBOSE)yasm -f bin -o $@ $< $(VERBOSE)yasm -f bin -o $@ $<
VBoxBiosLogoBin.o: Devices/Graphics/BIOS/ose_logo.bmp XVBoxBiosLogoBin.o: Devices/Graphics/BIOS/ose_logo.bmp
$(MSG_CONVERT)$@ $(MSG_CONVERT)$@
$(VERBOSE)echo ".global g_abVgaDefBiosLogo, g_cbVgaDefBiosLogo;" \ $(VERBOSE)echo ".global g_abVgaDefBiosLogo, g_cbVgaDefBiosLogo;" \
".data;" \ ".data;" \

View File

@ -43,7 +43,9 @@ VBOX_CC_OPT += -DRTLOG_REL_ENABLED -DRT_STRICT -DVBOX_STRICT
VBOX_CC_OPT += -DVBOX_WITH_USB -DVBOX_WITH_VUSB VBOX_CC_OPT += -DVBOX_WITH_USB -DVBOX_WITH_VUSB
# Enable Intel Network model E1000 VBOX_CC_OPT += -DVBOX_WITH_NEW_APIC
VBOX_CC_OPT += -DVBOX_WITH_NEW_IOAPIC
VBOX_CC_OPT += -DVBOX_WITH_E1000 VBOX_CC_OPT += -DVBOX_WITH_E1000
VBOX_CC_OPT += -DVBOX_WITH_AHCI VBOX_CC_OPT += -DVBOX_WITH_AHCI

View File

@ -8,6 +8,7 @@ SRC_CC += Devices/PC/ACPI/VBoxAcpi.cpp
SRC_C += Devices/PC/DevPcArch.c SRC_C += Devices/PC/DevPcArch.c
SRC_CC += Devices/Input/DevPS2.cpp SRC_CC += Devices/Input/DevPS2.cpp
SRC_CC += Devices/Input/PS2K.cpp SRC_CC += Devices/Input/PS2K.cpp
SRC_CC += Devices/Input/PS2M.cpp
SRC_CC += Devices/PC/DevPit-i8254.cpp SRC_CC += Devices/PC/DevPit-i8254.cpp
SRC_CC += Devices/PC/DevPIC.cpp SRC_CC += Devices/PC/DevPIC.cpp
SRC_CC += Devices/PC/DevRTC.cpp SRC_CC += Devices/PC/DevRTC.cpp
@ -23,7 +24,8 @@ SRC_CC += Devices/Storage/ATAPIPassthrough.cpp
SRC_CC += Devices/Storage/DevAHCI.cpp SRC_CC += Devices/Storage/DevAHCI.cpp
SRC_CC += Devices/Storage/DevATA.cpp SRC_CC += Devices/Storage/DevATA.cpp
SRC_CC += Devices/Storage/Debug.cpp SRC_CC += Devices/Storage/Debug.cpp
SRC_CC += Devices/Storage/DevFdc.c SRC_C += Devices/Storage/DevFdc.c
SRC_CC += Devices/Storage/IOBufMgmt.cpp
SRC_CC += Devices/Network/DevE1000.cpp SRC_CC += Devices/Network/DevE1000.cpp
SRC_CC += Devices/Network/DevE1000Phy.cpp SRC_CC += Devices/Network/DevE1000Phy.cpp
SRC_CC += Devices/Network/DevEEPROM.cpp SRC_CC += Devices/Network/DevEEPROM.cpp
@ -41,18 +43,20 @@ SRC_CC += Devices/Audio/DevIchHdaCodec.cpp
SRC_CC += Devices/Audio/DrvAudioCommon.cpp SRC_CC += Devices/Audio/DrvAudioCommon.cpp
SRC_CC += Devices/USB/DevOHCI.cpp SRC_CC += Devices/USB/DevOHCI.cpp
SRC_CC += Devices/USB/USBProxyDevice.cpp SRC_CC += Devices/USB/USBProxyDevice.cpp
SRC_CC += Devices/USB/VUSBBufferedPipe.cpp
SRC_CC += Devices/USB/VUSBDevice.cpp SRC_CC += Devices/USB/VUSBDevice.cpp
SRC_CC += Devices/USB/VUSBReadAhead.cpp
SRC_CC += Devices/USB/VUSBSniffer.cpp SRC_CC += Devices/USB/VUSBSniffer.cpp
SRC_CC += Devices/USB/VUSBSnifferPcapNg.cpp
SRC_CC += Devices/USB/VUSBSnifferUsbMon.cpp
SRC_CC += Devices/USB/VUSBSnifferVmx.cpp
SRC_CC += Devices/USB/VUSBUrb.cpp SRC_CC += Devices/USB/VUSBUrb.cpp
SRC_CC += Devices/USB/VUSBUrbPool.cpp
SRC_CC += Devices/USB/VUSBUrbTrace.cpp
SRC_CC += Devices/Input/UsbMouse.cpp SRC_CC += Devices/Input/UsbMouse.cpp
SRC_CC += Devices/Input/UsbKbd.cpp SRC_CC += Devices/Input/UsbKbd.cpp
SRC_CC += Devices/build/VBoxDD.cpp SRC_CC += Devices/build/VBoxDD.cpp
SRC_CC += devxhci.cc
vpath devxhci.cc $(REP_DIR)/src/virtualbox
SRC_CC += GuestHost/HGSMI/HGSMICommon.cpp SRC_CC += GuestHost/HGSMI/HGSMICommon.cpp
SRC_CC += GuestHost/HGSMI/HGSMIMemAlloc.cpp SRC_CC += GuestHost/HGSMI/HGSMIMemAlloc.cpp

View File

@ -9,15 +9,13 @@ VBOX_CC_OPT += -include base/log.h
SRC_CC += Devices/Input/DrvKeyboardQueue.cpp SRC_CC += Devices/Input/DrvKeyboardQueue.cpp
SRC_CC += Devices/Input/DrvMouseQueue.cpp SRC_CC += Devices/Input/DrvMouseQueue.cpp
SRC_CC += Devices/USB/DrvVUSBRootHub.cpp SRC_CC += Devices/USB/DrvVUSBRootHub.cpp
SRC_CC += Devices/Storage/DrvBlock.cpp
SRC_CC += Devices/Storage/DrvMediaISO.cpp
SRC_CC += Devices/Storage/DrvVD.cpp SRC_CC += Devices/Storage/DrvVD.cpp
SRC_CC += Devices/Storage/DrvRawImage.cpp
SRC_CC += Devices/PC/DrvACPI.cpp SRC_CC += Devices/PC/DrvACPI.cpp
SRC_CC += Devices/Serial/DrvChar.cpp SRC_CC += Devices/Serial/DrvChar.cpp
SRC_CC += Devices/Serial/DrvRawFile.cpp SRC_CC += Devices/Serial/DrvRawFile.cpp
SRC_CC += Devices/Serial/DrvHostSerial.cpp SRC_CC += Devices/Serial/DrvHostSerial.cpp
SRC_CC += Devices/Audio/DrvAudio.cpp SRC_CC += Devices/Audio/DrvAudio.cpp
SRC_CC += Devices/Audio/DrvHostNullAudio.cpp
#SRC_CC += audiodrv.cpp #SRC_CC += audiodrv.cpp
SRC_CC += network.cpp SRC_CC += network.cpp

View File

@ -23,6 +23,7 @@ SRC_CC += Main/src-all/PCIDeviceAttachmentImpl.cpp
SRC_CC += Main/src-all/ProgressImpl.cpp SRC_CC += Main/src-all/ProgressImpl.cpp
SRC_CC += Main/src-all/SecretKeyStore.cpp SRC_CC += Main/src-all/SecretKeyStore.cpp
SRC_CC += Main/src-all/SharedFolderImpl.cpp SRC_CC += Main/src-all/SharedFolderImpl.cpp
SRC_CC += Main/src-all/ThreadTask.cpp
SRC_CC += Main/src-all/VirtualBoxBase.cpp SRC_CC += Main/src-all/VirtualBoxBase.cpp
SRC_CC += Main/src-client/AdditionsFacilityImpl.cpp SRC_CC += Main/src-client/AdditionsFacilityImpl.cpp
@ -43,13 +44,14 @@ SRC_CC += Main/src-client/HGCMThread.cpp
SRC_CC += Main/src-client/KeyboardImpl.cpp SRC_CC += Main/src-client/KeyboardImpl.cpp
SRC_CC += Main/src-client/MachineDebuggerImpl.cpp SRC_CC += Main/src-client/MachineDebuggerImpl.cpp
SRC_CC += Main/src-client/MouseImpl.cpp SRC_CC += Main/src-client/MouseImpl.cpp
SRC_CC += Main/src-client/Nvram.cpp
SRC_CC += Main/src-client/RemoteUSBBackend.cpp SRC_CC += Main/src-client/RemoteUSBBackend.cpp
SRC_CC += Main/src-client/RemoteUSBDeviceImpl.cpp SRC_CC += Main/src-client/RemoteUSBDeviceImpl.cpp
SRC_CC += Main/src-client/SessionImpl.cpp SRC_CC += Main/src-client/SessionImpl.cpp
SRC_CC += Main/src-client/USBDeviceImpl.cpp
SRC_CC += Main/src-client/UsbWebcamInterface.cpp SRC_CC += Main/src-client/UsbWebcamInterface.cpp
SRC_CC += Main/src-client/VBoxDriversRegister.cpp SRC_CC += Main/src-client/VBoxDriversRegister.cpp
SRC_CC += Main/src-client/VMMDevInterface.cpp SRC_CC += Main/src-client/VMMDevInterface.cpp
SRC_CC += Main/src-client/USBDeviceImpl.cpp
SRC_CC += Main/src-server/AudioAdapterImpl.cpp SRC_CC += Main/src-server/AudioAdapterImpl.cpp
SRC_CC += Main/src-server/BandwidthControlImpl.cpp SRC_CC += Main/src-server/BandwidthControlImpl.cpp

View File

@ -10,6 +10,8 @@ GENERIC_SRC_CC = $(notdir $(wildcard $(VBOX_DIR)/Runtime/generic/*.cpp))
FILTERED_OUT_SRC_CC = fs-stubs-generic.cpp \ FILTERED_OUT_SRC_CC = fs-stubs-generic.cpp \
http-curl.cpp \ http-curl.cpp \
mppresent-generic.cpp \
mppresent-generic-online.cpp \
semrw-lockless-generic.cpp \ semrw-lockless-generic.cpp \
tls-generic.cpp \ tls-generic.cpp \
RTDirExists-generic.cpp \ RTDirExists-generic.cpp \
@ -52,6 +54,7 @@ SRC_CC += Runtime/common/log/logformat.cpp
SRC_CC += Runtime/common/misc/assert.cpp SRC_CC += Runtime/common/misc/assert.cpp
SRC_CC += Runtime/common/misc/buildconfig.cpp SRC_CC += Runtime/common/misc/buildconfig.cpp
SRC_CC += Runtime/common/misc/cidr.cpp SRC_CC += Runtime/common/misc/cidr.cpp
SRC_CC += Runtime/common/misc/circbuf.cpp
SRC_CC += Runtime/common/misc/lockvalidator.cpp SRC_CC += Runtime/common/misc/lockvalidator.cpp
SRC_CC += Runtime/common/misc/once.cpp SRC_CC += Runtime/common/misc/once.cpp
SRC_CC += Runtime/common/misc/req.cpp SRC_CC += Runtime/common/misc/req.cpp
@ -71,6 +74,7 @@ SRC_CC += Runtime/common/path/RTPathAbsDup.cpp
SRC_CC += Runtime/common/path/RTPathAbsEx.cpp SRC_CC += Runtime/common/path/RTPathAbsEx.cpp
SRC_CC += Runtime/common/path/RTPathAppendEx.cpp SRC_CC += Runtime/common/path/RTPathAppendEx.cpp
SRC_CC += Runtime/common/path/RTPathCalcRelative.cpp SRC_CC += Runtime/common/path/RTPathCalcRelative.cpp
SRC_CC += Runtime/common/path/RTPathEnsureTrailingSeparator.cpp
SRC_CC += Runtime/common/path/RTPathExt.cpp SRC_CC += Runtime/common/path/RTPathExt.cpp
SRC_CC += Runtime/common/path/RTPathFilename.cpp SRC_CC += Runtime/common/path/RTPathFilename.cpp
SRC_CC += Runtime/common/path/RTPathHasPath.cpp SRC_CC += Runtime/common/path/RTPathHasPath.cpp
@ -161,6 +165,7 @@ SRC_S += Runtime/common/asm/ASMAtomicUoReadU64.as
SRC_S += Runtime/common/asm/ASMAtomicXchgU64.asm SRC_S += Runtime/common/asm/ASMAtomicXchgU64.asm
SRC_S += Runtime/common/asm/ASMCpuIdExSlow.asm SRC_S += Runtime/common/asm/ASMCpuIdExSlow.asm
SRC_S += Runtime/common/asm/ASMGetXcr0.asm SRC_S += Runtime/common/asm/ASMGetXcr0.asm
SRC_S += Runtime/common/asm/ASMMemFirstMismatchingU8.asm
SRC_CC += Runtime/common/err/errmsg.cpp SRC_CC += Runtime/common/err/errmsg.cpp
Runtime/common/err/errmsg.o: errmsgdata.h Runtime/common/err/errmsg.o: errmsgdata.h

View File

@ -85,6 +85,9 @@ SRC_CC += VMM/VMMR3/IOM.cpp
SRC_CC += VMM/VMMAll/IOMAll.cpp SRC_CC += VMM/VMMAll/IOMAll.cpp
SRC_CC += VMM/VMMAll/IOMAllMMIO.cpp SRC_CC += VMM/VMMAll/IOMAllMMIO.cpp
SRC_CC += VMM/VMMR3/APIC.cpp
SRC_CC += VMM/VMMAll/APICAll.cpp
CC_OPT += -DVBOX_IN_VMM CC_OPT += -DVBOX_IN_VMM
# definitions needed by SSM.cpp # definitions needed by SSM.cpp

View File

@ -1 +1 @@
7ebd52c12b8c8d332d348cea047c38640cb57c81 6c256743d02114e0e47001386465def6e01e0c03

View File

@ -1,17 +1,17 @@
LICENSE := GPLv2 LICENSE := GPLv2
VERSION := 5.0.26 VERSION := 5.1.8
DOWNLOADS := virtualbox.archive virtualbox_sdk.archive DOWNLOADS := virtualbox.archive virtualbox_sdk.archive
VIRTUALBOX_TBZ2 := VirtualBox-$(VERSION).tar.bz2 VIRTUALBOX_TBZ2 := VirtualBox-$(VERSION).tar.bz2
VIRTUALBOX_SDK_ZIP := VirtualBoxSDK-$(VERSION)-108824.zip VIRTUALBOX_SDK_ZIP := VirtualBoxSDK-$(VERSION)-111374.zip
URL(virtualbox) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_TBZ2) URL(virtualbox) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_TBZ2)
DIR(virtualbox) := src/app/virtualbox DIR(virtualbox) := src/app/virtualbox
SHA(virtualbox) := 5e58c952f010b679a80ba3ce7ccb2641895f515f SHA(virtualbox) := fe968ecbe9f8945220dbd388971cd1ce596cfd22
URL(virtualbox_sdk) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_SDK_ZIP) URL(virtualbox_sdk) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_SDK_ZIP)
DIR(virtualbox_sdk) := src/app/virtualbox_sdk DIR(virtualbox_sdk) := src/app/virtualbox_sdk
SHA(virtualbox_sdk) := 8c03425d13095a951725d763a8a3a6f51a64ed67 SHA(virtualbox_sdk) := c7ffc8d179b43ffc7e05011a22c44577da4fde4a
PATCHES_DIR := src/virtualbox5/patches PATCHES_DIR := src/virtualbox5/patches
PATCHES_DIR_VBOX4 := src/virtualbox/patches PATCHES_DIR_VBOX4 := src/virtualbox/patches
@ -27,7 +27,7 @@ VBOX_MAIN_GLUE := AutoLock EventQueue string xpcom/helpers
VBOX_MAIN_ALL := AuthLibrary AutoCaller DisplayResampleImage DisplayUtils EventImpl Global HashedPw VBOX_MAIN_ALL := AuthLibrary AutoCaller DisplayResampleImage DisplayUtils EventImpl Global HashedPw
VBOX_MAIN_ALL += PCIDeviceAttachmentImpl ProgressImpl SharedFolderImpl SecretKeyStore VBOX_MAIN_ALL += PCIDeviceAttachmentImpl ProgressImpl SharedFolderImpl SecretKeyStore
VBOX_MAIN_ALL += VirtualBoxBase VBOX_MAIN_ALL += ThreadTask VirtualBoxBase
VBOX_MAIN_CLI := AdditionsFacilityImpl BusAssignmentManager VBOX_MAIN_CLI := AdditionsFacilityImpl BusAssignmentManager
VBOX_MAIN_CLI += ConsoleImpl ConsoleImpl2 ConsoleVRDPServer VBOX_MAIN_CLI += ConsoleImpl ConsoleImpl2 ConsoleVRDPServer
@ -36,6 +36,7 @@ VBOX_MAIN_CLI += DrvAudioVRDE EmulatedUSBImpl GuestCtrlImpl GuestImpl
VBOX_MAIN_CLI += HGCM HGCMThread HGCMObjects VBOX_MAIN_CLI += HGCM HGCMThread HGCMObjects
VBOX_MAIN_CLI += KeyboardImpl SessionImpl VMMDevInterface VBOX_MAIN_CLI += KeyboardImpl SessionImpl VMMDevInterface
VBOX_MAIN_CLI += MouseImpl MachineDebuggerImpl VBOX_MAIN_CLI += MouseImpl MachineDebuggerImpl
VBOX_MAIN_CLI += Nvram
VBOX_MAIN_CLI += USBDeviceImpl UsbWebcamInterface VBoxDriversRegister VBOX_MAIN_CLI += USBDeviceImpl UsbWebcamInterface VBoxDriversRegister
VBOX_MAIN_CLI += RemoteUSBDeviceImpl RemoteUSBBackend VBOX_MAIN_CLI += RemoteUSBDeviceImpl RemoteUSBBackend
@ -72,6 +73,8 @@ VBOX_MAIN_INC += USBIdDatabase USBProxyService VirtualBoxImpl VRDEServerImpl Gue
VBOX_MAIN_INC += USBDeviceImpl HostUSBDeviceImpl Matching Wrapper VBOX_MAIN_INC += USBDeviceImpl HostUSBDeviceImpl Matching Wrapper
VBOX_MAIN_INC += RemoteUSBDeviceImpl RemoteUSBBackend ConsoleVRDPServer VBOX_MAIN_INC += RemoteUSBDeviceImpl RemoteUSBBackend ConsoleVRDPServer
VBOX_MAIN_INC += MachineDebuggerImpl EmulatedUSBImpl VBOX_MAIN_INC += MachineDebuggerImpl EmulatedUSBImpl
VBOX_MAIN_INC += ThreadTask USBProxyBackend
VBOX_SRC_VBOX := VMM Devices Runtime GuestHost/HGSMI Storage Disassembler VBOX_SRC_VBOX := VMM Devices Runtime GuestHost/HGSMI Storage Disassembler
VBOX_SRC_VBOX += HostServices/SharedFolders Main/xml/Settings.cpp VBOX_SRC_VBOX += HostServices/SharedFolders Main/xml/Settings.cpp

View File

@ -3,6 +3,7 @@
#include <iprt/types.h> #include <iprt/types.h>
#include <xpcom/nsISupports.h>
#include <nsID.h> #include <nsID.h>
#define ATL_NO_VTABLE #define ATL_NO_VTABLE

View File

@ -7,6 +7,8 @@ vga_vbva.patch
vmmdev.patch vmmdev.patch
usb.patch usb.patch
vbox_dd.patch vbox_dd.patch
ide.patch
rem_irq.patch
force_ioapic.patch force_ioapic.patch
vbox-cpuhotplug.dsl.patch vbox-cpuhotplug.dsl.patch
dev_e1000.patch dev_e1000.patch

View File

@ -8,7 +8,6 @@ network.patch
pdm_driver.patch pdm_driver.patch
poke.patch poke.patch
posix.patch posix.patch
rem_irq.patch
serial.patch serial.patch
sharedfolder_pagelist.patch sharedfolder_pagelist.patch
time-log-deadlock.patch time-log-deadlock.patch

View File

@ -0,0 +1,90 @@
/*
* \brief VirtualBox device models
* \author Norman Feske
* \date 2013-08-20
*/
/*
* Copyright (C) 2013 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
/* Genode includes */
#include <os/attached_rom_dataspace.h>
/* VirtualBox includes */
#include <VBoxDD.h>
#include <VBoxDD2.h>
#define REGISTER(device) \
do { \
rc = pCallbacks->pfnRegister(pCallbacks, &g_##device); \
if (RT_FAILURE(rc)) \
return rc; \
} while (0)
extern "C" int VBoxDevicesRegister(PPDMDEVREGCB pCallbacks, uint32_t u32Version)
{
int rc = 0;
/* platform */
REGISTER(DevicePcArch);
REGISTER(DevicePcBios);
REGISTER(DeviceI8254);
REGISTER(DeviceI8259);
REGISTER(DeviceDMA);
REGISTER(DeviceMC146818);
REGISTER(DeviceACPI);
REGISTER(DevicePCI);
REGISTER(DevicePCIBridge);
/* devices */
REGISTER(DevicePS2KeyboardMouse);
REGISTER(DeviceVga);
REGISTER(DeviceFloppyController);
REGISTER(DeviceSerialPort);
REGISTER(DevicePIIX3IDE);
REGISTER(DeviceAHCI);
REGISTER(DevicePCNet);
REGISTER(DeviceE1000);
REGISTER(DeviceVMMDev);
REGISTER(DeviceOHCI);
REGISTER(DeviceICHAC97);
REGISTER(DeviceICH6_HDA);
return VINF_SUCCESS;
}
/*
* 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), IRQ delivery to the IOAPIC can be
* enforced with the 'force_ioapic' configuration option.
*
* References:
* - 'pciSetIrqInternal()' in DevPCI.cpp
* - '_PIC' and '_PRT' ACPI methods in vbox.dsl
*/
static bool read_force_ioapic_from_config()
{
try {
Genode::Attached_rom_dataspace config("config");
return config.xml().attribute_value("force_ioapic", false);
} catch (Genode::Rom_connection::Rom_connection_failed) {
return false;
}
}
bool force_ioapic()
{
/* read only once from config ROM */
static bool force = read_force_ioapic_from_config();
return force;
}

View File

@ -0,0 +1,46 @@
/*
* \brief VirtualBox host drivers
* \author Norman Feske
* \date 2013-08-20
*/
/*
* Copyright (C) 2013-2016 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
/* VirtualBox includes */
#include <VBoxDD.h>
extern "C" int VBoxDriversRegister(PCPDMDRVREGCB pCallbacks, uint32_t u32Version)
{
PDMDRVREG const *drvs[] = {
&g_DrvKeyboardQueue,
&g_DrvMouseQueue,
// &g_DrvBlock,
// &g_DrvMediaISO,
&g_DrvACPI,
&g_DrvChar,
// &g_DrvRawImage,
&g_DrvRawFile,
&g_DrvHostSerial,
&g_DrvVD,
&g_DrvHostInterface,
&g_DrvVUSBRootHub,
&g_DrvAUDIO,
&g_DrvHostNullAudio,
0
};
for (unsigned i = 0; drvs[i]; i++) {
int rc = pCallbacks->pfnRegister(pCallbacks, drvs[i]);
if (RT_FAILURE(rc))
return rc;
}
return VINF_SUCCESS;
}

View File

@ -113,6 +113,7 @@ int FTMSetCheckpoint(PVM, FTMCHECKPOINTTYPE)
int FTMR3Term(PVM) TRACE(VINF_SUCCESS) int FTMR3Term(PVM) TRACE(VINF_SUCCESS)
int GIMR3Init(PVM) TRACE(VINF_SUCCESS) int GIMR3Init(PVM) TRACE(VINF_SUCCESS)
int GIMR3Term(PVM) TRACE(VINF_SUCCESS)
void GIMR3Reset(PVM) TRACE() void GIMR3Reset(PVM) TRACE()
bool GIMIsEnabled(PVM) TRACE(false) bool GIMIsEnabled(PVM) TRACE(false)
bool GIMIsParavirtTscEnabled(PVM) TRACE(false) bool GIMIsParavirtTscEnabled(PVM) TRACE(false)

View File

@ -1,7 +1,7 @@
#ifndef ____H_VIRTUALBOXBASEIMPL #ifndef ____H_VIRTUALBOXBASEIMPL
#define ____H_VIRTUALBOXBASEIMPL #define ____H_VIRTUALBOXBASEIMPL
#include <base/log.h> //#include <base/log.h>
#include <iprt/cdefs.h> #include <iprt/cdefs.h>
#include <iprt/thread.h> #include <iprt/thread.h>
@ -58,6 +58,9 @@ class VirtualBoxBase : public VirtualBoxTranslatable
/** Primary state of this object */ /** Primary state of this object */
ObjectState mState; ObjectState mState;
/** Slot of this object in the saFactoryStats array */
uint32_t iFactoryStat;
/** Thread that caused the last state change */ /** Thread that caused the last state change */
RTTHREAD mStateChangeThread; RTTHREAD mStateChangeThread;
/** Total number of active calls to this object */ /** Total number of active calls to this object */
@ -78,9 +81,8 @@ class VirtualBoxBase : public VirtualBoxTranslatable
protected: protected:
HRESULT BaseFinalConstruct() { return S_OK; } HRESULT BaseFinalConstruct();
void BaseFinalRelease();
void BaseFinalRelease() { }
public: public:
@ -463,6 +465,26 @@ class Backupable : public Shareable<T>
#define VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(cls, iface) \ #define VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(cls, iface) \
VIRTUALBOXBASE_ADD_VIRTUAL_COMPONENT_METHODS(cls, iface) VIRTUALBOXBASE_ADD_VIRTUAL_COMPONENT_METHODS(cls, iface)
#define VBOX_TWEAK_INTERFACE_ENTRY(iface)
/** Structure for counting the currently existing and ever created objects
* for each component name. */
typedef struct CLASSFACTORY_STAT
{
const char *psz;
uint64_t current;
uint64_t overall;
} CLASSFACTORY_STAT;
/** Maximum number of component names to deal with. There will be debug
* assertions if the value is too low. Since the table is global and its
* entries are reasonably small, it's not worth squeezing out the last bit. */
#define CLASSFACTORYSTATS_MAX 128
/* global variables (defined in VirtualBoxBase.cpp) */
extern CLASSFACTORY_STAT g_aClassFactoryStats[CLASSFACTORYSTATS_MAX];
extern RWLockHandle *g_pClassFactoryStatsLock;
#include "GenodeImpl.h" #include "GenodeImpl.h"
#endif // !____H_VIRTUALBOXBASEIMPL #endif // !____H_VIRTUALBOXBASEIMPL

View File

@ -189,3 +189,11 @@ HRESULT Host::findUSBDeviceByAddress(const com::Utf8Str &,
DUMMY(E_FAIL) DUMMY(E_FAIL)
HRESULT Host::findUSBDeviceById(const com::Guid &, ComPtr<IHostUSBDevice> &) HRESULT Host::findUSBDeviceById(const com::Guid &, ComPtr<IHostUSBDevice> &)
DUMMY(E_FAIL) DUMMY(E_FAIL)
HRESULT Host::addUSBDeviceSource(const com::Utf8Str &, const com::Utf8Str &,
const com::Utf8Str &,
const std::vector<com::Utf8Str> &,
const std::vector<com::Utf8Str> &)
DUMMY(E_FAIL)
HRESULT Host::removeUSBDeviceSource(const com::Utf8Str &aId)
DUMMY(E_FAIL)

View File

@ -83,17 +83,17 @@ VMMR3_INT_DECL(int) HMR3InitCompleted(PVM pVM, VMINITCOMPLETED enmWhat)
int rc = SUPR3CallVMMR0Ex(pVM->pVMR0, 0 /*idCpu*/, VMMR0_DO_HM_SETUP_VM, 0, NULL); int rc = SUPR3CallVMMR0Ex(pVM->pVMR0, 0 /*idCpu*/, VMMR0_DO_HM_SETUP_VM, 0, NULL);
if (rc == VINF_SUCCESS) { if (rc == VINF_SUCCESS) {
CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_SEP); CPUMR3SetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_SEP);
/* nova kernel supports solely on 64bit the following features */ /* nova kernel supports solely on 64bit the following features */
if (sizeof(void *) > 4 && enable_pae_nx) { if (sizeof(void *) > 4 && enable_pae_nx) {
CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_PAE); CPUMR3SetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_PAE);
CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_NX); CPUMR3SetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_NX);
} }
if (sizeof(void *) > 4 && enable_64bit) { if (sizeof(void *) > 4 && enable_64bit) {
CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_LONG_MODE); CPUMR3SetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_LONG_MODE);
CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_SYSCALL); CPUMR3SetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_SYSCALL);
CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_LAHF); CPUMR3SetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_LAHF);
} }
} }
@ -110,7 +110,7 @@ VMMDECL(bool) HMIsEnabledNotMacro(PVM pVM)
VMMR3DECL(bool) HMR3IsVmxPreemptionTimerUsed(PVM pVM) VMMR3DECL(bool) HMR3IsVmxPreemptionTimerUsed(PVM pVM)
{ {
if (VERBOSE_HM) if (VERBOSE_HM)
Genode::log(__func__, "called"); Genode::log(__func__, " called");
return false; return false;
} }
@ -200,9 +200,23 @@ VMMR3_INT_DECL(void) HMR3PagingModeChanged(PVM pVM, PVMCPU pVCpu, PGMMODE enmSha
VMM_INT_DECL(int) HMFlushTLBOnAllVCpus(PVM pVM) VMM_INT_DECL(int) HMFlushTLBOnAllVCpus(PVM pVM)
{ {
if (VERBOSE_HM) if (VERBOSE_HM)
Genode::log(__func__, "called"); Genode::log(__func__, " called");
return VINF_SUCCESS; return VINF_SUCCESS;
} }
VBOXSTRICTRC HMR3RestartPendingIOInstr(PVM, PVMCPU, PCPUMCTX) { VBOXSTRICTRC HMR3RestartPendingIOInstr(PVM, PVMCPU, PCPUMCTX) {
return VERR_NOT_FOUND; } return VERR_NOT_FOUND; }
VMMR3DECL(bool) HMR3IsPostedIntrsEnabled(PUVM pUVM)
{
Genode::log(__func__, " called");
return false;
}
VMMR3DECL(bool) HMR3IsVirtApicRegsEnabled(PUVM pUVM)
{
Genode::log(__func__, " called");
return false;
}

View File

@ -23,6 +23,7 @@
#include <VBox/vmm/cfgm.h> #include <VBox/vmm/cfgm.h>
#include <VBox/err.h> #include <VBox/err.h>
#include <VBox/vmm/gmm.h> #include <VBox/vmm/gmm.h>
#include "MMInternal.h"
#include <VBox/vmm/vm.h> #include <VBox/vmm/vm.h>
#include <VBox/vmm/pgm.h> #include <VBox/vmm/pgm.h>
#include <iprt/err.h> #include <iprt/err.h>
@ -165,14 +166,14 @@ int MMR3HeapAllocZEx(PVM pVM, MMTAG enmTag, size_t cbSize, void **ppv)
int MMR3HyperInitFinalize(PVM) int MMR3HyperInitFinalize(PVM)
{ {
Genode::log(__func__, "called"); Genode::log(__func__, " called");
return VINF_SUCCESS; return VINF_SUCCESS;
} }
int MMR3HyperSetGuard(PVM, void* ptr, size_t, bool) int MMR3HyperSetGuard(PVM, void* ptr, size_t, bool)
{ {
Genode::log(__func__, "called ", ptr); Genode::log(__func__, " called ", ptr);
return VINF_SUCCESS; return VINF_SUCCESS;
} }
@ -238,7 +239,7 @@ int MMHyperDupMem(PVM pVM, const void *pvSrc, size_t cb,
bool MMHyperIsInsideArea(PVM, RTGCPTR ptr) bool MMHyperIsInsideArea(PVM, RTGCPTR ptr)
{ {
Genode::log(__func__, "called"); Genode::log(__func__, " called");
return false; return false;
} }
@ -361,12 +362,18 @@ int MMR3InitPaging(PVM pVM)
*/ */
if (cbRam > offRamHole) if (cbRam > offRamHole)
{ {
pVM->mm.s.cbRamBelow4GB = offRamHole;
rc = PGMR3PhysRegisterRam(pVM, 0, offRamHole, "Base RAM"); rc = PGMR3PhysRegisterRam(pVM, 0, offRamHole, "Base RAM");
if (RT_SUCCESS(rc)) if (RT_SUCCESS(rc))
{
pVM->mm.s.cbRamAbove4GB = cbRam - offRamHole;
rc = PGMR3PhysRegisterRam(pVM, _4G, cbRam - offRamHole, "Above 4GB Base RAM"); rc = PGMR3PhysRegisterRam(pVM, _4G, cbRam - offRamHole, "Above 4GB Base RAM");
} }
else } else {
pVM->mm.s.cbRamBelow4GB = cbRam;
pVM->mm.s.cbRamAbove4GB = 0;
rc = PGMR3PhysRegisterRam(pVM, 0, RT_MIN(cbRam, offRamHole), "Base RAM"); rc = PGMR3PhysRegisterRam(pVM, 0, RT_MIN(cbRam, offRamHole), "Base RAM");
}
LogFlow(("MMR3InitPaging: returns %Rrc\n", rc)); LogFlow(("MMR3InitPaging: returns %Rrc\n", rc));
return rc; return rc;
@ -460,6 +467,20 @@ VMMDECL(uint32_t) MMHyperHeapPtrToOffset(PVM pVM, void *pv)
} }
VMMR3DECL(uint32_t) MMR3PhysGetRamSizeBelow4GB(PVM pVM)
{
VM_ASSERT_VALID_EXT_RETURN(pVM, UINT32_MAX);
return pVM->mm.s.cbRamBelow4GB;
}
VMMR3DECL(uint64_t) MMR3PhysGetRamSizeAbove4GB(PVM pVM)
{
VM_ASSERT_VALID_EXT_RETURN(pVM, UINT64_MAX);
return pVM->mm.s.cbRamAbove4GB;
}
extern "C" { extern "C" {
char * MMR3HeapAPrintf(PVM pVM, MMTAG enmTag, const char *pszFormat, ...) char * MMR3HeapAPrintf(PVM pVM, MMTAG enmTag, const char *pszFormat, ...)

View File

@ -1,15 +1,17 @@
--- a/src/app/virtualbox/src/VBox/VMM/VMMR3/PGM.cpp --- a/src/app/virtualbox/src/VBox/VMM/VMMR3/PGM.cpp
+++ b/src/app/virtualbox/src/VBox/VMM/VMMR3/PGM.cpp +++ b/src/app/virtualbox/src/VBox/VMM/VMMR3/PGM.cpp
@@ -2159,7 +2159,7 @@ @@ -2165,8 +2165,8 @@
*/
VMMR3DECL(int) PGMR3InitFinalize(PVM pVM) VMMR3DECL(int) PGMR3InitFinalize(PVM pVM)
{ {
int rc; - int rc = VERR_IPE_UNINITIALIZED_STATUS; /* (MSC incorrectly thinks it can be usused uninitialized) */
- -
+ int rc = VINF_SUCCESS; //VERR_IPE_UNINITIALIZED_STATUS; /* (MSC incorrectly thinks it can be usused uninitialized) */
+#if 0 +#if 0
/* /*
* Reserve space for the dynamic mappings. * Reserve space for the dynamic mappings.
* Initialize the dynamic mapping pages with dummy pages to simply the cache. * Initialize the dynamic mapping pages with dummy pages to simply the cache.
@@ -2180,6 +2180,7 @@ @@ -2187,6 +2187,7 @@
rc = PGMMap(pVM, pVM->pgm.s.pbDynPageMapBaseGC + offDynMap, HCPhysDummy, PAGE_SIZE, 0); rc = PGMMap(pVM, pVM->pgm.s.pbDynPageMapBaseGC + offDynMap, HCPhysDummy, PAGE_SIZE, 0);
AssertRCReturn(rc, rc); AssertRCReturn(rc, rc);
} }
@ -17,7 +19,7 @@
/* /*
* Determine the max physical address width (MAXPHYADDR) and apply it to * Determine the max physical address width (MAXPHYADDR) and apply it to
@@ -2377,7 +2378,7 @@ @@ -2384,7 +2385,7 @@
* (One or more of them have changed, that's why we're here.) * (One or more of them have changed, that's why we're here.)
*/ */
pVM->pgm.s.pMappingsRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pMappingsR3); pVM->pgm.s.pMappingsRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pMappingsR3);
@ -26,7 +28,7 @@
pCur->pNextRC = MMHyperR3ToRC(pVM, pCur->pNextR3); pCur->pNextRC = MMHyperR3ToRC(pVM, pCur->pNextR3);
/* Relocate GC addresses of Page Tables. */ /* Relocate GC addresses of Page Tables. */
@@ -2390,6 +2391,7 @@ @@ -2397,6 +2398,7 @@
} }
} }
@ -34,7 +36,7 @@
/* /*
* Dynamic page mapping area. * Dynamic page mapping area.
*/ */
@@ -2412,6 +2414,7 @@ @@ -2419,6 +2421,7 @@
paPages[iPage].uPte.pPae += offDelta; paPages[iPage].uPte.pPae += offDelta;
} }
} }

View File

@ -7,3 +7,4 @@ vmm.patch
iem_wip.patch iem_wip.patch
dbg.patch dbg.patch
dev_e1000.patch dev_e1000.patch
tm_tpr_vbox5.patch

View File

@ -0,0 +1,11 @@
--- a/src/app/virtualbox/src/VBox/VMM/VMMAll/APICAll.cpp
+++ b/src/app/virtualbox/src/VBox/VMM/VMMAll/APICAll.cpp
@@ -2264,7 +2264,7 @@
APICBOTHCBDECL(uint8_t) apicGetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, bool *pfPending, uint8_t *pu8PendingIntr)
{
RT_NOREF_PV(pDevIns);
- VMCPU_ASSERT_EMT(pVCpu);
+ //VMCPU_ASSERT_EMT(pVCpu);
PCXAPICPAGE pXApicPage = VMCPU_TO_CXAPICPAGE(pVCpu);
if (pfPending)

View File

@ -4,21 +4,14 @@ diff --git a/src/app/virtualbox/src/VBox/Devices/USB/USBProxyDevice.cpp b/src/ap
index a51bc36..bed42e8 100644 index a51bc36..bed42e8 100644
--- a/src/app/virtualbox/src/VBox/Devices/USB/USBProxyDevice.cpp --- a/src/app/virtualbox/src/VBox/Devices/USB/USBProxyDevice.cpp
+++ b/src/app/virtualbox/src/VBox/Devices/USB/USBProxyDevice.cpp +++ b/src/app/virtualbox/src/VBox/Devices/USB/USBProxyDevice.cpp
@@ -843,10 +843,14 @@ static DECLCALLBACK(int) usbProxyConstruct(PPDMUSBINS pUsbIns, int iInstance, PC @@ -843,6 +843,7 @@ static DECLCALLBACK(int) usbProxyConstruct(PPDMUSBINS pUsbIns, int iInstance, PC
/* /*
* Select backend and open the device. * Select backend and open the device.
*/ */
+
+ return PDMUSB_SET_ERROR(pUsbIns, VERR_NOT_SUPPORTED, N_("USBProxy: not supported on Genode")); + return PDMUSB_SET_ERROR(pUsbIns, VERR_NOT_SUPPORTED, N_("USBProxy: not supported on Genode"));
+#if 0 rc = VERR_NOT_FOUND;
if (!fRemote) for (unsigned i = 0; i < RT_ELEMENTS(g_aUsbProxies); i++)
pThis->pOps = &g_USBProxyDeviceHost; {
else
pThis->pOps = &g_USBProxyDeviceVRDP;
+#endif /* if 0 */
pThis->pvInstanceDataR3 = RTMemAllocZ(pThis->pOps->cbBackend);
if (!pThis->pvInstanceDataR3)
diff --git a/src/app/virtualbox/src/VBox/Devices/USB/VUSBDevice.cpp b/src/app/virtualbox/src/VBox/Devices/USB/VUSBDevice.cpp diff --git a/src/app/virtualbox/src/VBox/Devices/USB/VUSBDevice.cpp b/src/app/virtualbox/src/VBox/Devices/USB/VUSBDevice.cpp
index 4790fcb..d649ad6 100644 index 4790fcb..d649ad6 100644
--- a/src/app/virtualbox/src/VBox/Devices/USB/VUSBDevice.cpp --- a/src/app/virtualbox/src/VBox/Devices/USB/VUSBDevice.cpp
@ -29,7 +22,7 @@ index 4790fcb..d649ad6 100644
/* Process any URBs waiting to be cancelled first. */ /* Process any URBs waiting to be cancelled first. */
- int rc = RTReqQueueProcess(pDev->hReqQueueSync, 0); /* Don't wait if there is nothing to do. */ - int rc = RTReqQueueProcess(pDev->hReqQueueSync, 0); /* Don't wait if there is nothing to do. */
+ int rc = RTReqQueueProcess(pDev->hReqQueueSync, pDev->enmState == VUSB_DEVICE_STATE_RESET ? 5 : 0); /* if in reset state (takes 10ms) sleep a bit - otherwise this thread consumes in this loop a lot of cpu time */ + int rc = RTReqQueueProcess(pDev->hReqQueueSync, pDev->enmState == VUSB_DEVICE_STATE_RESET ? 5 : 0); /* if in reset state (takes 10ms) sleep a bit - otherwise this thread consumes in this loop a lot of cpu time */
Assert(RT_SUCCESS(rc) || rc == VERR_TIMEOUT); Assert(RT_SUCCESS(rc) || rc == VERR_TIMEOUT); NOREF(rc);
} }
diff --git a/src/app/virtualbox/src/VBox/Devices/build/VBoxDD.cpp b/src/app/virtualbox/src/VBox/Devices/build/VBoxDD.cpp diff --git a/src/app/virtualbox/src/VBox/Devices/build/VBoxDD.cpp b/src/app/virtualbox/src/VBox/Devices/build/VBoxDD.cpp
@ -87,11 +80,73 @@ index 2f01f69..9b13e37 100644
#ifdef VBOX_WITH_USB #ifdef VBOX_WITH_USB
HRESULT rc = mUSBDeviceFilters->i_notifyProxy(false /* aInsertFilters */); HRESULT rc = mUSBDeviceFilters->i_notifyProxy(false /* aInsertFilters */);
AssertComRC(rc); AssertComRC(rc);
diff --git a/src/app/virtualbox/src/VBox/Main/src-server/USBDeviceFiltersImpl.cpp b/src/app/virtualbox/src/VBox/Main/src-server/USBDeviceFiltersImpl.cpp
index 09b42f5..c179ca6 100644
--- a/src/app/virtualbox/src/VBox/Main/src-server/USBDeviceFiltersImpl.cpp --- a/src/app/virtualbox/src/VBox/Main/src-server/USBDeviceFiltersImpl.cpp
+++ b/src/app/virtualbox/src/VBox/Main/src-server/USBDeviceFiltersImpl.cpp +++ b/src/app/virtualbox/src/VBox/Main/src-server/USBDeviceFiltersImpl.cpp
@@ -1037,13 +1037,10 @@ HRESULT USBDeviceFilters::notifyProxy(bool aInsertFilters) @@ -386,7 +386,7 @@
ComAssertRet(pProxySvc, E_FAIL);
ComAssertRet(pFilter->i_getId() == NULL, E_FAIL);
- pFilter->i_getId() = pProxySvc->insertFilter(&pFilter->i_getData().mUSBFilter);
+// pFilter->i_getId() = pProxySvc->insertFilter(&pFilter->i_getData().mUSBFilter);
}
alock.release();
@@ -452,7 +452,7 @@
ComAssertRet(pProxySvc, E_FAIL);
ComAssertRet(pFilter->i_getId() != NULL, E_FAIL);
- pProxySvc->removeFilter(pFilter->i_getId());
+// pProxySvc->removeFilter(pFilter->i_getId());
pFilter->i_getId() = NULL;
}
@@ -606,7 +606,7 @@
{
USBDeviceFilter *pFilter = *it;
Assert(pFilter->i_getId() != NULL);
- pProxySvc->removeFilter(pFilter->i_getId());
+// pProxySvc->removeFilter(pFilter->i_getId());
pFilter->i_getId() = NULL;
}
@@ -631,7 +631,7 @@
{
USBDeviceFilter *pFilter = *it; /* resolve ambiguity */
Assert(pFilter->i_getId() == NULL);
- pFilter->i_getId() = pProxySvc->insertFilter(&pFilter->i_getData().mUSBFilter);
+// pFilter->i_getId() = pProxySvc->insertFilter(&pFilter->i_getData().mUSBFilter);
}
}
++it;
@@ -841,12 +841,12 @@
if (aFilter->i_getData().mData.fActive)
{
ComAssertRet(aFilter->i_getId() == NULL, E_FAIL);
- aFilter->i_getId() = pProxySvc->insertFilter(&aFilter->i_getData().mUSBFilter);
+// aFilter->i_getId() = pProxySvc->insertFilter(&aFilter->i_getData().mUSBFilter);
}
else
{
ComAssertRet(aFilter->i_getId() != NULL, E_FAIL);
- pProxySvc->removeFilter(aFilter->i_getId());
+// pProxySvc->removeFilter(aFilter->i_getId());
aFilter->i_getId() = NULL;
}
}
@@ -857,10 +857,10 @@
{
/* update the filter in the proxy */
ComAssertRet(aFilter->i_getId() != NULL, E_FAIL);
- pProxySvc->removeFilter(aFilter->i_getId());
+// pProxySvc->removeFilter(aFilter->i_getId());
if (aFilter->i_getData().mRemote.isMatch(false))
{
- aFilter->i_getId() = pProxySvc->insertFilter(&aFilter->i_getData().mUSBFilter);
+// aFilter->i_getId() = pProxySvc->insertFilter(&aFilter->i_getData().mUSBFilter);
}
}
}
@@ -1027,13 +1027,10 @@
LogFlowThisFunc(("aInsertFilters=%RTbool\n", aInsertFilters)); LogFlowThisFunc(("aInsertFilters=%RTbool\n", aInsertFilters));
AutoCaller autoCaller(this); AutoCaller autoCaller(this);
@ -106,8 +161,8 @@ index 09b42f5..c179ca6 100644
DeviceFilterList::const_iterator it = m->llDeviceFilters->begin(); DeviceFilterList::const_iterator it = m->llDeviceFilters->begin();
while (it != m->llDeviceFilters->end()) while (it != m->llDeviceFilters->end())
{ {
@@ -1054,6 +1051,9 @@ HRESULT USBDeviceFilters::notifyProxy(bool aInsertFilters) @@ -1044,10 +1041,13 @@
&& pFilter->getData().mRemote.isMatch(false) /* and if the filter is NOT remote */ && pFilter->i_getData().mRemote.isMatch(false) /* and if the filter is NOT remote */
) )
{ {
+ USBProxyService *pProxySvc = m->pHost->i_usbProxyService(); + USBProxyService *pProxySvc = m->pHost->i_usbProxyService();
@ -115,4 +170,18 @@ index 09b42f5..c179ca6 100644
+ +
if (aInsertFilters) if (aInsertFilters)
{ {
AssertReturn(pFilter->getId() == NULL, E_FAIL); AssertReturn(pFilter->i_getId() == NULL, E_FAIL);
- pFilter->i_getId() = pProxySvc->insertFilter(&pFilter->i_getData().mUSBFilter);
+// pFilter->i_getId() = pProxySvc->insertFilter(&pFilter->i_getData().mUSBFilter);
}
else
{
@@ -1056,7 +1056,7 @@
* process crash for example. So, don't assert that ID != NULL. */
if (pFilter->i_getId() != NULL)
{
- pProxySvc->removeFilter(pFilter->i_getId());
+// pProxySvc->removeFilter(pFilter->i_getId());
pFilter->i_getId() = NULL;
}
}

View File

@ -1,20 +1,5 @@
vbox_inc.patch vbox_inc.patch
diff --git a/src/app/virtualbox/include/VBox/com/ErrorInfo.h b/src/app/virtualbox/include/VBox/com/ErrorInfo.h
index 869b998..c6adf70 100644
--- a/src/app/virtualbox/include/VBox/com/ErrorInfo.h
+++ b/src/app/virtualbox/include/VBox/com/ErrorInfo.h
@@ -31,8 +31,8 @@
* @{
*/
-COM_STRUCT_OR_CLASS(IProgress);
-COM_STRUCT_OR_CLASS(IVirtualBoxErrorInfo);
+//COM_STRUCT_OR_CLASS(IProgress);
+//COM_STRUCT_OR_CLASS(IVirtualBoxErrorInfo);
namespace com
{
diff --git a/src/app/virtualbox/include/VBox/com/array.h b/src/app/virtualbox/include/VBox/com/array.h diff --git a/src/app/virtualbox/include/VBox/com/array.h b/src/app/virtualbox/include/VBox/com/array.h
index 77f9d60..dcbad41 100644 index 77f9d60..dcbad41 100644
--- a/src/app/virtualbox/include/VBox/com/array.h --- a/src/app/virtualbox/include/VBox/com/array.h

View File

@ -277,36 +277,20 @@ index 7fa0f99..d85976d 100644
{ {
LogFlow(("VBoxDriversRegister: u32Version=%#x\n", u32Version)); LogFlow(("VBoxDriversRegister: u32Version=%#x\n", u32Version));
AssertReleaseMsg(u32Version == VBOX_VERSION, ("u32Version=%#x VBOX_VERSION=%#x\n", u32Version, VBOX_VERSION)); AssertReleaseMsg(u32Version == VBOX_VERSION, ("u32Version=%#x VBOX_VERSION=%#x\n", u32Version, VBOX_VERSION));
@@ -67,6 +69,7 @@ extern "C" DECLEXPORT(int) VBoxDriversRegister(PCPDMDRVREGCB pCallbacks, uint32_ @@ -79,11 +79,11 @@
rc = pCallbacks->pfnRegister(pCallbacks, &Nvram::DrvReg);
if (RT_FAILURE(rc)) if (RT_FAILURE(rc))
return rc; return rc;
-
+#if 0 +#if 0
rc = pCallbacks->pfnRegister(pCallbacks, &AudioVRDE::DrvReg);
if (RT_FAILURE(rc))
return rc;
@@ -78,6 +81,7 @@ extern "C" DECLEXPORT(int) VBoxDriversRegister(PCPDMDRVREGCB pCallbacks, uint32_
rc = pCallbacks->pfnRegister(pCallbacks, &EmWebcam::DrvReg); rc = pCallbacks->pfnRegister(pCallbacks, &EmWebcam::DrvReg);
if (RT_FAILURE(rc)) if (RT_FAILURE(rc))
return rc; return rc;
-
+#endif +#endif
#ifdef VBOX_WITH_USB_CARDREADER #ifdef VBOX_WITH_USB_CARDREADER
rc = pCallbacks->pfnRegister(pCallbacks, &UsbCardReader::DrvReg); rc = pCallbacks->pfnRegister(pCallbacks, &UsbCardReader::DrvReg);
diff --git a/src/app/virtualbox/src/VBox/Main/src-client/VMMDevInterface.cpp b/src/app/virtualbox/src/VBox/Main/src-client/VMMDevInterface.cpp if (RT_FAILURE(rc))
index b4f4da4..a341e45 100644
--- a/src/app/virtualbox/src/VBox/Main/src-client/VMMDevInterface.cpp
+++ b/src/app/virtualbox/src/VBox/Main/src-client/VMMDevInterface.cpp
@@ -553,7 +553,9 @@ DECLCALLBACK(int) vmmdevIsPageFusionEnabled(PPDMIVMMDEVCONNECTOR pInterface, boo
{
PDRVMAINVMMDEV pDrv = PDMIVMMDEVCONNECTOR_2_MAINVMMDEV(pInterface);
Console *pConsole = pDrv->pVMMDev->getParent();
+#if 0
BOOL val = 0;
+#endif
if (!pfPageFusionEnabled)
return VERR_INVALID_POINTER;
diff --git a/src/app/virtualbox/src/VBox/Main/src-server/ClientToken.cpp b/src/app/virtualbox/src/VBox/Main/src-server/ClientToken.cpp diff --git a/src/app/virtualbox/src/VBox/Main/src-server/ClientToken.cpp b/src/app/virtualbox/src/VBox/Main/src-server/ClientToken.cpp
index be0afb8..54d5ba4 100644 index be0afb8..54d5ba4 100644
--- a/src/app/virtualbox/src/VBox/Main/src-server/ClientToken.cpp --- a/src/app/virtualbox/src/VBox/Main/src-server/ClientToken.cpp
@ -395,7 +379,7 @@ index a717aff..3d52b9f 100644
RT_C_DECLS_END RT_C_DECLS_END
#endif #endif
-#if !defined(RT_OS_LINUX) || !defined(_GNU_SOURCE) -#if (!defined(RT_OS_LINUX) || !defined(_GNU_SOURCE)) && !defined(RT_OS_FREEBSD) && !defined(RT_OS_NETBSD)
-RT_C_DECLS_BEGIN -RT_C_DECLS_BEGIN
-void *memrchr(const char *pv, int ch, size_t cb); -void *memrchr(const char *pv, int ch, size_t cb);
-RT_C_DECLS_END -RT_C_DECLS_END
@ -440,45 +424,6 @@ index a717aff..3d52b9f 100644
void i_onStateChange(MachineState_T aMachineState); void i_onStateChange(MachineState_T aMachineState);
void i_onAdditionsStateChange(); void i_onAdditionsStateChange();
void i_onAdditionsOutdated(); void i_onAdditionsOutdated();
--- a/src/app/virtualbox/src/VBox/Main/src-server/MediumImpl.cpp
+++ b/src/app/virtualbox/src/VBox/Main/src-server/MediumImpl.cpp
@@ -43,7 +43,7 @@
#include <algorithm>
#include <list>
-#include <openssl/rand.h>
+//#include <openssl/rand.h>
typedef std::list<Guid> GuidList;
@@ -787,7 +787,7 @@
delete pTask;
/* complete the progress if run asynchronously */
- if (!pProgress.isNull())
+ if (pProgress && !pProgress.isNull())
pProgress->i_notifyComplete(rc);
LogFlowFunc(("rc=%Rhrc\n", rc));
@@ -2530,7 +2530,7 @@
pProgress.createObject();
rc = pProgress->init(m->pVirtualBox,
- static_cast<IMedium*>(this),
+ nullptr,
(mediumVariantFlags & MediumVariant_Fixed)
? BstrFmt(tr("Creating fixed medium storage unit '%s'"), m->strLocationFull.c_str()).raw()
: BstrFmt(tr("Creating dynamic medium storage unit '%s'"), m->strLocationFull.c_str()).raw(),
--- a/src/app/virtualbox/src/VBox/HostServices/SharedFolders/vbsf.cpp
+++ b/src/app/virtualbox/src/VBox/HostServices/SharedFolders/vbsf.cpp
@@ -1865,7 +1865,6 @@
char *pszFullNewPath = NULL;
char *pszFullOldPath = NULL;
- const char *pszOldPath = (const char *)pOldPath->String.utf8;
/* XXX: no support for UCS2 at the moment. */
if (!BIT_FLAG(pClient->fu32Flags, SHFL_CF_UTF8))
--- a/src/app/virtualbox/src/VBox/Main/src-client/ConsoleVRDPServer.cpp --- a/src/app/virtualbox/src/VBox/Main/src-client/ConsoleVRDPServer.cpp
+++ b/src/app/virtualbox/src/VBox/Main/src-client/ConsoleVRDPServer.cpp +++ b/src/app/virtualbox/src/VBox/Main/src-client/ConsoleVRDPServer.cpp
@@ -43,7 +43,9 @@ @@ -43,7 +43,9 @@
@ -986,15 +931,6 @@ index a717aff..3d52b9f 100644
if (pMedium) if (pMedium)
{ {
BOOL fHostDrive; BOOL fHostDrive;
@@ -4134,7 +4144,7 @@
// InsertConfig* throws
try
{
- int rc = VINF_SUCCESS;
+// int rc = VINF_SUCCESS;
HRESULT hrc;
Bstr bstr;
PCFGMNODE pLunL1 = NULL;
@@ -5440,6 +5450,9 @@ @@ -5440,6 +5450,9 @@
#undef H #undef H
@ -1057,9 +993,9 @@ index a717aff..3d52b9f 100644
@@ -3830,7 +3838,9 @@ @@ -3830,7 +3838,9 @@
pHdrUnconst->y -= (int16_t)pFBInfo->yOrigin; pHdrUnconst->y -= (int16_t)pFBInfo->yOrigin;
/* @todo new SendUpdate entry which can get a separate cmd header or coords. */ /** @todo new SendUpdate entry which can get a separate cmd header or coords. */
+#if 0 +#if 0
pThis->mParent->i_consoleVRDPServer()->SendUpdate(uScreenId, pCmd, (uint32_t)cbCmd); pThis->mParent->i_consoleVRDPServer()->SendUpdate(uScreenId, pHdrUnconst, (uint32_t)cbCmd);
+#endif +#endif
*pHdrUnconst = hdrSaved; *pHdrUnconst = hdrSaved;
@ -1087,3 +1023,18 @@ index a717aff..3d52b9f 100644
int rc = RTLogGroupSettings(RTLogRelGetDefaultInstance(), useLoggingLevel.c_str()); int rc = RTLogGroupSettings(RTLogRelGetDefaultInstance(), useLoggingLevel.c_str());
// If failed and not the default logging level - try to use the default logging level. // If failed and not the default logging level - try to use the default logging level.
if (RT_FAILURE(rc)) if (RT_FAILURE(rc))
--- a/src/app/virtualbox/src/VBox/Runtime/r3/posix/semevent-posix.cpp
+++ b/src/app/virtualbox/src/VBox/Runtime/r3/posix/semevent-posix.cpp
@@ -49,10 +49,12 @@
# define pthread_yield() pthread_yield_np()
#endif
+#if 0
#if defined(RT_OS_SOLARIS) || defined(RT_OS_HAIKU) || defined(RT_OS_FREEBSD) || defined(RT_OS_NETBSD)
# include <sched.h>
# define pthread_yield() sched_yield()
#endif
+#endif
/*********************************************************************************************************************************

View File

@ -29,14 +29,3 @@ index 8ce46a8..a6b84b0 100644
int rc = pThis->pDrv->pfnIsPageFusionEnabled(pThis->pDrv, &pReq->fEnabled); int rc = pThis->pDrv->pfnIsPageFusionEnabled(pThis->pDrv, &pReq->fEnabled);
if (RT_FAILURE(rc)) if (RT_FAILURE(rc))
pReq->fEnabled = false; pReq->fEnabled = false;
+++ a/src/app/virtualbox/src/VBox/VMM/VMMR3/VM.cpp
+++ b/src/app/virtualbox/src/VBox/VMM/VMMR3/VM.cpp
@@ -2805,7 +2805,7 @@
* Debug logging.
*/
RTLogPrintf("\n\nThe VM was reset:\n");
- DBGFR3Info(pVM->pUVM, "cpum", "verbose", NULL);
+// DBGFR3Info(pVM->pUVM, "cpum", "verbose", NULL);
#endif
/*

View File

@ -115,6 +115,8 @@ int SUPR3PageAllocEx(::size_t cPages, uint32_t fFlags, void **ppvPages,
using Genode::Attached_ram_dataspace; using Genode::Attached_ram_dataspace;
Attached_ram_dataspace * ds = new Attached_ram_dataspace(Genode::env()->ram_session(), cPages * 4096); /* XXX PAGE_SIZE ? */ Attached_ram_dataspace * ds = new Attached_ram_dataspace(Genode::env()->ram_session(), cPages * 4096); /* XXX PAGE_SIZE ? */
*ppvPages = ds->local_addr<void>(); *ppvPages = ds->local_addr<void>();
if (pR0Ptr)
*pR0Ptr = reinterpret_cast<RTR0PTR>(*ppvPages);
Genode::log(__func__, " cPages ", cPages, " alloc=", *ppvPages, " done"); Genode::log(__func__, " cPages ", cPages, " alloc=", *ppvPages, " done");

View File

@ -557,7 +557,7 @@ class Vcpu_handler : public Vmm::Vcpu_dispatcher<pthread>,
/* tell rem compiler that FPU register changed XXX optimizations ? */ /* tell rem compiler that FPU register changed XXX optimizations ? */
CPUMSetChangedFlags(pVCpu, CPUM_CHANGED_FPU_REM); /* redundant ? XXX */ CPUMSetChangedFlags(pVCpu, CPUM_CHANGED_FPU_REM); /* redundant ? XXX */
pVCpu->cpum.s.fUseFlags |= (CPUM_USED_FPU | CPUM_USED_FPU_SINCE_REM); /* redundant ? XXX */ pVCpu->cpum.s.fUseFlags |= (CPUM_USED_FPU_GUEST | CPUM_USED_FPU_SINCE_REM); /* redundant ? XXX */
if (utcb->intr_state != 0) { if (utcb->intr_state != 0) {
Assert(utcb->intr_state == BLOCKING_BY_STI || Assert(utcb->intr_state == BLOCKING_BY_STI ||

View File

@ -15,8 +15,6 @@ SRC_CC = frontend/main.cc frontend/console.cc \
hm.cc thread.cc dynlib.cc unimpl.cc hm.cc thread.cc dynlib.cc unimpl.cc
# use implementation of VBOX 4 # use implementation of VBOX 4
vpath devices.cc $(REP_DIR)/src/virtualbox
vpath drivers.cc $(REP_DIR)/src/virtualbox
vpath dynlib.cc $(REP_DIR)/src/virtualbox vpath dynlib.cc $(REP_DIR)/src/virtualbox
vpath libc.cc $(REP_DIR)/src/virtualbox vpath libc.cc $(REP_DIR)/src/virtualbox
vpath logger.cc $(REP_DIR)/src/virtualbox vpath logger.cc $(REP_DIR)/src/virtualbox

View File

@ -124,10 +124,14 @@ DUMMY(RTMemDupExTag)
DUMMY(RTMemDupTag) DUMMY(RTMemDupTag)
DUMMY(RTMemExecFree) DUMMY(RTMemExecFree)
DUMMY(RTMpGetPresentCount)
DUMMY(SELMR3GetSelectorInfo) DUMMY(SELMR3GetSelectorInfo)
DUMMY(SELMR3GetShadowSelectorInfo) DUMMY(SELMR3GetShadowSelectorInfo)
DUMMY(SUPReadTscWithDelta) DUMMY(SUPReadTscWithDelta)
DUMMY(SUPR3ContAlloc)
DUMMY(SUPR3ContFree)
DUMMY(SUPR3HardenedLdrLoadPlugIn) DUMMY(SUPR3HardenedLdrLoadPlugIn)
DUMMY(SUPR3PageAlloc) DUMMY(SUPR3PageAlloc)
DUMMY(SUPR3PageFree) DUMMY(SUPR3PageFree)
@ -197,6 +201,7 @@ DUMMY(RTTimeLocalExplode)
DUMMY(RTSymlinkCreate) DUMMY(RTSymlinkCreate)
DUMMY(RTSymlinkRead) DUMMY(RTSymlinkRead)
DUMMY(RTSymlinkDelete) DUMMY(RTSymlinkDelete)
DUMMY(RTSystemQueryAvailableRam)
DUMMY(RTNetIPv6PseudoChecksumEx) DUMMY(RTNetIPv6PseudoChecksumEx)
@ -208,8 +213,8 @@ DUMMY(RTZipXarFsStreamFromIoStream)
DUMMY(FTMR3CancelStandby) DUMMY(FTMR3CancelStandby)
DUMMY(FTMR3PowerOn) DUMMY(FTMR3PowerOn)
DUMMY(GIMExecHypercallInstr)
DUMMY(GIMReadMsr) DUMMY(GIMReadMsr)
DUMMY(GIMR3Term)
DUMMY(GIMWriteMsr) DUMMY(GIMWriteMsr)
} /* extern "C" */ } /* extern "C" */