~ubuntu-branches/ubuntu/trusty/virtualbox-ose/trusty

« back to all changes in this revision

Viewing changes to src/VBox/Main/Global.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-12-18 16:44:29 UTC
  • mfrom: (0.3.3 upstream) (0.4.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091218164429-jd34ccexpv5na11a
Tags: 3.1.2-dfsg-1ubuntu1
* Merge from Debian unstable (LP: #498219), remaining changes:
  - Disable update action
    - debian/patches/u01-disable-update-action.dpatch
  - VirtualBox should go in Accessories, not in System tools (LP: #288590)
    - debian/virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add Apport hook
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Add Launchpad integration
    - debian/control
    - debian/lpi-bug.xpm
    - debian/patches/u02-lp-integration.dpatch
* Fixes the following bugs:
  - Kernel module fails to build with Linux >= 2.6.32 (LP: #474625)
  - X.Org drivers need to be rebuilt against X-Server 1.7 (LP: #495935)
  - The *-source packages try to build the kernel modules even though the
    kernel headers aren't available (LP: #473334)
* Replace *-source packages with transitional packages for *-dkms.
* Adapt u01-disable-update-action.dpatch and u02-lp-integration.dpatch for
  new upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
#include "Global.h"
27
27
 
28
28
#include <iprt/assert.h>
 
29
#include <iprt/string.h>
 
30
#include <VBox/err.h>
29
31
 
30
32
/* static */
31
33
const Global::OSType Global::sOSTypes[SchemaDefs::OSTypeId_COUNT] =
34
36
     * NOTE2: please use powers of 2 when specifying the size of harddisks since
35
37
     *        '2GB' looks better than '1.95GB' (= 2000MB) */
36
38
    { "Other",   "Other",             SchemaDefs_OSTypeId_Other,           "Other/Unknown",
37
 
      VBOXOSTYPE_Unknown,         VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
39
      VBOXOSTYPE_Unknown,         VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973, 0 },
38
40
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows31,       "Windows 3.1",
39
 
      VBOXOSTYPE_Win31,           VBOXOSHINT_NONE,  32,   4,  1 * _1K, NetworkAdapterType_Am79C973 },
 
41
      VBOXOSTYPE_Win31,           VBOXOSHINT_NONE,  32,   4,  1 * _1K, NetworkAdapterType_Am79C973, 0 },
40
42
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows95,       "Windows 95",
41
 
      VBOXOSTYPE_Win95,           VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
43
      VBOXOSTYPE_Win95,           VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973, 0 },
42
44
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows98,       "Windows 98",
43
 
      VBOXOSTYPE_Win98,           VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
45
      VBOXOSTYPE_Win98,           VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973, 0 },
44
46
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsMe,       "Windows Me",
45
 
      VBOXOSTYPE_WinMe,           VBOXOSHINT_NONE,  64,   4,  4 * _1K, NetworkAdapterType_Am79C973 },
 
47
      VBOXOSTYPE_WinMe,           VBOXOSHINT_NONE,  64,   4,  4 * _1K, NetworkAdapterType_Am79C973, 0 },
46
48
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT4,      "Windows NT 4",
47
 
      VBOXOSTYPE_WinNT4,          VBOXOSHINT_NONE, 128,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
49
      VBOXOSTYPE_WinNT4,          VBOXOSHINT_NONE, 128,  16,  2 * _1K, NetworkAdapterType_Am79C973, 0 },
48
50
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2000,     "Windows 2000",
49
 
      VBOXOSTYPE_Win2k,           VBOXOSHINT_NONE, 168,  12,  4 * _1K, NetworkAdapterType_Am79C973 },
 
51
      VBOXOSTYPE_Win2k,           VBOXOSHINT_NONE, 168,  16,  4 * _1K, NetworkAdapterType_Am79C973, 0 },
50
52
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP,       "Windows XP",
51
 
      VBOXOSTYPE_WinXP,           VBOXOSHINT_NONE, 192,  12, 10 * _1K, NetworkAdapterType_Am79C973 },
 
