VirtualBox

source: vbox/trunk/src/VBox/Main/src-all/Global.cpp@ 46465

Last change on this file since 46465 was 46350, checked in by vboxsync, 12 years ago

The GUI an its assumptions... Fixed assertion due to missing OS icon info for the new type and fixed the ordering.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 37.8 KB
Line 
1/* $Id: Global.cpp 46350 2013-05-31 20:12:02Z vboxsync $ */
2/** @file
3 * VirtualBox COM global definitions
4 *
5 * NOTE: This file is part of both VBoxC.dll and VBoxSVC.exe.
6 */
7
8/*
9 * Copyright (C) 2008-2013 Oracle Corporation
10 *
11 * This file is part of VirtualBox Open Source Edition (OSE), as
12 * available from http://www.virtualbox.org. This file is free software;
13 * you can redistribute it and/or modify it under the terms of the GNU
14 * General Public License (GPL) as published by the Free Software
15 * Foundation, in version 2 as it comes in the "COPYING" file of the
16 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
17 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18 */
19
20#include "Global.h"
21
22#include <iprt/assert.h>
23#include <iprt/string.h>
24#include <VBox/err.h>
25
26/* static */
27const Global::OSType Global::sOSTypes[] =
28{
29 /* NOTE1: we assume that unknown is always the first two entries!
30 * NOTE2: please use powers of 2 when specifying the size of harddisks since
31 * '2GB' looks better than '1.95GB' (= 2000MB) */
32 { "Other", "Other", "Other", "Other/Unknown",
33 VBOXOSTYPE_Unknown, VBOXOSHINT_NONE,
34 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
35 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
36 { "Other", "Other", "Other_64", "Other/Unknown (64-bit)",
37 VBOXOSTYPE_Unknown_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
38 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
39 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
40 { "Windows", "Microsoft Windows", "Windows31", "Windows 3.1",
41 VBOXOSTYPE_Win31, VBOXOSHINT_FLOPPY,
42 32, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
43 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
44 { "Windows", "Microsoft Windows", "Windows95", "Windows 95",
45 VBOXOSTYPE_Win95, VBOXOSHINT_FLOPPY,
46 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
47 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
48 { "Windows", "Microsoft Windows", "Windows98", "Windows 98",
49 VBOXOSTYPE_Win98, VBOXOSHINT_FLOPPY,
50 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
51 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
52 { "Windows", "Microsoft Windows", "WindowsMe", "Windows ME",
53 VBOXOSTYPE_WinMe, VBOXOSHINT_FLOPPY | VBOXOSHINT_USBTABLET,
54 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
55 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
56 { "Windows", "Microsoft Windows", "WindowsNT4", "Windows NT 4",
57 VBOXOSTYPE_WinNT4, VBOXOSHINT_NONE,
58 128, 16, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
59 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
60 { "Windows", "Microsoft Windows", "Windows2000", "Windows 2000",
61 VBOXOSTYPE_Win2k, VBOXOSHINT_USBTABLET,
62 168, 16, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
63 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
64 { "Windows", "Microsoft Windows", "WindowsXP", "Windows XP",
65 VBOXOSTYPE_WinXP, VBOXOSHINT_USBTABLET,
66 192, 16, 10 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
67 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
68 { "Windows", "Microsoft Windows", "WindowsXP_64", "Windows XP (64 bit)",
69 VBOXOSTYPE_WinXP_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
70 192, 16, 10 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
71 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
72 { "Windows", "Microsoft Windows", "Windows2003", "Windows 2003",
73 VBOXOSTYPE_Win2k3, VBOXOSHINT_USBTABLET,
74 256, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
75 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
76 { "Windows", "Microsoft Windows", "Windows2003_64", "Windows 2003 (64 bit)",
77 VBOXOSTYPE_Win2k3_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
78 256, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
79 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA },
80 { "Windows", "Microsoft Windows", "WindowsVista", "Windows Vista",
81 VBOXOSTYPE_WinVista, VBOXOSHINT_USBTABLET,
82 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
83 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
84 { "Windows", "Microsoft Windows", "WindowsVista_64", "Windows Vista (64 bit)",
85 VBOXOSTYPE_WinVista_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
86 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
87 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
88 { "Windows", "Microsoft Windows", "Windows2008", "Windows 2008",
89 VBOXOSTYPE_Win2k8, VBOXOSHINT_USBTABLET,
90 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
91 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
92 { "Windows", "Microsoft Windows", "Windows2008_64", "Windows 2008 (64 bit)",
93 VBOXOSTYPE_Win2k8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
94 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
95 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
96 { "Windows", "Microsoft Windows", "Windows7", "Windows 7",
97 VBOXOSTYPE_Win7, VBOXOSHINT_USBTABLET,
98 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
99 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
100 { "Windows", "Microsoft Windows", "Windows7_64", "Windows 7 (64 bit)",
101 VBOXOSTYPE_Win7_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
102 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
103 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
104 { "Windows", "Microsoft Windows", "Windows8", "Windows 8",
105 VBOXOSTYPE_Win8, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE,
106 1024,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
107 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
108 { "Windows", "Microsoft Windows", "Windows8_64", "Windows 8 (64 bit)",
109 VBOXOSTYPE_Win8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
110 2048,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
111 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
112 { "Windows", "Microsoft Windows", "Windows2012_64", "Windows 2012 (64 bit)",
113 VBOXOSTYPE_Win2k12_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
114 2048,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
115 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
116 { "Windows", "Microsoft Windows", "WindowsNT", "Other Windows",
117 VBOXOSTYPE_WinNT, VBOXOSHINT_NONE,
118 512, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
119 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
120 { "Windows", "Microsoft Windows", "WindowsNT_64", "Other Windows (64-bit)",
121 VBOXOSTYPE_WinNT_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
122 512, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
123 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
124 { "Linux", "Linux", "Linux22", "Linux 2.2",
125 VBOXOSTYPE_Linux22, VBOXOSHINT_RTCUTC,
126 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
127 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
128 { "Linux", "Linux", "Linux24", "Linux 2.4",
129 VBOXOSTYPE_Linux24, VBOXOSHINT_RTCUTC,
130 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
131 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
132 { "Linux", "Linux", "Linux24_64", "Linux 2.4 (64 bit)",
133 VBOXOSTYPE_Linux24_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
134 128, 4, 4 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
135 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
136 { "Linux", "Linux", "Linux26", "Linux 2.6 / 3.x",
137 VBOXOSTYPE_Linux26, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
138 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
139 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
140 { "Linux", "Linux", "Linux26_64", "Linux 2.6 / 3.x (64 bit)",
141 VBOXOSTYPE_Linux26_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
142 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
143 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
144 { "Linux", "Linux", "ArchLinux", "Arch Linux",
145 VBOXOSTYPE_ArchLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
146 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
147 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
148 { "Linux", "Linux", "ArchLinux_64", "Arch Linux (64 bit)",
149 VBOXOSTYPE_ArchLinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
150 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
151 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
152 { "Linux", "Linux", "Debian", "Debian",
153 VBOXOSTYPE_Debian, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
154 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
155 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
156 { "Linux", "Linux", "Debian_64", "Debian (64 bit)",
157 VBOXOSTYPE_Debian_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
158 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
159 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97},
160 { "Linux", "Linux", "OpenSUSE", "openSUSE",
161 VBOXOSTYPE_OpenSUSE, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
162 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
163 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
164 { "Linux", "Linux", "OpenSUSE_64", "openSUSE (64 bit)",
165 VBOXOSTYPE_OpenSUSE_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
166 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
167 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
168 { "Linux", "Linux", "Fedora", "Fedora",
169 VBOXOSTYPE_FedoraCore, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
170 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
171 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
172 { "Linux", "Linux", "Fedora_64", "Fedora (64 bit)",
173 VBOXOSTYPE_FedoraCore_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
174 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
175 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
176 { "Linux", "Linux", "Gentoo", "Gentoo",
177 VBOXOSTYPE_Gentoo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
178 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
179 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
180 { "Linux", "Linux", "Gentoo_64", "Gentoo (64 bit)",
181 VBOXOSTYPE_Gentoo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
182 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
183 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
184 { "Linux", "Linux", "Mandriva", "Mandriva",
185 VBOXOSTYPE_Mandriva, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
186 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
187 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
188 { "Linux", "Linux", "Mandriva_64", "Mandriva (64 bit)",
189 VBOXOSTYPE_Mandriva_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
190 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
191 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
192 { "Linux", "Linux", "RedHat", "Red Hat",
193 VBOXOSTYPE_RedHat, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE,
194 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
195 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
196 { "Linux", "Linux", "RedHat_64", "Red Hat (64 bit)",
197 VBOXOSTYPE_RedHat_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
198 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
199 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
200 { "Linux", "Linux", "Turbolinux", "Turbolinux",
201 VBOXOSTYPE_Turbolinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
202 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
203 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
204 { "Linux", "Linux", "Turbolinux_64", "Turbolinux (64 bit)",
205 VBOXOSTYPE_Turbolinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
206 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
207 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
208 { "Linux", "Linux", "Ubuntu", "Ubuntu",
209 VBOXOSTYPE_Ubuntu, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET,
210 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
211 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
212 { "Linux", "Linux", "Ubuntu_64", "Ubuntu (64 bit)",
213 VBOXOSTYPE_Ubuntu_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
214 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
215 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
216 { "Linux", "Linux", "Xandros", "Xandros",
217 VBOXOSTYPE_Xandros, VBOXOSHINT_RTCUTC,
218 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
219 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
220 { "Linux", "Linux", "Xandros_64", "Xandros (64 bit)",
221 VBOXOSTYPE_Xandros_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
222 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
223 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
224 { "Linux", "Linux", "Oracle", "Oracle",
225 VBOXOSTYPE_Oracle, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE,
226 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
227 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
228 { "Linux", "Linux", "Oracle_64", "Oracle (64 bit)",
229 VBOXOSTYPE_Oracle_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
230 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
231 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
232 { "Linux", "Linux", "Linux", "Other Linux",
233 VBOXOSTYPE_Linux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
234 256, 12, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
235 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
236 { "Linux", "Linux", "Linux_64", "Other Linux (64-bit)",
237 VBOXOSTYPE_Linux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
238 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
239 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
240 { "Solaris", "Solaris", "Solaris", "Oracle Solaris 10 5/09 and earlier",
241 VBOXOSTYPE_Solaris, VBOXOSHINT_NONE,
242 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
243 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
244 { "Solaris", "Solaris", "Solaris_64", "Oracle Solaris 10 5/09 and earlier (64 bit)",
245 VBOXOSTYPE_Solaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
246 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
247 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
248 { "Solaris", "Solaris", "OpenSolaris", "Oracle Solaris 10 10/09 and later",
249 VBOXOSTYPE_OpenSolaris, VBOXOSHINT_USBTABLET,
250 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
251 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
252 { "Solaris", "Solaris", "OpenSolaris_64", "Oracle Solaris 10 10/09 and later (64 bit)",
253 VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
254 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
255 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
256 { "Solaris", "Solaris", "Solaris11_64", "Oracle Solaris 11 (64 bit)",
257 VBOXOSTYPE_Solaris11_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
258 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
259 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
260 { "BSD", "BSD", "FreeBSD", "FreeBSD",
261 VBOXOSTYPE_FreeBSD, VBOXOSHINT_NONE,
262 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
263 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
264 { "BSD", "BSD", "FreeBSD_64", "FreeBSD (64 bit)",
265 VBOXOSTYPE_FreeBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
266 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
267 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
268 { "BSD", "BSD", "OpenBSD", "OpenBSD",
269 VBOXOSTYPE_OpenBSD, VBOXOSHINT_HWVIRTEX,
270 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
271 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
272 { "BSD", "BSD", "OpenBSD_64", "OpenBSD (64 bit)",
273 VBOXOSTYPE_OpenBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
274 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
275 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
276 { "BSD", "BSD", "NetBSD", "NetBSD",
277 VBOXOSTYPE_NetBSD, VBOXOSHINT_NONE,
278 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
279 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
280 { "BSD", "BSD", "NetBSD_64", "NetBSD (64 bit)",
281 VBOXOSTYPE_NetBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
282 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
283 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
284 { "OS2", "IBM OS/2", "OS2Warp3", "OS/2 Warp 3",
285 VBOXOSTYPE_OS2Warp3, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
286 48, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
287 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
288 { "OS2", "IBM OS/2", "OS2Warp4", "OS/2 Warp 4",
289 VBOXOSTYPE_OS2Warp4, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
290 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
291 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
292 { "OS2", "IBM OS/2", "OS2Warp45", "OS/2 Warp 4.5",
293 VBOXOSTYPE_OS2Warp45, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
294 128, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
295 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
296 { "OS2", "IBM OS/2", "OS2eCS", "eComStation",
297 VBOXOSTYPE_ECS, VBOXOSHINT_HWVIRTEX,
298 256, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
299 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
300 { "OS2", "IBM OS/2", "OS2", "Other OS/2",
301 VBOXOSTYPE_OS2, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
302 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
303 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
304 { "MacOS", "Mac OS X", "MacOS", "Mac OS X",
305 VBOXOSTYPE_MacOS, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET,
306 2048, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0,
307 StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA,
308 ChipsetType_ICH9, AudioControllerType_HDA },
309 { "MacOS", "Mac OS X", "MacOS_64", "Mac OS X (64 bit)",
310 VBOXOSTYPE_MacOS_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET,
311 2048, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0,
312 StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA,
313 ChipsetType_ICH9, AudioControllerType_HDA },
314 { "Other", "Other", "DOS", "DOS",
315 VBOXOSTYPE_DOS, VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
316 32, 4, 500 * _1M, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
317 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
318 { "Other", "Other", "Netware", "Netware",
319 VBOXOSTYPE_Netware, VBOXOSHINT_HWVIRTEX,
320 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
321 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
322 { "Other", "Other", "L4", "L4",
323 VBOXOSTYPE_L4, VBOXOSHINT_NONE,
324 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
325 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
326 { "Other", "Other", "QNX", "QNX",
327#ifdef VBOX_WITH_RAW_RING1
328 VBOXOSTYPE_QNX, VBOXOSHINT_NONE,
329#else
330 VBOXOSTYPE_QNX, VBOXOSHINT_HWVIRTEX,
331#endif
332 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
333 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
334 { "Other", "Other", "JRockitVE", "JRockitVE",
335 VBOXOSTYPE_JRockitVE, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE,
336 1024, 4, 8 * _1G64, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
337 StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97 },
338};
339
340uint32_t Global::cOSTypes = RT_ELEMENTS(Global::sOSTypes);
341
342/**
343 * Returns an OS Type ID for the given VBOXOSTYPE value.
344 *
345 * The returned ID will correspond to the IGuestOSType::id value of one of the
346 * objects stored in the IVirtualBox::guestOSTypes
347 * (VirtualBoxImpl::COMGETTER(GuestOSTypes)) collection.
348 */
349/* static */
350const char *Global::OSTypeId(VBOXOSTYPE aOSType)
351{
352 for (size_t i = 0; i < RT_ELEMENTS(sOSTypes); ++i)
353 {
354 if (sOSTypes[i].osType == aOSType)
355 return sOSTypes[i].id;
356 }
357
358 return sOSTypes[0].id;
359}
360
361/*static*/ uint32_t Global::getMaxNetworkAdapters(ChipsetType_T aChipsetType)
362{
363 switch (aChipsetType)
364 {
365 case ChipsetType_PIIX3:
366 return 8;
367 case ChipsetType_ICH9:
368 return 36;
369 default:
370 return 0;
371 }
372}
373
374/*static*/ const char *
375Global::stringifyMachineState(MachineState_T aState)
376{
377 switch (aState)
378 {
379 case MachineState_Null: return "Null";
380 case MachineState_PoweredOff: return "PoweredOff";
381 case MachineState_Saved: return "Saved";
382 case MachineState_Teleported: return "Teleported";
383 case MachineState_Aborted: return "Aborted";
384 case MachineState_Running: return "Running";
385 case MachineState_Paused: return "Paused";
386 case MachineState_Stuck: return "GuruMeditation";
387 case MachineState_Teleporting: return "Teleporting";
388 case MachineState_LiveSnapshotting: return "LiveSnapshotting";
389 case MachineState_Starting: return "Starting";
390 case MachineState_Stopping: return "Stopping";
391 case MachineState_Saving: return "Saving";
392 case MachineState_Restoring: return "Restoring";
393 case MachineState_TeleportingPausedVM: return "TeleportingPausedVM";
394 case MachineState_TeleportingIn: return "TeleportingIn";
395 case MachineState_FaultTolerantSyncing: return "FaultTolerantSyncing";
396 case MachineState_DeletingSnapshotOnline: return "DeletingSnapshotOnline";
397 case MachineState_DeletingSnapshotPaused: return "DeletingSnapshotPaused";
398 case MachineState_RestoringSnapshot: return "RestoringSnapshot";
399 case MachineState_DeletingSnapshot: return "DeletingSnapshot";
400 case MachineState_SettingUp: return "SettingUp";
401 default:
402 {
403 AssertMsgFailed(("%d (%#x)\n", aState, aState));
404 static char s_szMsg[48];
405 RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidState-0x%08x\n", aState);
406 return s_szMsg;
407 }
408 }
409}
410
411/*static*/ const char *
412Global::stringifySessionState(SessionState_T aState)
413{
414 switch (aState)
415 {
416 case SessionState_Null: return "Null";
417 case SessionState_Unlocked: return "Unlocked";
418 case SessionState_Locked: return "Locked";
419 case SessionState_Spawning: return "Spawning";
420 case SessionState_Unlocking: return "Unlocking";
421 default:
422 {
423 AssertMsgFailed(("%d (%#x)\n", aState, aState));
424 static char s_szMsg[48];
425 RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidState-0x%08x\n", aState);
426 return s_szMsg;
427 }
428 }
429}
430
431/*static*/ const char *
432Global::stringifyDeviceType(DeviceType_T aType)
433{
434 switch (aType)
435 {
436 case DeviceType_Null: return "Null";
437 case DeviceType_Floppy: return "Floppy";
438 case DeviceType_DVD: return "DVD";
439 case DeviceType_HardDisk: return "HardDisk";
440 case DeviceType_Network: return "Network";
441 case DeviceType_USB: return "USB";
442 case DeviceType_SharedFolder: return "ShardFolder";
443 default:
444 {
445 AssertMsgFailed(("%d (%#x)\n", aType, aType));
446 static char s_szMsg[48];
447 RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidType-0x%08x\n", aType);
448 return s_szMsg;
449 }
450 }
451}
452
453/*static*/ int
454Global::vboxStatusCodeFromCOM(HRESULT aComStatus)
455{
456 switch (aComStatus)
457 {
458 case S_OK: return VINF_SUCCESS;
459
460 /* Standard COM status codes. See also RTErrConvertFromDarwinCOM */
461 case E_UNEXPECTED: return VERR_COM_UNEXPECTED;
462 case E_NOTIMPL: return VERR_NOT_IMPLEMENTED;
463 case E_OUTOFMEMORY: return VERR_NO_MEMORY;
464 case E_INVALIDARG: return VERR_INVALID_PARAMETER;
465 case E_NOINTERFACE: return VERR_NOT_SUPPORTED;
466 case E_POINTER: return VERR_INVALID_POINTER;
467#ifdef E_HANDLE
468 case E_HANDLE: return VERR_INVALID_HANDLE;
469#endif
470 case E_ABORT: return VERR_CANCELLED;
471 case E_FAIL: return VERR_GENERAL_FAILURE;
472 case E_ACCESSDENIED: return VERR_ACCESS_DENIED;
473
474 /* VirtualBox status codes */
475 case VBOX_E_OBJECT_NOT_FOUND: return VERR_COM_OBJECT_NOT_FOUND;
476 case VBOX_E_INVALID_VM_STATE: return VERR_COM_INVALID_VM_STATE;
477 case VBOX_E_VM_ERROR: return VERR_COM_VM_ERROR;
478 case VBOX_E_FILE_ERROR: return VERR_COM_FILE_ERROR;
479 case VBOX_E_IPRT_ERROR: return VERR_COM_IPRT_ERROR;
480 case VBOX_E_PDM_ERROR: return VERR_COM_PDM_ERROR;
481 case VBOX_E_INVALID_OBJECT_STATE: return VERR_COM_INVALID_OBJECT_STATE;
482 case VBOX_E_HOST_ERROR: return VERR_COM_HOST_ERROR;
483 case VBOX_E_NOT_SUPPORTED: return VERR_COM_NOT_SUPPORTED;
484 case VBOX_E_XML_ERROR: return VERR_COM_XML_ERROR;
485 case VBOX_E_INVALID_SESSION_STATE: return VERR_COM_INVALID_SESSION_STATE;
486 case VBOX_E_OBJECT_IN_USE: return VERR_COM_OBJECT_IN_USE;
487
488 default:
489 if (SUCCEEDED(aComStatus))
490 return VINF_SUCCESS;
491 /** @todo Check for the win32 facility and use the
492 * RTErrConvertFromWin32 function on windows. */
493 return VERR_UNRESOLVED_ERROR;
494 }
495}
496
497
498/*static*/ HRESULT
499Global::vboxStatusCodeToCOM(int aVBoxStatus)
500{
501 switch (aVBoxStatus)
502 {
503 case VINF_SUCCESS: return S_OK;
504
505 /* Standard COM status codes. */
506 case VERR_COM_UNEXPECTED: return E_UNEXPECTED;
507 case VERR_NOT_IMPLEMENTED: return E_NOTIMPL;
508 case VERR_NO_MEMORY: return E_OUTOFMEMORY;
509 case VERR_INVALID_PARAMETER: return E_INVALIDARG;
510 case VERR_NOT_SUPPORTED: return E_NOINTERFACE;
511 case VERR_INVALID_POINTER: return E_POINTER;
512#ifdef E_HANDLE
513 case VERR_INVALID_HANDLE: return E_HANDLE;
514#endif
515 case VERR_CANCELLED: return E_ABORT;
516 case VERR_GENERAL_FAILURE: return E_FAIL;
517 case VERR_ACCESS_DENIED: return E_ACCESSDENIED;
518
519 /* VirtualBox COM status codes */
520 case VERR_COM_OBJECT_NOT_FOUND: return VBOX_E_OBJECT_NOT_FOUND;
521 case VERR_COM_INVALID_VM_STATE: return VBOX_E_INVALID_VM_STATE;
522 case VERR_COM_VM_ERROR: return VBOX_E_VM_ERROR;
523 case VERR_COM_FILE_ERROR: return VBOX_E_FILE_ERROR;
524 case VERR_COM_IPRT_ERROR: return VBOX_E_IPRT_ERROR;
525 case VERR_COM_PDM_ERROR: return VBOX_E_PDM_ERROR;
526 case VERR_COM_INVALID_OBJECT_STATE: return VBOX_E_INVALID_OBJECT_STATE;
527 case VERR_COM_HOST_ERROR: return VBOX_E_HOST_ERROR;
528 case VERR_COM_NOT_SUPPORTED: return VBOX_E_NOT_SUPPORTED;
529 case VERR_COM_XML_ERROR: return VBOX_E_XML_ERROR;
530 case VERR_COM_INVALID_SESSION_STATE: return VBOX_E_INVALID_SESSION_STATE;
531 case VERR_COM_OBJECT_IN_USE: return VBOX_E_OBJECT_IN_USE;
532
533 /* Other errors. */
534 case VERR_UNRESOLVED_ERROR: return E_FAIL;
535
536 default:
537 AssertMsgFailed(("%Rrc\n", aVBoxStatus));
538 if (RT_SUCCESS(aVBoxStatus))
539 return S_OK;
540
541 /* try categorize it */
542 if ( aVBoxStatus < 0
543 && ( aVBoxStatus > -1000
544 || (aVBoxStatus < -22000 && aVBoxStatus > -32766) )
545 )
546 return VBOX_E_IPRT_ERROR;
547 if ( aVBoxStatus < VERR_PDM_NO_SUCH_LUN / 100 * 10
548 && aVBoxStatus > VERR_PDM_NO_SUCH_LUN / 100 * 10 - 100)
549 return VBOX_E_PDM_ERROR;
550 if ( aVBoxStatus <= -1000
551 && aVBoxStatus > -5000 /* wrong, but so what... */)
552 return VBOX_E_VM_ERROR;
553
554 return E_FAIL;
555 }
556}
557
558/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

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