mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-23 23:42:32 +00:00
vbox: support shutdown of VMM
- send exit signal to parent - avoid assertion in vbox posix backend Fixes #1687
This commit is contained in:
parent
ae12f04354
commit
6f3e9c12fb
@ -1 +1 @@
|
||||
7d0320bac1d65391cd0f548126df7399b8fb7f18
|
||||
2fc156a977246088b14dc9acad72ea3013c9e596
|
||||
|
@ -149,7 +149,7 @@ append config_of_app {
|
||||
<binary name="virtualbox" />
|
||||
<resource name="RAM" quantum="1280M"/>}
|
||||
append config_of_app "
|
||||
<config vbox_file=\"${vbox_file}\" vm_name=\"${flavor}\">"
|
||||
<config ld_verbose=\"yes\" vbox_file=\"${vbox_file}\" vm_name=\"${flavor}\">"
|
||||
append config_of_app {
|
||||
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc">
|
||||
<vfs>
|
||||
|
@ -24,20 +24,29 @@ HRESULT Console::updateMachineState(MachineState_T aMachineState)
|
||||
|
||||
HRESULT Console::attachToTapInterface(INetworkAdapter *networkAdapter)
|
||||
{
|
||||
HRESULT rc = S_OK;
|
||||
|
||||
ULONG slot = 0;
|
||||
rc = networkAdapter->COMGETTER(Slot)(&slot);
|
||||
HRESULT rc = networkAdapter->COMGETTER(Slot)(&slot);
|
||||
AssertComRC(rc);
|
||||
|
||||
maTapFD[slot] = (RTFILE)1;
|
||||
|
||||
TRACE(S_OK)
|
||||
TRACE(rc)
|
||||
}
|
||||
|
||||
HRESULT Console::detachFromTapInterface(INetworkAdapter *networkAdapter)
|
||||
{
|
||||
ULONG slot = 0;
|
||||
HRESULT rc = networkAdapter->COMGETTER(Slot)(&slot);
|
||||
AssertComRC(rc);
|
||||
|
||||
if (maTapFD[slot] != NIL_RTFILE)
|
||||
maTapFD[slot] = NIL_RTFILE;
|
||||
|
||||
TRACE(rc)
|
||||
}
|
||||
|
||||
HRESULT Console::teleporterTrg(PUVM, IMachine*, com::Utf8Str*, bool, Progress*,
|
||||
bool*) DUMMY(E_FAIL)
|
||||
HRESULT Console::detachFromTapInterface(INetworkAdapter *networkAdapter) DUMMY(E_FAIL)
|
||||
HRESULT Console::saveState(Reason_T aReason, IProgress **aProgress) DUMMY(E_FAIL)
|
||||
|
||||
STDMETHODIMP Console::COMGETTER(Debugger)(IMachineDebugger **aDebugger) DUMMY(E_FAIL)
|
||||
@ -103,7 +112,13 @@ HRESULT Console::onlineMergeMedium(IMediumAttachment *aMediumAttachment,
|
||||
IProgress *aProgress) DUMMY(E_FAIL)
|
||||
|
||||
void fireStateChangedEvent(IEventSource* aSource,
|
||||
MachineState_T a_state) TRACE()
|
||||
MachineState_T a_state)
|
||||
{
|
||||
if (a_state != MachineState_PoweredOff)
|
||||
return;
|
||||
|
||||
Genode::env()->parent()->exit(0);
|
||||
}
|
||||
|
||||
void fireRuntimeErrorEvent(IEventSource* aSource, BOOL a_fatal,
|
||||
CBSTR a_id, CBSTR a_message)
|
||||
|
11
repos/ports/src/virtualbox/patches/posix.patch
Normal file
11
repos/ports/src/virtualbox/patches/posix.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- a/src/app/virtualbox/src/VBox/Runtime/r3/posix/path-posix.cpp
|
||||
+++ b/src/app/virtualbox/src/VBox/Runtime/r3/posix/path-posix.cpp
|
||||
@@ -401,8 +401,6 @@
|
||||
rc = errno == ENOENT ? VINF_SUCCESS : RTErrConvertFromErrno(errno);
|
||||
else
|
||||
{
|
||||
- Assert(SrcStat.st_dev && DstStat.st_dev);
|
||||
- Assert(SrcStat.st_ino && DstStat.st_ino);
|
||||
if ( SrcStat.st_dev == DstStat.st_dev
|
||||
&& SrcStat.st_ino == DstStat.st_ino
|
||||
&& (SrcStat.st_mode & S_IFMT) == (DstStat.st_mode & S_IFMT))
|
@ -21,3 +21,4 @@ serial.patch
|
||||
rem_irq.patch
|
||||
usb.patch
|
||||
tm_smp.patch
|
||||
posix.patch
|
||||
|
Loading…
Reference in New Issue
Block a user