53
      VBOXOSTYPE_WinXP,           VBOXOSHINT_NONE, 192,  16, 10 * _1K, NetworkAdapterType_Am79C973, 0 },
52
54
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP_64,    "Windows XP (64 bit)",
53
 
      VBOXOSTYPE_WinXP_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  192,  12, 10 * _1K, NetworkAdapterType_I82540EM },
 
55
      VBOXOSTYPE_WinXP_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  192,  16, 10 * _1K, NetworkAdapterType_I82540EM, 0 },
54
56
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003,     "Windows 2003",
55
 
      VBOXOSTYPE_Win2k3,          VBOXOSHINT_NONE, 256,  12, 20 * _1K, NetworkAdapterType_Am79C973 },
 
57
      VBOXOSTYPE_Win2k3,          VBOXOSHINT_NONE, 256,  16, 20 * _1K, NetworkAdapterType_Am79C973, 0 },
56
58
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003_64,  "Windows 2003 (64 bit)",
57
 
      VBOXOSTYPE_Win2k3_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12, 20 * _1K, NetworkAdapterType_I82540EM },
 
59
      VBOXOSTYPE_Win2k3_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  16, 20 * _1K, NetworkAdapterType_I82540EM, 0 },
58
60
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista,    "Windows Vista",
59
 
      VBOXOSTYPE_WinVista,        VBOXOSHINT_NONE, 512,  12, 20 * _1K, NetworkAdapterType_I82540EM },
 
61
      VBOXOSTYPE_WinVista,        VBOXOSHINT_NONE, 512,  16, 20 * _1K, NetworkAdapterType_I82540EM, 0 },
60
62
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista_64, "Windows Vista (64 bit)",
61
 
      VBOXOSTYPE_WinVista_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  512,  12, 20 * _1K, NetworkAdapterType_I82540EM },
 
63
      VBOXOSTYPE_WinVista_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  512,  16, 20 * _1K, NetworkAdapterType_I82540EM, 0 },
62
64
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008,     "Windows 2008",
63
 
      VBOXOSTYPE_Win2k8,          VBOXOSHINT_NONE, 512,  12, 20 * _1K, NetworkAdapterType_I82540EM },
 
65
      VBOXOSTYPE_Win2k8,          VBOXOSHINT_NONE, 512,  16, 20 * _1K, NetworkAdapterType_I82540EM, 0 },
64
66
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008_64,  "Windows 2008 (64 bit)",
65
 
      VBOXOSTYPE_Win2k8_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  512,  12, 20 * _1K, NetworkAdapterType_I82540EM },
 
67
      VBOXOSTYPE_Win2k8_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  512,  16, 20 * _1K, NetworkAdapterType_I82540EM, 0 },
66
68
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7,        "Windows 7",
67
 
      VBOXOSTYPE_Win7,            VBOXOSHINT_NONE, 512,  12, 20 * _1K, NetworkAdapterType_I82540EM },
 
69
      VBOXOSTYPE_Win7,            VBOXOSHINT_NONE, 512,  16, 20 * _1K, NetworkAdapterType_I82540EM, 0 },
68
70
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7_64,  "Windows 7 (64 bit)",
69
 
      VBOXOSTYPE_Win7_x64,        VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  512,  12, 20 * _1K, NetworkAdapterType_I82540EM },
 
71
      VBOXOSTYPE_Win7_x64,        VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  512,  16, 20 * _1K, NetworkAdapterType_I82540EM, 0 },
70
72
    { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT,       "Other Windows",
71
 
      VBOXOSTYPE_WinNT,           VBOXOSHINT_NONE, 512,  12, 20 * _1K, NetworkAdapterType_Am79C973 },
 
73
      VBOXOSTYPE_WinNT,           VBOXOSHINT_NONE, 512,  16, 20 * _1K, NetworkAdapterType_Am79C973, 0 },
72
74
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Linux22,         "Linux 2.2",
73
 
      VBOXOSTYPE_Linux22,         VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
