diff options
| author | Felix Geyer <fgeyer@debian.org> | 2013-03-02 22:29:33 +0100 |
|---|---|---|
| committer | Felix Geyer <fgeyer@debian.org> | 2013-03-02 22:29:33 +0100 |
| commit | fb32dd2be67519662e93ffbbe520c79d95b1fbfb (patch) | |
| tree | e445911bff35c842af26b5e5c0ee31573be49008 /src/VBox/Additions | |
| parent | 490244144bf10ecd165f2f81f2c88b7781c91d85 (diff) | |
| download | virtualbox-fb32dd2be67519662e93ffbbe520c79d95b1fbfb.tar.gz | |
Imported Upstream version 4.2.8-dfsgupstream/4.2.8-dfsg
Diffstat (limited to 'src/VBox/Additions')
172 files changed, 938 insertions, 575 deletions
diff --git a/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp b/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp index afa7b69cb..440c4b81d 100644 --- a/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp +++ b/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2008-2010 Oracle Corporation + * Copyright (C) 2008-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxControl/testcase/tstVBoxControl.cpp b/src/VBox/Additions/common/VBoxControl/testcase/tstVBoxControl.cpp index 7536162bb..38c8d3e58 100644 --- a/src/VBox/Additions/common/VBoxControl/testcase/tstVBoxControl.cpp +++ b/src/VBox/Additions/common/VBoxControl/testcase/tstVBoxControl.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c index 1720abb23..1552f7150 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c index b4270bae8..ab0942e12 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c @@ -1,4 +1,4 @@ -/* $Rev: 80789 $ */ +/* $Rev: 83687 $ */ /** @file * VBoxGuest - Linux specifics. * @@ -7,7 +7,7 @@ */ /* - * Copyright (C) 2006-2012 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -196,7 +196,11 @@ static struct miscdevice g_MiscDeviceUser = /** PCI hotplug structure. */ -static const struct pci_device_id __devinitdata g_VBoxGuestPciId[] = +static const struct pci_device_id +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0) +__devinitdata +#endif +g_VBoxGuestPciId[] = { { vendor: VMMDEV_VENDORID, diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-os2.cpp b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-os2.cpp index a74f55953..53fbbfbd6 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-os2.cpp +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-os2.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 knut st. osmundsen <bird-src-spam@anduin.net> + * Copyright (C) 2007-2012 knut st. osmundsen <bird-src-spam@anduin.net> * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-os2.def b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-os2.def index 4728686eb..15c049149 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-os2.def +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-os2.def @@ -4,7 +4,7 @@ ; ; -; Copyright (C) 2007 Oracle Corporation +; Copyright (C) 2007-2010 Oracle Corporation ; ; This file is part of VirtualBox Open Source Edition (OSE), as ; available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.conf b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.conf index 6c23af13b..1e2c814fa 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.conf +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.conf @@ -1,7 +1,7 @@ # # OpenSolaris Guest Driver Configuration # -# Copyright (C) 2007-2010 Oracle Corporation +# Copyright (C) 2007-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win-pnp.cpp b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win-pnp.cpp index fb844b78e..79520a412 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win-pnp.cpp +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win-pnp.cpp @@ -2,7 +2,7 @@ * * VBoxGuest-win-pnp - Windows Plug'n'Play specifics. * - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp index 47cdf0e18..a19a2aab6 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp @@ -2,7 +2,7 @@ * * VBoxGuest - Windows specifics. * - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.h b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.h index a3b02659e..c8d6a2036 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.h +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.h @@ -2,7 +2,7 @@ * * VBoxGuest - Windows specifics. * - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp b/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp index 594e0921c..5c4dada0b 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007-2012 Oracle Corporation + * Copyright (C) 2007-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuestA-os2.asm b/src/VBox/Additions/common/VBoxGuest/VBoxGuestA-os2.asm index bb8757f19..1d5d11d62 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuestA-os2.asm +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuestA-os2.asm @@ -4,7 +4,7 @@ ; ; -; Copyright (C) 2007 knut st. osmundsen <bird-src-spam@anduin.net> +; Copyright (C) 2007-2010 knut st. osmundsen <bird-src-spam@anduin.net> ; ; This file is part of VirtualBox Open Source Edition (OSE), as ; available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/freebsd/Makefile b/src/VBox/Additions/common/VBoxGuest/freebsd/Makefile index c0326547e..a25cc9f2c 100644 --- a/src/VBox/Additions/common/VBoxGuest/freebsd/Makefile +++ b/src/VBox/Additions/common/VBoxGuest/freebsd/Makefile @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2009 Oracle Corporation +# Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/linux/Makefile b/src/VBox/Additions/common/VBoxGuest/linux/Makefile index 5b03a9a15..a3529d848 100644 --- a/src/VBox/Additions/common/VBoxGuest/linux/Makefile +++ b/src/VBox/Additions/common/VBoxGuest/linux/Makefile @@ -1,10 +1,10 @@ -# $Revision: 79403 $ +# $Revision: 83687 $ ## @file # VirtualBox Guest Additions Module Makefile. # # -# Copyright (C) 2006-2011 Oracle Corporation +# Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/linux/files_vboxguest b/src/VBox/Additions/common/VBoxGuest/linux/files_vboxguest index f733baa02..f9f8a9d77 100755 --- a/src/VBox/Additions/common/VBoxGuest/linux/files_vboxguest +++ b/src/VBox/Additions/common/VBoxGuest/linux/files_vboxguest @@ -5,7 +5,7 @@ # # -# Copyright (C) 2007-2010 Oracle Corporation +# Copyright (C) 2007-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/win/VBoxGuestInst.cpp b/src/VBox/Additions/common/VBoxGuest/win/VBoxGuestInst.cpp index eb9a7b690..238da6dcb 100644 --- a/src/VBox/Additions/common/VBoxGuest/win/VBoxGuestInst.cpp +++ b/src/VBox/Additions/common/VBoxGuest/win/VBoxGuestInst.cpp @@ -2,7 +2,7 @@ * * Small tool to (un)install the VBoxGuest device driver * - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuest/win/VBoxGuestMsg.mc b/src/VBox/Additions/common/VBoxGuest/win/VBoxGuestMsg.mc index 65a14b5f5..9cba3c3f2 100644 --- a/src/VBox/Additions/common/VBoxGuest/win/VBoxGuestMsg.mc +++ b/src/VBox/Additions/common/VBoxGuest/win/VBoxGuestMsg.mc @@ -1,7 +1,7 @@ ; ; VBoxGuest Device Driver Messages ; -; Copyright (C) 2006-2007 Oracle Corporation +; Copyright (C) 2006-2010 Oracle Corporation ; ; This file is part of VirtualBox Open Source Edition (OSE), as ; available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp b/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp index ea1fe1873..ad336f9ae 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp @@ -1,10 +1,10 @@ -/* $Revision: 71271 $ */ +/* $Revision: 83687 $ */ /** @file * VBoxGuestLibR0 - Generic VMMDev request management. */ /* - * Copyright (C) 2006-2009 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp b/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp index f6aa77b46..0a6d65aa9 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp @@ -1,4 +1,4 @@ -/* $Revision: 76853 $ */ +/* $Revision: 83687 $ */ /** @file * VBoxGuestLib - Host-Guest Communication Manager. * @@ -7,7 +7,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp b/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp index fa2703aa2..7357398ec 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp @@ -1,10 +1,10 @@ -/* $Revision: 77449 $ */ +/* $Revision: 83687 $ */ /** @file * VBoxGuestLib - Host-Guest Communication Manager internal functions, implemented by VBoxGuest */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/Init.cpp b/src/VBox/Additions/common/VBoxGuestLib/Init.cpp index c21ce6cdb..d6c667d37 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/Init.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/Init.cpp @@ -1,10 +1,10 @@ -/* $Revision: 79609 $ */ +/* $Revision: 83687 $ */ /** @file * VBoxGuestLibR0 - Library initialization. */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp b/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp index 51f1281d0..73e219a3d 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp @@ -1,10 +1,10 @@ -/* $Revision: 67140 $ */ +/* $Revision: 83687 $ */ /** @file * VBoxGuestLibR0 - Physical memory heap. */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp b/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp index 9d7959005..c7c379ee9 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp @@ -1,10 +1,10 @@ -/* $Revision: 81725 $ */ +/* $Revision: 83687 $ */ /** @file * VBoxGuestLibR0 - IDC with VBoxGuest and HGCM helpers. */ /* - * Copyright (C) 2006-2009 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/SysHlp.h b/src/VBox/Additions/common/VBoxGuestLib/SysHlp.h index 9e78e4041..b22ca1c9d 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/SysHlp.h +++ b/src/VBox/Additions/common/VBoxGuestLib/SysHlp.h @@ -1,10 +1,10 @@ -/* $Revision: 78884 $ */ +/* $Revision: 83687 $ */ /** @file * VBoxGuestLibR0 - System dependent helpers internal header. */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBGLInternal.h b/src/VBox/Additions/common/VBoxGuestLib/VBGLInternal.h index 98cf339c7..6fe015da2 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBGLInternal.h +++ b/src/VBox/Additions/common/VBoxGuestLib/VBGLInternal.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2012 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -138,20 +138,13 @@ extern VBGLDATA g_vbgldata; * * @param a_fLocked For the windows shared folders workarounds. * - * @remarks Disable the PageList feature for 64-bit Windows, because shared - * folders do not work, if this is enabled. This should be reenabled - * again when the problem is fixed. - * @remarks Disabled the PageList feature for 32-bit Windows, see xTracker - * ticket 6096 and public ticket 10290. Hopefully this is the same - * issue as on Windows/AMD64. + * @remarks Disabled the PageList feature for locked memory on Windows, + * because a new MDL is created by VBGL to get the page addresses + * and the pages from the MDL are marked as dirty when they should not. */ #if defined(RT_OS_WINDOWS) -# ifdef RT_ARCH_AMD64 -# define VBGLR0_CAN_USE_PHYS_PAGE_LIST(a_fLocked) ( 0 ) -# else -# define VBGLR0_CAN_USE_PHYS_PAGE_LIST(a_fLocked) \ - ( !(a_fLocked) && (g_vbgldata.hostVersion.features & VMMDEV_HVF_HGCM_PHYS_PAGE_LIST) ) -# endif +# define VBGLR0_CAN_USE_PHYS_PAGE_LIST(a_fLocked) \ + ( !(a_fLocked) && (g_vbgldata.hostVersion.features & VMMDEV_HVF_HGCM_PHYS_PAGE_LIST) ) #else # define VBGLR0_CAN_USE_PHYS_PAGE_LIST(a_fLocked) \ ( !!(g_vbgldata.hostVersion.features & VMMDEV_HVF_HGCM_PHYS_PAGE_LIST) ) diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBGLR3Internal.h b/src/VBox/Additions/common/VBoxGuestLib/VBGLR3Internal.h index a36e81291..463c13dc3 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBGLR3Internal.h +++ b/src/VBox/Additions/common/VBoxGuestLib/VBGLR3Internal.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestLog.h b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestLog.h index 0046f8ea3..fccd343ec 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestLog.h +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestLog.h @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.c b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.c index a792acafd..f05111309 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.c +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.c @@ -1,10 +1,10 @@ -/* $Revision: 76380 $ */ +/* $Revision: 83629 $ */ /** @file * VBoxGuestR0LibSharedFolders - Ring 0 Shared Folders calls. */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -442,6 +442,52 @@ DECLVBGL(int) vboxCallRead(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, return rc; } +DECLVBGL(int) VbglR0SharedFolderReadPageList(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, + uint64_t offset, uint32_t *pcbBuffer, + uint16_t offFirstPage, uint16_t cPages, RTGCPHYS64 *paPages) +{ + uint32_t cbToRead = *pcbBuffer; + uint32_t cbData = sizeof(VBoxSFRead) + RT_UOFFSETOF(HGCMPageListInfo, aPages[cPages]); + VBoxSFRead *pData = (VBoxSFRead *)RTMemTmpAlloc(cbData); + HGCMPageListInfo *pPgLst = (HGCMPageListInfo *)(pData + 1); + uint16_t iPage; + int rc; + + if (RT_UNLIKELY(!pData)) + return VERR_NO_TMP_MEMORY; + + VBOX_INIT_CALL(&pData->callInfo, READ, pClient); + + pData->root.type = VMMDevHGCMParmType_32bit; + pData->root.u.value32 = pMap->root; + + pData->handle.type = VMMDevHGCMParmType_64bit; + pData->handle.u.value64 = hFile; + pData->offset.type = VMMDevHGCMParmType_64bit; + pData->offset.u.value64 = offset; + pData->cb.type = VMMDevHGCMParmType_32bit; + pData->cb.u.value32 = cbToRead; + pData->buffer.type = VMMDevHGCMParmType_PageList; + pData->buffer.u.PageList.size = cbToRead; + pData->buffer.u.PageList.offset = sizeof(VBoxSFRead); + + pPgLst->flags = VBOX_HGCM_F_PARM_DIRECTION_FROM_HOST; + pPgLst->offFirstPage = offFirstPage; + pPgLst->cPages = cPages; + for (iPage = 0; iPage < cPages; iPage++) + pPgLst->aPages[iPage] = paPages[iPage]; + + rc = VbglHGCMCall(pClient->handle, &pData->callInfo, cbData); + if (RT_SUCCESS (rc)) + { + rc = pData->callInfo.result; + *pcbBuffer = pData->cb.u.value32; + } + + RTMemTmpFree(pData); + return rc; +} + DECLVBGL(int) vboxCallWrite(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, uint8_t *pBuffer, bool fLocked) { @@ -524,6 +570,52 @@ DECLVBGL(int) VbglR0SfWritePhysCont(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHAND } +DECLVBGL(int) VbglR0SharedFolderWritePageList(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, + uint64_t offset, uint32_t *pcbBuffer, + uint16_t offFirstPage, uint16_t cPages, RTGCPHYS64 *paPages) +{ + uint32_t cbToWrite = *pcbBuffer; + uint32_t cbData = sizeof(VBoxSFWrite) + RT_UOFFSETOF(HGCMPageListInfo, aPages[cPages]); + VBoxSFWrite *pData = (VBoxSFWrite *)RTMemTmpAlloc(cbData); + HGCMPageListInfo *pPgLst = (HGCMPageListInfo *)(pData + 1); + uint16_t iPage; + int rc; + + if (RT_UNLIKELY(!pData)) + return VERR_NO_TMP_MEMORY; + + VBOX_INIT_CALL(&pData->callInfo, WRITE, pClient); + + pData->root.type = VMMDevHGCMParmType_32bit; + pData->root.u.value32 = pMap->root; + + pData->handle.type = VMMDevHGCMParmType_64bit; + pData->handle.u.value64 = hFile; + pData->offset.type = VMMDevHGCMParmType_64bit; + pData->offset.u.value64 = offset; + pData->cb.type = VMMDevHGCMParmType_32bit; + pData->cb.u.value32 = cbToWrite; + pData->buffer.type = VMMDevHGCMParmType_PageList; + pData->buffer.u.PageList.size = cbToWrite; + pData->buffer.u.PageList.offset = sizeof(VBoxSFWrite); + + pPgLst->flags = VBOX_HGCM_F_PARM_DIRECTION_TO_HOST; + pPgLst->offFirstPage = offFirstPage; + pPgLst->cPages = cPages; + for (iPage = 0; iPage < cPages; iPage++) + pPgLst->aPages[iPage] = paPages[iPage]; + + rc = VbglHGCMCall (pClient->handle, &pData->callInfo, cbData); + if (RT_SUCCESS (rc)) + { + rc = pData->callInfo.result; + *pcbBuffer = pData->cb.u.value32; + } + + RTMemTmpFree(pData); + return rc; +} + DECLVBGL(int) vboxCallFlush(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile) { int rc = VINF_SUCCESS; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.h b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.h index 3947a13da..5e5c95761 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.h +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.h @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -172,8 +172,14 @@ DECLVBGL(int) vboxCallRename (PVBSFCLIENT pClient, PVBSFMAP pMap, PSHFLSTRING pS DECLVBGL(int) vboxCallFlush (PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile); DECLVBGL(int) vboxCallRead (PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, uint8_t *pBuffer, bool fLocked); +DECLVBGL(int) VbglR0SharedFolderReadPageList(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, + uint64_t offset, uint32_t *pcbBuffer, + uint16_t offFirstPage, uint16_t cPages, RTGCPHYS64 *paPages); DECLVBGL(int) vboxCallWrite (PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, uint8_t *pBuffer, bool fLocked); DECLVBGL(int) VbglR0SfWritePhysCont(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, RTCCPHYS PhysBuffer); +DECLVBGL(int) VbglR0SharedFolderWritePageList(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, + uint64_t offset, uint32_t *pcbBuffer, + uint16_t offFirstPage, uint16_t cPages, RTGCPHYS64 *paPages); DECLVBGL(int) vboxCallLock (PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint64_t cbSize, uint32_t fLock); diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp index 32ccf4c43..662d70b69 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibClipboard.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibClipboard.cpp index 2c13b0aa1..045d46706 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibClipboard.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibClipboard.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibCredentials.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibCredentials.cpp index a25515e19..7809a4200 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibCredentials.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibCredentials.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDaemonize.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDaemonize.cpp index a314e522c..2687112fe 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDaemonize.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDaemonize.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007-2009 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGR.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGR.cpp index b8a3fa7f2..a5e165015 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGR.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGR.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp index 514d60c93..f28cafed6 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010-2011 Oracle Corporation + * Copyright (C) 2010-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestProp.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestProp.cpp index 32c7d7968..4fb9bf59b 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestProp.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestProp.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibHostVersion.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibHostVersion.cpp index 03cfce8fd..e253838ba 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibHostVersion.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibHostVersion.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMouse.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMouse.cpp index 25fc44ee6..52e39ab22 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMouse.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMouse.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSeamless.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSeamless.cpp index aa146281b..60b47a08a 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSeamless.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSeamless.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSharedFolders.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSharedFolders.cpp index 3476f0320..1ebec9cd6 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSharedFolders.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSharedFolders.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibTime.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibTime.cpp index c03b2c222..13830afe7 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibTime.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibTime.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp index 3298d85d8..d76104351 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007-2009 Oracle Corporation + * Copyright (C) 2007-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VMMDev.cpp b/src/VBox/Additions/common/VBoxGuestLib/VMMDev.cpp index 007792376..beda4bb27 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VMMDev.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VMMDev.cpp @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxGuestLib/VbglR0CanUsePhysPageList.cpp b/src/VBox/Additions/common/VBoxGuestLib/VbglR0CanUsePhysPageList.cpp index a87645569..04f69636c 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VbglR0CanUsePhysPageList.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VbglR0CanUsePhysPageList.cpp @@ -1,10 +1,10 @@ -/* $Revision: 77449 $ */ +/* $Revision: 83629 $ */ /** @file * VBoxGuestLibR0 - Physical memory heap. */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -34,6 +34,9 @@ */ DECLR0VBGL(bool) VbglR0CanUsePhysPageList(void) { + /* a_fLocked is false, because the actual capability of the host is requested. + * See VBGLR0_CAN_USE_PHYS_PAGE_LIST definition. + */ int rc = vbglR0Enter(); return RT_SUCCESS(rc) && VBGLR0_CAN_USE_PHYS_PAGE_LIST(/*a_fLocked =*/ false); diff --git a/src/VBox/Additions/common/VBoxService/VBoxService-os2.def b/src/VBox/Additions/common/VBoxService/VBoxService-os2.def index 2c14ceede..aed84c68a 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxService-os2.def +++ b/src/VBox/Additions/common/VBoxService/VBoxService-os2.def @@ -3,7 +3,7 @@ ; ; -; Copyright (C) 2007 Oracle Corporation +; Copyright (C) 2007-2010 Oracle Corporation ; ; This file is part of VirtualBox Open Source Edition (OSE), as ; available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxService-win.cpp b/src/VBox/Additions/common/VBoxService/VBoxService-win.cpp index 9a990e2a6..eb970fa8a 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxService-win.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxService-win.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxService.cpp b/src/VBox/Additions/common/VBoxService/VBoxService.cpp index 639b97f78..3e442cddd 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxService.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxService.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007-2011 Oracle Corporation + * Copyright (C) 2007-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp index 06d172e40..04e4d52de 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010-2011 Oracle Corporation + * Copyright (C) 2010-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceBalloon.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceBalloon.cpp index ecfd743c3..3d5d0a867 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceBalloon.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceBalloon.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp index 07778cd70..794c19bf6 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2012 Oracle Corporation + * Copyright (C) 2012-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -41,6 +41,8 @@ using namespace guestControl; static uint32_t g_uControlIntervalMS = 0; /** The semaphore we're blocking our main control thread on. */ static RTSEMEVENTMULTI g_hControlEvent = NIL_RTSEMEVENTMULTI; +/** The VM session ID. Changes whenever the VM is restored or reset. */ +static uint64_t g_idControlSession; /** The guest control service client ID. */ static uint32_t g_uControlSvcClientID = 0; /** How many started guest processes are kept into memory for supplying @@ -69,17 +71,19 @@ static uint32_t g_uControlFileCount = 0; * Internal Functions * *******************************************************************************/ /** @todo Shorten "VBoxServiceControl" to "gstsvcCntl". */ -static int VBoxServiceControlReapThreads(void); -static int VBoxServiceControlStartAllowed(bool *pbAllowed); -static int VBoxServiceControlHandleCmdStartProc(uint32_t u32ClientId, uint32_t uNumParms); -static int VBoxServiceControlHandleCmdSetInput(uint32_t u32ClientId, uint32_t uNumParms, void *pvScratchBuf, size_t cbScratchBuf); -static int VBoxServiceControlHandleCmdGetOutput(uint32_t u32ClientId, uint32_t uNumParms); -static int VBoxServiceControlHandleFileOpen(uint32_t idClient, uint32_t cParms); -static int VBoxServiceControlHandleFileClose(uint32_t idClient, uint32_t cParms); -static int VBoxServiceControlHandleFileRead(uint32_t idClient, uint32_t cParms); -static int VBoxServiceControlHandleFileWrite(uint32_t idClient, uint32_t cParms, void *pvScratchBuf, size_t cbScratchBuf); -static int VBoxServiceControlHandleFileSeek(uint32_t idClient, uint32_t cParms); -static int VBoxServiceControlHandleFileTell(uint32_t idClient, uint32_t cParms); +static int VBoxServiceControlHandleCmdStartProc(uint32_t u32ClientId, uint32_t uNumParms); +static int VBoxServiceControlHandleCmdSetInput(uint32_t u32ClientId, uint32_t uNumParms, void *pvScratchBuf, size_t cbScratchBuf); +static int VBoxServiceControlHandleCmdGetOutput(uint32_t u32ClientId, uint32_t uNumParms); +static int VBoxServiceControlHandleFileOpen(uint32_t idClient, uint32_t cParms); +static int VBoxServiceControlHandleFileClose(uint32_t idClient, uint32_t cParms); +static int VBoxServiceControlHandleFileRead(uint32_t idClient, uint32_t cParms); +static int VBoxServiceControlHandleFileWrite(uint32_t idClient, uint32_t cParms, void *pvScratchBuf, size_t cbScratchBuf); +static int VBoxServiceControlHandleFileSeek(uint32_t idClient, uint32_t cParms); +static int VBoxServiceControlHandleFileTell(uint32_t idClient, uint32_t cParms); +static int VBoxServiceControlReapThreads(void); +static void VBoxServiceControlShutdown(void); +static int vboxServiceControlSessionCloseAll(void); +static int VBoxServiceControlStartAllowed(bool *pbAllowed); #ifdef DEBUG static int vboxServiceControlDump(const char *pszFileName, void *pvBuf, size_t cbBuf) @@ -193,6 +197,9 @@ static DECLCALLBACK(int) VBoxServiceControlInit(void) int rc = RTSemEventMultiCreate(&g_hControlEvent); AssertRCReturn(rc, rc); + VbglR3GetSessionId(&g_idControlSession); + /* The status code is ignored as this information is not available with VBox < 3.2.10. */ + rc = VbglR3GuestCtrlConnect(&g_uControlSvcClientID); if (RT_SUCCESS(rc)) { @@ -265,10 +272,25 @@ DECLCALLBACK(int) VBoxServiceControlWorker(bool volatile *pfShutdown) if (RT_SUCCESS(rc)) { VBoxServiceVerbose(3, "Msg=%u (%u parms) retrieved\n", uMsg, cParms); + + uint64_t idNewSession = g_idControlSession; + int rc2 = VbglR3GetSessionId(&idNewSession); + if ( RT_SUCCESS(rc2) + && (idNewSession != g_idControlSession)) + { + VBoxServiceVerbose(1, "The VM session ID changed\n"); + g_idControlSession = idNewSession; + + /* Close all opened guest sessions -- all context IDs, sessions etc. + * are now invalid. */ + rc2 = vboxServiceControlSessionCloseAll(); + AssertRC(rc2); + } + switch (uMsg) { case HOST_CANCEL_PENDING_WAITS: - VBoxServiceVerbose(3, "Host asked us to quit ...\n"); + VBoxServiceVerbose(1, "We were asked to quit ...\n"); break; case HOST_EXEC_CMD: @@ -320,7 +342,6 @@ DECLCALLBACK(int) VBoxServiceControlWorker(bool volatile *pfShutdown) if ( *pfShutdown || (RT_SUCCESS(rc) && uMsg == HOST_CANCEL_PENDING_WAITS)) { - rc = VINF_SUCCESS; break; } @@ -328,6 +349,8 @@ DECLCALLBACK(int) VBoxServiceControlWorker(bool volatile *pfShutdown) RTThreadYield(); } + VBoxServiceVerbose(0, "Guest control service stopped\n"); + /* Delete scratch buffer. */ if (pvScratchBuf) RTMemFree(pvScratchBuf); @@ -1033,11 +1056,14 @@ static int VBoxServiceControlReapThreads(void) /** - * Destroys all guest process threads which are still active. + * Closes a formerly opened guest session. + * + * @return IPRT status code. + * @param uSessionID Guest session to close. */ -static void VBoxServiceControlShutdown(void) +static int vboxServiceControlSessionClose(uint32_t uSessionID) { - VBoxServiceVerbose(2, "Shutting down ...\n"); + /* Note: Sessions are not implemented yet, so just shutdown all started guest processes. */ /* Signal all threads in the active list that we want to shutdown. */ PVBOXSERVICECTRLTHREAD pThread; @@ -1055,7 +1081,10 @@ static void VBoxServiceControlShutdown(void) 30 * 1000 /* Wait 30 seconds max. */, NULL /* rc */); if (RT_FAILURE(rc2)) + { VBoxServiceError("Guest process thread failed to stop; rc=%Rrc\n", rc2); + /* Keep going. */ + } if (fLast) break; @@ -1063,15 +1092,40 @@ static void VBoxServiceControlShutdown(void) pThread = pNext; } - int rc2 = VBoxServiceControlReapThreads(); - if (RT_FAILURE(rc2)) - VBoxServiceError("Reaping inactive threads failed with rc=%Rrc\n", rc2); + int rc = VBoxServiceControlReapThreads(); + if (RT_FAILURE(rc)) + VBoxServiceError("Reaping inactive threads failed with rc=%Rrc\n", rc); AssertMsg(RTListIsEmpty(&g_lstControlThreadsActive), ("Guest process active thread list still contains entries when it should not\n")); AssertMsg(RTListIsEmpty(&g_lstControlThreadsInactive), ("Guest process inactive thread list still contains entries when it should not\n")); + return rc; +} + + +/** + * Closes (shuts down) all opened guest sessions. + * + * @return IPRT status code. + */ +static int vboxServiceControlSessionCloseAll(void) +{ + return vboxServiceControlSessionClose(0 /* Session ID, not used yet */); +} + + +/** + * Destroys all guest process threads which are still active. + */ +static void VBoxServiceControlShutdown(void) +{ + VBoxServiceVerbose(2, "Shutting down ...\n"); + + int rc2 = vboxServiceControlSessionCloseAll(); + AssertRC(rc2); + /* Destroy critical section. */ RTCritSectDelete(&g_csControlThreads); diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceControlThread.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceControlThread.cpp index 78ec20a8b..503bcbaae 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceControlThread.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceControlThread.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2012 Oracle Corporation + * Copyright (C) 2012-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -1623,18 +1623,8 @@ static int VBoxServiceControlThreadProcessWorker(PVBOXSERVICECTRLTHREAD pThread) rc2, rc); } - VBoxServiceVerbose(3, "[PID %u]: Cancelling pending host requests (client ID=%u)\n", - pThread->uPID, pThread->uClientID); - rc2 = VbglR3GuestCtrlCancelPendingWaits(pThread->uClientID); - if (RT_FAILURE(rc2)) - { - VBoxServiceError("[PID %u]: Cancelling pending host requests failed; rc=%Rrc\n", - pThread->uPID, rc2); - if (RT_SUCCESS(rc)) - rc = rc2; - } - - /* Disconnect from guest control service. */ + /* Disconnect this client from the guest control service. This also cancels all + * outstanding host requests. */ VBoxServiceVerbose(3, "[PID %u]: Disconnecting (client ID=%u) ...\n", pThread->uPID, pThread->uClientID); VbglR3GuestCtrlDisconnect(pThread->uClientID); diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceCpuHotPlug.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceCpuHotPlug.cpp index 53dc16759..9e80808ba 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceCpuHotPlug.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceCpuHotPlug.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServicePageSharing.cpp b/src/VBox/Additions/common/VBoxService/VBoxServicePageSharing.cpp index 39c9912de..3e97d2bfa 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServicePageSharing.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServicePageSharing.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2011 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp b/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp index 3e4b8b1cf..13a671964 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.h b/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.h index 430f9a7df..eb3ac648e 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.h +++ b/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceResource-win.h b/src/VBox/Additions/common/VBoxService/VBoxServiceResource-win.h index cf932cbe2..60296c55f 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceResource-win.h +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceResource-win.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp index 112a296f8..db7e8a323 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceTimeSync.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceTimeSync.cpp index 3371cb2f8..3c84e28ad 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceTimeSync.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceTimeSync.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp index b09ef3e82..8bc61846c 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009-2012 Oracle Corporation + * Copyright (C) 2009-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -110,7 +110,8 @@ int VBoxServiceReadProp(uint32_t u32ClientId, const char *pszPropName, break; /* done */ } - RTMemFree(pvBuf); + if (pvBuf) + RTMemFree(pvBuf); return rc; } @@ -167,8 +168,11 @@ int VBoxServiceReadPropUInt32(uint32_t u32ClientId, const char *pszPropName, int VBoxServiceReadHostProp(uint32_t u32ClientId, const char *pszPropName, bool fReadOnly, char **ppszValue, char **ppszFlags, uint64_t *puTimestamp) { - char *pszFlags; - int rc = VBoxServiceReadProp(u32ClientId, pszPropName, ppszValue, &pszFlags, puTimestamp); + AssertPtrReturn(ppszValue, VERR_INVALID_PARAMETER); + + char *pszValue = NULL; + char *pszFlags = NULL; + int rc = VBoxServiceReadProp(u32ClientId, pszPropName, &pszValue, &pszFlags, puTimestamp); if (RT_SUCCESS(rc)) { /* Check security bits. */ @@ -180,10 +184,22 @@ int VBoxServiceReadHostProp(uint32_t u32ClientId, const char *pszPropName, bool rc = VERR_ACCESS_DENIED; } - if (ppszFlags) - *ppszFlags = pszFlags; + if (RT_SUCCESS(rc)) + { + *ppszValue = pszValue; + + if (ppszFlags) + *ppszFlags = pszFlags; + else if (pszFlags) + RTStrFree(pszFlags); + } else - RTStrFree(pszFlags); + { + if (pszValue) + RTStrFree(pszValue); + if (pszFlags) + RTStrFree(pszFlags); + } } return rc; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp index a23128a58..28a900620 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -40,6 +40,8 @@ #include "VBoxServiceInternal.h" #include "VBoxServiceUtils.h" +static uint32_t s_uGuestPropClientID = 0; +static uint32_t s_uIter = 0; /******************************************************************************* * Structures and Typedefs * @@ -52,11 +54,11 @@ typedef struct WCHAR wszLogonDomain[_MAX_PATH]; /** Number of assigned user processes. */ ULONG ulNumProcs; - /** Last (highest) session number. This + /** Last (highest) session ID. This * is needed for distinguishing old session * process counts from new (current) session * ones. */ - ULONG ulSession; + ULONG ulLastSession; } VBOXSERVICEVMINFOUSER, *PVBOXSERVICEVMINFOUSER; /** Structure for the file information lookup. */ @@ -71,6 +73,8 @@ typedef struct { /** The PID. */ DWORD id; + /** The SID. */ + PSID pSid; /** The LUID. */ LUID luid; /** Interactive process. */ @@ -84,7 +88,7 @@ typedef struct uint32_t VBoxServiceVMInfoWinSessionHasProcesses(PLUID pSession, PVBOXSERVICEVMINFOPROC const paProcs, DWORD cProcs); bool VBoxServiceVMInfoWinIsLoggedIn(PVBOXSERVICEVMINFOUSER a_pUserInfo, PLUID a_pSession); int VBoxServiceVMInfoWinProcessesEnumerate(PVBOXSERVICEVMINFOPROC *ppProc, DWORD *pdwCount); -void VBoxServiceVMInfoWinProcessesFree(PVBOXSERVICEVMINFOPROC paProcs); +void VBoxServiceVMInfoWinProcessesFree(DWORD cProcs, PVBOXSERVICEVMINFOPROC paProcs); typedef BOOL WINAPI FNQUERYFULLPROCESSIMAGENAME(HANDLE, DWORD, LPTSTR, PDWORD); typedef FNQUERYFULLPROCESSIMAGENAME *PFNQUERYFULLPROCESSIMAGENAME; @@ -92,6 +96,28 @@ typedef FNQUERYFULLPROCESSIMAGENAME *PFNQUERYFULLPROCESSIMAGENAME; #ifndef TARGET_NT4 +static bool vboxServiceVMInfoSession0Separation(void) +{ + /** @todo Only do this once. Later. */ + OSVERSIONINFOEX OSInfoEx; + RT_ZERO(OSInfoEx); + OSInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + if ( !GetVersionEx((LPOSVERSIONINFO) &OSInfoEx) + || OSInfoEx.dwPlatformId != VER_PLATFORM_WIN32_NT) + { + /* Platform other than NT (e.g. Win9x) not supported. */ + return false; + } + + if ( OSInfoEx.dwMajorVersion >= 6 + && OSInfoEx.dwMinorVersion >= 0) + { + return true; + } + + return false; +} + /** * Retrieves the module name of a given process. * @@ -211,10 +237,13 @@ static int VBoxServiceVMInfoWinProcessesGetTokenInfo(PVBOXSERVICEVMINFOPROC pPro case TokenGroups: dwTokenInfoSize = 0; - /* Allocating will follow in a second step. */ + /* Allocation will follow in a second step. */ break; - /** @todo Implement more token classes here. */ + case TokenUser: + dwTokenInfoSize = 0; + /* Allocation will follow in a second step. */ + break; default: VBoxServiceError("Token class not implemented: %ld", tkClass); @@ -242,6 +271,14 @@ static int VBoxServiceVMInfoWinProcessesGetTokenInfo(PVBOXSERVICEVMINFOPROC pPro dwTokenInfoSize = dwRetLength; break; + case TokenUser: + pvTokenInfo = (PTOKEN_USER)HeapAlloc(GetProcessHeap(), + HEAP_ZERO_MEMORY, dwRetLength); + if (!pvTokenInfo) + dwErr = GetLastError(); + dwTokenInfoSize = dwRetLength; + break; + default: AssertMsgFailed(("Re-allocating of token information for token class not implemented\n")); break; @@ -264,6 +301,7 @@ static int VBoxServiceVMInfoWinProcessesGetTokenInfo(PVBOXSERVICEVMINFOPROC pPro case TokenStatistics: { PTOKEN_STATISTICS pStats = (PTOKEN_STATISTICS)pvTokenInfo; + AssertPtr(pStats); memcpy(&pProc->luid, &pStats->AuthenticationId, sizeof(LUID)); /** @todo Add more information of TOKEN_STATISTICS as needed. */ break; @@ -309,6 +347,34 @@ static int VBoxServiceVMInfoWinProcessesGetTokenInfo(PVBOXSERVICEVMINFOPROC pPro break; } + case TokenUser: + { + PTOKEN_USER pUser = (PTOKEN_USER)pvTokenInfo; + AssertPtr(pUser); + + DWORD dwLength = GetLengthSid(pUser->User.Sid); + Assert(dwLength); + if (dwLength) + { + pProc->pSid = (PSID)RTMemAlloc(dwLength); + AssertPtr(pProc->pSid); + if (CopySid(dwLength, pProc->pSid, pUser->User.Sid)) + { + if (!IsValidSid(pProc->pSid)) + dwErr = ERROR_INVALID_NAME; + } + else + dwErr = GetLastError(); + } + else + dwErr = ERROR_NO_DATA; + + if (dwErr != ERROR_SUCCESS) + VBoxServiceError("Error retrieving SID of process PID=%ld: %ld\n", + pProc->id, dwErr); + break; + } + default: AssertMsgFailed(("Unhandled token information class\n")); break; @@ -396,23 +462,22 @@ int VBoxServiceVMInfoWinProcessesEnumerate(PVBOXSERVICEVMINFOPROC *ppaProcs, PDW for (DWORD i = 0; i < cProcesses; i++) { paProcs[i].id = paPID[i]; - rc = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenGroups); - if (RT_FAILURE(rc)) - { - /* Because some processes cannot be opened/parsed on - Windows, we should not consider to be this an error here. */ - rc = VINF_SUCCESS; - } - else - { - rc = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenStatistics); - if (RT_FAILURE(rc)) - { - /* Because some processes cannot be opened/parsed on - Windows, we should not consider to be this an error here. */ - rc = VINF_SUCCESS; - } - } + paProcs[i].pSid = NULL; + + int rc2 = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenUser); + if (RT_FAILURE(rc2) && g_cVerbosity) + VBoxServiceError("Get token class \"user\" for process %ld failed, rc=%Rrc\n", + paProcs[i].id, rc2); + + rc2 = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenGroups); + if (RT_FAILURE(rc2) && g_cVerbosity) + VBoxServiceError("Get token class \"groups\" for process %ld failed, rc=%Rrc\n", + paProcs[i].id, rc2); + + rc2 = VBoxServiceVMInfoWinProcessesGetTokenInfo(&paProcs[i], TokenStatistics); + if (RT_FAILURE(rc2) && g_cVerbosity) + VBoxServiceError("Get token class \"statistics\" for process %ld failed, rc=%Rrc\n", + paProcs[i].id, rc2); } /* Save number of processes */ @@ -438,8 +503,13 @@ int VBoxServiceVMInfoWinProcessesEnumerate(PVBOXSERVICEVMINFOPROC *ppaProcs, PDW * * @param paProcs What */ -void VBoxServiceVMInfoWinProcessesFree(PVBOXSERVICEVMINFOPROC paProcs) +void VBoxServiceVMInfoWinProcessesFree(DWORD cProcs, PVBOXSERVICEVMINFOPROC paProcs) { + for (DWORD i = 0; i < cProcs; i++) + { + if (paProcs[i].pSid) + RTMemFree(paProcs[i].pSid); + } RTMemFree(paProcs); } @@ -447,14 +517,14 @@ void VBoxServiceVMInfoWinProcessesFree(PVBOXSERVICEVMINFOPROC paProcs) * Determines whether the specified session has processes on the system. * * @returns Number of processes found for a specified session. - * @param pSession The session. + * @param pSession The current user's SID. * @param paProcs The process snapshot. * @param cProcs The number of processes in the snaphot. * @param puSession Looked up session number. Optional. */ uint32_t VBoxServiceVMInfoWinSessionHasProcesses(PLUID pSession, PVBOXSERVICEVMINFOPROC const paProcs, DWORD cProcs, - PULONG puSession) + PULONG puTerminalSession) { if (!pSession) { @@ -466,10 +536,18 @@ uint32_t VBoxServiceVMInfoWinSessionHasProcesses(PLUID pSession, NTSTATUS rcNt = LsaGetLogonSessionData(pSession, &pSessionData); if (rcNt != STATUS_SUCCESS) { - VBoxServiceError("Could not get logon session data! rcNt=%#x", rcNt); + VBoxServiceError("Could not get logon session data! rcNt=%#x\n", rcNt); return 0; } + if (!IsValidSid(pSessionData->Sid)) + { + VBoxServiceError("User SID=%p is not valid\n", pSessionData->Sid); + return 0; + } + + int rc = VINF_SUCCESS; + /* * Even if a user seems to be logged in, it could be a stale/orphaned logon * session. So check if we have some processes bound to it by comparing the @@ -478,40 +556,35 @@ uint32_t VBoxServiceVMInfoWinSessionHasProcesses(PLUID pSession, uint32_t cNumProcs = 0; for (DWORD i = 0; i < cProcs; i++) { - VBoxServiceVerbose(4, "PID=%ld: (Interactive: %RTbool) %ld:%ld <-> %ld:%ld\n", - paProcs[i].id, paProcs[i].fInteractive, - paProcs[i].luid.HighPart, paProcs[i].luid.LowPart, - pSessionData->LogonId.HighPart, pSessionData->LogonId.LowPart); if (g_cVerbosity) { TCHAR szModule[_1K]; - int rc2 = VBoxServiceVMInfoWinProcessesGetModuleName(&paProcs[i], szModule, sizeof(szModule)); - if (RT_SUCCESS(rc2)) + rc = VBoxServiceVMInfoWinProcessesGetModuleName(&paProcs[i], szModule, sizeof(szModule)); + if (RT_SUCCESS(rc)) VBoxServiceVerbose(4, "PID=%ld: %s\n", paProcs[i].id, szModule); } - if ( paProcs[i].fInteractive - && ( paProcs[i].luid.HighPart == pSessionData->LogonId.HighPart - && paProcs[i].luid.LowPart == pSessionData->LogonId.LowPart)) + PSID pProcSID = paProcs[i].pSid; + if ( RT_SUCCESS(rc) + && pProcSID + && IsValidSid(pProcSID)) { - cNumProcs++; - if (!g_cVerbosity) /* We want a bit more info on higher verbosity. */ - break; + if ( EqualSid(pSessionData->Sid, paProcs[i].pSid) + && paProcs[i].fInteractive) + { + cNumProcs++; + if (!g_cVerbosity) /* We want a bit more info on higher verbosity. */ + break; + } } } - if (g_cVerbosity) - VBoxServiceVerbose(3, "Session %u has %u processes total\n", - pSessionData->Session, cNumProcs); - else - VBoxServiceVerbose(3, "Session %u has at least one process\n", - pSessionData->Session); - - if (puSession) - *puSession = pSessionData->Session; + if (puTerminalSession) + *puTerminalSession = pSessionData->Session; LsaFreeReturnBuffer(pSessionData); + return cNumProcs; } @@ -586,12 +659,25 @@ bool VBoxServiceVMInfoWinIsLoggedIn(PVBOXSERVICEVMINFOUSER pUserInfo, PLUID pSes return false; } - VBoxServiceVerbose(3, "Session data: Name=%ls, Session=%u, LogonID=%ld,%ld, LogonType=%ld\n", + VBoxServiceVerbose(3, "Session data: Name=%ls, SessionID=%RU32, LogonID=%ld,%ld, LogonType=%ld\n", pSessionData->UserName.Buffer, pSessionData->Session, pSessionData->LogonId.HighPart, pSessionData->LogonId.LowPart, pSessionData->LogonType); + if (vboxServiceVMInfoSession0Separation()) + { + /* Starting at Windows Vista user sessions begin with session 1, so + * ignore (stale) session 0 users. */ + if ( pSessionData->Session == 0 + /* Also check the logon time. */ + || pSessionData->LogonTime.QuadPart == 0) + { + LsaFreeReturnBuffer(pSessionData); + return false; + } + } + /* * Only handle users which can login interactively or logged in * remotely over native RDP. @@ -711,6 +797,9 @@ bool VBoxServiceVMInfoWinIsLoggedIn(PVBOXSERVICEVMINFOUSER pUserInfo, PLUID pSes pUserInfo->wszUser, fFoundUser ? "is" : "is not"); } + if (fFoundUser) + pUserInfo->ulLastSession = pSessionData->Session; + LsaFreeReturnBuffer(pSessionData); return fFoundUser; } @@ -727,9 +816,15 @@ bool VBoxServiceVMInfoWinIsLoggedIn(PVBOXSERVICEVMINFOUSER pUserInfo, PLUID pSes */ int VBoxServiceVMInfoWinWriteUsers(char **ppszUserList, uint32_t *pcUsersInList) { + AssertPtrReturn(ppszUserList, VERR_INVALID_POINTER); + AssertPtrReturn(pcUsersInList, VERR_INVALID_POINTER); + PLUID paSessions = NULL; ULONG cSessions = 0; + int rc2 = VbglR3GuestPropConnect(&s_uGuestPropClientID); + AssertRC(rc2); + /* This function can report stale or orphaned interactive logon sessions of already logged off users (especially in Windows 2000). */ NTSTATUS rcNt = LsaEnumerateLogonSessions(&cSessions, &paSessions); @@ -777,56 +872,73 @@ int VBoxServiceVMInfoWinWriteUsers(char **ppszUserList, uint32_t *pcUsersInList) else { ULONG cUniqueUsers = 0; + + /** + * Note: The cSessions loop variable does *not* correlate with + * the Windows session ID! + */ for (ULONG i = 0; i < cSessions; i++) { - VBoxServiceVerbose(3, "Handling session %u\n", i); + VBoxServiceVerbose(3, "Handling session %RU32 (of %RU32)\n", i + 1, cSessions); - VBOXSERVICEVMINFOUSER UserInfo; - if (VBoxServiceVMInfoWinIsLoggedIn(&UserInfo, &paSessions[i])) + VBOXSERVICEVMINFOUSER userSession; + if (VBoxServiceVMInfoWinIsLoggedIn(&userSession, &paSessions[i])) { - VBoxServiceVerbose(4, "Handling user=%ls, domain=%ls, package=%ls\n", - UserInfo.wszUser, UserInfo.wszLogonDomain, UserInfo.wszAuthenticationPackage); + VBoxServiceVerbose(4, "Handling user=%ls, domain=%ls, package=%ls, session=%RU32\n", + userSession.wszUser, userSession.wszLogonDomain, userSession.wszAuthenticationPackage, + userSession.ulLastSession); /* Retrieve assigned processes of current session. */ - ULONG ulSession; - uint32_t cSessionProcs = VBoxServiceVMInfoWinSessionHasProcesses(&paSessions[i], paProcs, cProcs, &ulSession); + uint32_t cCurSessionProcs = VBoxServiceVMInfoWinSessionHasProcesses(&paSessions[i], paProcs, cProcs, + NULL /* Terminal session ID */); /* Don't return here when current session does not have assigned processes * anymore -- in that case we have to search through the unique users list below * and see if got a stale user/session entry. */ + if (g_cVerbosity > 3) + { + char szDebugSessionPath[255]; RTStrPrintf(szDebugSessionPath, sizeof(szDebugSessionPath), "/VirtualBox/GuestInfo/Debug/LSA/Session/%RU32", + userSession.ulLastSession); + VBoxServiceWritePropF(s_uGuestPropClientID, szDebugSessionPath, + "#%RU32: cSessionProcs=%RU32 (of %RU32 procs total)", s_uIter, cCurSessionProcs, cProcs); + } + bool fFoundUser = false; - for (ULONG i = 0; i < cUniqueUsers; i++) + for (ULONG a = 0; a < cUniqueUsers; a++) { - if ( !wcscmp(UserInfo.wszUser, pUserInfo[i].wszUser) - && !wcscmp(UserInfo.wszLogonDomain, pUserInfo[i].wszLogonDomain) - && !wcscmp(UserInfo.wszAuthenticationPackage, pUserInfo[i].wszAuthenticationPackage) - && cSessionProcs) + PVBOXSERVICEVMINFOUSER pCurUser = &pUserInfo[a]; + AssertPtr(pCurUser); + + if ( !wcscmp(userSession.wszUser, pCurUser->wszUser) + && !wcscmp(userSession.wszLogonDomain, pCurUser->wszLogonDomain) + && !wcscmp(userSession.wszAuthenticationPackage, pCurUser->wszAuthenticationPackage)) { /* * Only respect the highest session for the current user. */ - if (ulSession > pUserInfo[i].ulSession) + if (userSession.ulLastSession > pCurUser->ulLastSession) { - VBoxServiceVerbose(4, "Updating user=%ls to %u processes (last session: %u)\n", - UserInfo.wszUser, cSessionProcs, ulSession); + VBoxServiceVerbose(4, "Updating user=%ls to %u processes (last used session: %RU32)\n", + pCurUser->wszUser, cCurSessionProcs, userSession.ulLastSession); - pUserInfo[i].ulNumProcs = cSessionProcs; - pUserInfo[i].ulSession = ulSession; + if (!cCurSessionProcs) + VBoxServiceVerbose(3, "Stale session for user=%ls detected! Processes: %RU32 -> %RU32, Session: %RU32 -> %RU32\n", + pCurUser->wszUser, + pCurUser->ulNumProcs, cCurSessionProcs, + pCurUser->ulLastSession, userSession.ulLastSession); - if (!cSessionProcs) - VBoxServiceVerbose(3, "Stale session for user=%ls detected! Old processes: %u, new: %u\n", - pUserInfo[i].wszUser, pUserInfo[i].ulNumProcs, cSessionProcs); + pCurUser->ulNumProcs = cCurSessionProcs; + pCurUser->ulLastSession = userSession.ulLastSession; } /* There can be multiple session objects using the same session ID for the * current user -- so when we got the same session again just add the found * processes to it. */ - else if (pUserInfo[i].ulSession == ulSession) + else if (pCurUser->ulLastSession == userSession.ulLastSession) { - VBoxServiceVerbose(4, "Adding %u processes to user=%ls (session %u)\n", - cSessionProcs, UserInfo.wszUser, ulSession); + VBoxServiceVerbose(4, "Updating processes for user=%ls (old procs=%RU32, new procs=%RU32, session=%RU32)\n", + pCurUser->wszUser, pCurUser->ulNumProcs, cCurSessionProcs, pCurUser->ulLastSession); - pUserInfo[i].ulNumProcs += cSessionProcs; - pUserInfo[i].ulSession = ulSession; + pCurUser->ulNumProcs = cCurSessionProcs; } fFoundUser = true; @@ -836,28 +948,44 @@ int VBoxServiceVMInfoWinWriteUsers(char **ppszUserList, uint32_t *pcUsersInList) if (!fFoundUser) { - VBoxServiceVerbose(4, "Adding new user=%ls (session %u) with %u processes\n", - UserInfo.wszUser, ulSession, cSessionProcs); + VBoxServiceVerbose(4, "Adding new user=%ls (session=%RU32) with %RU32 processes\n", + userSession.wszUser, userSession.ulLastSession, cCurSessionProcs); - memcpy(&pUserInfo[cUniqueUsers], &UserInfo, sizeof(VBOXSERVICEVMINFOUSER)); - pUserInfo[cUniqueUsers].ulNumProcs = cSessionProcs; - pUserInfo[cUniqueUsers].ulSession = ulSession; + memcpy(&pUserInfo[cUniqueUsers], &userSession, sizeof(VBOXSERVICEVMINFOUSER)); + pUserInfo[cUniqueUsers].ulNumProcs = cCurSessionProcs; cUniqueUsers++; Assert(cUniqueUsers <= cSessions); } } } + if (g_cVerbosity > 3) + VBoxServiceWritePropF(s_uGuestPropClientID, "/VirtualBox/GuestInfo/Debug/LSA", + "#%RU32: cSessions=%RU32, cProcs=%RU32, cUniqueUsers=%RU32", + s_uIter, cSessions, cProcs, cUniqueUsers); + VBoxServiceVerbose(3, "Found %u unique logged-in user(s)\n", cUniqueUsers); *pcUsersInList = 0; for (ULONG i = 0; i < cUniqueUsers; i++) { + if (g_cVerbosity > 3) + { + char szDebugUserPath[255]; RTStrPrintf(szDebugUserPath, sizeof(szDebugUserPath), "/VirtualBox/GuestInfo/Debug/LSA/User/%RU32", i); + VBoxServiceWritePropF(s_uGuestPropClientID, szDebugUserPath, + "#%RU32: szName=%ls, sessionID=%RU32, cProcs=%RU32", + s_uIter, pUserInfo[i].wszUser, pUserInfo[i].ulLastSession, pUserInfo[i].ulNumProcs); + } + + bool fAddUser = false; if (pUserInfo[i].ulNumProcs) + fAddUser = true; + + if (fAddUser) { - VBoxServiceVerbose(3, "User %ls has %ld processes (session %u)\n", - pUserInfo[i].wszUser, pUserInfo[i].ulNumProcs, pUserInfo[i].ulSession); + VBoxServiceVerbose(3, "User \"%ls\" has %RU32 interactive processes (session=%RU32)\n", + pUserInfo[i].wszUser, pUserInfo[i].ulNumProcs, pUserInfo[i].ulLastSession); if (*pcUsersInList > 0) { @@ -882,9 +1010,13 @@ int VBoxServiceVMInfoWinWriteUsers(char **ppszUserList, uint32_t *pcUsersInList) RTMemFree(pUserInfo); } - VBoxServiceVMInfoWinProcessesFree(paProcs); + VBoxServiceVMInfoWinProcessesFree(cProcs, paProcs); } LsaFreeReturnBuffer(paSessions); + + s_uIter++; + VbglR3GuestPropDisconnect(s_uGuestPropClientID); + return rc; } diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp index c162cbd70..37cc591ef 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -308,13 +308,20 @@ static void vboxServiceFreeLAClientInfo(PVBOXSERVICELACLIENTINFO pClient) if (pClient) { if (pClient->pszName) + { RTStrFree(pClient->pszName); + pClient->pszName = NULL; + } if (pClient->pszLocation) + { RTStrFree(pClient->pszLocation); + pClient->pszLocation = NULL; + } if (pClient->pszDomain) + { RTStrFree(pClient->pszDomain); - - pClient = NULL; + pClient->pszDomain = NULL; + } } } @@ -382,7 +389,7 @@ static void vboxserviceVMInfoWriteFixedProperties(void) } #if defined(VBOX_WITH_DBUS) && defined(RT_OS_LINUX) /* Not yet for Solaris/FreeBSB. */ -/* +/* * Simple wrapper to work around compiler-specific va_list madness. */ static dbus_bool_t vboxService_dbus_message_get_args(DBusMessage *message, @@ -504,8 +511,8 @@ static int vboxserviceVMInfoWriteUsers(void) { char **ppszSessions; int cSessions; if ( (dbus_message_get_type(pMsgSessions) == DBUS_MESSAGE_TYPE_METHOD_CALL) - && vboxService_dbus_message_get_args(pReplySessions, &dbErr, DBUS_TYPE_ARRAY, - DBUS_TYPE_OBJECT_PATH, &ppszSessions, &cSessions, + && vboxService_dbus_message_get_args(pReplySessions, &dbErr, DBUS_TYPE_ARRAY, + DBUS_TYPE_OBJECT_PATH, &ppszSessions, &cSessions, DBUS_TYPE_INVALID /* Termination */)) { VBoxServiceVerbose(4, "ConsoleKit: retrieved %RU16 session(s)\n", cSessions); @@ -587,7 +594,7 @@ static int vboxserviceVMInfoWriteUsers(void) && ppwEntry->pw_uid >= uid_min /* Only respect users, not daemons etc. */ && ppwEntry->pw_name) { - VBoxServiceVerbose(4, "ConsoleKit: session '%s' -> %s (uid: %RU32)\n", + VBoxServiceVerbose(4, "ConsoleKit: session '%s' -> %s (uid: %RU32)\n", *ppszCurSession, ppwEntry->pw_name, uid); bool fFound = false; @@ -629,7 +636,7 @@ static int vboxserviceVMInfoWriteUsers(void) else { VBoxServiceError("ConsoleKit: unable to retrieve session parameters (msg type=%d): %s", - dbus_message_get_type(pMsgSessions), + dbus_message_get_type(pMsgSessions), dbus_error_is_set(&dbErr) ? dbErr.message : "No error information available\n"); } dbus_message_unref(pReplySessions); @@ -750,6 +757,8 @@ static int vboxserviceVMInfoWriteUsers(void) } if (pszUserList) RTStrFree(pszUserList); + + VBoxServiceVerbose(4, "Writing users returned with rc=%Rrc\n", rc); return rc; } @@ -1185,11 +1194,12 @@ DECLCALLBACK(int) VBoxServiceVMInfoWorker(bool volatile *pfShutdown) * works with VBox (latest) 4.1 and up. */ /* Check for new connection. */ - char *pszLAClientID; + char *pszLAClientID = NULL; int rc2 = VBoxServiceReadHostProp(g_uVMInfoGuestPropSvcClientID, g_pszLAActiveClient, true /* Read only */, &pszLAClientID, NULL /* Flags */, NULL /* Timestamp */); if (RT_SUCCESS(rc2)) { + AssertPtr(pszLAClientID); if (RTStrICmp(pszLAClientID, "0")) /* Is a client connected? */ { uint32_t uLAClientID = RTStrToInt32(pszLAClientID); @@ -1252,6 +1262,8 @@ DECLCALLBACK(int) VBoxServiceVMInfoWorker(bool volatile *pfShutdown) VBoxServiceError("VRDP: Querying connected location awareness client failed with rc=%Rrc\n", rc2); } + VBoxServiceVerbose(3, "VRDP: Handling location awareness done\n"); + /* * Flush all properties if we were restored. */ diff --git a/src/VBox/Additions/common/VBoxService/testcase/tstUserInfo.cpp b/src/VBox/Additions/common/VBoxService/testcase/tstUserInfo.cpp index 84b18dfa4..29f2ff88f 100644 --- a/src/VBox/Additions/common/VBoxService/testcase/tstUserInfo.cpp +++ b/src/VBox/Additions/common/VBoxService/testcase/tstUserInfo.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp b/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp index 0e5fa467c..72b7ed1b7 100644 --- a/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp +++ b/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/VBoxVideo/VBVABase.cpp b/src/VBox/Additions/common/VBoxVideo/VBVABase.cpp index 5f481049c..f9b559c69 100644 --- a/src/VBox/Additions/common/VBoxVideo/VBVABase.cpp +++ b/src/VBox/Additions/common/VBoxVideo/VBVABase.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/Linux_i386_glxapi_exports.py b/src/VBox/Additions/common/crOpenGL/Linux_i386_glxapi_exports.py index c47f990a3..65c4660d2 100755 --- a/src/VBox/Additions/common/crOpenGL/Linux_i386_glxapi_exports.py +++ b/src/VBox/Additions/common/crOpenGL/Linux_i386_glxapi_exports.py @@ -1,5 +1,5 @@ """ -Copyright (C) 2009 Oracle Corporation +Copyright (C) 2009-2012 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports.py b/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports.py index b7fe6b9f5..7fc6cddb9 100755 --- a/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports.py +++ b/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports.py @@ -1,5 +1,5 @@ """ -Copyright (C) 2009 Oracle Corporation +Copyright (C) 2009-2012 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports_dri.py b/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports_dri.py index 7d9378e65..26903439b 100755 --- a/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports_dri.py +++ b/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports_dri.py @@ -1,5 +1,5 @@ """ -Copyright (C) 2009 Oracle Corporation +Copyright (C) 2009-2012 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/SunOS_i386_glxapi_exports.py b/src/VBox/Additions/common/crOpenGL/SunOS_i386_glxapi_exports.py index d395732db..e835ecb2c 100755 --- a/src/VBox/Additions/common/crOpenGL/SunOS_i386_glxapi_exports.py +++ b/src/VBox/Additions/common/crOpenGL/SunOS_i386_glxapi_exports.py @@ -1,5 +1,5 @@ """ -Copyright (C) 2009 Oracle Corporation +Copyright (C) 2009-2012 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/VBoxICDList.h b/src/VBox/Additions/common/crOpenGL/VBoxICDList.h index 54c7e4521..cc43c1c62 100644 --- a/src/VBox/Additions/common/crOpenGL/VBoxICDList.h +++ b/src/VBox/Additions/common/crOpenGL/VBoxICDList.h @@ -2,7 +2,7 @@ * * VirtualBox Windows NT/2000/XP guest OpenGL ICD * - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/dri_drv.c b/src/VBox/Additions/common/crOpenGL/dri_drv.c index d19b99b1c..37f501e93 100644 --- a/src/VBox/Additions/common/crOpenGL/dri_drv.c +++ b/src/VBox/Additions/common/crOpenGL/dri_drv.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/dri_drv.h b/src/VBox/Additions/common/crOpenGL/dri_drv.h index 9ee57766c..7c5807d29 100644 --- a/src/VBox/Additions/common/crOpenGL/dri_drv.h +++ b/src/VBox/Additions/common/crOpenGL/dri_drv.h @@ -6,7 +6,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/dri_glx.h b/src/VBox/Additions/common/crOpenGL/dri_glx.h index a2a389701..5ff295610 100644 --- a/src/VBox/Additions/common/crOpenGL/dri_glx.h +++ b/src/VBox/Additions/common/crOpenGL/dri_glx.h @@ -6,7 +6,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/fakedri_drv.c b/src/VBox/Additions/common/crOpenGL/fakedri_drv.c index 8e7b6ba57..0a5ef2370 100644 --- a/src/VBox/Additions/common/crOpenGL/fakedri_drv.c +++ b/src/VBox/Additions/common/crOpenGL/fakedri_drv.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/fakedri_drv.h b/src/VBox/Additions/common/crOpenGL/fakedri_drv.h index 0d94e1c3a..acbc71169 100644 --- a/src/VBox/Additions/common/crOpenGL/fakedri_drv.h +++ b/src/VBox/Additions/common/crOpenGL/fakedri_drv.h @@ -6,7 +6,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/fakedri_glfuncsList.h b/src/VBox/Additions/common/crOpenGL/fakedri_glfuncsList.h index ce5510f51..a8551de61 100644 --- a/src/VBox/Additions/common/crOpenGL/fakedri_glfuncsList.h +++ b/src/VBox/Additions/common/crOpenGL/fakedri_glfuncsList.h @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/fakedri_glxfuncsList.h b/src/VBox/Additions/common/crOpenGL/fakedri_glxfuncsList.h index c1592cdf1..6c449f852 100644 --- a/src/VBox/Additions/common/crOpenGL/fakedri_glxfuncsList.h +++ b/src/VBox/Additions/common/crOpenGL/fakedri_glxfuncsList.h @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/feedback/feedback_context.c b/src/VBox/Additions/common/crOpenGL/feedback/feedback_context.c index 232a7c673..2dc757ae8 100644 --- a/src/VBox/Additions/common/crOpenGL/feedback/feedback_context.c +++ b/src/VBox/Additions/common/crOpenGL/feedback/feedback_context.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/glx_c_exports.c b/src/VBox/Additions/common/crOpenGL/glx_c_exports.c index 4f94870ae..183c0219c 100644 --- a/src/VBox/Additions/common/crOpenGL/glx_c_exports.c +++ b/src/VBox/Additions/common/crOpenGL/glx_c_exports.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2008 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/glx_proto.h b/src/VBox/Additions/common/crOpenGL/glx_proto.h index 2ab6d05cb..610847494 100644 --- a/src/VBox/Additions/common/crOpenGL/glx_proto.h +++ b/src/VBox/Additions/common/crOpenGL/glx_proto.h @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2008 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/icd_drv.c b/src/VBox/Additions/common/crOpenGL/icd_drv.c index 22a9eadb1..cff7f9ac4 100644 --- a/src/VBox/Additions/common/crOpenGL/icd_drv.c +++ b/src/VBox/Additions/common/crOpenGL/icd_drv.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2008 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/icd_drv.h b/src/VBox/Additions/common/crOpenGL/icd_drv.h index e610de150..46c0b56c4 100644 --- a/src/VBox/Additions/common/crOpenGL/icd_drv.h +++ b/src/VBox/Additions/common/crOpenGL/icd_drv.h @@ -6,7 +6,7 @@ */ /* - * Copyright (C) 2006-2008 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/load.c b/src/VBox/Additions/common/crOpenGL/load.c index dc245caab..9307125ed 100644 --- a/src/VBox/Additions/common/crOpenGL/load.c +++ b/src/VBox/Additions/common/crOpenGL/load.c @@ -1307,7 +1307,7 @@ raise(SIGINT);*/ { int rc; - RTR3InitDll(0); + RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); if (!disable_sync) { diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_framebuffer.c b/src/VBox/Additions/common/crOpenGL/pack/packspu_framebuffer.c index cf445966f..240815b60 100644 --- a/src/VBox/Additions/common/crOpenGL/pack/packspu_framebuffer.c +++ b/src/VBox/Additions/common/crOpenGL/pack/packspu_framebuffer.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_getshaders.c b/src/VBox/Additions/common/crOpenGL/pack/packspu_getshaders.c index d0cc9040c..7592b2e4c 100644 --- a/src/VBox/Additions/common/crOpenGL/pack/packspu_getshaders.c +++ b/src/VBox/Additions/common/crOpenGL/pack/packspu_getshaders.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_glsl.c b/src/VBox/Additions/common/crOpenGL/pack/packspu_glsl.c index e19959a35..f52615ef1 100644 --- a/src/VBox/Additions/common/crOpenGL/pack/packspu_glsl.c +++ b/src/VBox/Additions/common/crOpenGL/pack/packspu_glsl.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_texture.c b/src/VBox/Additions/common/crOpenGL/pack/packspu_texture.c index b5c60aec5..00fba8eba 100644 --- a/src/VBox/Additions/common/crOpenGL/pack/packspu_texture.c +++ b/src/VBox/Additions/common/crOpenGL/pack/packspu_texture.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/pam/pam_vbox.cpp b/src/VBox/Additions/common/pam/pam_vbox.cpp index b8d85fda8..4852f0335 100644 --- a/src/VBox/Additions/common/pam/pam_vbox.cpp +++ b/src/VBox/Additions/common/pam/pam_vbox.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2008-2011 Oracle Corporation + * Copyright (C) 2008-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/common/testcase/tstPageFusion.cpp b/src/VBox/Additions/common/testcase/tstPageFusion.cpp index 321d3bffd..74a010f2f 100644 --- a/src/VBox/Additions/common/testcase/tstPageFusion.cpp +++ b/src/VBox/Additions/common/testcase/tstPageFusion.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/freebsd/Makefile b/src/VBox/Additions/freebsd/Makefile index 85920e3f1..3a06b3061 100644 --- a/src/VBox/Additions/freebsd/Makefile +++ b/src/VBox/Additions/freebsd/Makefile @@ -4,7 +4,7 @@ # # -# Copyright (C) 2009 Oracle Corporation +# Copyright (C) 2009-2010 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/freebsd/drm/Makefile b/src/VBox/Additions/freebsd/drm/Makefile index 15a581a4d..5c8800378 100644 --- a/src/VBox/Additions/freebsd/drm/Makefile +++ b/src/VBox/Additions/freebsd/drm/Makefile @@ -5,7 +5,7 @@ # # -# Copyright (C) 2006-2007 Oracle Corporation +# Copyright (C) 2006-2010 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/freebsd/drm/vboxvideo_drm.c b/src/VBox/Additions/freebsd/drm/vboxvideo_drm.c index 2e2a91d80..9d6a3db14 100644 --- a/src/VBox/Additions/freebsd/drm/vboxvideo_drm.c +++ b/src/VBox/Additions/freebsd/drm/vboxvideo_drm.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c b/src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c index a9d9c14a3..6b367836f 100644 --- a/src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c +++ b/src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2008 Oracle Corporation + * Copyright (C) 2008-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c b/src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c index 575a55ed2..622cbc48b 100644 --- a/src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c +++ b/src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2008 Oracle Corporation + * Copyright (C) 2008-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/Makefile b/src/VBox/Additions/linux/Makefile index c5beef410..2154b24f9 100644 --- a/src/VBox/Additions/linux/Makefile +++ b/src/VBox/Additions/linux/Makefile @@ -4,7 +4,7 @@ # # -# Copyright (C) 2009-2010 Oracle Corporation +# Copyright (C) 2009-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/Makefile.kmk b/src/VBox/Additions/linux/Makefile.kmk index 28f77ffa6..a5d6edeb0 100644 --- a/src/VBox/Additions/linux/Makefile.kmk +++ b/src/VBox/Additions/linux/Makefile.kmk @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2012 Oracle Corporation +# Copyright (C) 2006-2013 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -23,6 +23,9 @@ include $(KBUILD_PATH)/subheader.kmk # include $(PATH_SUB_CURRENT)/sharedfolders/Makefile.kmk include $(PATH_SUB_CURRENT)/drm/Makefile.kmk +ifdef VBOX_WITH_LIGHTDM_GREETER + include $(PATH_SUB_CURRENT)/lightdm-greeter/Makefile.kmk +endif # # Globals @@ -122,7 +125,8 @@ VBOX_ADD_BIN.linux += \ VBoxClient-all VBOX_ADD_STRIP_SBIN += \ - VBoxService + VBoxService \ + $(if $(VBOX_WITH_LIGHTDM_GREETER),vbox-greeter) VBOX_ADD_STRIP_LIB += \ VBoxOGLarrayspu.so \ @@ -208,6 +212,11 @@ VBOX_LNX_ADD_DBG_FILES := \ $(addprefix $(VBOX_LNX_ADD_DBG_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)) \ $(addprefix $(VBOX_LNX_ADD_DBG_MOD_DIR),$(VBOX_LNX_ADD_STRIP_MOD)) +ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING +VBOX_LNX_ADD_INST_FILES += \ + $(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),vbox-greeter) +endif + # Cleanup of the the installer directory files OTHER_CLEAN += $(VBOX_LNX_ADD_INST_FILES) $(VBOX_LNX_ADD_DBG_FILES) @@ -250,6 +259,13 @@ $(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)): \ $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@ $(QUIET)objcopy --add-gnu-debuglink=$@ $@ +# pattern rule for stripping and copying vbox-greeter to the installation directory +$(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),vbox-greeter): \ + $(VBOX_LNX_ADD_INST_SBIN_DIR)% : $(subst linux,linux2,$(PATH_STAGE_BIN))/additions/% \ + | $$(dir $$@) + $(call MSG_INST_FILE,$<,$@) + $(QUIET)$(INSTALL) -m 0755 $< $@ + # pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_LIB files to the installation directory $(addprefix $(VBOX_LNX_ADD_INST_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)): \ $(VBOX_LNX_ADD_INST_LIB_DIR)% : $(PATH_STAGE_BIN)/additions/% \ @@ -320,7 +336,6 @@ $(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_INIT)): \ $(QUIET)$(RM) -Rf $@ $(QUIET)$(CP) -RPf -- $< $@ - INSTALLS += GuestDrivers-src GuestDrivers-src_INST = $(INST_ADDITIONS)src/ GuestDrivers-src_MODE = a+r,u+w @@ -341,6 +356,7 @@ lnx_add_inst-noexec_INSTTYPE = stage lnx_add_inst-noexec_SOURCES = \ $(VBOX_REL_X11_ADD_INST)vboxclient.desktop \ $(VBOX_REL_X11_ADD_INST)vboxvideo.ids \ + $(if $(VBOX_WITH_LIGHTDM_GREETER_PACKING),lightdm-greeter/vbox-greeter.desktop,) \ selinux-fedora/vbox_x11.pp \ selinux-fedora/vbox_accel.pp @@ -363,6 +379,7 @@ LnxAdd-scripts_SOURCES = \ LnxAdd-scripts_EXEC_SOURCES = \ $(VBOX_REL_LNX_HOST_DRV)do_dkms \ $(VBOX_REL_LNX_INST_SRC)routines.sh \ + $(VBOX_REL_LNX_ADD_INST)module-autologon.sh=>installer/module-autologon \ $(VBOX_REL_LNX_ADD_INST)vboxadd.sh=>vboxadd \ $(VBOX_REL_LNX_ADD_INST)vboxadd-service.sh=>vboxadd-service \ $(VBOX_REL_LNX_ADD_INST)vboxadd-x11.sh=>vboxadd-x11 \ diff --git a/src/VBox/Additions/linux/drm/Makefile.module b/src/VBox/Additions/linux/drm/Makefile.module index c382be7bd..81b69a40b 100644 --- a/src/VBox/Additions/linux/drm/Makefile.module +++ b/src/VBox/Additions/linux/drm/Makefile.module @@ -3,7 +3,7 @@ # # (For 2.6.x this file must be 'Makefile'!) # -# Copyright (C) 2006-2010 Oracle Corporation +# Copyright (C) 2006-2011 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/files_vboxvideo_drm b/src/VBox/Additions/linux/drm/files_vboxvideo_drm index 9f18c86fa..2a652de4f 100755 --- a/src/VBox/Additions/linux/drm/files_vboxvideo_drm +++ b/src/VBox/Additions/linux/drm/files_vboxvideo_drm @@ -5,7 +5,7 @@ # # -# Copyright (C) 2007-2010 Oracle Corporation +# Copyright (C) 2007-2011 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo.h b/src/VBox/Additions/linux/drm/vboxvideo.h index 907b70e74..a02ae0aaa 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo.h +++ b/src/VBox/Additions/linux/drm/vboxvideo.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_crtc.c b/src/VBox/Additions/linux/drm/vboxvideo_crtc.c index aa4c2742e..e209eb406 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_crtc.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_crtc.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_dac.c b/src/VBox/Additions/linux/drm/vboxvideo_dac.c index 94e1e7001..e8b459f33 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_dac.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_dac.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_device.c b/src/VBox/Additions/linux/drm/vboxvideo_device.c index e23d4774f..ecc49eb4d 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_device.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_device.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_display.c b/src/VBox/Additions/linux/drm/vboxvideo_display.c index 16294abaf..3aa8eb704 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_display.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_display.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_drm.c b/src/VBox/Additions/linux/drm/vboxvideo_drm.c index 02c23183f..45cf015c6 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_drm.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_drm.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_drm.h b/src/VBox/Additions/linux/drm/vboxvideo_drm.h index 0613a9d23..11407e945 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_drm.h +++ b/src/VBox/Additions/linux/drm/vboxvideo_drm.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_drv.c b/src/VBox/Additions/linux/drm/vboxvideo_drv.c index c5df61cef..c115aac6b 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_drv.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_drv.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_drv.h b/src/VBox/Additions/linux/drm/vboxvideo_drv.h index 7cbd5f5a8..2e180816b 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_drv.h +++ b/src/VBox/Additions/linux/drm/vboxvideo_drv.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_kms.c b/src/VBox/Additions/linux/drm/vboxvideo_kms.c index 1fe68efef..0d12ac467 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_kms.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_kms.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/drm/vboxvideo_vga.c b/src/VBox/Additions/linux/drm/vboxvideo_vga.c index a8717b2f4..676bca651 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_vga.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_vga.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/export_modules b/src/VBox/Additions/linux/export_modules index a8c929ed2..9df93899e 100755 --- a/src/VBox/Additions/linux/export_modules +++ b/src/VBox/Additions/linux/export_modules @@ -4,7 +4,7 @@ # Create a tar archive containing the sources of the Linux guest kernel # modules # -# Copyright (C) 2006-2007 Oracle Corporation +# Copyright (C) 2006-2010 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/installer/deffiles b/src/VBox/Additions/linux/installer/deffiles index 074ab2241..02d54663b 100644 --- a/src/VBox/Additions/linux/installer/deffiles +++ b/src/VBox/Additions/linux/installer/deffiles @@ -25,6 +25,7 @@ DEFAULT_FILE_NAMES=" \ /usr/bin/vboxadd-xclient \ /usr/bin/VBoxClient \ /usr/bin/VBoxControl \ + /usr/sbin/vbox-greeter \ /usr/sbin/vboxadd-timesync \ /usr/sbin/vboxadd-service \ /usr/sbin/VBoxService \ @@ -43,6 +44,7 @@ DEFAULT_FILE_NAMES=" \ /usr/lib64/VBoxOGLpassthroughspu.so \ /usr/lib/VBoxOGL.so \ /usr/lib64/VBoxOGL.so \ + /usr/share/xgreeters/vbox-greeter.desktop \ /etc/X11/Xsession.d/98vboxadd-xclient \ /etc/X11/xinit.d/98vboxadd-xclient \ /etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh \ diff --git a/src/VBox/Additions/linux/installer/module-autologon.sh b/src/VBox/Additions/linux/installer/module-autologon.sh new file mode 100644 index 000000000..47b287d9c --- /dev/null +++ b/src/VBox/Additions/linux/installer/module-autologon.sh @@ -0,0 +1,169 @@ +# Oracle VM VirtualBox +# VirtualBox Linux Guest Additions installer - autologon module +# + +# Copyright (C) 2012-2013 Oracle Corporation +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# + +# @todo Document functions and their usage! + +MOD_AUTOLOGON_DEFAULT_LIGHTDM_CONFIG="/etc/lightdm/lightdm.conf" +MOD_AUTOLOGON_DEFAULT_LIGHTDM_GREETER_DIR="/usr/share/xgreeters" + +mod_autologon_init() +{ + echo "Initializing auto-logon support ..." + return 0 +} + +mod_autologon_install_ex() +{ + info "Installing auto-logon support ..." + + ## Parameters: + # Greeter directory. Defaults to /usr/share/xgreeters. + greeter_dir="$1" + # LightDM config. Defaults to /etc/lightdm/lightdm.conf. + lightdm_config="$2" + # Whether to force installation if non-compatible distribution + # is detected. + force="$3" + + # Check for Ubuntu and derivates. @todo Debian? + distros="Ubuntu UbuntuStudio Edubuntu Kubuntu Lubuntu Mythbuntu Xubuntu" + ## @todo Map Linux Mint versions to Ubuntu ones. + + ## @todo Move the distro check to a routine / globals as soon as + ## we have other distribution-dependent stuff. + which lsb_release &>/dev/null + if test "$?" -ne "0"; then + info "Error: lsb_release not found (path set?), skipping auto-logon installation" + return 1 + fi + distro_name=$(lsb_release -si) + distro_ver=$(lsb_release -sr) + + for distro_cur in ${distros}; do + if test "$distro_name" = "$distro_cur"; then + distro_found="true" + break + fi + done + + if test -z "$distro_found"; then + if ! test "$force" = "force"; then + info "Error: Unsupported distribution \"$distro_name\" found, skipping auto-logon installation" + return 1 + fi + info "Warning: Unsupported distribution \"$distro_name\" found" + else + # Do we have Ubuntu 11.10 or greater? + # Use AWK for comparison since we run on plan sh. + echo | awk 'END { exit ( !('"$distro_ver >= 11.10"') ); }' + if test "$?" -ne "0"; then + if ! test "$force" = "force"; then + info "Error: Version $distro_ver of \"$distro_name\" not supported, skipping auto-logon installation" + return 1 + fi + info "Warning: Unsupported \"$distro_name\" version $distro_ver found" + fi + fi + + # Install dependencies (lightdm and FLTK 1.3+) using apt-get. + which apt-get &>/dev/null + if test "$?" -ne "0"; then + info "Error: apt-get not found (path set?), skipping auto-logon installation" + return 1 + fi + info "Checking and installing necessary dependencies ..." + apt-get -qqq -y install libfltk1.3 libfltk-images1.3 || return 1 + apt-get -qqq -y install lightdm || return 1 + + # Check for LightDM config. + if ! test -f "$lightdm_config"; then + info "Error: LightDM config \"$lightdm_config\" not found (LightDM installed?), skipping auto-logon installation" + return 1 + fi + + # Check for /usr/share/xgreeters. + if ! test -d "$greeter_dir"; then + if ! test "$force" = "force"; then + info "Error: Directory \"$greeter_dir\" does not exist, skipping auto-logon installation" + return 1 + fi + info "Warning: Directory \"$greeter_dir\" does not exist, creating it" + mkdir -p -m 755 "$greeter_dir" || return 1 + fi + + # Link to required greeter files into $greeter_dir. + add_symlink "$INSTALLATION_DIR/share/VBoxGuestAdditions/vbox-greeter.desktop" "$greeter_dir/vbox-greeter.desktop" + + # Backup and activate greeter config. + if ! test -f "$lightdm_config.vbox-backup"; then + info "Backing up LightDM configuration file ..." + cp "$lightdm_config" "$lightdm_config.vbox-backup" || return 1 + chmod 644 "$lightdm_config.vbox-backup" || return 1 + fi + sed -i -e 's/^\s*greeter-session\s*=.*/greeter-session=vbox-greeter/g' "$lightdm_config" || return 1 + chmod 644 "$lightdm_config" || return 1 + + info "Auto-logon installation successful" + return 0 +} + +mod_autologon_install() +{ + if [ -z "$MOD_AUTOLOGON_LIGHTDM_GREETER_DIR" ]; then + MOD_AUTOLOGON_LIGHTDM_GREETER_DIR=$MOD_AUTOLOGON_DEFAULT_LIGHTDM_GREETER_DIR + fi + if [ -z "$MOD_AUTOLOGON_LIGHTDM_CONFIG" ]; then + MOD_AUTOLOGON_LIGHTDM_CONFIG=$MOD_AUTOLOGON_DEFAULT_LIGHTDM_CONFIG + fi + + mod_autologon_install_ex "$MOD_AUTOLOGON_LIGHTDM_GREETER_DIR" "$MOD_AUTOLOGON_LIGHTDM_CONFIG" "$MOD_AUTOLOGON_FORCE" + return $? +} + +mod_autologon_pre_uninstall() +{ + echo "Preparing to uninstall auto-logon support ..." + return 0 +} + +mod_autologon_uninstall() +{ + if test -z "$MOD_AUTOLOGON_LIGHTDM_CONFIG"; then + return 0 + fi + info "Un-installing auto-logon support ..." + + # Switch back to original greeter. + if test -f "$MOD_AUTOLOGON_LIGHTDM_CONFIG.vbox-backup"; then + mv "$MOD_AUTOLOGON_LIGHTDM_CONFIG.vbox-backup" "$MOD_AUTOLOGON_LIGHTDM_CONFIG" + if test "$?" -ne "0"; then + info "Warning: Could not restore original LightDM config \"$MOD_AUTOLOGON_LIGHTDM_CONFIG\"" + fi + fi + + # Remove greeter directory (if not empty). + rm "$MOD_AUTOLOGON_LIGHTDM_GREETER_DIR" 2>/dev/null + + info "Auto-logon uninstallation successful" + return 0 +} + +mod_autologon_config_save() +{ + echo " +MOD_AUTOLOGON_LIGHTDM_CONFIG='$MOD_AUTOLOGON_LIGHTDM_CONFIG' +MOD_AUTOLOGON_LIGHTDM_GREETER_DIR='$MOD_AUTOLOGON_LIGHTDM_GREETER_DIR'" +} + diff --git a/src/VBox/Additions/linux/installer/vboxadd-service.sh b/src/VBox/Additions/linux/installer/vboxadd-service.sh index caec21118..cf30b9e42 100755 --- a/src/VBox/Additions/linux/installer/vboxadd-service.sh +++ b/src/VBox/Additions/linux/installer/vboxadd-service.sh @@ -2,7 +2,7 @@ # # Linux Additions Guest Additions service daemon init script. # -# Copyright (C) 2006-2010 Oracle Corporation +# Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/installer/vboxadd-x11.sh b/src/VBox/Additions/linux/installer/vboxadd-x11.sh index ffa1e16d4..4f94c8cf3 100755 --- a/src/VBox/Additions/linux/installer/vboxadd-x11.sh +++ b/src/VBox/Additions/linux/installer/vboxadd-x11.sh @@ -1,10 +1,10 @@ #! /bin/sh # -# Linux Additions X11 setup init script ($Revision: 80787 $) +# Linux Additions X11 setup init script ($Revision: 83687 $) # # -# Copyright (C) 2006-2010 Oracle Corporation +# Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/installer/vboxadd.sh b/src/VBox/Additions/linux/installer/vboxadd.sh index dddfb3a55..44dfc3790 100755 --- a/src/VBox/Additions/linux/installer/vboxadd.sh +++ b/src/VBox/Additions/linux/installer/vboxadd.sh @@ -1,10 +1,10 @@ #! /bin/sh # -# Linux Additions kernel module init script ($Revision: 81734 $) +# Linux Additions kernel module init script ($Revision: 83687 $) # # -# Copyright (C) 2006-2010 Oracle Corporation +# Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c b/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c index 2bce28493..fd3097a8e 100644 --- a/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c +++ b/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c @@ -7,7 +7,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c index 9cce17396..a3bbd6968 100644 --- a/src/VBox/Additions/linux/sharedfolders/regops.c +++ b/src/VBox/Additions/linux/sharedfolders/regops.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.c b/src/VBox/Additions/linux/sharedfolders/vfsmod.c index 3c5513618..20f5a26e6 100644 --- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c +++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c @@ -10,7 +10,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/linux/testcase/TimesyncBackdoor.c b/src/VBox/Additions/linux/testcase/TimesyncBackdoor.c index c35956f1e..e78dbb270 100644 --- a/src/VBox/Additions/linux/testcase/TimesyncBackdoor.c +++ b/src/VBox/Additions/linux/testcase/TimesyncBackdoor.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/DRM/vboxvideo_drm.c b/src/VBox/Additions/solaris/DRM/vboxvideo_drm.c index 344c44bbc..9ec00b8af 100644 --- a/src/VBox/Additions/solaris/DRM/vboxvideo_drm.c +++ b/src/VBox/Additions/solaris/DRM/vboxvideo_drm.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Installer/makepackage.sh b/src/VBox/Additions/solaris/Installer/makepackage.sh index 4080e644c..0fe9aeb0f 100755 --- a/src/VBox/Additions/solaris/Installer/makepackage.sh +++ b/src/VBox/Additions/solaris/Installer/makepackage.sh @@ -2,7 +2,7 @@ # # VirtualBox Solaris Guest Additions package creation script. # -# Copyright (C) 2008-2010 Oracle Corporation +# Copyright (C) 2008-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Installer/postinstall.sh b/src/VBox/Additions/solaris/Installer/postinstall.sh index 850491753..02fa1c19f 100755 --- a/src/VBox/Additions/solaris/Installer/postinstall.sh +++ b/src/VBox/Additions/solaris/Installer/postinstall.sh @@ -2,7 +2,7 @@ # # VirtualBox postinstall script for Solaris. # -# Copyright (C) 2008-2010 Oracle Corporation +# Copyright (C) 2008-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Installer/preremove.sh b/src/VBox/Additions/solaris/Installer/preremove.sh index 688df2662..4b0be8b7d 100755 --- a/src/VBox/Additions/solaris/Installer/preremove.sh +++ b/src/VBox/Additions/solaris/Installer/preremove.sh @@ -2,7 +2,7 @@ # # VirtualBox pre-remove script for Solaris Guest Additions. # -# Copyright (C) 2008-2010 Oracle Corporation +# Copyright (C) 2008-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Installer/vboxguest.sh b/src/VBox/Additions/solaris/Installer/vboxguest.sh index bb0d0b9d6..8c8781f78 100755 --- a/src/VBox/Additions/solaris/Installer/vboxguest.sh +++ b/src/VBox/Additions/solaris/Installer/vboxguest.sh @@ -2,7 +2,7 @@ # # VirtualBox Guest Additions kernel module control script for Solaris. # -# Copyright (C) 2008-2010 Oracle Corporation +# Copyright (C) 2008-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Installer/vboxservice.xml b/src/VBox/Additions/solaris/Installer/vboxservice.xml index 1a2ebef6f..61f896d5a 100644 --- a/src/VBox/Additions/solaris/Installer/vboxservice.xml +++ b/src/VBox/Additions/solaris/Installer/vboxservice.xml @@ -3,7 +3,7 @@ # # Solaris SMF service manifest for VBoxService (timesync). # - Copyright (C) 2008-2010 Oracle Corporation + Copyright (C) 2008-2012 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_mount.c b/src/VBox/Additions/solaris/SharedFolders/vboxfs_mount.c index 1851ed6a1..3e5356eb6 100644 --- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_mount.c +++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_mount.c @@ -6,7 +6,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c b/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c index 766941ed2..2dd87f5be 100644 --- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c +++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2008-2010 Oracle Corporation + * Copyright (C) 2008-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.h b/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.h index 40ce7c064..5a348c44b 100644 --- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.h +++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.h @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.c b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.c index 6a06e5cdf..09ed0daed 100644 --- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.c +++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.c @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.h b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.h index ab4d9cb48..8b6e6b0e7 100644 --- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.h +++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c index 7acac0603..bba0b3868 100644 --- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c +++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.h b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.h index f76795fed..8196143f3 100644 --- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.h +++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009-2010 Oracle Corporation + * Copyright (C) 2009-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Virtio/Virtio-solaris.c b/src/VBox/Additions/solaris/Virtio/Virtio-solaris.c index 771706707..04863b08e 100644 --- a/src/VBox/Additions/solaris/Virtio/Virtio-solaris.c +++ b/src/VBox/Additions/solaris/Virtio/Virtio-solaris.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Virtio/VirtioNet-solaris.c b/src/VBox/Additions/solaris/Virtio/VirtioNet-solaris.c index cd201abea..4511b49bb 100644 --- a/src/VBox/Additions/solaris/Virtio/VirtioNet-solaris.c +++ b/src/VBox/Additions/solaris/Virtio/VirtioNet-solaris.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Virtio/VirtioPci-solaris.c b/src/VBox/Additions/solaris/Virtio/VirtioPci-solaris.c index a34c951c1..7eab19e11 100644 --- a/src/VBox/Additions/solaris/Virtio/VirtioPci-solaris.c +++ b/src/VBox/Additions/solaris/Virtio/VirtioPci-solaris.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/solaris/Virtio/VirtioRing-solaris.c b/src/VBox/Additions/solaris/Virtio/VirtioRing-solaris.c index 4a9f8acbd..51d9f6a81 100644 --- a/src/VBox/Additions/solaris/Virtio/VirtioRing-solaris.c +++ b/src/VBox/Additions/solaris/Virtio/VirtioRing-solaris.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/Installer/x11config.sh b/src/VBox/Additions/x11/Installer/x11config.sh index 3bb981a01..01d5bc179 100755 --- a/src/VBox/Additions/x11/Installer/x11config.sh +++ b/src/VBox/Additions/x11/Installer/x11config.sh @@ -2,7 +2,7 @@ # # Guest Additions X11 config update script # -# Copyright (C) 2006-2010 Oracle Corporation +# Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/Installer/x11config15sol.pl b/src/VBox/Additions/x11/Installer/x11config15sol.pl index 8b1a20542..c76e3506e 100755 --- a/src/VBox/Additions/x11/Installer/x11config15sol.pl +++ b/src/VBox/Additions/x11/Installer/x11config15sol.pl @@ -2,7 +2,7 @@ # # Guest Additions X11 config update script # -# Copyright (C) 2006-2010 Oracle Corporation +# Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/Installer/x11restore.pl b/src/VBox/Additions/x11/Installer/x11restore.pl index cf17d2979..a4776c6a4 100755 --- a/src/VBox/Additions/x11/Installer/x11restore.pl +++ b/src/VBox/Additions/x11/Installer/x11restore.pl @@ -1,9 +1,9 @@ #!/usr/bin/perl -w -# $Revision: 79612 $ +# $Revision: 83687 $ # # Restore xorg.conf while removing Guest Additions. # -# Copyright (C) 2008-2010 Oracle Corporation +# Copyright (C) 2008-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/Makefile.kmk b/src/VBox/Additions/x11/Makefile.kmk index bb97addbe..4413783a0 100644 --- a/src/VBox/Additions/x11/Makefile.kmk +++ b/src/VBox/Additions/x11/Makefile.kmk @@ -3,7 +3,7 @@ # Sub-Makefile for the X11 Guest Additions. # -# Copyright (C) 2006-2012 Oracle Corporation +# Copyright (C) 2006-2013 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -24,7 +24,9 @@ if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) ifneq ($(KBUILD_TARGET), solaris) include $(PATH_SUB_CURRENT)/vboxmouse/Makefile.kmk endif - include $(PATH_SUB_CURRENT)/x11stubs/Makefile.kmk + ifndef VBOX_USE_SYSTEM_XORG_HEADERS + include $(PATH_SUB_CURRENT)/x11stubs/Makefile.kmk + endif endif include $(FILE_KBUILD_SUB_FOOTER) diff --git a/src/VBox/Additions/x11/VBoxClient/VBoxClient.h b/src/VBox/Additions/x11/VBoxClient/VBoxClient.h index d2405149b..63d5842a0 100644 --- a/src/VBox/Additions/x11/VBoxClient/VBoxClient.h +++ b/src/VBox/Additions/x11/VBoxClient/VBoxClient.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/clipboard.cpp b/src/VBox/Additions/x11/VBoxClient/clipboard.cpp index 4097d1746..24ba7e9d2 100644 --- a/src/VBox/Additions/x11/VBoxClient/clipboard.cpp +++ b/src/VBox/Additions/x11/VBoxClient/clipboard.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/display.cpp b/src/VBox/Additions/x11/VBoxClient/display.cpp index d6889023e..ae3e02c67 100644 --- a/src/VBox/Additions/x11/VBoxClient/display.cpp +++ b/src/VBox/Additions/x11/VBoxClient/display.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/hostversion.cpp b/src/VBox/Additions/x11/VBoxClient/hostversion.cpp index 71ecbc868..5a5f50320 100644 --- a/src/VBox/Additions/x11/VBoxClient/hostversion.cpp +++ b/src/VBox/Additions/x11/VBoxClient/hostversion.cpp @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2011 Oracle Corporation + * Copyright (C) 2011-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/main.cpp b/src/VBox/Additions/x11/VBoxClient/main.cpp index d069b856e..604a67d70 100644 --- a/src/VBox/Additions/x11/VBoxClient/main.cpp +++ b/src/VBox/Additions/x11/VBoxClient/main.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/seamless-glue.h b/src/VBox/Additions/x11/VBoxClient/seamless-glue.h index d8fa32e0f..6b617b4b7 100644 --- a/src/VBox/Additions/x11/VBoxClient/seamless-glue.h +++ b/src/VBox/Additions/x11/VBoxClient/seamless-glue.h @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/seamless-guest.h b/src/VBox/Additions/x11/VBoxClient/seamless-guest.h index 4a2d42205..e468531ae 100644 --- a/src/VBox/Additions/x11/VBoxClient/seamless-guest.h +++ b/src/VBox/Additions/x11/VBoxClient/seamless-guest.h @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/seamless-host.cpp b/src/VBox/Additions/x11/VBoxClient/seamless-host.cpp index ab04873bb..81467a3e4 100644 --- a/src/VBox/Additions/x11/VBoxClient/seamless-host.cpp +++ b/src/VBox/Additions/x11/VBoxClient/seamless-host.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/seamless-host.h b/src/VBox/Additions/x11/VBoxClient/seamless-host.h index d10523bc7..812eb8811 100644 --- a/src/VBox/Additions/x11/VBoxClient/seamless-host.h +++ b/src/VBox/Additions/x11/VBoxClient/seamless-host.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/seamless-x11.cpp b/src/VBox/Additions/x11/VBoxClient/seamless-x11.cpp index 9e345d84a..7c7d8a342 100644 --- a/src/VBox/Additions/x11/VBoxClient/seamless-x11.cpp +++ b/src/VBox/Additions/x11/VBoxClient/seamless-x11.cpp @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2008 Oracle Corporation + * Copyright (C) 2008-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/seamless-x11.h b/src/VBox/Additions/x11/VBoxClient/seamless-x11.h index db2a6f125..68fcad1b5 100644 --- a/src/VBox/Additions/x11/VBoxClient/seamless-x11.h +++ b/src/VBox/Additions/x11/VBoxClient/seamless-x11.h @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/seamless.cpp b/src/VBox/Additions/x11/VBoxClient/seamless.cpp index 214f87a73..84e8147c3 100644 --- a/src/VBox/Additions/x11/VBoxClient/seamless.cpp +++ b/src/VBox/Additions/x11/VBoxClient/seamless.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/seamless.h b/src/VBox/Additions/x11/VBoxClient/seamless.h index 46b45b6e9..c1ffc2791 100644 --- a/src/VBox/Additions/x11/VBoxClient/seamless.h +++ b/src/VBox/Additions/x11/VBoxClient/seamless.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11-auto.cpp b/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11-auto.cpp index 0c7c4fc61..d79080d25 100644 --- a/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11-auto.cpp +++ b/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11-auto.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11.cpp b/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11.cpp index 44d3bc2a4..638f2cff7 100644 --- a/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11.cpp +++ b/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11.cpp @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/thread.cpp b/src/VBox/Additions/x11/VBoxClient/thread.cpp index 182070f39..4655cb7b1 100644 --- a/src/VBox/Additions/x11/VBoxClient/thread.cpp +++ b/src/VBox/Additions/x11/VBoxClient/thread.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2011 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/VBoxClient/thread.h b/src/VBox/Additions/x11/VBoxClient/thread.h index 2c4321d41..8cd118ac5 100644 --- a/src/VBox/Additions/x11/VBoxClient/thread.h +++ b/src/VBox/Additions/x11/VBoxClient/thread.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk index f7f2c8c96..5a4dbf452 100644 --- a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk +++ b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2012 Oracle Corporation +# Copyright (C) 2006-2013 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -249,6 +249,7 @@ endif # Check the undefined symbols in the X.Org modules against lists of allowed # symbols. Not very elegant, but it will catch problems early. + ifdef VBOX_WITH_TESTCASES # ifndef VBOX_ONLY_ADDITIONS ifndef VBOX_USE_SYSTEM_XORG_HEADERS @@ -263,109 +264,29 @@ ifdef VBOX_WITH_TESTCASES $$(vboxmouse_drv_0_OUTDIR)/tstvboxmouse68.run: $$(vboxmouse_drv_1_STAGE_TARGET) $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - "$(vboxmouse_drv_1_STAGE_TARGET)" "$(VBOXMOUSE_SRC_PATH)/undefined" --static + "$(vboxmouse_drv_1_STAGE_TARGET)" --static "$(VBOXMOUSE_SRC_PATH)/undefined" $(QUIET)$(APPEND) -t "$@" "done" endif - TESTING += $(vboxmouse_drv_70_0_OUTDIR)/tstvboxmouse70.run - OTHERS += $(vboxmouse_drv_70_0_OUTDIR)/tstvboxmouse70.run -$$(vboxmouse_drv_70_0_OUTDIR)/tstvboxmouse70.run: $$(vboxmouse_drv_70_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_70_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_71_0_OUTDIR)/tstvboxmouse71.run - OTHERS += $(vboxmouse_drv_71_0_OUTDIR)/tstvboxmouse71.run -$$(vboxmouse_drv_71_0_OUTDIR)/tstvboxmouse71.run: $$(vboxmouse_drv_71_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_71_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_13_0_OUTDIR)/tstvboxmouse13.run - OTHERS += $(vboxmouse_drv_13_0_OUTDIR)/tstvboxmouse13.run -$$(vboxmouse_drv_13_0_OUTDIR)/tstvboxmouse13.run: $$(vboxmouse_drv_13_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_13_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_14_0_OUTDIR)/tstvboxmouse14.run - OTHERS += $(vboxmouse_drv_14_0_OUTDIR)/tstvboxmouse14.run -$$(vboxmouse_drv_14_0_OUTDIR)/tstvboxmouse14.run: $$(vboxmouse_drv_14_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_14_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_15_0_OUTDIR)/tstvboxmouse15.run - OTHERS += $(vboxmouse_drv_15_0_OUTDIR)/tstvboxmouse15.run -$$(vboxmouse_drv_15_0_OUTDIR)/tstvboxmouse15.run: $$(vboxmouse_drv_15_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_15_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_16_0_OUTDIR)/tstvboxmouse16.run - OTHERS += $(vboxmouse_drv_16_0_OUTDIR)/tstvboxmouse16.run -$$(vboxmouse_drv_16_0_OUTDIR)/tstvboxmouse16.run: $$(vboxmouse_drv_16_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_16_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - -ifneq ($(KBUILD_TARGET), linux) - - TESTING += $(vboxmouse_drv_17_0_OUTDIR)/tstvboxmouse17.run - OTHERS += $(vboxmouse_drv_17_0_OUTDIR)/tstvboxmouse17.run -$$(vboxmouse_drv_17_0_OUTDIR)/tstvboxmouse17.run: $$(vboxmouse_drv_17_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_17_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_18_0_OUTDIR)/tstvboxmouse18.run - OTHERS += $(vboxmouse_drv_18_0_OUTDIR)/tstvboxmouse18.run -$$(vboxmouse_drv_18_0_OUTDIR)/tstvboxmouse18.run: $$(vboxmouse_drv_18_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_18_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_19_0_OUTDIR)/tstvboxmouse19.run - OTHERS += $(vboxmouse_drv_19_0_OUTDIR)/tstvboxmouse19.run -$$(vboxmouse_drv_19_0_OUTDIR)/tstvboxmouse19.run: $$(vboxmouse_drv_19_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_19_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_110_0_OUTDIR)/tstvboxmouse110.run - OTHERS += $(vboxmouse_drv_110_0_OUTDIR)/tstvboxmouse110.run -$$(vboxmouse_drv_110_0_OUTDIR)/tstvboxmouse110.run: $$(vboxmouse_drv_110_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_110_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_111_0_OUTDIR)/tstvboxmouse111.run - OTHERS += $(vboxmouse_drv_111_0_OUTDIR)/tstvboxmouse111.run -$$(vboxmouse_drv_111_0_OUTDIR)/tstvboxmouse111.run: $$(vboxmouse_drv_111_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_111_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxmouse_drv_112_0_OUTDIR)/tstvboxmouse112.run - OTHERS += $(vboxmouse_drv_112_0_OUTDIR)/tstvboxmouse112.run -$$(vboxmouse_drv_112_0_OUTDIR)/tstvboxmouse112.run: $$(vboxmouse_drv_112_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxmouse_drv_112_1_STAGE_TARGET) $(VBOXMOUSE_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - -endif # neq ($(KBUILD_TARGET),linux) +## +# Using the extra expansion to replace $(ver) before eval, thus everything +# else needs escaped dollars. + define def_vboxmouse_test + TESTING += $$(vboxmouse_drv$(ver)_0_OUTDIR)/tstvboxmouse$(ver).run + OTHERS += $$(vboxmouse_drv$(ver)_0_OUTDIR)/tstvboxmouse$(ver).run + $$$$(vboxmouse_drv$(ver)_0_OUTDIR)/tstvboxmouse$(ver).run: $$$$(vboxmouse_drv$(ver)_1_STAGE_TARGET) + $$(QUIET)$$(call MSG_L1,Checking for unresolved symbols in $$<) + $$(QUIET)$$(ASH) $$(PATH_ROOT)/src/bldprogs/checkUndefined.sh $$(KBUILD_HOST) \ + $$(vboxmouse_drv$(ver)_1_STAGE_TARGET) $$(VBOXMOUSE_SRC_PATH)/undefined $$(VBOXMOUSE_SRC_PATH)/undefined_extra + $$(QUIET)$$(APPEND) -t "$$@" "done" + endef + + $(foreach ver, _70 _71 _13 _14 _15 _16, $(eval $(def_vboxmouse_test))) + + ifneq ($(KBUILD_TARGET), linux) + $(foreach ver, _17 _18 _19 _110 _111 _112 _113, $(eval $(def_vboxmouse_test))) + + endif # neq ($(KBUILD_TARGET),linux) endif # ! VBOX_ONLY_SDK endif # eq ($(KBUILD_HOST_ARCH),$(KBUILD_TARGET_ARCH)) diff --git a/src/VBox/Additions/x11/vboxmouse/undefined b/src/VBox/Additions/x11/vboxmouse/undefined index 8f1dfdf32..14c32d988 100644 --- a/src/VBox/Additions/x11/vboxmouse/undefined +++ b/src/VBox/Additions/x11/vboxmouse/undefined @@ -7,29 +7,14 @@ InitPtrFeedbackClassDeviceStruct InitValuatorClassDeviceStruct VErrorF Xalloc -_ITM_registerTMCloneTable -_ITM_deregisterTMCloneTable -_Jv_RegisterClasses -___errno -__cxa_finalize -__deregister_frame_info_bases -__divdi3 -__errno_location -__fxstat64 -__gmon_start__ -__iob -__moddi3 -__register_frame_info_bases -__stack_chk_fail -__udivdi3 -__umoddi3 -__xstat64 +Xfree calloc chdir chmod chown close fchmod +fchown fcntl fflush flock @@ -41,6 +26,7 @@ fsync ftruncate ftruncate64 futimes +fwrite getcwd getenv geteuid @@ -53,7 +39,6 @@ lchown lseek lseek64 malloc -nanosleep memalign memchr memcmp @@ -67,11 +52,14 @@ miPointerGetScreen mmap64 mprotect munmap +nanosleep nl_langinfo open open64 posix_memalign +pthread_self pthread_sigmask +pthread_yield putenv read realloc @@ -95,6 +83,7 @@ tolower unlink unsetenv utimes +vfprintf write xf86AddEnabledDevice xf86AddInputDriver @@ -111,7 +100,11 @@ xf86RemoveEnabledDevice xf86ScaleAxis xf86SetIntOption xf86SetStrOption +xf86close xf86errno +xf86ioctl xf86isspace +xf86open +xf86read xf86strtoul xf86vsnprintf diff --git a/src/VBox/Additions/x11/vboxmouse/undefined_extra b/src/VBox/Additions/x11/vboxmouse/undefined_extra new file mode 100644 index 000000000..72c99ca89 --- /dev/null +++ b/src/VBox/Additions/x11/vboxmouse/undefined_extra @@ -0,0 +1,18 @@ +_ITM_deregisterTMCloneTable +_ITM_registerTMCloneTable +_Jv_RegisterClasses +___errno +__cxa_finalize +__deregister_frame_info_bases +__divdi3 +__errno_location +__fxstat64 +__gmon_start__ +__iob +__lxstat64 +__moddi3 +__register_frame_info_bases +__stack_chk_fail +__udivdi3 +__umoddi3 +__xstat64 diff --git a/src/VBox/Additions/x11/vboxmouse/vboxmouse.c b/src/VBox/Additions/x11/vboxmouse/vboxmouse.c index 85c9706f5..847ec94d7 100644 --- a/src/VBox/Additions/x11/vboxmouse/vboxmouse.c +++ b/src/VBox/Additions/x11/vboxmouse/vboxmouse.c @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk index 59d9c9239..e1b6cd901 100644 --- a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk +++ b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2012 Oracle Corporation +# Copyright (C) 2006-2013 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -343,6 +343,7 @@ endif # Check the undefined symbols in the X.Org modules against lists of allowed # symbols. Not very elegant, but it will catch problems early. + ifdef VBOX_WITH_TESTCASES # ifndef VBOX_ONLY_ADDITIONS ifndef VBOX_USE_SYSTEM_XORG_HEADERS @@ -356,118 +357,29 @@ ifdef VBOX_WITH_TESTCASES OTHERS += $(vboxvideo_drv_0_OUTDIR)/tstvboxvideo68.run $$(vboxvideo_drv_0_OUTDIR)/tstvboxvideo68.run: $$(vboxvideo_drv_1_STAGE_TARGET) $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined --static + $(QUIET)$(ASH) $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ + $(vboxvideo_drv_1_STAGE_TARGET) --static $(VBOXVIDEO_SRC_PATH)/undefined $(QUIET)$(APPEND) -t "$@" "done" endif - TESTING += $(vboxvideo_drv_70_0_OUTDIR)/tstvboxvideo70.run - OTHERS += $(vboxvideo_drv_70_0_OUTDIR)/tstvboxvideo70.run -$$(vboxvideo_drv_70_0_OUTDIR)/tstvboxvideo70.run: $$(vboxvideo_drv_70_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_70_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_71_0_OUTDIR)/tstvboxvideo71.run - OTHERS += $(vboxvideo_drv_71_0_OUTDIR)/tstvboxvideo71.run -$$(vboxvideo_drv_71_0_OUTDIR)/tstvboxvideo71.run: $$(vboxvideo_drv_71_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_71_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_13_0_OUTDIR)/tstvboxvideo13.run - OTHERS += $(vboxvideo_drv_13_0_OUTDIR)/tstvboxvideo13.run -$$(vboxvideo_drv_13_0_OUTDIR)/tstvboxvideo13.run: $$(vboxvideo_drv_13_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_13_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_14_0_OUTDIR)/tstvboxvideo14.run - OTHERS += $(vboxvideo_drv_14_0_OUTDIR)/tstvboxvideo14.run -$$(vboxvideo_drv_14_0_OUTDIR)/tstvboxvideo14.run: $$(vboxvideo_drv_14_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_14_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_15_0_OUTDIR)/tstvboxvideo15.run - OTHERS += $(vboxvideo_drv_15_0_OUTDIR)/tstvboxvideo15.run -$$(vboxvideo_drv_15_0_OUTDIR)/tstvboxvideo15.run: $$(vboxvideo_drv_15_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_15_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_16_0_OUTDIR)/tstvboxvideo16.run - OTHERS += $(vboxvideo_drv_16_0_OUTDIR)/tstvboxvideo16.run -$$(vboxvideo_drv_16_0_OUTDIR)/tstvboxvideo16.run: $$(vboxvideo_drv_16_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_16_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_17_0_OUTDIR)/tstvboxvideo17.run - OTHERS += $(vboxvideo_drv_17_0_OUTDIR)/tstvboxvideo17.run -$$(vboxvideo_drv_17_0_OUTDIR)/tstvboxvideo17.run: $$(vboxvideo_drv_17_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_17_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_18_0_OUTDIR)/tstvboxvideo18.run - OTHERS += $(vboxvideo_drv_18_0_OUTDIR)/tstvboxvideo18.run -$$(vboxvideo_drv_18_0_OUTDIR)/tstvboxvideo18.run: $$(vboxvideo_drv_18_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_18_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_19_0_OUTDIR)/tstvboxvideo19.run - OTHERS += $(vboxvideo_drv_19_0_OUTDIR)/tstvboxvideo19.run -$$(vboxvideo_drv_19_0_OUTDIR)/tstvboxvideo19.run: $$(vboxvideo_drv_19_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_19_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_110_0_OUTDIR)/tstvboxvideo110.run - OTHERS += $(vboxvideo_drv_110_0_OUTDIR)/tstvboxvideo110.run -$$(vboxvideo_drv_110_0_OUTDIR)/tstvboxvideo110.run: $$(vboxvideo_drv_110_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_110_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_111_0_OUTDIR)/tstvboxvideo111.run - OTHERS += $(vboxvideo_drv_111_0_OUTDIR)/tstvboxvideo111.run -$$(vboxvideo_drv_111_0_OUTDIR)/tstvboxvideo111.run: $$(vboxvideo_drv_111_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_111_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_112_0_OUTDIR)/tstvboxvideo112.run - OTHERS += $(vboxvideo_drv_112_0_OUTDIR)/tstvboxvideo112.run -$$(vboxvideo_drv_112_0_OUTDIR)/tstvboxvideo112.run: $$(vboxvideo_drv_112_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_112_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" - - TESTING += $(vboxvideo_drv_113_0_OUTDIR)/tstvboxvideo113.run - OTHERS += $(vboxvideo_drv_113_0_OUTDIR)/tstvboxvideo113.run -$$(vboxvideo_drv_113_0_OUTDIR)/tstvboxvideo113.run: $$(vboxvideo_drv_113_1_STAGE_TARGET) - $(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<) - $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_HOST) \ - $(vboxvideo_drv_113_1_STAGE_TARGET) $(VBOXVIDEO_SRC_PATH)/undefined - $(QUIET)$(APPEND) -t "$@" "done" +## +# Using the extra expansion to replace $(ver) before eval, thus everything +# else needs escaped dollars. + define def_vboxvideo_test + TESTING += $$(vboxvideo_drv$(ver)_0_OUTDIR)/tstvboxvideo$(ver).run + OTHERS += $$(vboxvideo_drv$(ver)_0_OUTDIR)/tstvboxvideo$(ver).run + $$$$(vboxvideo_drv$(ver)_0_OUTDIR)/tstvboxvideo$(ver).run: $$$$(vboxvideo_drv$(ver)_1_STAGE_TARGET) + $$(QUIET)$$(call MSG_L1,Checking for unresolved symbols in $$<) + $$(QUIET)$$(ASH) $$(PATH_ROOT)/src/bldprogs/checkUndefined.sh $$(KBUILD_HOST) \ + $$(vboxvideo_drv$(ver)_1_STAGE_TARGET) $$(VBOXVIDEO_SRC_PATH)/undefined $$(VBOXVIDEO_SRC_PATH)/undefined_extra + $$(QUIET)$$(APPEND) -t "$$@" "done" + endef + + $(foreach ver, _70 _71 _13 _14 _15 _16 _17 _18 _19 _110 _111 _112 _113, $(eval $(def_vboxvideo_test))) endif # ! VBOX_ONLY_SDK endif # eq ($(KBUILD_HOST_ARCH),$(KBUILD_TARGET_ARCH)) - endif # eq ($(KBUILD_TARGET),linux) + endif # 1of ($(KBUILD_TARGET),linux solaris) endif # ! VBOX_USE_SYSTEM_XORG_HEADERS # endif # ! VBOX_ONLY_ADDITIONS endif # VBOX_WITH_TESTCASES diff --git a/src/VBox/Additions/x11/vboxvideo/edid.c b/src/VBox/Additions/x11/vboxvideo/edid.c index 2628a3241..fd7aff4f3 100644 --- a/src/VBox/Additions/x11/vboxvideo/edid.c +++ b/src/VBox/Additions/x11/vboxvideo/edid.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/vboxvideo/pointer.c b/src/VBox/Additions/x11/vboxvideo/pointer.c index 8ddada547..45fcecaf4 100644 --- a/src/VBox/Additions/x11/vboxvideo/pointer.c +++ b/src/VBox/Additions/x11/vboxvideo/pointer.c @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/vboxvideo/setmode.c b/src/VBox/Additions/x11/vboxvideo/setmode.c index 72f1c041d..fcb9eb646 100644 --- a/src/VBox/Additions/x11/vboxvideo/setmode.c +++ b/src/VBox/Additions/x11/vboxvideo/setmode.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2010 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -143,9 +143,12 @@ Bool VBOXAdjustScreenPixmap(ScrnInfoPtr pScrn, int width, int height) PixmapPtr pPixmap = pScreen->GetScreenPixmap(pScreen); VBOXPtr pVBox = VBOXGetRec(pScrn); uint64_t cbLine = vboxLineLength(pScrn, width); + int displayWidth = vboxDisplayPitch(pScrn, cbLine); TRACE_LOG("width=%d, height=%d\n", width, height); - if (width == pScrn->virtualX && height == pScrn->virtualY) + if ( width == pScrn->virtualX + && height == pScrn->virtualY + && displayWidth == pScrn->displayWidth) return TRUE; if (!pPixmap) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -165,7 +168,7 @@ Bool VBOXAdjustScreenPixmap(ScrnInfoPtr pScrn, int width, int height) vboxClearVRAM(pScrn, width, height); pScrn->virtualX = width; pScrn->virtualY = height; - pScrn->displayWidth = vboxDisplayPitch(pScrn, cbLine); + pScrn->displayWidth = displayWidth; pVBox->cbLine = cbLine; #ifdef VBOX_DRI if (pVBox->useDRI) diff --git a/src/VBox/Additions/x11/vboxvideo/undefined b/src/VBox/Additions/x11/vboxvideo/undefined index 8895a12c6..ce114dd61 100644 --- a/src/VBox/Additions/x11/vboxvideo/undefined +++ b/src/VBox/Additions/x11/vboxvideo/undefined @@ -15,27 +15,11 @@ MakeAtom PixmapWidthPaddingInfo RRChangeOutputProperty ShadowFBInit2 +VErrorF XNFcalloc XNFstrdup Xalloc -_ITM_registerTMCloneTable -_ITM_deregisterTMCloneTable -_Jv_RegisterClasses -___errno -__cxa_finalize -__deregister_frame_info_bases -__divdi3 -__errno_location -__fxstat64 -__gmon_start__ -__iob -__isoc99_sscanf -__moddi3 -__register_frame_info_bases -__stack_chk_fail -__udivdi3 -__umoddi3 -__xstat64 +Xfree calloc chdir chmod @@ -46,6 +30,7 @@ drmGetVersion fbPictureInit fbScreenInit fchmod +fchown fcntl fflush flock @@ -57,6 +42,7 @@ fsync ftruncate ftruncate64 futimes +fwrite getcwd getenv geteuid @@ -68,8 +54,8 @@ ioctl lchown lseek lseek64 +lstat malloc -nanosleep memalign memchr memcmp @@ -85,6 +71,7 @@ miSetVisualTypes mmap64 mprotect munmap +nanosleep nl_langinfo open open64 @@ -92,7 +79,9 @@ pciTag pci_device_map_range pci_device_unmap_range posix_memalign +pthread_self pthread_sigmask +pthread_yield putenv read realloc @@ -104,18 +93,17 @@ serverGeneration setenv sigdelset sigfillset -sprintf snprintf -sscanf +sprintf sscanf stat stderr strchr strcmp strcpy -strncpy strlen strncmp +strncpy strpbrk strstr symlink @@ -123,19 +111,20 @@ tolower unlink unsetenv utimes +vfprintf vgaHWFreeHWRec vgaHWGetHWRec -vgaHWGetIndex vgaHWGetIOBase +vgaHWGetIndex vgaHWRestore vgaHWSave vgaHWSetStdFuncs write xf86AddDriver xf86ConfigPciEntity -xf86CrtcConfigPrivateIndex xf86CreateCursorInfoRec xf86CrtcConfigInit +xf86CrtcConfigPrivateIndex xf86CrtcCreate xf86CrtcScreenInit xf86CrtcSetSizeRange @@ -160,13 +149,14 @@ xf86MatchPciInstances xf86ModesAdd xf86Msg xf86OutputCreate +xf86OutputSetEDID xf86OutputUseScreenMonitor xf86PrintChipsets xf86PrintDepthBpp xf86PrintModes xf86SaveScreen -xf86Screens xf86ScreenToScrn +xf86Screens xf86ScrnToScreen xf86SetBackingStore xf86SetBlackWhitePixels @@ -174,13 +164,26 @@ xf86SetDefaultVisual xf86SetDepthBpp xf86SetDesiredModes xf86SetDpi -xf86OutputSetEDID xf86SetGamma xf86SetModeDefaultName xf86SetSingleMode xf86SetWeight xf86ShowUnusedOptions xf86UnMapVidMem +xf86calloc +xf86close xf86errno +xf86free +xf86ioctl xf86isspace +xf86memchr +xf86memcpy +xf86memset +xf86open +xf86sprintf +xf86sscanf +xf86strcmp +xf86strcpy +xf86strlen xf86strtoul +xf86vsnprintf diff --git a/src/VBox/Additions/x11/vboxvideo/undefined_extra b/src/VBox/Additions/x11/vboxvideo/undefined_extra new file mode 100644 index 000000000..7c54a2c1b --- /dev/null +++ b/src/VBox/Additions/x11/vboxvideo/undefined_extra @@ -0,0 +1,19 @@ +_ITM_deregisterTMCloneTable +_ITM_registerTMCloneTable +_Jv_RegisterClasses +___errno +__cxa_finalize +__deregister_frame_info_bases +__divdi3 +__errno_location +__fxstat64 +__gmon_start__ +__iob +__isoc99_sscanf +__lxstat64 +__moddi3 +__register_frame_info_bases +__stack_chk_fail +__udivdi3 +__umoddi3 +__xstat64 diff --git a/src/VBox/Additions/x11/vboxvideo/vboxutils.c b/src/VBox/Additions/x11/vboxvideo/vboxutils.c index 75a0ccb36..c1df71d4c 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxutils.c +++ b/src/VBox/Additions/x11/vboxvideo/vboxutils.c @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/vboxvideo/vboxvideo.c b/src/VBox/Additions/x11/vboxvideo/vboxvideo.c index 608064261..e9952a15b 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxvideo.c +++ b/src/VBox/Additions/x11/vboxvideo/vboxvideo.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2006-2011 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/vboxvideo/vboxvideo.h b/src/VBox/Additions/x11/vboxvideo/vboxvideo.h index 64a91f3e3..549ec4ba7 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxvideo.h +++ b/src/VBox/Additions/x11/vboxvideo/vboxvideo.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -54,6 +54,7 @@ #include <VBox/VBoxVideoGuest.h> #include <VBox/VBoxVideo.h> +#include <iprt/asm-math.h> #ifdef DEBUG @@ -264,7 +265,8 @@ static inline int32_t vboxLineLength(ScrnInfoPtr pScrn, int32_t cDisplayWidth) /** Calculate the display pitch from the scan line length */ static inline int32_t vboxDisplayPitch(ScrnInfoPtr pScrn, int32_t cbLine) { - return (int32_t)((uint64_t)cbLine * 8 / vboxBPP(pScrn)); + /* take care to reference __udivdi3! */ + return ASMDivU64ByU32RetU32((uint64_t)cbLine * 8, vboxBPP(pScrn)); } extern void vboxClearVRAM(ScrnInfoPtr pScrn, int32_t cNewX, int32_t cNewY); diff --git a/src/VBox/Additions/x11/vboxvideo/vboxvideo_dri.c b/src/VBox/Additions/x11/vboxvideo/vboxvideo_dri.c index 46ded3524..465ff9b5f 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxvideo_dri.c +++ b/src/VBox/Additions/x11/vboxvideo/vboxvideo_dri.c @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/vboxvideo/vbva.c b/src/VBox/Additions/x11/vboxvideo/vbva.c index 9f5bac94c..67b0adc94 100644 --- a/src/VBox/Additions/x11/vboxvideo/vbva.c +++ b/src/VBox/Additions/x11/vboxvideo/vbva.c @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/VBox/Additions/x11/x11stubs/libXcomposite-1.0.0/libXcomposite.c b/src/VBox/Additions/x11/x11stubs/libXcomposite-1.0.0/libXcomposite.c index 401eec1d7..84ac0ba9f 100644 --- a/src/VBox/Additions/x11/x11stubs/libXcomposite-1.0.0/libXcomposite.c +++ b/src/VBox/Additions/x11/x11stubs/libXcomposite-1.0.0/libXcomposite.c @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; |
