VirtualBox

source: vbox/trunk/src/VBox/Installer/solaris/VBoxZoneAccess.c@ 13981

Last change on this file since 13981 was 13981, checked in by vboxsync, 16 years ago

Solaris/Installer: VBoxZoneAccess.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.6 KB
Line 
1/** @file
2 * VBoxZoneAccess - Hack that keeps vboxdrv referenced for granting zone access, Solaris hosts.
3 */
4
5/*
6 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 *
25 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
26 * Clara, CA 95054 USA or visit http://www.sun.com if you need
27 * additional information or have any questions.
28 */
29
30/*******************************************************************************
31* Header Files *
32*******************************************************************************/
33#include <stdio.h>
34#include <signal.h>
35#include <unistd.h>
36#include <fcntl.h>
37#include <errno.h>
38
39#include <iprt/process.h>
40
41#define DEVICE_NAME "/dev/vboxdrv"
42
43int main(int argc, char *argv[])
44{
45 int hDevice = -1;
46
47 /* Check root permissions. */
48 if (geteuid() != 0)
49 {
50 fprintf(stderr, "This program needs administrator privileges.\n");
51 return -1;
52 }
53
54 /* Daemonize... */
55 RTProcDaemonize(false /* fNoChDir */,
56 false /* fNoClose */,
57 NULL /* pszPidfile */);
58
59 /* Open the device */
60 hDevice = open(DEVICE_NAME, O_RDWR, 0);
61 if (hDevice < 0)
62 {
63 fprintf(stderr, "Failed to open '%s'. errno=%d\n", DEVICE_NAME, errno);
64 return errno;
65 }
66
67 /* Mark the file handle close on exec. */
68 if (fcntl(hDevice, F_SETFD, FD_CLOEXEC) != 0)
69 {
70 fprintf(stderr, "Failed to set close on exec. errno=%d\n", errno);
71 close(hDevice);
72 return errno;
73 }
74
75 /* Go to interruptible sleep... */
76 sleep(1000000000U);
77
78 close(hDevice);
79
80 return 0;
81}
82
Note: See TracBrowser for help on using the repository browser.

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