75
      VBOXOSTYPE_Linux22,         VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973, 0 },
74
76
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Linux24,         "Linux 2.4",
75
 
      VBOXOSTYPE_Linux24,         VBOXOSHINT_NONE, 128,   4,  4 * _1K, NetworkAdapterType_Am79C973 },
 
77
      VBOXOSTYPE_Linux24,         VBOXOSHINT_NONE, 128,   4,  4 * _1K, NetworkAdapterType_Am79C973, 0 },
76
78
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Linux24_64,      "Linux 2.4 (64 bit)",
77
 
      VBOXOSTYPE_Linux24_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  128,   4,  4 * _1K, NetworkAdapterType_I82540EM },
 
79
      VBOXOSTYPE_Linux24_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  128,   4,  4 * _1K, NetworkAdapterType_I82540EM, 0 },
78
80
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Linux26,         "Linux 2.6",
79
 
      VBOXOSTYPE_Linux26,         VBOXOSHINT_NONE, 256,   4,  8 * _1K, NetworkAdapterType_Am79C973 },
 
81
      VBOXOSTYPE_Linux26,         VBOXOSHINT_NONE, 256,   4,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
80
82
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Linux26_64,      "Linux 2.6 (64 bit)",
81
 
      VBOXOSTYPE_Linux26_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,   4,  8 * _1K, NetworkAdapterType_I82540EM },
 
83
      VBOXOSTYPE_Linux26_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,   4,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
82
84
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_ArchLinux,       "Arch Linux",
83
 
      VBOXOSTYPE_ArchLinux,       VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
85
      VBOXOSTYPE_ArchLinux,       VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
84
86
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_ArchLinux_64,    "Arch Linux (64 bit)",
85
 
      VBOXOSTYPE_ArchLinux_x64,   VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
87
      VBOXOSTYPE_ArchLinux_x64,   VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
86
88
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Debian,          "Debian",
87
 
      VBOXOSTYPE_Debian,          VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
89
      VBOXOSTYPE_Debian,          VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
88
90
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Debian_64,       "Debian (64 bit)",
89
 
      VBOXOSTYPE_Debian_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
91
      VBOXOSTYPE_Debian_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
90
92
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_OpenSUSE,        "openSUSE",
91
 
      VBOXOSTYPE_OpenSUSE,        VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
93
      VBOXOSTYPE_OpenSUSE,        VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
92
94
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_OpenSUSE_64,     "openSUSE (64 bit)",
93
 
      VBOXOSTYPE_OpenSUSE_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
95
      VBOXOSTYPE_OpenSUSE_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
94
96
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Fedora,          "Fedora",
95
 
      VBOXOSTYPE_FedoraCore,      VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
97
      VBOXOSTYPE_FedoraCore,      VBOXOSHINT_NONE, 384,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
96
98
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Fedora_64,       "Fedora (64 bit)",
97
 
      VBOXOSTYPE_FedoraCore_x64,  VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
99
      VBOXOSTYPE_FedoraCore_x64,  VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  384,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
98
100
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Gentoo,          "Gentoo",
99
 
      VBOXOSTYPE_Gentoo,          VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
101
      VBOXOSTYPE_Gentoo,          VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
100
102
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Gentoo_64,       "Gentoo (64 bit)",
101
 
      VBOXOSTYPE_Gentoo_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
103
      VBOXOSTYPE_Gentoo_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
102
104
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Mandriva,        "Mandriva",
103
 
      VBOXOSTYPE_Mandriva,        VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
105
      VBOXOSTYPE_Mandriva,        VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
104
106
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Mandriva_64,     "Mandriva (64 bit)",
105
 
      VBOXOSTYPE_Mandriva_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
107
      VBOXOSTYPE_Mandriva_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
106
108
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_RedHat,          "Red Hat",
107
 
      VBOXOSTYPE_RedHat,          VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
109
      VBOXOSTYPE_RedHat,          VBOXOSHINT_NONE, 384,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
