VirtualBox

Changeset 40911 in vbox


Ignore:
Timestamp:
Apr 14, 2012 7:04:34 AM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
77462
Message:

VBoxNetAdp/FreeBSD: Add VIMAGE support (Thanks to Mikolaj Golub and Bernhard Froehlich)

Location:
trunk/src/VBox/HostDrivers/VBoxNetAdp/freebsd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/VBoxNetAdp/freebsd/Makefile

    r28800 r40911  
    1919KMOD = vboxnetadp
    2020
    21 CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING
     21CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVIMAGE
    2222
    2323.if (${MACHINE_ARCH} == "i386")
  • trunk/src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c

    r35950 r40911  
    6969#include "../VBoxNetAdpInternal.h"
    7070
     71#if defined(__FreeBSD_version) && __FreeBSD_version >= 800500
     72# include <sys/jail.h>
     73# include <net/vnet.h>
     74
     75# define VBOXCURVNET_SET(arg)           CURVNET_SET_QUIET(arg)
     76# define VBOXCURVNET_SET_FROM_UCRED()   VBOXCURVNET_SET(CRED_TO_VNET(curthread->td_ucred))
     77# define VBOXCURVNET_RESTORE()          CURVNET_RESTORE()
     78
     79#else /* !defined(__FreeBSD_version) || __FreeBSD_version < 800500 */
     80
     81# define VBOXCURVNET_SET(arg)
     82# define VBOXCURVNET_SET_FROM_UCRED()
     83# define VBOXCURVNET_RESTORE()
     84
     85#endif /* !defined(__FreeBSD_version) || __FreeBSD_version < 800500 */
     86
    7187static int VBoxNetAdpFreeBSDCtrlioctl(struct cdev *, u_long, caddr_t, int flags,
    7288    struct thread *);
     
    261277    struct ifnet *ifp;
    262278
     279    VBOXCURVNET_SET_FROM_UCRED();
    263280    ifp = if_alloc(IFT_ETHER);
    264281    if (ifp == NULL)
     
    280297    strncpy(pThis->szName, ifp->if_xname, VBOXNETADP_MAX_NAME_LEN);
    281298    pThis->u.s.ifp = ifp;
     299    VBOXCURVNET_RESTORE();
    282300    return 0;
    283301}
     
    287305    struct ifnet *ifp;
    288306
     307    VBOXCURVNET_SET(ifp->if_vnet);
    289308    ifp = pThis->u.s.ifp;
    290309    ether_ifdetach(ifp);
    291310    if_free(ifp);
    292 }
     311    VBOXCURVNET_RESTORE();
     312}
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