VirtualBox

Changeset 49840 in vbox


Ignore:
Timestamp:
Dec 9, 2013 1:31:05 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
91184
Message:

Support/solaris: Use /dev/vboxdrv[u] for non-global zones.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp

    r49636 r49840  
    5353#include <sys/fcntl.h>
    5454#include <sys/ioctl.h>
     55#include <sys/zone.h>
    5556
    5657#include <fcntl.h>
     
    6061#include <stdlib.h>
    6162#include <stdio.h>
     63#include <zone.h>
    6264
    6365
     
    6567*   Defined Constants And Macros                                               *
    6668*******************************************************************************/
    67 /** @todo r=ramshankar: This breaks accessing the driver from non-global zones. We should check
    68     using getzoneid() != GLOBAL_ZONE and use /dev/vboxdrv[u] instead when we're in a zone. */
    6969/** Solaris device link - system. */
    70 #define DEVICE_NAME_SYS     "/devices/pseudo/vboxdrv@0:vboxdrv"
     70#define DEVICE_NAME_SYS       "/devices/pseudo/vboxdrv@0:vboxdrv"
    7171/** Solaris device link - user. */
    72 #define DEVICE_NAME_USR     "/devices/pseudo/vboxdrv@0:vboxdrvu"
     72#define DEVICE_NAME_USR       "/devices/pseudo/vboxdrv@0:vboxdrvu"
     73/** Solaris device link - system (non-global zone). */
     74#define DEVICE_NAME_SYS_ZONE  "/dev/vboxdrv"
     75/** Solaris device link - user (non-global zone). */
     76#define DEVICE_NAME_USR_ZONE  "/dev/vboxdrvu"
    7377
    7478
     
    106110     * Try to open the device.
    107111     */
    108     const char *pszDeviceNm = fUnrestricted ? DEVICE_NAME_SYS : DEVICE_NAME_USR;
     112    const char *pszDeviceNm;
     113    if (getzoneid() == GLOBAL_ZONEID)
     114        pszDeviceNm = fUnrestricted ? DEVICE_NAME_SYS : DEVICE_NAME_USR;
     115    else
     116        pszDeviceNm = fUnrestricted ? DEVICE_NAME_SYS_ZONE : DEVICE_NAME_USR_ZONE;
    109117    int hDevice = open(pszDeviceNm, O_RDWR, 0);
    110118    if (hDevice < 0)
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