VirtualBox

Changeset 55095 in vbox


Ignore:
Timestamp:
Apr 2, 2015 4:52:46 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
99390
Message:

Assorted fixes for FreeBSD hosts, VBox compiles and runs again without further patches (tested on 10.1 amd64 )

Location:
trunk
Files:
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r55080 r55095  
    727727#VBOX_WITH_DTRACE_GST = 1
    728728# Set this to indicate that the host ships with DTrace.
    729 if1of ($(KBUILD_TARGET), darwin solaris freebsd)
     729if1of ($(KBUILD_TARGET), darwin solaris)
    730730 VBOX_WITH_NATIVE_DTRACE = 1
    731731endif
     
    36973697        -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
    36983698        -Wimplicit-function-declaration -Werror-implicit-function-declaration \
    3699         -O2 -fformat-extensions -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
     3699        -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
    37003700        $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
    37013701        -nostdinc -std=c99
     
    37063706TEMPLATE_VBOXR0DRV_CXXFLAGS            = -fno-exceptions -fno-rtti \
    37073707        $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
    3708         -O2 -fno-format-extensions -fno-strict-aliasing -fno-common -finline-limit=8000 \
     3708        -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
    37093709        $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
    37103710        -nostdinc
  • trunk/src/VBox/Devices/Network/slirp/resolv_conf_parser.c

    r53624 r55095  
    2222#include <iprt/stream.h>
    2323#include <iprt/thread.h>
     24
     25#ifdef RT_OS_FREEBSD
     26# include <sys/socket.h>
     27#endif
    2428
    2529#include <arpa/inet.h>
  • trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk

    r54886 r55095  
    191191VirtualBox_LIBS = $(LIB_DDU)
    192192
    193 if1of ($(KBUILD_TARGET), linux freebsd netbsd openbsd)
     193if1of ($(KBUILD_TARGET), linux netbsd openbsd)
    194194 VirtualBox_LIBS += dl
    195195endif
  • trunk/src/VBox/HostDrivers/Support/freebsd/Makefile

    r54419 r55095  
    8383        handletablectx.c \
    8484        once.c \
     85        term.c \
    8586        thread.c
    8687
     
    9091        RTStrNLen.c \
    9192        RTStrCopy.c \
     93        RTStrCopyEx.c \
    9294        RTStrCopyP.c \
    9395        strformat.c \
     
    173175        semspinmutex-r0drv-generic.c \
    174176        mpnotification-r0drv-generic.c \
     177        threadctxhooks-r0drv-generic.c \
    175178        RTMpIsCpuWorkPending-r0drv-generic.c
    176179
  • trunk/src/VBox/HostDrivers/Support/freebsd/files_vboxdrv

    r54419 r55095  
    116116    ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \
    117117    ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \
     118    ${PATH_ROOT}/src/VBox/Runtime/common/misc/term.cpp=>common/misc/term.c \
    118119    ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \
    119120    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopyP.cpp=>common/string/RTStrCopyP.c \
    120121    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopy.cpp=>common/string/RTStrCopy.c \
     122    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopyEx.cpp=>common/string/RTStrCopyEx.c \
    121123    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrNCmp.cpp=>common/string/RTStrNCmp.c \
    122124    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrNLen.cpp=>common/string/RTStrNLen.c \
  • trunk/src/VBox/Main/Makefile.kmk

    r54344 r55095  
    440440
    441441VBoxSVC_SOURCES.freebsd = \
    442         src-server/freebsd/HostHardwareFreeBSD.cpp
     442        src-server/freebsd/HostHardwareFreeBSD.cpp \
     443        src-server/HostDnsServiceResolvConf.cpp
    443444
    444445
  • trunk/src/VBox/Main/src-server/freebsd/HostHardwareFreeBSD.cpp

    r51092 r55095  
    3939# include <sys/stat.h>
    4040# include <unistd.h>
     41# include <stdio.h>
    4142# include <sys/ioctl.h>
    4243# include <fcntl.h>
  • trunk/src/VBox/Main/src-server/freebsd/USBProxyServiceFreeBSD.cpp

    r51092 r55095  
    115115
    116116    AutoReadLock devLock(aDevice COMMA_LOCKVAL_SRC_POS);
    117     LogFlowThisFunc(("aDevice=%s\n", aDevice->getName().c_str()));
     117    LogFlowThisFunc(("aDevice=%s\n", aDevice->i_getName().c_str()));
    118118
    119119    /*
    120120     * Don't think we need to do anything when the device is held... fake it.
    121121     */
    122     Assert(aDevice->getUnistate() == kHostUSBDeviceState_Capturing);
     122    Assert(aDevice->i_getUnistate() == kHostUSBDeviceState_Capturing);
    123123    devLock.release();
    124124    interruptWait();
     
    134134
    135135    AutoReadLock devLock(aDevice COMMA_LOCKVAL_SRC_POS);
    136     LogFlowThisFunc(("aDevice=%s\n", aDevice->getName().c_str()));
     136    LogFlowThisFunc(("aDevice=%s\n", aDevice->i_getName().c_str()));
    137137
    138138    /*
    139139     * We're not really holding it atm., just fake it.
    140140     */
    141     Assert(aDevice->getUnistate() == kHostUSBDeviceState_ReleasingToHost);
     141    Assert(aDevice->i_getUnistate() == kHostUSBDeviceState_ReleasingToHost);
    142142    devLock.release();
    143143    interruptWait();
  • trunk/src/VBox/RDP/client/Makefile.kmk

    r54856 r55095  
    122122rdesktop-vrdp_LIBS.solaris = \
    123123        nsl
     124rdesktop-vrdp_LIBS.freebsd = \
     125        iconv
    124126
    125127#
  • trunk/src/VBox/Runtime/Makefile.kmk

    r55047 r55095  
    10261026        generic/RTThreadGetNativeState-generic.cpp \
    10271027        r3/freebsd/mp-freebsd.cpp \
     1028        r3/freebsd/systemmem-freebsd.cpp \
    10281029        r3/freebsd/rtProcInitExePath-freebsd.cpp \
    10291030        r3/generic/allocex-r3-generic.cpp \
     
    10331034        r3/posix/RTPathUserHome-posix.cpp \
    10341035        r3/posix/RTSystemQueryOSInfo-posix.cpp \
    1035         r3/posix/RTSystemQueryTotalRam-posix.cpp \
    10361036        r3/posix/RTTimeNow-posix.cpp \
    10371037        r3/posix/RTTimeSet-posix.cpp \
  • trunk/src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c

    r49718 r55095  
    169169#endif
    170170            vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0);
     171#if __FreeBSD_version < 1000000
    171172            vm_page_lock_queues();
     173#endif
    172174            for (vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0);
    173175                 pPage != NULL;
     
    176178                vm_page_unwire(pPage, 0);
    177179            }
     180#if __FreeBSD_version < 1000000
    178181            vm_page_unlock_queues();
     182#endif
    179183#if __FreeBSD_version >= 1000030
    180184            VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
     
    292296            {
    293297                pPage = vm_page_lookup(pObject, iPage);
     298#if __FreeBSD_version < 1000000
    294299                vm_page_lock_queues();
     300#endif
    295301                if (fWire)
    296302                    vm_page_unwire(pPage, 0);
    297303                vm_page_free(pPage);
     304#if __FreeBSD_version < 1000000
    298305                vm_page_unlock_queues();
     306#endif
    299307            }
    300308#if __FreeBSD_version >= 1000030
  • trunk/src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp

    r55093 r55095  
    3636#include <iprt/string.h>
    3737
    38 #include <stdio.h>
     38#include <sys/types.h>
     39#include <sys/sysctl.h>
    3940#include <errno.h>
    40 
    41 /* Satisfy compiller warning */
    42 #define __EXPORTED_HEADERS__
    43 #include <sys/sysinfo.h>
    44 #undef __EXPORTED_HEADERS__
    4541
    4642
    4743RTDECL(int) RTSystemQueryTotalRam(uint64_t *pcb)
    4844{
     45    int rc = VINF_SUCCESS;
     46    u_long cbMemPhys = 0;
     47    size_t cbParameter = sizeof(cbMemPhys);
     48
    4949    AssertPtrReturn(pcb, VERR_INVALID_POINTER);
    5050
    51     struct sysinfo info;
    52     int rc = sysinfo(&info);
    53     if (rc == 0)
     51    if (!sysctlbyname("hw.physmem", &cbMemPhys, &cbParameter, NULL, 0))
    5452    {
    55         *pcb = (uint64_t)info.totalram * info.mem_unit;
     53        *pcb = cbMemPhys;
    5654        return VINF_SUCCESS;
    5755    }
     
    6462    AssertPtrReturn(pcb, VERR_INVALID_POINTER);
    6563
    66     FILE *pFile = fopen("/proc/meminfo", "r");
    67     if (pFile)
    68     {
    69         int rc = VERR_NOT_FOUND;
    70         uint64_t cbTotal = 0;
    71         uint64_t cbFree = 0;
    72         uint64_t cbBuffers = 0;
    73         uint64_t cbCached = 0;
    74         char sz[256];
    75         while (fgets(sz, sizeof(sz), pFile))
    76         {
    77             if (!strncmp(sz, RT_STR_TUPLE("MemTotal:")))
    78                 rc = RTStrToUInt64Ex(RTStrStripL(&sz[sizeof("MemTotal:")]), NULL, 0, &cbTotal);
    79             else if (!strncmp(sz, RT_STR_TUPLE("MemFree:")))
    80                 rc = RTStrToUInt64Ex(RTStrStripL(&sz[sizeof("MemFree:")]), NULL, 0, &cbFree);
    81             else if (!strncmp(sz, RT_STR_TUPLE("Buffers:")))
    82                 rc = RTStrToUInt64Ex(RTStrStripL(&sz[sizeof("Buffers:")]), NULL, 0, &cbBuffers);
    83             else if (!strncmp(sz, RT_STR_TUPLE("Cached:")))
    84                 rc = RTStrToUInt64Ex(RTStrStripL(&sz[sizeof("Cached:")]), NULL, 0, &cbCached);
    85             if (RT_FAILURE(rc))
    86                 break;
    87         }
    88         fclose(pFile);
    89         if (RT_SUCCESS(rc))
    90         {
    91             *pcb = (cbFree + cbBuffers + cbCached) * _1K;
    92             return VINF_SUCCESS;
    93         }
    94     }
    95     /*
    96      * Fallback (e.g. /proc not mapped) to sysinfo. Less accurat because there
    97      * is no information about the cached memory. 'Cached:' from above is only
    98      * accessible through proc :-(
    99      */
    100     struct sysinfo info;
    101     int rc = sysinfo(&info);
    102     if (rc == 0)
    103     {
    104         *pcb = ((uint64_t)info.freeram + info.bufferram) * info.mem_unit;
    105         return VINF_SUCCESS;
    106     }
    107     return RTErrConvertFromErrno(errno);
     64    int rc = VINF_SUCCESS;
     65    u_int cPagesMemFree = 0;
     66    u_int cPagesMemInactive = 0;
     67    u_int cPagesMemCached = 0;
     68    u_int cPagesMemUsed = 0;
     69    int cbPage = 0;
     70    size_t cbParameter;
     71    int cProcessed = 0;
     72
     73    cbParameter = sizeof(cPagesMemFree);
     74    if (sysctlbyname("vm.stats.vm.v_free_count", &cPagesMemFree, &cbParameter, NULL, 0))
     75        rc = RTErrConvertFromErrno(errno);
     76    cbParameter = sizeof(cPagesMemUsed);
     77    if (   RT_SUCCESS(rc)
     78        && sysctlbyname("vm.stats.vm.v_active_count", &cPagesMemUsed, &cbParameter, NULL, 0))
     79        rc = RTErrConvertFromErrno(errno);
     80    cbParameter = sizeof(cPagesMemInactive);
     81    if (   RT_SUCCESS(rc)
     82        && sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0))
     83        rc = RTErrConvertFromErrno(errno);
     84    cbParameter = sizeof(cPagesMemCached);
     85    if (   RT_SUCCESS(rc)
     86        && sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0))
     87        rc = RTErrConvertFromErrno(errno);
     88    cbParameter = sizeof(cbPage);
     89    if (   RT_SUCCESS(rc)
     90        && sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0))
     91        rc = RTErrConvertFromErrno(errno);
     92
     93    if (RT_SUCCESS(rc))
     94        *pcb = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * cbPage;
     95
     96    return rc;
    10897}
    10998
  • trunk/src/VBox/ValidationKit/utils/cpu/cidet-app.cpp

    r53608 r55095  
    13091309    g_AltStack.ss_size  = _128K;
    13101310# endif
     1311#ifdef RT_OS_FREEBSD
     1312    g_AltStack.ss_sp    = (char *)RTMemPageAlloc(g_AltStack.ss_size);
     1313#else
    13111314    g_AltStack.ss_sp    = RTMemPageAlloc(g_AltStack.ss_size);
     1315#endif
    13121316    RTTESTI_CHECK_RET(g_AltStack.ss_sp != NULL, RTEXITCODE_FAILURE);
    13131317    RTTESTI_CHECK_RC_RET(sigaltstack(&g_AltStack, NULL), 0, RTEXITCODE_FAILURE);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette