VirtualBox

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

Last change on this file since 60756 was 59621, checked in by vboxsync, 9 years ago

ApplianceImplImport.cpp,++: Pushed the IPRT VFS stuff futher down, only going to the VD I/O wrappers when start getting down into the media code during import. Reworked the OVA releated import code to skip files it doesn't care about (like message resource xml files which we don't implement) and not be picky about which order files the OVF, MF and CERT files come in (todo: make sure it isn't picky about the order of disks either). Read the manifest and certificate file during the read() method.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 47.5 KB
Line 
1/* $Id: Global.cpp 59621 2016-02-10 00:51:35Z 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-2015 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, AudioCodecType_STAC9700 },
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, AudioCodecType_STAC9700 },
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, AudioCodecType_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, AudioCodecType_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, AudioCodecType_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, AudioCodecType_STAC9700 },
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, AudioCodecType_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, AudioCodecType_STAC9700 },
64 { "Windows", "Microsoft Windows", "WindowsXP", "Windows XP (32-bit)",
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, AudioCodecType_STAC9700 },
68 { "Windows", "Microsoft Windows", "WindowsXP_64", "Windows XP (64-bit)",
69 VBOXOSTYPE_WinXP_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
70 512, 16, 10 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
71 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
72 { "Windows", "Microsoft Windows", "Windows2003", "Windows 2003 (32-bit)",
73 VBOXOSTYPE_Win2k3, VBOXOSHINT_USBTABLET,
74 512, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
75 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
76 { "Windows", "Microsoft Windows", "Windows2003_64", "Windows 2003 (64-bit)",
77 VBOXOSTYPE_Win2k3_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
78 512, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
79 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
80 { "Windows", "Microsoft Windows", "WindowsVista", "Windows Vista (32-bit)",
81 VBOXOSTYPE_WinVista, VBOXOSHINT_USBTABLET,
82 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
83 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
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_IntelAhci, StorageBus_SATA,
87 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
88 { "Windows", "Microsoft Windows", "Windows2008", "Windows 2008 (32-bit)",
89 VBOXOSTYPE_Win2k8, VBOXOSHINT_USBTABLET,
90 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
91 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
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_IntelAhci, StorageBus_SATA,
95 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
96 { "Windows", "Microsoft Windows", "Windows7", "Windows 7 (32-bit)",
97 VBOXOSTYPE_Win7, VBOXOSHINT_USBTABLET,
98 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
99 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
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_IntelAhci, StorageBus_SATA,
103 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
104 { "Windows", "Microsoft Windows", "Windows8", "Windows 8 (32-bit)",
105 VBOXOSTYPE_Win8, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
106 1024,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
107 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
108 { "Windows", "Microsoft Windows", "Windows8_64", "Windows 8 (64-bit)",
109 VBOXOSTYPE_Win8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
110 2048,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
111 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
112 { "Windows", "Microsoft Windows", "Windows81", "Windows 8.1 (32-bit)",
113 VBOXOSTYPE_Win81, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
114 1024,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
115 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
116 { "Windows", "Microsoft Windows", "Windows81_64", "Windows 8.1 (64-bit)",
117 VBOXOSTYPE_Win81_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
118 2048,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
119 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
120 { "Windows", "Microsoft Windows", "Windows2012_64", "Windows 2012 (64-bit)",
121 VBOXOSTYPE_Win2k12_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
122 2048,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
123 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
124 { "Windows", "Microsoft Windows", "Windows10", "Windows 10 (32-bit)",
125 VBOXOSTYPE_Win10, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
126 1024,128, 32 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
127 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
128 { "Windows", "Microsoft Windows", "Windows10_64", "Windows 10 (64-bit)",
129 VBOXOSTYPE_Win10_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
130 2048,128, 32 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
131 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221 },
132 { "Windows", "Microsoft Windows", "WindowsNT", "Other Windows (32-bit)",
133 VBOXOSTYPE_WinNT, VBOXOSHINT_NONE,
134 512, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
135 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
136 { "Windows", "Microsoft Windows", "WindowsNT_64", "Other Windows (64-bit)",
137 VBOXOSTYPE_WinNT_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
138 512, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
139 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
140 { "Linux", "Linux", "Linux22", "Linux 2.2",
141 VBOXOSTYPE_Linux22, VBOXOSHINT_RTCUTC,
142 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
143 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
144 { "Linux", "Linux", "Linux24", "Linux 2.4 (32-bit)",
145 VBOXOSTYPE_Linux24, VBOXOSHINT_RTCUTC,
146 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
147 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
148 { "Linux", "Linux", "Linux24_64", "Linux 2.4 (64-bit)",
149 VBOXOSTYPE_Linux24_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
150 128, 4, 4 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
151 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
152 { "Linux", "Linux", "Linux26", "Linux 2.6 / 3.x / 4.x (32-bit)",
153 VBOXOSTYPE_Linux26, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
154 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
155 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
156 { "Linux", "Linux", "Linux26_64", "Linux 2.6 / 3.x / 4.x (64-bit)",
157 VBOXOSTYPE_Linux26_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
158 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
159 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
160 { "Linux", "Linux", "ArchLinux", "Arch Linux (32-bit)",
161 VBOXOSTYPE_ArchLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
162 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
163 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
164 { "Linux", "Linux", "ArchLinux_64", "Arch Linux (64-bit)",
165 VBOXOSTYPE_ArchLinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
166 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
167 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
168 { "Linux", "Linux", "Debian", "Debian (32-bit)",
169 VBOXOSTYPE_Debian, 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, AudioCodecType_AD1980 },
172 { "Linux", "Linux", "Debian_64", "Debian (64-bit)",
173 VBOXOSTYPE_Debian_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, AudioCodecType_AD1980},
176 { "Linux", "Linux", "OpenSUSE", "openSUSE (32-bit)",
177 VBOXOSTYPE_OpenSUSE, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
178 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
179 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
180 { "Linux", "Linux", "OpenSUSE_64", "openSUSE (64-bit)",
181 VBOXOSTYPE_OpenSUSE_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
182 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
183 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
184 { "Linux", "Linux", "Fedora", "Fedora (32-bit)",
185 VBOXOSTYPE_FedoraCore, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
186 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
187 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
188 { "Linux", "Linux", "Fedora_64", "Fedora (64-bit)",
189 VBOXOSTYPE_FedoraCore_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
190 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
191 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
192 { "Linux", "Linux", "Gentoo", "Gentoo (32-bit)",
193 VBOXOSTYPE_Gentoo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
194 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
195 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
196 { "Linux", "Linux", "Gentoo_64", "Gentoo (64-bit)",
197 VBOXOSTYPE_Gentoo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
198 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
199 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
200 { "Linux", "Linux", "Mandriva", "Mandriva (32-bit)",
201 VBOXOSTYPE_Mandriva, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
202 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
203 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
204 { "Linux", "Linux", "Mandriva_64", "Mandriva (64-bit)",
205 VBOXOSTYPE_Mandriva_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
206 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
207 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
208 { "Linux", "Linux", "RedHat", "Red Hat (32-bit)",
209 VBOXOSTYPE_RedHat, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE,
210 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
211 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
212 { "Linux", "Linux", "RedHat_64", "Red Hat (64-bit)",
213 VBOXOSTYPE_RedHat_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
214 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
215 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
216 { "Linux", "Linux", "Turbolinux", "Turbolinux (32-bit)",
217 VBOXOSTYPE_Turbolinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
218 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
219 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
220 { "Linux", "Linux", "Turbolinux_64", "Turbolinux (64-bit)",
221 VBOXOSTYPE_Turbolinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
222 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
223 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
224 { "Linux", "Linux", "Ubuntu", "Ubuntu (32-bit)",
225 VBOXOSTYPE_Ubuntu, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET,
226 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
227 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
228 { "Linux", "Linux", "Ubuntu_64", "Ubuntu (64-bit)",
229 VBOXOSTYPE_Ubuntu_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
230 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
231 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
232 { "Linux", "Linux", "Xandros", "Xandros (32-bit)",
233 VBOXOSTYPE_Xandros, VBOXOSHINT_RTCUTC,
234 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
235 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
236 { "Linux", "Linux", "Xandros_64", "Xandros (64-bit)",
237 VBOXOSTYPE_Xandros_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
238 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
239 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
240 { "Linux", "Linux", "Oracle", "Oracle (32-bit)",
241 VBOXOSTYPE_Oracle, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE,
242 768, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
243 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
244 { "Linux", "Linux", "Oracle_64", "Oracle (64-bit)",
245 VBOXOSTYPE_Oracle_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
246 768, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
247 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
248 { "Linux", "Linux", "Linux", "Other Linux (32-bit)",
249 VBOXOSTYPE_Linux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
250 256, 12, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
251 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
252 { "Linux", "Linux", "Linux_64", "Other Linux (64-bit)",
253 VBOXOSTYPE_Linux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
254 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
255 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
256 { "Solaris", "Solaris", "Solaris", "Oracle Solaris 10 5/09 and earlier (32-bit)",
257 VBOXOSTYPE_Solaris, VBOXOSHINT_NONE,
258 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
259 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
260 { "Solaris", "Solaris", "Solaris_64", "Oracle Solaris 10 5/09 and earlier (64-bit)",
261 VBOXOSTYPE_Solaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
262 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
263 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
264 { "Solaris", "Solaris", "OpenSolaris", "Oracle Solaris 10 10/09 and later (32-bit)",
265 VBOXOSTYPE_OpenSolaris, VBOXOSHINT_USBTABLET,
266 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
267 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
268 { "Solaris", "Solaris", "OpenSolaris_64", "Oracle Solaris 10 10/09 and later (64-bit)",
269 VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
270 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
271 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
272 { "Solaris", "Solaris", "Solaris11_64", "Oracle Solaris 11 (64-bit)",
273 VBOXOSTYPE_Solaris11_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
274 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
275 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
276 { "BSD", "BSD", "FreeBSD", "FreeBSD (32-bit)",
277 VBOXOSTYPE_FreeBSD, VBOXOSHINT_NONE,
278 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
279 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
280 { "BSD", "BSD", "FreeBSD_64", "FreeBSD (64-bit)",
281 VBOXOSTYPE_FreeBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
282 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
283 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
284 { "BSD", "BSD", "OpenBSD", "OpenBSD (32-bit)",
285 VBOXOSTYPE_OpenBSD, VBOXOSHINT_HWVIRTEX,
286 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
287 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
288 { "BSD", "BSD", "OpenBSD_64", "OpenBSD (64-bit)",
289 VBOXOSTYPE_OpenBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
290 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
291 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
292 { "BSD", "BSD", "NetBSD", "NetBSD (32-bit)",
293 VBOXOSTYPE_NetBSD, VBOXOSHINT_RTCUTC,
294 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
295 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
296 { "BSD", "BSD", "NetBSD_64", "NetBSD (64-bit)",
297 VBOXOSTYPE_NetBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
298 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
299 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
300 { "OS2", "IBM OS/2", "OS2Warp3", "OS/2 Warp 3",
301 VBOXOSTYPE_OS2Warp3, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
302 48, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
303 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16 },
304 { "OS2", "IBM OS/2", "OS2Warp4", "OS/2 Warp 4",
305 VBOXOSTYPE_OS2Warp4, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
306 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
307 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16 },
308 { "OS2", "IBM OS/2", "OS2Warp45", "OS/2 Warp 4.5",
309 VBOXOSTYPE_OS2Warp45, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
310 128, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
311 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16 },
312 { "OS2", "IBM OS/2", "OS2eCS", "eComStation",
313 VBOXOSTYPE_ECS, VBOXOSHINT_HWVIRTEX,
314 256, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
315 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
316 { "OS2", "IBM OS/2", "OS21x", "OS/2 1.x",
317 VBOXOSTYPE_OS21x, VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB | VBOXOSHINT_TFRESET,
318 8, 4, 500 * _1M, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
319 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16 },
320 { "OS2", "IBM OS/2", "OS2", "Other OS/2",
321 VBOXOSTYPE_OS2, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
322 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
323 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16 },
324 { "MacOS", "Mac OS X", "MacOS", "Mac OS X (32-bit)",
325 VBOXOSTYPE_MacOS, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE
326 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
327 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
328 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
329 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
330 { "MacOS", "Mac OS X", "MacOS_64", "Mac OS X (64-bit)",
331 VBOXOSTYPE_MacOS_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT
332 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
333 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
334 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
335 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
336 { "MacOS", "Mac OS X", "MacOS106", "Mac OS X 10.6 Snow Leopard (32-bit)",
337 VBOXOSTYPE_MacOS106, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE
338 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
339 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
340 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
341 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
342 { "MacOS", "Mac OS X", "MacOS106_64", "Mac OS X 10.6 Snow Leopard (64-bit)",
343 VBOXOSTYPE_MacOS106_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT
344 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
345 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
346 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
347 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
348 { "MacOS", "Mac OS X", "MacOS107_64", "Mac OS X 10.7 Lion (64-bit)",
349 VBOXOSTYPE_MacOS107_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT
350 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
351 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
352 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
353 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
354 { "MacOS", "Mac OS X", "MacOS108_64", "Mac OS X 10.8 Mountain Lion (64-bit)", /* Aka "Mountain Kitten". */
355 VBOXOSTYPE_MacOS108_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT
356 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
357 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
358 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
359 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
360 { "MacOS", "Mac OS X", "MacOS109_64", "Mac OS X 10.9 Mavericks (64-bit)", /* Not to be confused with McCain. */
361 VBOXOSTYPE_MacOS109_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT
362 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
363 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
364 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
365 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
366 { "MacOS", "Mac OS X", "MacOS1010_64", "Mac OS X 10.10 Yosemite (64-bit)",
367 VBOXOSTYPE_MacOS1010_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT
368 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
369 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
370 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
371 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
372 { "MacOS", "Mac OS X", "MacOS1011_64", "Mac OS X 10.11 El Capitan (64-bit)",
373 VBOXOSTYPE_MacOS1011_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT
374 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
375 2048, 4, 20 * _1G64, NetworkAdapterType_I82545EM, 0,
376 StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
377 ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221 },
378 { "Other", "Other", "DOS", "DOS",
379 VBOXOSTYPE_DOS, VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
380 32, 4, 500 * _1M, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
381 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16 },
382 { "Other", "Other", "Netware", "Netware",
383 VBOXOSTYPE_Netware, VBOXOSHINT_HWVIRTEX,
384 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
385 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
386 { "Other", "Other", "L4", "L4",
387 VBOXOSTYPE_L4, VBOXOSHINT_NONE,
388 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
389 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
390 { "Other", "Other", "QNX", "QNX",
391#ifdef VBOX_WITH_RAW_RING1
392 VBOXOSTYPE_QNX, VBOXOSHINT_NONE,
393#else
394 VBOXOSTYPE_QNX, VBOXOSHINT_HWVIRTEX,
395#endif
396 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
397 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
398 { "Other", "Other", "JRockitVE", "JRockitVE",
399 VBOXOSTYPE_JRockitVE, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE,
400 1024, 4, 8 * _1G64, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
401 StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
402 { "Other", "Other", "VBoxBS_64", "VirtualBox Bootsector Test (64-bit)",
403 VBOXOSTYPE_VBoxBS_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE | VBOXOSHINT_64BIT,
404 128, 4, 0, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
405 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
406};
407
408uint32_t Global::cOSTypes = RT_ELEMENTS(Global::sOSTypes);
409
410/**
411 * Returns an OS Type ID for the given VBOXOSTYPE value.
412 *
413 * The returned ID will correspond to the IGuestOSType::id value of one of the
414 * objects stored in the IVirtualBox::guestOSTypes
415 * (VirtualBoxImpl::COMGETTER(GuestOSTypes)) collection.
416 */
417/* static */
418const char *Global::OSTypeId(VBOXOSTYPE aOSType)
419{
420 for (size_t i = 0; i < RT_ELEMENTS(sOSTypes); ++i)
421 {
422 if (sOSTypes[i].osType == aOSType)
423 return sOSTypes[i].id;
424 }
425
426 return sOSTypes[0].id;
427}
428
429/*static*/ uint32_t Global::getMaxNetworkAdapters(ChipsetType_T aChipsetType)
430{
431 switch (aChipsetType)
432 {
433 case ChipsetType_PIIX3:
434 return 8;
435 case ChipsetType_ICH9:
436 return 36;
437 default:
438 return 0;
439 }
440}
441
442/*static*/ const char *
443Global::stringifyMachineState(MachineState_T aState)
444{
445 switch (aState)
446 {
447 case MachineState_Null: return "Null";
448 case MachineState_PoweredOff: return "PoweredOff";
449 case MachineState_Saved: return "Saved";
450 case MachineState_Teleported: return "Teleported";
451 case MachineState_Aborted: return "Aborted";
452 case MachineState_Running: return "Running";
453 case MachineState_Paused: return "Paused";
454 case MachineState_Stuck: return "GuruMeditation";
455 case MachineState_Teleporting: return "Teleporting";
456 case MachineState_LiveSnapshotting: return "LiveSnapshotting";
457 case MachineState_Starting: return "Starting";
458 case MachineState_Stopping: return "Stopping";
459 case MachineState_Saving: return "Saving";
460 case MachineState_Restoring: return "Restoring";
461 case MachineState_TeleportingPausedVM: return "TeleportingPausedVM";
462 case MachineState_TeleportingIn: return "TeleportingIn";
463 case MachineState_FaultTolerantSyncing: return "FaultTolerantSyncing";
464 case MachineState_DeletingSnapshotOnline: return "DeletingSnapshotOnline";
465 case MachineState_DeletingSnapshotPaused: return "DeletingSnapshotPaused";
466 case MachineState_OnlineSnapshotting: return "OnlineSnapshotting";
467 case MachineState_RestoringSnapshot: return "RestoringSnapshot";
468 case MachineState_DeletingSnapshot: return "DeletingSnapshot";
469 case MachineState_SettingUp: return "SettingUp";
470 case MachineState_Snapshotting: return "Snapshotting";
471 default:
472 {
473 AssertMsgFailed(("%d (%#x)\n", aState, aState));
474 static char s_szMsg[48];
475 RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidState-0x%08x\n", aState);
476 return s_szMsg;
477 }
478 }
479}
480
481/*static*/ const char *
482Global::stringifySessionState(SessionState_T aState)
483{
484 switch (aState)
485 {
486 case SessionState_Null: return "Null";
487 case SessionState_Unlocked: return "Unlocked";
488 case SessionState_Locked: return "Locked";
489 case SessionState_Spawning: return "Spawning";
490 case SessionState_Unlocking: return "Unlocking";
491 default:
492 {
493 AssertMsgFailed(("%d (%#x)\n", aState, aState));
494 static char s_szMsg[48];
495 RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidState-0x%08x\n", aState);
496 return s_szMsg;
497 }
498 }
499}
500
501/*static*/ const char *
502Global::stringifyDeviceType(DeviceType_T aType)
503{
504 switch (aType)
505 {
506 case DeviceType_Null: return "Null";
507 case DeviceType_Floppy: return "Floppy";
508 case DeviceType_DVD: return "DVD";
509 case DeviceType_HardDisk: return "HardDisk";
510 case DeviceType_Network: return "Network";
511 case DeviceType_USB: return "USB";
512 case DeviceType_SharedFolder: return "ShardFolder";
513 default:
514 {
515 AssertMsgFailed(("%d (%#x)\n", aType, aType));
516 static char s_szMsg[48];
517 RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidType-0x%08x\n", aType);
518 return s_szMsg;
519 }
520 }
521}
522
523
524/*static*/ const char *
525Global::stringifyReason(Reason_T aReason)
526{
527 switch (aReason)
528 {
529 case Reason_Unspecified: return "unspecified";
530 case Reason_HostSuspend: return "host suspend";
531 case Reason_HostResume: return "host resume";
532 case Reason_HostBatteryLow: return "host battery low";
533 case Reason_Snapshot: return "snapshot";
534 default:
535 {
536 AssertMsgFailed(("%d (%#x)\n", aReason, aReason));
537 static char s_szMsg[48];
538 RTStrPrintf(s_szMsg, sizeof(s_szMsg), "invalid reason %#010x\n", aReason);
539 return s_szMsg;
540 }
541 }
542}
543
544/*static*/ int
545Global::vboxStatusCodeFromCOM(HRESULT aComStatus)
546{
547 switch (aComStatus)
548 {
549 case S_OK: return VINF_SUCCESS;
550
551 /* Standard COM status codes. See also RTErrConvertFromDarwinCOM */
552 case E_UNEXPECTED: return VERR_COM_UNEXPECTED;
553 case E_NOTIMPL: return VERR_NOT_IMPLEMENTED;
554 case E_OUTOFMEMORY: return VERR_NO_MEMORY;
555 case E_INVALIDARG: return VERR_INVALID_PARAMETER;
556 case E_NOINTERFACE: return VERR_NOT_SUPPORTED;
557 case E_POINTER: return VERR_INVALID_POINTER;
558#ifdef E_HANDLE
559 case E_HANDLE: return VERR_INVALID_HANDLE;
560#endif
561 case E_ABORT: return VERR_CANCELLED;
562 case E_FAIL: return VERR_GENERAL_FAILURE;
563 case E_ACCESSDENIED: return VERR_ACCESS_DENIED;
564
565 /* VirtualBox status codes */
566 case VBOX_E_OBJECT_NOT_FOUND: return VERR_COM_OBJECT_NOT_FOUND;
567 case VBOX_E_INVALID_VM_STATE: return VERR_COM_INVALID_VM_STATE;
568 case VBOX_E_VM_ERROR: return VERR_COM_VM_ERROR;
569 case VBOX_E_FILE_ERROR: return VERR_COM_FILE_ERROR;
570 case VBOX_E_IPRT_ERROR: return VERR_COM_IPRT_ERROR;
571 case VBOX_E_PDM_ERROR: return VERR_COM_PDM_ERROR;
572 case VBOX_E_INVALID_OBJECT_STATE: return VERR_COM_INVALID_OBJECT_STATE;
573 case VBOX_E_HOST_ERROR: return VERR_COM_HOST_ERROR;
574 case VBOX_E_NOT_SUPPORTED: return VERR_COM_NOT_SUPPORTED;
575 case VBOX_E_XML_ERROR: return VERR_COM_XML_ERROR;
576 case VBOX_E_INVALID_SESSION_STATE: return VERR_COM_INVALID_SESSION_STATE;
577 case VBOX_E_OBJECT_IN_USE: return VERR_COM_OBJECT_IN_USE;
578
579 default:
580 if (SUCCEEDED(aComStatus))
581 return VINF_SUCCESS;
582 /** @todo Check for the win32 facility and use the
583 * RTErrConvertFromWin32 function on windows. */
584 return VERR_UNRESOLVED_ERROR;
585 }
586}
587
588
589/*static*/ HRESULT
590Global::vboxStatusCodeToCOM(int aVBoxStatus)
591{
592 switch (aVBoxStatus)
593 {
594 case VINF_SUCCESS: return S_OK;
595
596 /* Standard COM status codes. */
597 case VERR_COM_UNEXPECTED: return E_UNEXPECTED;
598 case VERR_NOT_IMPLEMENTED: return E_NOTIMPL;
599 case VERR_NO_MEMORY: return E_OUTOFMEMORY;
600 case VERR_INVALID_PARAMETER: return E_INVALIDARG;
601 case VERR_NOT_SUPPORTED: return E_NOINTERFACE;
602 case VERR_INVALID_POINTER: return E_POINTER;
603#ifdef E_HANDLE
604 case VERR_INVALID_HANDLE: return E_HANDLE;
605#endif
606 case VERR_CANCELLED: return E_ABORT;
607 case VERR_GENERAL_FAILURE: return E_FAIL;
608 case VERR_ACCESS_DENIED: return E_ACCESSDENIED;
609
610 /* VirtualBox COM status codes */
611 case VERR_COM_OBJECT_NOT_FOUND: return VBOX_E_OBJECT_NOT_FOUND;
612 case VERR_COM_INVALID_VM_STATE: return VBOX_E_INVALID_VM_STATE;
613 case VERR_COM_VM_ERROR: return VBOX_E_VM_ERROR;
614 case VERR_COM_FILE_ERROR: return VBOX_E_FILE_ERROR;
615 case VERR_COM_IPRT_ERROR: return VBOX_E_IPRT_ERROR;
616 case VERR_COM_PDM_ERROR: return VBOX_E_PDM_ERROR;
617 case VERR_COM_INVALID_OBJECT_STATE: return VBOX_E_INVALID_OBJECT_STATE;
618 case VERR_COM_HOST_ERROR: return VBOX_E_HOST_ERROR;
619 case VERR_COM_NOT_SUPPORTED: return VBOX_E_NOT_SUPPORTED;
620 case VERR_COM_XML_ERROR: return VBOX_E_XML_ERROR;
621 case VERR_COM_INVALID_SESSION_STATE: return VBOX_E_INVALID_SESSION_STATE;
622 case VERR_COM_OBJECT_IN_USE: return VBOX_E_OBJECT_IN_USE;
623
624 /* Other errors. */
625 case VERR_UNRESOLVED_ERROR: return E_FAIL;
626 case VERR_NOT_EQUAL: return VBOX_E_FILE_ERROR;
627
628 default:
629 AssertMsgFailed(("%Rrc\n", aVBoxStatus));
630 if (RT_SUCCESS(aVBoxStatus))
631 return S_OK;
632
633 /* try categorize it */
634 if ( aVBoxStatus < 0
635 && ( aVBoxStatus > -1000
636 || (aVBoxStatus < -22000 && aVBoxStatus > -32766) )
637 )
638 return VBOX_E_IPRT_ERROR;
639 if ( aVBoxStatus < VERR_PDM_NO_SUCH_LUN / 100 * 10
640 && aVBoxStatus > VERR_PDM_NO_SUCH_LUN / 100 * 10 - 100)
641 return VBOX_E_PDM_ERROR;
642 if ( aVBoxStatus <= -1000
643 && aVBoxStatus > -5000 /* wrong, but so what... */)
644 return VBOX_E_VM_ERROR;
645
646 return E_FAIL;
647 }
648}
649
650/* 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