108
110
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_RedHat_64,       "Red Hat (64 bit)",
109
 
      VBOXOSTYPE_RedHat_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
111
      VBOXOSTYPE_RedHat_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  384,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
110
112
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Turbolinux,      "Turbolinux",
111
 
      VBOXOSTYPE_Turbolinux,      VBOXOSHINT_NONE, 384,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
113
      VBOXOSTYPE_Turbolinux,      VBOXOSHINT_NONE, 384,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
112
114
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Ubuntu,          "Ubuntu",
113
 
      VBOXOSTYPE_Ubuntu,          VBOXOSHINT_NONE, 384,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
115
      VBOXOSTYPE_Ubuntu,          VBOXOSHINT_NONE, 384,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
114
116
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Ubuntu_64,       "Ubuntu (64 bit)",
115
 
      VBOXOSTYPE_Ubuntu_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  384,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
117
      VBOXOSTYPE_Ubuntu_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  384,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
116
118
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Xandros,         "Xandros",
117
 
      VBOXOSTYPE_Xandros,         VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
119
      VBOXOSTYPE_Xandros,         VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
118
120
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Xandros_64,      "Xandros (64 bit)",
119
 
      VBOXOSTYPE_Xandros_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM },
 
121
      VBOXOSTYPE_Xandros_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  256,  12,  8 * _1K, NetworkAdapterType_I82540EM, 0 },
120
122
    { "Linux",   "Linux",             SchemaDefs_OSTypeId_Linux,           "Other Linux",
121
 
      VBOXOSTYPE_Linux,           VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973 },
 
123
      VBOXOSTYPE_Linux,           VBOXOSHINT_NONE, 256,  12,  8 * _1K, NetworkAdapterType_Am79C973, 0 },
122
124
    { "Solaris", "Solaris",           SchemaDefs_OSTypeId_Solaris,         "Solaris",
123
 
      VBOXOSTYPE_Solaris,         VBOXOSHINT_NONE, 768,  12, 16 * _1K, NetworkAdapterType_I82540EM },
 
125
      VBOXOSTYPE_Solaris,         VBOXOSHINT_NONE, 768,  12, 16 * _1K, NetworkAdapterType_I82540EM, 0 },
124
126
    { "Solaris", "Solaris",           SchemaDefs_OSTypeId_Solaris_64,      "Solaris (64 bit)",
125
 
      VBOXOSTYPE_Solaris_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  768,  12, 16 * _1K, NetworkAdapterType_I82540EM },
 
127
      VBOXOSTYPE_Solaris_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  768,  12, 16 * _1K, NetworkAdapterType_I82540EM, 0 },
126
128
    { "Solaris", "Solaris",           SchemaDefs_OSTypeId_OpenSolaris,     "OpenSolaris",
127
 
      VBOXOSTYPE_OpenSolaris,     VBOXOSHINT_NONE, 768,  12, 16 * _1K, NetworkAdapterType_I82540EM },
 
129
      VBOXOSTYPE_OpenSolaris,     VBOXOSHINT_NONE, 768,  12, 16 * _1K, NetworkAdapterType_I82540EM, 0 },
128
130
    { "Solaris", "Solaris",           SchemaDefs_OSTypeId_OpenSolaris_64,  "OpenSolaris (64 bit)",
129
 
      VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  768,  12, 16 * _1K, NetworkAdapterType_I82540EM },
 
131
      VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  768,  12, 16 * _1K, NetworkAdapterType_I82540EM, 0 },
130
132
    { "BSD",     "BSD",               SchemaDefs_OSTypeId_FreeBSD,         "FreeBSD",
131
 
      VBOXOSTYPE_FreeBSD,         VBOXOSHINT_NONE, 128,   4,  2 * _1K, NetworkAdapterType_I82540EM },
 
133
      VBOXOSTYPE_FreeBSD,         VBOXOSHINT_NONE, 128,   4,  2 * _1K, NetworkAdapterType_I82540EM, 0 },
