diff options
Diffstat (limited to 'emulators/virtualbox-ose-72/files')
12 files changed, 232 insertions, 91 deletions
diff --git a/emulators/virtualbox-ose-72/files/patch-Config.kmk b/emulators/virtualbox-ose-72/files/patch-Config.kmk index c284262eb189..d0e23bd4f3df 100644 --- a/emulators/virtualbox-ose-72/files/patch-Config.kmk +++ b/emulators/virtualbox-ose-72/files/patch-Config.kmk @@ -1,4 +1,4 @@ ---- Config.kmk.orig 2025-08-28 22:09:24 UTC +--- Config.kmk.orig 2025-10-02 22:45:13 UTC +++ Config.kmk @@ -624,11 +624,11 @@ endif # Enable OSS audio support. @@ -37,6 +37,15 @@ VBOX_WITH_VMSVGA3D = 1 endif # Enable vmsvga (svga2) graphics device variant, 3D part, VGPU10 DX commands +@@ -788,7 +788,7 @@ VBOX_WITH_TPM = 1 + # Enable TPM device emulation support. + VBOX_WITH_TPM = 1 + # Enable libtpms, required for the in process TPM emulation. +-if1of ($(KBUILD_TARGET), linux darwin win solaris) ++if1of ($(KBUILD_TARGET), freebsd linux darwin win solaris) + VBOX_WITH_LIBTPMS = 1 + endif + # Disable keyboard HID Consumer/Desktop control keys passthrough @@ -847,7 +847,7 @@ VBOX_WITH_VBOXMANAGE_NLS = 1 #endif # Set this to prefix all C symbols in XPCOM, to avoid dynamic linking problems @@ -57,7 +66,7 @@ ifeq ($(KBUILD_TARGET),haiku) VBOX_WITH_VRDP_RDESKTOP = # Permanent (no working SDL). -@@ -1563,7 +1559,7 @@ ifdef VBOX_OSE +@@ -1562,7 +1558,7 @@ ifdef VBOX_OSE # not yet VBOX_WITH_PLUGIN_CRYPT = VBOX_WITH_DRAG_AND_DROP_PROMISES = @@ -66,7 +75,7 @@ VBOX_WITH_DOCS = VBOX_WITH_DOCS_PACKING = endif -@@ -3637,19 +3633,19 @@ ifndef VBOX_GCC_std +@@ -3636,19 +3632,19 @@ ifndef VBOX_GCC_std # ## @todo consider maxing this out. ifndef VBOX_GCC_std @@ -98,7 +107,7 @@ endif ifndef VBOX_VCC_std if $(VBOX_VCC_TOOL_STEM) >= VCC141 # since 2017 15.3 -@@ -5688,11 +5684,11 @@ ifeq ($(VBOX_LDR_FMT),elf) +@@ -5687,11 +5683,11 @@ ifeq ($(VBOX_LDR_FMT),elf) # Solaris driver signing. TEMPLATE_VBoxR0_POST_CMDS = $(VBOX_SIGN_DRIVER_CMDS) else @@ -112,7 +121,7 @@ VBOX_WITH_VBOXR0_AS_DLL = 1 TEMPLATE_VBoxR0_DLLSUFF = .r0 TEMPLATE_VBoxR0_CFLAGS += -fPIC -@@ -5703,7 +5699,7 @@ ifeq ($(VBOX_LDR_FMT),elf) +@@ -5702,7 +5698,7 @@ ifeq ($(VBOX_LDR_FMT),elf) else TEMPLATE_VBoxR0_CFLAGS.amd64 += -mcmodel=kernel TEMPLATE_VBoxR0_CXXFLAGS.amd64 += -mcmodel=kernel @@ -121,7 +130,7 @@ ifdef VBOX_WITH_KMOD_WRAPPED_R0_MODS # For BTF/pahold issue we use -g1 TEMPLATE_VBoxR0_DEFS += VBOX_WITH_KMOD_WRAPPED_R0_MODS TEMPLATE_VBoxR0_LDFLAGS.linux += $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/VBoxR0-wrapped.lds -@@ -6100,7 +6096,7 @@ ifeq ($(KBUILD_TARGET),freebsd) +@@ -6099,7 +6095,7 @@ ifeq ($(KBUILD_TARGET),freebsd) # x86 FreeBSD (6.2 or something): # cc -O2 -fno-strict-aliasing -pipe -Werror -D_KERNEL -DKLD_MODULE \ # -nostdinc -I- -I. -I@ -I@/contrib/altq -I@/../include -I/usr/include \ @@ -130,7 +139,7 @@ # -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -ffreestanding -Wall -Wredundant-decls -Wnested-externs \ # -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions \ # -std=c99 -c ../my.c -@@ -6111,7 +6107,7 @@ ifeq ($(KBUILD_TARGET),freebsd) +@@ -6110,7 +6106,7 @@ ifeq ($(KBUILD_TARGET),freebsd) # # AMD64 FreeBSD (7.1): # cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq \ @@ -139,7 +148,7 @@ # -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \ # -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding \ # -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign \ -@@ -6193,7 +6189,7 @@ ifeq ($(KBUILD_TARGET),freebsd) +@@ -6192,7 +6188,7 @@ ifeq ($(KBUILD_TARGET),freebsd) | xargs -J% objcopy % $(outbase).kld # Link the final .ko (a shared object). @@ -148,7 +157,7 @@ endef endif # x86 -@@ -6228,7 +6224,7 @@ ifeq ($(KBUILD_TARGET),netbsd) +@@ -6227,7 +6223,7 @@ ifeq ($(KBUILD_TARGET),netbsd) $(VBOX_GCC_fdiagnostics-show-option) $(VBOX_GCC_fdiagnostics-color) \ -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \ -Wimplicit-function-declaration -Werror-implicit-function-declaration \ @@ -157,7 +166,7 @@ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ -nostdinc -std=c99 -msoft-float TEMPLATE_VBoxR0Drv_CFLAGS.x86 = -m32 -mno-mmx -mno-sse -mno-avx \ -@@ -6239,7 +6235,7 @@ ifeq ($(KBUILD_TARGET),netbsd) +@@ -6238,7 +6234,7 @@ ifeq ($(KBUILD_TARGET),netbsd) -fno-asynchronous-unwind-tables -mno-fp-ret-in-387 TEMPLATE_VBoxR0Drv_CXXFLAGS = -fno-exceptions -fno-rtti \ $(VBOX_GCC_WARN) -Wpointer-arith -Winline \ @@ -166,7 +175,7 @@ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ -nostdinc -msoft-float TEMPLATE_VBoxR0Drv_CXXFLAGS.x86 = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86) -@@ -6565,11 +6561,11 @@ else # the gcc guys +@@ -6562,11 +6558,11 @@ else # the gcc guys TEMPLATE_VBoxR3Exe_LATE_LIBS = pthread m rt dl else ifeq ($(KBUILD_TARGET),os2) TEMPLATE_VBoxR3Exe_TOOL = GXX3OMF @@ -180,7 +189,7 @@ TEMPLATE_VBoxR3Exe_SDKS.darwin = $(VBOX_DARWIN_DEF_SDK_SDKS) TEMPLATE_VBoxR3Exe_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_DEFS) TEMPLATE_VBoxR3Exe_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common -@@ -6585,24 +6581,29 @@ else # the gcc guys +@@ -6582,24 +6578,29 @@ else # the gcc guys else ifeq ($(KBUILD_TARGET),haiku) TEMPLATE_VBoxR3Exe_TOOL = GXX3 TEMPLATE_VBoxR3Exe_POST_CMDS = $(VBOX_HAIKU_XRES_SETVER_CMDS) @@ -216,7 +225,7 @@ else ifeq ($(KBUILD_TARGET),netbsd) TEMPLATE_VBoxR3Exe_TOOL = GXX3 TEMPLATE_VBoxR3Exe_LATE_LIBS = pthread -@@ -6614,7 +6615,7 @@ else # the gcc guys +@@ -6611,7 +6612,7 @@ else # the gcc guys /usr/X11R7/lib else ifeq ($(KBUILD_TARGET),solaris) TEMPLATE_VBoxR3Exe_TOOL = GXX3PLAIN @@ -225,7 +234,7 @@ if $(VBOX_GCC_VERSION_CC) < 30500 TEMPLATE_VBoxR3Exe_CFLAGS += -std=gnu99 endif -@@ -6630,6 +6631,7 @@ else # the gcc guys +@@ -6627,6 +6628,7 @@ else # the gcc guys TEMPLATE_VBoxR3Exe_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' endif ifdef VBOX_WITH_ORIGIN @@ -233,7 +242,7 @@ TEMPLATE_VBoxR3Exe_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) endif endif -@@ -6868,7 +6870,7 @@ else +@@ -6865,7 +6867,7 @@ else ifdef VBOX_WITH_NOCRT_STATIC TEMPLATE_VBoxR3StaticBase_DEFS += RT_WITH_NOCRT_WRAPPERS endif @@ -242,7 +251,7 @@ # The gcc guys sans darwin, linux and solaris (don't depend on statically compiled system libs there) TEMPLATE_VBoxR3StaticBase_CFLAGS = $(TEMPLATE_VBoxR3Exe_CFLAGS) -static TEMPLATE_VBoxR3StaticBase_CXXFLAGS = $(TEMPLATE_VBoxR3Exe_CXXFLAGS) -static -@@ -6936,7 +6938,7 @@ else +@@ -6933,7 +6935,7 @@ else $(SDK_VBoxZlib_LATE_LIBS) \ $(SDK_VBoxLibLzma_LIBS) if1of ($(KBUILD_TARGET), darwin freebsd) @@ -251,7 +260,7 @@ else ifeq ($(KBUILD_TARGET),solaris) TEMPLATE_VBoxR3Static_LATE_LIBS += kstat endif -@@ -7137,6 +7139,7 @@ else ifn1of ($(KBUILD_TARGET), os2) +@@ -7134,6 +7136,7 @@ else ifn1of ($(KBUILD_TARGET), os2) else ifn1of ($(KBUILD_TARGET), os2) ifneq ($(KBUILD_TYPE),asan) # Keep RPATH in asan builds so we can find libasan.so.X and libubsan.so.Y. TEMPLATE_VBoxR3HardenedExe_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3Exe_LDFLAGS)) @@ -259,7 +268,7 @@ TEMPLATE_VBoxR3HardenedExe_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.linux)) endif endif -@@ -7168,6 +7171,7 @@ ifn1of ($(KBUILD_TARGET), win os2) +@@ -7166,6 +7169,7 @@ ifn1of ($(KBUILD_TARGET), win os2) $(if-expr !defined(VBOX_WITHOUT_WINDOWS_KERNEL_CODE_SIGNING_CERT),-IntegrityCheck,) ifn1of ($(KBUILD_TARGET), win os2) TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3TstDll_LDFLAGS)) @@ -267,7 +276,7 @@ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.linux)) endif -@@ -7192,6 +7196,7 @@ ifndef VBOX_WITH_HARDENING +@@ -7190,6 +7194,7 @@ ifndef VBOX_WITH_HARDENING TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' endif ifdef VBOX_WITH_ORIGIN @@ -275,7 +284,7 @@ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) endif endif -@@ -7570,7 +7575,7 @@ else # the GCC guys: +@@ -7567,7 +7572,7 @@ else # the GCC guys: endif TEMPLATE_VBoxMainExe_CXXFLAGS = -g $(VBOX_GCC_pipe) \ $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_Wno-class-memaccess) -Wshadow \ @@ -284,7 +293,7 @@ $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK) \ $(VBOX_GCC_SANITIZER_FLAGS) if !defined("VBOX_GCC_Wno-delete-non-virtual-dtor") && defined("VBOX_GCC_Wno-non-virtual-dtor") -@@ -7633,10 +7638,19 @@ else # the GCC guys: +@@ -7630,10 +7635,19 @@ else # the GCC guys: else ifeq ($(KBUILD_TARGET),haiku) TEMPLATE_VBoxMainExe_TOOL = GXX3 TEMPLATE_VBoxMainExe_LATE_LIBS = $(LIB_RUNTIME) network stdc++ supc++ @@ -305,7 +314,7 @@ /usr/include \ /usr/X11R6/include \ /usr/local/include -@@ -7668,6 +7682,7 @@ else # the GCC guys: +@@ -7665,6 +7679,7 @@ else # the GCC guys: TEMPLATE_VBoxMainExe_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' endif ifdef VBOX_WITH_ORIGIN @@ -313,7 +322,7 @@ TEMPLATE_VBoxMainExe_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) endif -@@ -8352,14 +8367,13 @@ ifdef VBOX_WITH_QTGUI +@@ -8350,14 +8365,13 @@ ifdef VBOX_WITH_QTGUI TEMPLATE_VBoxQtGuiExe_LIBPATH += \ $(VBOX_LIBPATH_X11) ifeq ($(KBUILD_TARGET),freebsd) @@ -331,7 +340,7 @@ endif ifeq ($(KBUILD_TARGET),solaris) TEMPLATE_VBoxQtGuiExe_LDFLAGS.solaris = -Wl,-z,ignore # Same as VBOX_LD_as_needed. -@@ -8623,7 +8637,7 @@ else +@@ -8621,7 +8635,7 @@ else TEMPLATE_VBoxBldProg_LATE_LIBS = pthread m rt dl else ifeq ($(KBUILD_HOST),os2) TEMPLATE_VBoxBldProg_TOOL = GXX3OMF @@ -340,7 +349,7 @@ else ifeq ($(KBUILD_HOST),darwin) TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL) if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.7" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "7" -@@ -8663,13 +8677,20 @@ else +@@ -8661,13 +8675,20 @@ else TEMPLATE_VBoxBldProg_LATE_LIBS = else ifeq ($(KBUILD_HOST),haiku) TEMPLATE_VBoxBldProg_TOOL = GXX3 @@ -363,7 +372,7 @@ /usr/include \ /usr/X11R6/include \ /usr/local/include -@@ -8716,11 +8737,11 @@ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.darwin = \ +@@ -8714,11 +8735,11 @@ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.darwin = \ $(TEMPLATE_VBoxBldProg_LATE_LIBS) TEMPLATE_VBoxAdvBldProg_LATE_LIBS.darwin = \ $(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \ @@ -377,7 +386,7 @@ rt \ $(TEMPLATE_VBoxBldProg_LATE_LIBS.freebsd) TEMPLATE_VBoxAdvBldProg_LATE_LIBS.linux = \ -@@ -8813,6 +8834,7 @@ else # the gcc guys +@@ -8811,6 +8832,7 @@ else # the gcc guys # Do not inherit sanitizer flags from VBoxR3Exe in guest executables. Deal with them separately. TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.debug = $(NO_SUCH_VARIABLE) TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.debug = $(NO_SUCH_VARIABLE) @@ -385,7 +394,7 @@ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS.linux)) TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.debug = $(NO_SUCH_VARIABLE) TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS)) -@@ -8836,7 +8858,7 @@ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd) +@@ -8834,7 +8856,7 @@ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd) ifeq ($(KBUILD_TARGET),linux) # As few libs as possible on linux. TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = pthread rt m dl else if1of ($(KBUILD_TARGET), darwin freebsd openbsd) @@ -394,7 +403,7 @@ else ifeq ($(KBUILD_TARGET),solaris) TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS) nsl endif -@@ -8849,6 +8871,7 @@ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux = $(TEMP +@@ -8847,6 +8869,7 @@ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux = $(TEMP $(VBOX_GCC_fno-stack-protector) TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux = $(TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.linux) # The GNU_HASH ELF tag is not supported by older systems. @@ -402,7 +411,7 @@ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux += $(VBOX_LD_hash_style_sysv) -@@ -9085,6 +9108,7 @@ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET +@@ -9083,6 +9106,7 @@ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET TEMPLATE_VBoxGuestR3XFree86Mod_CXXFLAGS.linux = $(VBOX_GCC_fno-stack-protector) # Remove symvers.h TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) # The GNU_HASH ELF tag is not supported by older glibc dynamic linkers. @@ -410,7 +419,7 @@ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.linux = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE) TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS := -r -@@ -9128,7 +9152,7 @@ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TARGET) +@@ -9126,7 +9150,7 @@ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TARGET) TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS = $(VBOX_LIB_VBGL_R3_XORG) TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE) TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c index 5344a7ab812f..204f6525ba77 100644 --- a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c +++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c @@ -1,4 +1,4 @@ ---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2025-08-13 19:41:14 UTC +--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2025-10-16 14:25:28 UTC +++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c @@ -55,6 +55,7 @@ #include <sys/uio.h> @@ -147,7 +147,7 @@ * Create a new session. */ fRequestor = VMMDEV_REQUESTOR_USERMODE | VMMDEV_REQUESTOR_TRUST_NOT_GIVEN; -@@ -272,47 +211,20 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp +@@ -272,14 +211,13 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp rc = VGDrvCommonCreateUserSession(&g_DevExt, fRequestor, &pSession); if (RT_SUCCESS(rc)) { @@ -168,10 +168,10 @@ } LogRel(("vgdrvFreeBSDOpen: failed. rc=%d\n", rc)); - return RTErrConvertToErrno(rc); +@@ -287,33 +225,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp } --/** + /** - * File close handler - * - */ @@ -179,7 +179,7 @@ -{ - PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1; - Log(("vgdrvFreeBSDClose: fFile=%#x pSession=%p\n", fFile, pSession)); - +- - /* - * Close the session if it's still hanging on to the device... - */ @@ -198,10 +198,11 @@ -} - - - /** +-/** * I/O control request. * -@@ -326,8 +238,12 @@ static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long + * @returns depends... +@@ -326,8 +237,12 @@ static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd) { PVBOXGUESTSESSION pSession; @@ -215,20 +216,25 @@ /* * Deal with the fast ioctl path first. */ -@@ -526,8 +442,10 @@ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEv +@@ -522,12 +437,14 @@ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEv + + static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEvents, struct thread *td) + { +- int fEventsProcessed; ++ PVBOXGUESTSESSION pSession; ++ int fEventsProcessed, rc; LogFlow(("vgdrvFreeBSDPoll: fEvents=%d\n", fEvents)); - PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1; - if (RT_UNLIKELY(!RT_VALID_PTR(pSession))) { -+ + rc = devfs_get_cdevpriv((void **)&pSession); + if (rc) -+ { ++ { Log(("vgdrvFreeBSDPoll: no state data for %s\n", devtoname(pDev))); return (fEvents & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM)); } -@@ -568,11 +486,8 @@ static int vgdrvFreeBSDDetach(device_t pDevice) +@@ -568,11 +485,8 @@ static int vgdrvFreeBSDDetach(device_t pDevice) /* * Reverse what we did in vgdrvFreeBSDAttach. */ @@ -241,7 +247,7 @@ vgdrvFreeBSDRemoveIRQ(pDevice, pState); if (pState->pVMMDevMemRes) -@@ -738,18 +653,21 @@ static int vgdrvFreeBSDAttach(device_t pDevice) +@@ -738,18 +652,21 @@ static int vgdrvFreeBSDAttach(device_t pDevice) VGDrvCommonProcessOptionsFromHost(&g_DevExt); /* @@ -269,7 +275,7 @@ vgdrvFreeBSDRemoveIRQ(pDevice, pState); } else -@@ -793,8 +711,12 @@ static driver_t vgdrvFreeBSDDriver = +@@ -793,8 +710,12 @@ static driver_t vgdrvFreeBSDDriver = sizeof(struct VBoxGuestDeviceState), }; diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile index 1430dbb721fb..37c1596cfe87 100644 --- a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile +++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile @@ -1,15 +1,17 @@ ---- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2025-08-13 19:41:14 UTC +--- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2025-10-16 14:25:29 UTC +++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile -@@ -35,7 +35,7 @@ KMOD = vboxguest +@@ -34,9 +34,8 @@ KMOD = vboxguest + # SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 # KMOD = vboxguest - --CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS +CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_GUEST -DIN_GUEST_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS +-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS +- .if (${MACHINE_ARCH} == "i386") CFLAGS += -DRT_ARCH_X86 -@@ -91,6 +91,7 @@ SRCS += \ + .elif (${MACHINE_ARCH} == "amd64") +@@ -91,6 +90,7 @@ SRCS += \ handletable.c \ handletablectx.c \ once.c \ @@ -17,7 +19,7 @@ thread.c .PATH: ${.CURDIR}/common/string -@@ -163,6 +164,7 @@ SRCS += \ +@@ -163,6 +163,7 @@ SRCS += \ .PATH: ${.CURDIR}/r0drv SRCS += \ @@ -25,3 +27,12 @@ alloc-r0drv.c \ initterm-r0drv.c \ memobj-r0drv.c \ +@@ -196,7 +197,7 @@ SRCS += \ + SRCS += \ + log-vbox.c \ + logbackdoor.c \ +- RTLogWriteVmm-amd64-x86. ++ RTLogWriteVmm-amd64-x86.c + + .include <bsd.kmod.mk> + diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp index 0c463e3d9923..a6b7c5d6285c 100644 --- a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp +++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp @@ -1,4 +1,4 @@ ---- src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp.orig 2025-08-13 19:41:16 UTC +--- src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp.orig 2025-10-17 08:52:40 UTC +++ src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp @@ -77,8 +77,8 @@ # include <net/if.h> @@ -69,3 +69,19 @@ Assert(RT_FAILURE(rc) || cUsersInList == 0 || (pszUserList && *pszUserList)); +@@ -1403,6 +1397,15 @@ static int vgsvcVMInfoWriteNetwork(void) + + RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/Status", cIfsReported); + VGSvcPropCacheUpdate(&g_VMInfoPropCache, szPropPath, pIfCurr->ifa_flags & IFF_UP ? "Up" : "Down"); ++ ++# ifdef RT_OS_FREEBSD /** @todo Check the other guests. */ ++ RTStrPrintf(szPropPath, sizeof(szPropPath), "/VirtualBox/GuestInfo/Net/%RU32/Name", cIfsReported); ++ int rc2 = RTStrValidateEncoding(pIfCurr->ifa_name); ++ if (RT_SUCCESS(rc2)) ++ VGSvcPropCacheUpdate(&g_VMInfoPropCache, szPropPath, "%s", pIfCurr->ifa_name); ++ else ++ VGSvcPropCacheUpdate(&g_VMInfoPropCache, szPropPath, NULL); ++# endif + + cIfsReported++; + } diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk index 270472c045e3..796aecabac8f 100644 --- a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk +++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk @@ -1,4 +1,4 @@ ---- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-05-11 03:54:13 UTC +--- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-10-24 13:49:31 UTC +++ src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk @@ -0,0 +1,28 @@ +# $Id: Makefile.kmk $ @@ -18,7 +18,7 @@ +CFLAGS+=-I$(MOUNT) + +PROGRAMS += mount_vboxvfs -+mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe ++mount_vboxvfs_TEMPLATE = VBoxGuestR3Exe +mount_vboxvfs_SOURCES = mount_vboxvfs.c + +ifdef HAVE_MNTOPTS_IN_LIBUTIL diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk new file mode 100644 index 000000000000..679778e60181 --- /dev/null +++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk @@ -0,0 +1,50 @@ +--- src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk.orig 2025-10-22 19:18:12 UTC ++++ src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk +@@ -43,32 +43,37 @@ vboxvfs_SOURCES = \ + $(vboxvfs_0_OUTDIR) + vboxvfs_SOURCES = \ + vboxvfs_vfsops.c \ +- vboxvfs_vnops.c ++ bcmp.c \ ++ vboxvfs_vnops.c \ ++ vboxvfs_prov.c + vboxvfs_LIBS = \ + $(VBOX_LIB_VBGL_R0) \ + $(VBOX_LIB_IPRT_GUEST_R0) + vboxvfs_DEPS = \ +- $$(vboxvfs_0_OUTDIR)/vnode_if.h \ +- $$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h \ +- $$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h ++ $(vboxvfs_0_OUTDIR)/vnode_if.h \ ++ $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h \ ++ $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h + vboxvfs_CLEAN += $(vboxvfs_DEPS) + + VBOX_AWK := /usr/bin/awk + +-$$(vboxvfs_0_OUTDIR)/vnode_if.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src ++$$(vboxvfs_0_OUTDIR): ++ $(QUIET)$(MKDIR) -p $(vboxvfs_0_OUTDIR) ++ ++$$(vboxvfs_0_OUTDIR)/vnode_if.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src + $(call MSG_TOOL,awk,VBoxGuest,$<,$@) + $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -h +- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if.h $(vboxvfs_0_OUTDIR)/vnode_if.h ++ $(QUIET)$(MV) vnode_if.h $(vboxvfs_0_OUTDIR)/vnode_if.h + +-$$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src ++$$(vboxvfs_0_OUTDIR)/vnode_if_newproto.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src + $(call MSG_TOOL,awk,VBoxGuest,$<,$@) + $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -p +- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h ++ $(QUIET)$(MV) vnode_if_newproto.h $(vboxvfs_0_OUTDIR)/vnode_if_newproto.h + +-$$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src ++$$(vboxvfs_0_OUTDIR)/vnode_if_typedef.h: $$(vboxvfs_0_OUTDIR) $(VBOX_FREEBSD_SRC)/kern/vnode_if.src + $(call MSG_TOOL,awk,VBoxGuest,$<,$@) + $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -q +- $(QUIET)$(MV) $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h ++ $(QUIET)$(MV) vnode_if_typedef.h $(vboxvfs_0_OUTDIR)/vnode_if_typedef.h + + include $(FILE_KBUILD_SUB_FOOTER) + diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c index 90a799eef1db..2fda0de98007 100644 --- a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c +++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c @@ -1382,7 +1382,7 @@ + int lkflags = cnp->cn_lkflags; + char *fullpath = NULL; + -+ *vpp = NULLVP; ++ *vpp = NULL; + error = ENOENT; + if (cnp->cn_flags & ISDOTDOT) { + error = vn_vget_ino_gen(dvp, vboxfs_vn_get_ino_alloc, @@ -1392,7 +1392,7 @@ + goto out; + + } else if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') { -+ VREF(dvp); ++ vref(dvp); + *vpp = dvp; + error = 0; + } else { diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk index bd5e626ecea2..2d0377fb3e40 100644 --- a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk +++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk @@ -1,4 +1,4 @@ ---- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2025-08-13 19:41:22 UTC +--- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2025-10-16 14:25:37 UTC +++ src/VBox/Additions/x11/vboxmouse/Makefile.kmk @@ -237,10 +237,22 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS @@ -10,7 +10,7 @@ - SYSMODS := $(filter-out vboxmouse_drv%,$(SYSMODS)) + ifeq ($(KBUILD_TARGET),freebsd) + DLLS += vboxmouse_drv_system -+ vboxmouse_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD ++ vboxmouse_drv_system_TEMPLATE = VBoxGuestR3XOrgMod + vboxmouse_drv_system_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC + vboxmouse_drv_system_INCS := \ + /usr/local/include/pixman-1 \ diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk new file mode 100644 index 000000000000..38ef1ac68f9e --- /dev/null +++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Additions_x11_vboxvideo_Makefile.kmk @@ -0,0 +1,15 @@ +--- src/VBox/Additions/x11/vboxvideo/Makefile.kmk.orig 2025-10-22 19:22:45 UTC ++++ src/VBox/Additions/x11/vboxvideo/Makefile.kmk +@@ -415,9 +415,10 @@ ifdef VBOX_USE_SYSTEM_XORG_HEADERS + vboxvideo_drv_system_INCS += \ + $(PATH_ROOT)/src/VBox/Runtime/include \ + $(VBOX_GRAPHICS_INCS) \ +- /usr/include/xorg \ +- /usr/include/pixman-1 ++ /usr/local/include/xorg \ ++ /usr/local/include/pixman-1 + vboxvideo_drv_system_SOURCES := $(vboxvideo_drv_17_SOURCES) ++ vboxvideo_drv_system_LIBS += $(vboxvideo_drv_70_LIBS) + endif + + diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp new file mode 100644 index 000000000000..f8fe5b1a7ba3 --- /dev/null +++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_common_misc_handletablectx.cpp @@ -0,0 +1,24 @@ +--- src/VBox/Runtime/common/misc/handletablectx.cpp.orig 2025-10-16 14:35:39 UTC ++++ src/VBox/Runtime/common/misc/handletablectx.cpp +@@ -48,7 +48,9 @@ + #include <iprt/param.h> + #include <iprt/string.h> + #include <iprt/asm.h> ++#ifndef IN_GUEST + #include <iprt/system.h> ++#endif + #include "internal/magics.h" + #include "handletable.h" + +@@ -118,7 +120,11 @@ RTDECL(int) RTHandleTableAllocWithCtx(RTHANDLETABL + */ + uint32_t const iLevel1 = pThis->cCur / RTHT_LEVEL2_ENTRIES; + uint32_t cLevel1 = iLevel1 >= pThis->cLevel1 ++#ifndef IN_GUEST + ? pThis->cLevel1 + RTSystemGetPageSize() / sizeof(void *) ++#else ++ ? pThis->cLevel1 + PAGE_SIZE / sizeof(void *) ++#endif + : 0; + if (cLevel1 > pThis->cMax / RTHT_LEVEL2_ENTRIES) + cLevel1 = pThis->cMax / RTHT_LEVEL2_ENTRIES; diff --git a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c index 4c0ed355709c..2ae9e1f34147 100644 --- a/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c +++ b/emulators/virtualbox-ose-72/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c @@ -1,4 +1,4 @@ ---- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-04-14 17:59:13 UTC +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-10-16 14:35:51 UTC +++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c @@ -140,8 +140,10 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) @@ -11,16 +11,26 @@ switch (pMemFreeBSD->Core.enmType) { -@@ -156,8 +158,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) +@@ -156,9 +158,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) case RTR0MEMOBJTYPE_LOCK: { - vm_map_t pMap = kernel_map; - - if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS) +- if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS) ++ if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS) { pMap = &((struct proc *)pMemFreeBSD->Core.u.Lock.R0Process)->p_vmspace->vm_map; -@@ -198,6 +198,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + rc = vm_map_unwire(pMap, +@@ -166,6 +166,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + (vm_offset_t)pMemFreeBSD->Core.pv + pMemFreeBSD->Core.cb, + VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES); + AssertMsg(rc == KERN_SUCCESS, ("%#x", rc)); ++ } + break; + } + +@@ -198,6 +199,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) case RTR0MEMOBJTYPE_PHYS_NC: { VM_OBJECT_WLOCK(pMemFreeBSD->pObject); @@ -28,7 +38,7 @@ vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0); #if __FreeBSD_version < 1000000 vm_page_lock_queues(); -@@ -211,6 +212,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) +@@ -211,6 +213,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) #if __FreeBSD_version < 1000000 vm_page_unlock_queues(); #endif @@ -43,7 +53,7 @@ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); vm_object_deallocate(pMemFreeBSD->pObject); break; -@@ -221,6 +230,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) +@@ -221,6 +231,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) return VERR_INTERNAL_ERROR; } @@ -51,7 +61,7 @@ return VINF_SUCCESS; } -@@ -330,7 +340,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE +@@ -330,7 +341,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE size_t cPages = atop(pMemFreeBSD->Core.cb); int rc; @@ -61,7 +71,7 @@ /* No additional object reference for auto-deallocation upon unmapping. */ #if __FreeBSD_version >= 1000055 -@@ -372,6 +383,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ +@@ -372,6 +384,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag) { @@ -69,7 +79,7 @@ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PAGE, NULL, cb, pszTag); if (pMemFreeBSD) -@@ -381,8 +393,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ +@@ -381,8 +394,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ *ppMem = &pMemFreeBSD->Core; else rtR0MemObjDelete(&pMemFreeBSD->Core); @@ -80,7 +90,7 @@ return VERR_NO_MEMORY; } -@@ -396,6 +410,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI +@@ -396,6 +411,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag) { @@ -88,7 +98,7 @@ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb, pszTag); if (pMemFreeBSD) { -@@ -404,8 +419,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI +@@ -404,8 +420,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI *ppMem = &pMemFreeBSD->Core; else rtR0MemObjDelete(&pMemFreeBSD->Core); @@ -99,7 +109,7 @@ return VERR_NO_MEMORY; } -@@ -413,6 +430,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ +@@ -413,6 +431,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHigest, bool fExecutable, const char *pszTag) { @@ -107,7 +117,7 @@ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_CONT, NULL, cb, pszTag); if (pMemFreeBSD) -@@ -425,8 +443,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ +@@ -425,8 +444,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ } else rtR0MemObjDelete(&pMemFreeBSD->Core); @@ -118,7 +128,7 @@ return VERR_NO_MEMORY; } -@@ -434,6 +454,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB +@@ -434,6 +455,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJTYPE enmType, size_t cb, RTHCPHYS PhysHighest, size_t uAlignment, bool fContiguous, int rcNoMem, const char *pszTag) { @@ -126,7 +136,7 @@ /* create the object. */ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), enmType, NULL, cb, pszTag); if (pMemFreeBSD) -@@ -441,7 +462,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB +@@ -441,7 +463,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB vm_paddr_t const VmPhysAddrHigh = PhysHighest != NIL_RTHCPHYS ? PhysHighest : ~(vm_paddr_t)0; u_long const cPages = atop(cb); @@ -136,7 +146,7 @@ int rc = rtR0MemObjFreeBSDPhysAllocHelper(pMemFreeBSD->pObject, cPages, VmPhysAddrHigh, uAlignment, fContiguous, true, rcNoMem); -@@ -451,7 +473,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB +@@ -451,7 +474,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB { Assert(enmType == RTR0MEMOBJTYPE_PHYS); VM_OBJECT_WLOCK(pMemFreeBSD->pObject); @@ -145,7 +155,7 @@ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); pMemFreeBSD->Core.u.Phys.fAllocated = true; } -@@ -464,8 +486,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB +@@ -464,8 +487,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB vm_object_deallocate(pMemFreeBSD->pObject); rtR0MemObjDelete(&pMemFreeBSD->Core); } @@ -156,7 +166,7 @@ return VERR_NO_MEMORY; } -@@ -488,6 +512,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ +@@ -488,6 +513,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ const char *pszTag) { AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED); @@ -164,7 +174,7 @@ /* create the object. */ PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PHYS, -@@ -499,8 +524,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ +@@ -499,8 +525,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ pMemFreeBSD->Core.u.Phys.PhysBase = Phys; pMemFreeBSD->Core.u.Phys.uCachePolicy = uCachePolicy; *ppMem = &pMemFreeBSD->Core; @@ -175,7 +185,7 @@ return VERR_NO_MEMORY; } -@@ -512,6 +539,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER +@@ -512,6 +540,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER vm_offset_t AddrStart, size_t cb, uint32_t fAccess, RTR0PROCESS R0Process, int fFlags, const char *pszTag) { @@ -183,7 +193,7 @@ int rc; NOREF(fAccess); -@@ -521,21 +549,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER +@@ -521,21 +550,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER if (!pMemFreeBSD) return VERR_NO_MEMORY; @@ -220,7 +230,7 @@ return VERR_NO_MEMORY;/** @todo fix mach -> vbox error conversion for freebsd. */ } -@@ -575,6 +610,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN +@@ -575,6 +611,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process, vm_map_t pMap, const char *pszTag) { @@ -228,7 +238,7 @@ int rc; /* -@@ -633,11 +669,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN +@@ -633,11 +670,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN pMemFreeBSD->Core.pv = (void *)MapAddress; pMemFreeBSD->Core.u.ResVirt.R0Process = R0Process; *ppMem = &pMemFreeBSD->Core; @@ -242,7 +252,7 @@ return rc; } -@@ -661,6 +699,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ +@@ -661,6 +700,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment, unsigned fProt, size_t offSub, size_t cbSub, const char *pszTag) { @@ -251,7 +261,7 @@ // AssertMsgReturn(!offSub && !cbSub, ("%#x %#x\n", offSub, cbSub), VERR_NOT_SUPPORTED); AssertMsgReturn(pvFixed == (void *)-1, ("%p\n", pvFixed), VERR_NOT_SUPPORTED); -@@ -715,6 +755,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ +@@ -715,6 +756,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ Assert((vm_offset_t)pMemFreeBSD->Core.pv == Addr); pMemFreeBSD->Core.u.Mapping.R0Process = NIL_RTR0PROCESS; *ppMem = &pMemFreeBSD->Core; @@ -259,7 +269,7 @@ return VINF_SUCCESS; } rc = vm_map_remove(kernel_map, Addr, Addr + cbSub); -@@ -723,6 +764,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ +@@ -723,6 +765,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ else vm_object_deallocate(pMemToMapFreeBSD->pObject); @@ -267,7 +277,7 @@ return VERR_NO_MEMORY; } -@@ -730,6 +772,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN +@@ -730,6 +773,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process, size_t offSub, size_t cbSub, const char *pszTag) { @@ -276,7 +286,7 @@ /* * Check for unsupported stuff. */ -@@ -787,44 +831,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN +@@ -787,44 +832,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN if (rc == KERN_SUCCESS) { @@ -331,7 +341,7 @@ if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE) ProtectionFlags = VM_PROT_NONE; -@@ -835,7 +885,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT +@@ -835,7 +886,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT if ((fProt & RTMEM_PROT_EXEC) == RTMEM_PROT_EXEC) ProtectionFlags |= VM_PROT_EXECUTE; @@ -344,7 +354,7 @@ if (krc == KERN_SUCCESS) return VINF_SUCCESS; -@@ -860,11 +915,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P +@@ -860,11 +916,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage); @@ -368,7 +378,7 @@ } case RTR0MEMOBJTYPE_MAPPING: -@@ -873,11 +936,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P +@@ -873,11 +937,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS) { @@ -385,7 +395,7 @@ } return vtophys(pb); } -@@ -888,9 +955,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P +@@ -888,9 +956,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P { RTHCPHYS addr; @@ -397,7 +407,7 @@ return addr; } -@@ -910,7 +979,7 @@ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping +@@ -910,7 +980,7 @@ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping(PRTR0MEMOBJINTERNAL pMem) { PRTR0MEMOBJFREEBSD const pMemFreeBsd = (PRTR0MEMOBJFREEBSD)pMem; diff --git a/emulators/virtualbox-ose-72/files/vboxinit.in b/emulators/virtualbox-ose-72/files/vboxinit.in index 9895da9e362e..9574d7d6295e 100644 --- a/emulators/virtualbox-ose-72/files/vboxinit.in +++ b/emulators/virtualbox-ose-72/files/vboxinit.in @@ -16,7 +16,7 @@ # vboxinit_stop (str): Default stop cmd for VBoxManage controlvm. # (default: savestate) # vboxinit_start_delay (int): Default startup delay in seconds. -# (default: 0) +# (default: 1) # vboxinit_stop_delay (int): Default shutdown delay in seconds. # (default: 0) # |