132
134
    { "BSD",     "BSD",               SchemaDefs_OSTypeId_FreeBSD_64,      "FreeBSD (64 bit)",
133
 
      VBOXOSTYPE_FreeBSD_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  128,   4,  2 * _1K, NetworkAdapterType_I82540EM },
 
135
      VBOXOSTYPE_FreeBSD_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,  128,   4,  2 * _1K, NetworkAdapterType_I82540EM, 0 },
134
136
    { "BSD",     "BSD",               SchemaDefs_OSTypeId_OpenBSD,         "OpenBSD",
135
 
      VBOXOSTYPE_OpenBSD,         VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
137
      VBOXOSTYPE_OpenBSD,         VBOXOSHINT_HWVIRTEX,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973, 0 },
136
138
    { "BSD",     "BSD",               SchemaDefs_OSTypeId_OpenBSD_64,      "OpenBSD (64 bit)",
137
 
      VBOXOSTYPE_OpenBSD_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,   64,   4,  2 * _1K, NetworkAdapterType_I82540EM },
 
139
      VBOXOSTYPE_OpenBSD_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,   64,   4,  2 * _1K, NetworkAdapterType_I82540EM, 0 },
138
140
    { "BSD",     "BSD",               SchemaDefs_OSTypeId_NetBSD,          "NetBSD",
139
 
      VBOXOSTYPE_NetBSD,          VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
141
      VBOXOSTYPE_NetBSD,          VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973, 0 },
140
142
    { "BSD",     "BSD",               SchemaDefs_OSTypeId_NetBSD_64,       "NetBSD (64 bit)",
141
 
      VBOXOSTYPE_NetBSD_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,   64,   4,  2 * _1K, NetworkAdapterType_I82540EM },
 
143
      VBOXOSTYPE_NetBSD_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,   64,   4,  2 * _1K, NetworkAdapterType_I82540EM, 0 },
142
144
    { "OS2",     "IBM OS/2",          SchemaDefs_OSTypeId_OS2Warp3,        "OS/2 Warp 3",
143
 
      VBOXOSTYPE_OS2Warp3,        VBOXOSHINT_HWVIRTEX,   48,   4,  1 * _1K, NetworkAdapterType_Am79C973 },
 
145
      VBOXOSTYPE_OS2Warp3,        VBOXOSHINT_HWVIRTEX,   48,   4,  1 * _1K, NetworkAdapterType_Am79C973, 1 },
144
146
    { "OS2",     "IBM OS/2",          SchemaDefs_OSTypeId_OS2Warp4,        "OS/2 Warp 4",
145
 
      VBOXOSTYPE_OS2Warp4,        VBOXOSHINT_HWVIRTEX,   64,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
147
      VBOXOSTYPE_OS2Warp4,        VBOXOSHINT_HWVIRTEX,   64,   4,  2 * _1K, NetworkAdapterType_Am79C973, 1 },
146
148
    { "OS2",     "IBM OS/2",          SchemaDefs_OSTypeId_OS2Warp45,       "OS/2 Warp 4.5",
147
 
      VBOXOSTYPE_OS2Warp45,       VBOXOSHINT_HWVIRTEX,   96,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
149
      VBOXOSTYPE_OS2Warp45,       VBOXOSHINT_HWVIRTEX,   96,   4,  2 * _1K, NetworkAdapterType_Am79C973, 1 },
148
150
    { "OS2",     "IBM OS/2",          SchemaDefs_OSTypeId_OS2eCS,          "eComStation",
149
 
      VBOXOSTYPE_ECS,             VBOXOSHINT_HWVIRTEX,   96,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
151
      VBOXOSTYPE_ECS,             VBOXOSHINT_HWVIRTEX,   96,   4,  2 * _1K, NetworkAdapterType_Am79C973, 1 },
150
152
    { "OS2",     "IBM OS/2",          SchemaDefs_OSTypeId_OS2,             "Other OS/2",
151
 
      VBOXOSTYPE_OS2,             VBOXOSHINT_HWVIRTEX,   96,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
153
      VBOXOSTYPE_OS2,             VBOXOSHINT_HWVIRTEX,   96,   4,  2 * _1K, NetworkAdapterType_Am79C973, 1 },
152
154
    { "Other",   "Other",             SchemaDefs_OSTypeId_DOS,             "DOS",
153
 
      VBOXOSTYPE_DOS,             VBOXOSHINT_NONE,  32,   4,      512, NetworkAdapterType_Am79C973 },
 
155
      VBOXOSTYPE_DOS,             VBOXOSHINT_NONE,  32,   4,      512, NetworkAdapterType_Am79C973, 0 },
154
156
    { "Other",   "Other",             SchemaDefs_OSTypeId_Netware,         "Netware",
155
 
      VBOXOSTYPE_Netware,         VBOXOSHINT_NONE, 512,   4,  4 * _1K, NetworkAdapterType_Am79C973 },
 
157
      VBOXOSTYPE_Netware,         VBOXOSHINT_HWVIRTEX, 512,   4,  4 * _1K, NetworkAdapterType_Am79C973, 0 },
156
158
    { "Other",   "Other",             SchemaDefs_OSTypeId_L4,              "L4",
157
 
      VBOXOSTYPE_L4,              VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973 },
 
159
      VBOXOSTYPE_L4,              VBOXOSHINT_NONE,  64,   4,  2 * _1K, NetworkAdapterType_Am79C973, 0 },
158
160
    { "Other",   "Other",             SchemaDefs_OSTypeId_QNX,             "QNX",
159
 
      VBOXOSTYPE_QNX,             VBOXOSHINT_HWVIRTEX,  512,   4,  4 * _1K, NetworkAdapterType_Am79C973 }
 
161
      VBOXOSTYPE_QNX,             VBOXOSHINT_HWVIRTEX,  512,   4,  4 * _1K, NetworkAdapterType_Am79C973, 0 }
160
162
};
161
163
 
162
164
/**
167
169
 * (VirtualBoxImpl::COMGETTER(GuestOSTypes)) collection.
168
170
 */
169
171
/* static */
170
 
const char *Global::OSTypeId (VBOXOSTYPE aOSType)
171
 
{
172
 
    for (size_t i = 0; i < RT_ELEMENTS (sOSTypes); ++ i)
173
 
    {
174
 
        if (sOSTypes [i].osType == aOSType)
175
 
            return sOSTypes [i].id;
176
 
    }
177
 
 
178
 
    AssertMsgFailed (("No record for VBOXOSTYPE %d\n", aOSType));
179
 
    return sOSTypes [0].id;
180
 
}
 
172
const char *Global::OSTypeId(VBOXOSTYPE aOSType)
 
173
{
 
174
    for (size_t i = 0; i < RT_ELEMENTS(sOSTypes); ++i)
 
175
    {
 
176
        if (sOSTypes[i].osType == aOSType)
 
177
            return sOSTypes[i].id;
 
178
    }
 
179
 
 
180
    AssertMsgFailed(("No record for VBOXOSTYPE %d\n", aOSType));
 
181
    return sOSTypes[0].id;
 
182
}
 
183
 
 
184
/*static*/ const char *
 
185
Global::stringifyMachineState(MachineState_T aState)
 
186
{
 
187
    switch (aState)
 
188
    {
 
189
        case MachineState_Null:                 return "Null";
 
190
        case MachineState_PoweredOff:           return "PoweredOff";
 
191
        case MachineState_Saved:                return "Saved";
 
192
        case MachineState_Teleported:           return "Teleported";
 
193
        case MachineState_Aborted:              return "Aborted";
 
194
        case MachineState_Running:              return "Running";
 
195
        case MachineState_Teleporting:          return "Teleporting";
 
196
        case MachineState_LiveSnapshotting:     return "LiveSnapshotting";
 
197
        case MachineState_Paused:               return "Paused";
 
198
        case MachineState_Stuck:                return "GuruMeditation";
 
199
        case MachineState_Starting:             return "Starting";
 
200
        case MachineState_Stopping:             return "Stopping";
 
201
        case MachineState_Saving:               return "Saving";
 
202
        case MachineState_Restoring:            return "Restoring";
 
203
        case MachineState_TeleportingPausedVM:  return "TeleportingPausedVM";
 
204
        case MachineState_TeleportingIn:        return "TeleportingIn";
 
205
        case MachineState_RestoringSnapshot:    return "RestoringSnapshot";
 
206
        case MachineState_DeletingSnapshot:     return "DeletingSnapshot";
 
207
        case MachineState_SettingUp:            return "SettingUp";
 
208
        default:
 
209
        {
 
210
            AssertMsgFailed(("%d (%#x)\n", aState, aState));
 
211
            static char s_szMsg[48];
 
212
            RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidState-0x%08x\n", aState);
 
213
            return s_szMsg;
 
214
        }
 
215
    }
 
216
}
 
217
 
 
218
/*static*/ const char *
 
219
Global::stringifySessionState(SessionState_T aState)
 
220
{
 
221
    switch (aState)
 
222
    {
 
223
        case SessionState_Null:         return "Null";
 
224
        case SessionState_Closed:       return "Closed";
 
225
        case SessionState_Open:         return "Open";
 
226
        case SessionState_Spawning:     return "Spawning";
 
227
        case SessionState_Closing:      return "Closing";
 
228
        default:
 
229
        {
 
230
            AssertMsgFailed(("%d (%#x)\n", aState, aState));
 
231
            static char s_szMsg[48];
 
232
            RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidState-0x%08x\n", aState);
 
233
            return s_szMsg;
 
234
        }
 
235
    }
 
236
}
 
237
 
 
238
/*static*/ const char *
 
239
Global::stringifyDeviceType(DeviceType_T aType)
 
240
{
 
241
    switch (aType)
 
242
    {
 
243
        case DeviceType_Null:         return "Null";
 
244
        case DeviceType_Floppy:       return "Floppy";
 
245
        case DeviceType_DVD:          return "DVD";
 
246
        case DeviceType_HardDisk:     return "HardDisk";
 
247
        case DeviceType_Network:      return "Network";
 
248
        case DeviceType_USB:          return "USB";
 
249
        case DeviceType_SharedFolder: return "ShardFolder";
 
250
        default:
 
251
        {
 
252
            AssertMsgFailed(("%d (%#x)\n", aType, aType));
 
253
            static char s_szMsg[48];
 
254
            RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidType-0x%08x\n", aType);
 
255
            return s_szMsg;
 
256
        }
 
257
    }
 
258
}
 
259
 
 
260
/*static*/ int
 
261
Global::vboxStatusCodeFromCOM(HRESULT aComStatus)
 
262
{
 
263
    switch (aComStatus)
 
264
    {
 
265
        case S_OK:                              return VINF_SUCCESS;
 
266
        case E_FAIL:                            return VERR_GENERAL_FAILURE;
 
267
        case E_INVALIDARG:                      return VERR_INVALID_PARAMETER;
 
268
        case E_POINTER:                         return VERR_INVALID_POINTER;
 
269
 
 
270
        case VBOX_E_OBJECT_NOT_FOUND:           return VERR_COM_OBJECT_NOT_FOUND;
 
271
        case VBOX_E_INVALID_VM_STATE:           return VERR_COM_INVALID_VM_STATE;
 
272
        case VBOX_E_VM_ERROR:                   return VERR_COM_VM_ERROR;
 
273
        case VBOX_E_FILE_ERROR:                 return VERR_COM_FILE_ERROR;
 
274
        case VBOX_E_IPRT_ERROR:                 return VERR_COM_IPRT_ERROR;
 
275
        case VBOX_E_PDM_ERROR:                  return VERR_COM_PDM_ERROR;
 
276
        case VBOX_E_INVALID_OBJECT_STATE:       return VERR_COM_INVALID_OBJECT_STATE;
 
277
        case VBOX_E_HOST_ERROR:                 return VERR_COM_HOST_ERROR;
 
278
        case VBOX_E_NOT_SUPPORTED:              return VERR_COM_NOT_SUPPORTED;
 
279
        case VBOX_E_XML_ERROR:                  return VERR_COM_XML_ERROR;
 
280
        case VBOX_E_INVALID_SESSION_STATE:      return VERR_COM_INVALID_SESSION_STATE;
 
281
        case VBOX_E_OBJECT_IN_USE:              return VERR_COM_OBJECT_IN_USE;
 
282
 
 
283
        default:
 
284
            if (SUCCEEDED(aComStatus))
 
285
                return VINF_SUCCESS;
 
286
            return VERR_UNRESOLVED_ERROR;
 
287
    }
 
288
}
 
289
 
 
290
 
 
291
/*static*/ HRESULT
 
292
Global::vboxStatusCodeToCOM(int aVBoxStatus)
 
293
{
 
294
    switch (aVBoxStatus)
 
295
    {
 
296
        case VINF_SUCCESS:                      return S_OK;
 
297
        case VERR_GENERAL_FAILURE:              return E_FAIL;
 
298
        case VERR_UNRESOLVED_ERROR:             return E_FAIL;
 
299
        case VERR_INVALID_PARAMETER:            return E_INVALIDARG;
 
300
        case VERR_INVALID_POINTER:              return E_POINTER;
 
301
 
 
302
        case VERR_COM_OBJECT_NOT_FOUND:         return VBOX_E_OBJECT_NOT_FOUND;
 
303
        case VERR_COM_INVALID_VM_STATE:         return VBOX_E_INVALID_VM_STATE;
 
304
        case VERR_COM_VM_ERROR:                 return VBOX_E_VM_ERROR;
 
305
        case VERR_COM_FILE_ERROR:               return VBOX_E_FILE_ERROR;
 
306
        case VERR_COM_IPRT_ERROR:               return VBOX_E_IPRT_ERROR;
 
307
        case VERR_COM_PDM_ERROR:                return VBOX_E_PDM_ERROR;
 
308
        case VERR_COM_INVALID_OBJECT_STATE:     return VBOX_E_INVALID_OBJECT_STATE;
 
309
        case VERR_COM_HOST_ERROR:               return VBOX_E_HOST_ERROR;
 
310
        case VERR_COM_NOT_SUPPORTED:            return VBOX_E_NOT_SUPPORTED;
 
311
        case VERR_COM_XML_ERROR:                return VBOX_E_XML_ERROR;
 
312
        case VERR_COM_INVALID_SESSION_STATE:    return VBOX_E_INVALID_SESSION_STATE;
 
313
        case VERR_COM_OBJECT_IN_USE:            return VBOX_E_OBJECT_IN_USE;
 
314
 
 
315
        default:
 
316
            AssertMsgFailed(("%Rrc\n", aVBoxStatus));
 
317
            if (RT_SUCCESS(aVBoxStatus))
 
318
                return S_OK;
 
319
 
 
320
            /* try categorize it */
 
321
            if (aVBoxStatus < 0 && aVBoxStatus > -1000)
 
322
                return VBOX_E_IPRT_ERROR;
 
323
            if (    aVBoxStatus <  VERR_PDM_NO_SUCH_LUN / 100 * 10
 
324
                &&  aVBoxStatus >  VERR_PDM_NO_SUCH_LUN / 100 * 10 - 100)
 
325
                return VBOX_E_PDM_ERROR;
 
326
            if (    aVBoxStatus <= -1000
 
327
                &&  aVBoxStatus >  -5000 /* wrong, but so what... */)
 
328
                return VBOX_E_VM_ERROR;
 
329
 
 
330
            return E_FAIL;
 
331
    }
 
332
}
 
333
 
 
334
 
181
335
/* vi: set tabstop=4 shiftwidth=4 expandtab: */