VirtualBox

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

Last change on this file since 101619 was 101593, checked in by vboxsync, 18 months ago

doc/manual,Frontends/VBoxManage,Main/{Global,GuestOSType,VirtualBox.xidl}:
Revisit the OS guest OS changes which added a new 'variant' field to the
Global::sOSTypes[] table along with a new VBoxManage subcommand and
IVirtualBox methods for accessing the guest OS variant information
(r159137). After discussion with the documentation team the identifier
'variant' is being changed to the clearer 'subtype' which also doesn't
overlap with the 'variant' terminology used with medium management
(IMedium::variant(), the MediumVariant enum, etc.). bugref:5936

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 72.0 KB
Line 
1/* $Id: Global.cpp 101593 2023-10-25 15:37:09Z 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-2023 Oracle and/or its affiliates.
10 *
11 * This file is part of VirtualBox base platform packages, as
12 * available from https://www.virtualbox.org.
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation, in version 3 of the
17 * License.
18 *
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, see <https://www.gnu.org/licenses>.
26 *
27 * SPDX-License-Identifier: GPL-3.0-only
28 */
29
30#include "Global.h"
31#include "StringifyEnums.h"
32
33#include <iprt/assert.h>
34#include <iprt/string.h>
35#include <iprt/errcore.h>
36
37#include "VBoxNls.h"
38
39DECLARE_TRANSLATION_CONTEXT(GlobalCtx);
40
41
42#define VBOX_OSTYPE_X86(a_OStype) VBOXOSTYPE_ ## a_OStype
43#define VBOX_OSTYPE_X64(a_OStype) VBOXOSTYPE_ ## a_OStype ## _x64
44#define VBOX_OSTYPE_ARM32(a_OStype) VBOXOSTYPE_ ## a_OStype ## _arm32
45#define VBOX_OSTYPE_ARM64(a_OStype) VBOXOSTYPE_ ## a_OStype ## _arm64
46
47/* static */
48const Global::OSType Global::sOSTypes[] =
49{
50 /* NOTE1: we assume that unknown is always the first two entries!
51 * NOTE2: please use powers of 2 when specifying the size of harddisks since
52 * '2GB' looks better than '1.95GB' (= 2000MB)
53 * NOTE3: if you add new guest OS types please check if the code in
54 * Machine::getEffectiveParavirtProvider and Console::i_configConstructorInner
55 * are still covering the relevant cases.
56 * NOTE4: platform support: always define all guest OS types w/o guarding new / different platform architectures
57 * with own #defines. If (and how) guest OS types will be reported is decided by the actual Main
58 * implementations(s).
59 */
60 { "Other", "Other", "", GUEST_OS_ID_STR_X86("Other"), "Other/Unknown",
61 VBOXOSTYPE_Unknown, VBOXOSHINT_NONE,
62 1, 64, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
63 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
64
65 { "Other", "Other", "", GUEST_OS_ID_STR_X64("Other"), "Other/Unknown (64-bit)",
66 VBOXOSTYPE_Unknown_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_PAE | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC,
67 1, 64, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
68 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
69
70 { "Other", "Other", "", GUEST_OS_ID_STR_A64("Other"), "Other/Unknown (ARM 64-bit)",
71 VBOXOSTYPE_Unknown_arm64, VBOXOSHINT_64BIT | VBOXOSHINT_EFI,
72 1, 1024, 128, 2 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI,
73 StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI, ChipsetType_ARMv8Virtual, IommuType_None, AudioControllerType_VirtioSound, AudioCodecType_Null },
74
75 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows31"), "Windows 3.1",
76 VBOXOSTYPE_Win31, VBOXOSHINT_FLOPPY,
77 1, 32, 4, 1 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
78 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
79
80 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows95"), "Windows 95",
81 VBOXOSTYPE_Win95, VBOXOSHINT_FLOPPY,
82 1, 64, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
83 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
84
85 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows98"), "Windows 98",
86 VBOXOSTYPE_Win98, VBOXOSHINT_FLOPPY,
87 1, 64, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
88 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
89
90 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("WindowsMe"), "Windows ME",
91 VBOXOSTYPE_WinMe, VBOXOSHINT_FLOPPY | VBOXOSHINT_USBTABLET,
92 1, 128, 4, 4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
93 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
94
95 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("WindowsNT3x"), "Windows NT 3.x",
96 VBOXOSTYPE_WinNT3x, VBOXOSHINT_NOUSB | VBOXOSHINT_FLOPPY,
97 1, 64, 8, _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_BusLogic, StorageBus_SCSI,
98 StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
99
100 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("WindowsNT4"), "Windows NT 4",
101 VBOXOSTYPE_WinNT4, VBOXOSHINT_NOUSB,
102 1, 128, 16, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
103 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
104
105 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows2000"), "Windows 2000",
106 VBOXOSTYPE_Win2k, VBOXOSHINT_USBTABLET,
107 1, 168, 16, 4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
108 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
109
110 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("WindowsXP"), "Windows XP (32-bit)",
111 VBOXOSTYPE_WinXP, VBOXOSHINT_USBTABLET,
112 1, 192, 16, 10 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82543GC, 0, StorageControllerType_PIIX4, StorageBus_IDE,
113 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
114
115 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("WindowsXP"), "Windows XP (64-bit)",
116 VBOXOSTYPE_WinXP_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET,
117 1, 512, 16, 10 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
118 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
119
120 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows2003"), "Windows 2003 (32-bit)",
121 VBOXOSTYPE_Win2k3, VBOXOSHINT_USBTABLET,
122 1, 512, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82543GC, 0, StorageControllerType_PIIX4, StorageBus_IDE,
123 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
124
125 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows2003"), "Windows 2003 (64-bit)",
126 VBOXOSTYPE_Win2k3_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET,
127 1, 512, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
128 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
129
130 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("WindowsVista"), "Windows Vista (32-bit)",
131 VBOXOSTYPE_WinVista, VBOXOSHINT_USBTABLET | VBOXOSHINT_WDDM_GRAPHICS,
132 1, 512, 16, 25 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
133 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
134
135 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("WindowsVista"), "Windows Vista (64-bit)",
136 VBOXOSTYPE_WinVista_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_WDDM_GRAPHICS,
137 1, 512, 16, 25 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
138 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
139
140 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows2008"), "Windows 2008 (32-bit)",
141 VBOXOSTYPE_Win2k8, VBOXOSHINT_USBTABLET | VBOXOSHINT_WDDM_GRAPHICS,
142 1, 1024, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
143 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
144
145 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows2008"), "Windows 2008 (64-bit)",
146 VBOXOSTYPE_Win2k8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_WDDM_GRAPHICS,
147 1, 2048, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
148 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
149
150 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows7"), "Windows 7 (32-bit)",
151 VBOXOSTYPE_Win7, VBOXOSHINT_USBTABLET | VBOXOSHINT_WDDM_GRAPHICS,
152 1, 1024, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
153 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
154
155 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows7"), "Windows 7 (64-bit)",
156 VBOXOSTYPE_Win7_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_WDDM_GRAPHICS,
157 1, 2048, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
158 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
159
160 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows8"), "Windows 8 (32-bit)",
161 VBOXOSTYPE_Win8, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X86_PAE | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
162 1, 1024, 128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
163 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
164
165 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows8"), "Windows 8 (64-bit)",
166 VBOXOSTYPE_Win8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
167 1, 2048, 128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
168 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
169
170 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows81"), "Windows 8.1 (32-bit)",
171 VBOXOSTYPE_Win81, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X86_PAE | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
172 1, 1024, 128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
173 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
174
175 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows81"), "Windows 8.1 (64-bit)",
176 VBOXOSTYPE_Win81_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
177 1, 2048, 128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
178 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
179
180 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows2012"), "Windows 2012 (64-bit)",
181 VBOXOSTYPE_Win2k12_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
182 1, 2048, 128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
183 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
184
185 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("Windows10"), "Windows 10 (32-bit)",
186 VBOXOSTYPE_Win10, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X86_PAE | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
187 1, 1024, 128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
188 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
189
190 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows10"), "Windows 10 (64-bit)",
191 VBOXOSTYPE_Win10_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
192 1, 2048, 128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
193 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
194
195 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows2016"), "Windows 2016 (64-bit)",
196 VBOXOSTYPE_Win2k16_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
197 1, 2048, 128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
198 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
199
200 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows2019"), "Windows 2019 (64-bit)",
201 VBOXOSTYPE_Win2k19_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
202 1, 2048, 128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
203 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
204
205 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows11"), "Windows 11 (64-bit)",
206 VBOXOSTYPE_Win11_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3 | VBOXOSHINT_EFI_SECUREBOOT | VBOXOSHINT_TPM2 | VBOXOSHINT_WDDM_GRAPHICS,
207 2, 4096, 128, 80 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
208 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
209
210 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("Windows2022"), "Windows 2022 (64-bit)",
211 VBOXOSTYPE_Win2k22_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3 | VBOXOSHINT_WDDM_GRAPHICS,
212 1, 2048, 128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
213 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
214
215 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X86("WindowsNT"), "Other Windows (32-bit)",
216 VBOXOSTYPE_WinNT, VBOXOSHINT_NONE,
217 1, 512, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
218 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
219
220 { "Windows", "Microsoft Windows", "", GUEST_OS_ID_STR_X64("WindowsNT"), "Other Windows (64-bit)",
221 VBOXOSTYPE_WinNT_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_PAE | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET,
222 1, 512, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
223 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
224
225#define VBOX_LINUX_OSHINTS_A_X86 (VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X86_X2APIC | VBOXOSHINT_X86_PAE)
226#define VBOX_LINUX_OSHINTS_A_X64 (VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X86_X2APIC | VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC)
227#define VBOX_LINUX_OSHINTS_A_ARM64 (VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USBHID | VBOXOSHINT_EFI | VBOXOSHINT_64BIT)
228
229#define VBOX_LINUX_OSHINTS_B_X86 (VBOXOSHINT_RTCUTC | VBOXOSHINT_X86_PAE | VBOXOSHINT_X86_X2APIC)
230#define VBOX_LINUX_OSHINTS_B_X64 (VBOXOSHINT_RTCUTC | VBOXOSHINT_X86_PAE | VBOXOSHINT_X86_X2APIC | VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC)
231#define VBOX_LINUX_OSHINTS_B_ARM64 (VBOXOSHINT_RTCUTC | VBOXOSHINT_X86_PAE | VBOXOSHINT_USBHID | VBOXOSHINT_X86_X2APIC | VBOXOSHINT_64BIT)
232
233#define VBOX_LINUX_OSHINTS_C_X86 (VBOXOSHINT_RTCUTC | VBOXOSHINT_X86_X2APIC | VBOXOSHINT_X86_PAE)
234#define VBOX_LINUX_OSHINTS_C_X64 (VBOXOSHINT_RTCUTC | VBOXOSHINT_X86_X2APIC | VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC)
235
236#define VBOX_LINUX_OSHINTS_D_X86 (VBOXOSHINT_RTCUTC | VBOXOSHINT_X86_PAE)
237#define VBOX_LINUX_OSHINTS_D_X64 (VBOXOSHINT_RTCUTC | VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC)
238
239#define VBOX_LINUX_SUBTYPE_TEMPLATE_X86(a_szSubtype, a_Id, a_Description, a_OStype, a_OSHint, a_Memory, a_Vram, a_Diskspace, \
240 a_NetworkAdapter, a_HDStorageController, a_HDStorageBusType) \
241 { "Linux", "Linux", a_szSubtype, GUEST_OS_ID_STR_X86(#a_Id), a_Description, VBOX_OSTYPE_X86(a_OStype), a_OSHint, \
242 1, a_Memory, a_Vram, a_Diskspace * _1G64, GraphicsControllerType_VMSVGA, a_NetworkAdapter, 0, StorageControllerType_PIIX4, StorageBus_IDE, \
243 a_HDStorageController, a_HDStorageBusType, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980 }
244
245#define VBOX_LINUX_SUBTYPE_TEMPLATE_X64(a_szSubtype, a_Id, a_Description, a_OStype, a_OSHint, a_Memory, a_Vram, a_Diskspace, \
246 a_NetworkAdapter, a_HDStorageController, a_HDStorageBusType) \
247 { "Linux", "Linux", a_szSubtype, GUEST_OS_ID_STR_X64(#a_Id), a_Description, VBOX_OSTYPE_X64(a_OStype), a_OSHint, \
248 1, a_Memory, a_Vram, a_Diskspace * _1G64, GraphicsControllerType_VMSVGA, a_NetworkAdapter, 0, StorageControllerType_PIIX4, StorageBus_IDE, \
249 a_HDStorageController, a_HDStorageBusType, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980 }
250
251#define VBOX_LINUX_SUBTYPE_TEMPLATE_A64(a_szSubtype, a_Id, a_Description, a_OStype, a_OSHint, a_Memory, a_Vram, a_Diskspace, \
252 a_NetworkAdapter, a_HDStorageController, a_HDStorageBusType) \
253 { "Linux", "Linux", a_szSubtype, GUEST_OS_ID_STR_A64(#a_Id), a_Description, VBOX_OSTYPE_ARM64(a_OStype), a_OSHint, \
254 1, a_Memory, a_Vram, a_Diskspace * _1G64, GraphicsControllerType_VMSVGA, a_NetworkAdapter, 0, StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI, \
255 a_HDStorageController, a_HDStorageBusType, ChipsetType_ARMv8Virtual, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 }
256
257#define VBOX_LINUX_SUBTYPE_TEMPLATE_ARM64(a_szSubtype, a_Id, a_Description, a_OStype, a_OSHint, a_Memory, a_Vram, a_Diskspace, \
258 a_NetworkAdapter, a_HDStorageController, a_HDStorageBusType) \
259 { "Linux", "Linux", a_szSubtype, GUEST_OS_ID_STR_A64(#a_Id), a_Description, VBOX_OSTYPE_ARM64(a_OStype), a_OSHint, \
260 1, a_Memory, a_Vram, a_Diskspace * _1G64, GraphicsControllerType_VMSVGA, a_NetworkAdapter, 0, StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI, \
261 a_HDStorageController, a_HDStorageBusType, ChipsetType_ARMv8Virtual, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 }
262
263/* Linux x86 32-bit sub-type template defaulting to 1 CPU with USB-tablet-mouse/VMSVGA/Intel-Pro1000/PIIX4+IDE DVD/AHCI+SATA disk/AC97 */
264#define VBOX_LINUX_SUBTYPE_A_X86(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
265 VBOX_LINUX_SUBTYPE_TEMPLATE_X86(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_A_X86, a_Memory, a_Vram, a_Diskspace, \
266 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
267
268/* Linux x86 64-bit sub-type template defaulting to 1 CPU with USB-tablet-mouse/VMSVGA/Intel-Pro1000/PIIX4+IDE DVD/AHCI+SATA disk/AC97 */
269#define VBOX_LINUX_SUBTYPE_A_X64(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
270 VBOX_LINUX_SUBTYPE_TEMPLATE_X64(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_A_X64, a_Memory, a_Vram, a_Diskspace, \
271 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
272
273#define VBOX_LINUX_SUBTYPE_A_A64(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
274 VBOX_LINUX_SUBTYPE_TEMPLATE_ARM64(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_A_ARM64, a_Memory, a_Vram, a_Diskspace, \
275 NetworkAdapterType_I82540EM, StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI)
276
277#define VBOX_LINUX_SUBTYPE_A_WITH_OSTYPE_X86(a_szSubtype, a_Id, a_Description, a_OStype, a_Memory, a_Vram, a_Diskspace) \
278 VBOX_LINUX_SUBTYPE_TEMPLATE_X86(a_szSubtype, a_Id, a_Description, a_OStype, VBOX_LINUX_OSHINTS_A_X86, a_Memory, a_Vram, a_Diskspace, \
279 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
280
281#define VBOX_LINUX_SUBTYPE_A_WITH_OSTYPE_X64(a_szSubtype, a_Id, a_Description, a_OStype, a_Memory, a_Vram, a_Diskspace) \
282 VBOX_LINUX_SUBTYPE_TEMPLATE_X64(a_szSubtype, a_Id, a_Description, a_OStype, VBOX_LINUX_OSHINTS_A_X64, a_Memory, a_Vram, a_Diskspace, \
283 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
284
285#define VBOX_LINUX_SUBTYPE_A_WITH_OSTYPE_A64(a_szSubtype, a_Id, a_Description, a_OStype, a_Memory, a_Vram, a_Diskspace) \
286 VBOX_LINUX_SUBTYPE_TEMPLATE_A64(a_szSubtype, a_Id, a_Description, a_OStype, VBOX_LINUX_OSHINTS_A_ARM64, a_Memory, a_Vram, a_Diskspace, \
287 NetworkAdapterType_I82540EM, StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI)
288
289/* Linux x86 32-bit sub-type template defaulting to 1 CPU with PS/2-mouse/PAE-NX/VMSVGA/Intel-Pro1000/PIIX4+IDE DVD/AHCI+SATA disk/AC97 */
290#define VBOX_LINUX_SUBTYPE_B_X86(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
291 VBOX_LINUX_SUBTYPE_TEMPLATE_X86(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_B_X86, a_Memory, a_Vram, a_Diskspace, \
292 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
293
294/* Linux 64-bit sub-type template defaulting to 1 CPU with PS/2-mouse/PAE-NX/VMSVGA/Intel-Pro1000/PIIX4+IDE DVD/AHCI+SATA disk/AC97 */
295#define VBOX_LINUX_SUBTYPE_B_X64(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
296 VBOX_LINUX_SUBTYPE_TEMPLATE_X64(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_B_X64, a_Memory, a_Vram, a_Diskspace, \
297 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
298
299#define VBOX_LINUX_SUBTYPE_B_A64(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
300 VBOX_LINUX_SUBTYPE_TEMPLATE_ARM64(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_B_ARM64, a_Memory, a_Vram, a_Diskspace, \
301 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
302
303/* Linux 32-bit sub-type template defaulting to 1 CPU with PS/2-mouse/VMSVGA/Intel-Pro1000/PIIX4+IDE DVD/AHCI+SATA disk/AC97 */
304#define VBOX_LINUX_SUBTYPE_C_X86(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
305 VBOX_LINUX_SUBTYPE_TEMPLATE_X86(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_C_X86, a_Memory, a_Vram, a_Diskspace, \
306 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
307
308/* Linux 64-bit sub-type template defaulting to 1 CPU with PS/2-mouse/VMSVGA/Intel-Pro1000/PIIX4+IDE DVD/AHCI+SATA disk/AC97 */
309#define VBOX_LINUX_SUBTYPE_C_X64(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
310 VBOX_LINUX_SUBTYPE_TEMPLATE_X64(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_C_X64, a_Memory, a_Vram, a_Diskspace, \
311 NetworkAdapterType_I82540EM, StorageControllerType_IntelAhci, StorageBus_SATA)
312
313/* Linux 32-bit sub-type template defaulting to 1 CPU with PS/2-mouse/VMSVGA/PCnet-FASTIII/PIIX4+IDE DVD/PIIX4+IDE disk/AC97 */
314#define VBOX_LINUX_SUBTYPE_D_X86(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
315 VBOX_LINUX_SUBTYPE_TEMPLATE_X86(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_D_X86, a_Memory, a_Vram, a_Diskspace, \
316 NetworkAdapterType_Am79C973, StorageControllerType_PIIX4, StorageBus_IDE)
317
318/* Linux 64-bit sub-type template defaulting to 1 CPU with PS/2-mouse/VMSVGA/PCnet-FASTIII/PIIX4+IDE DVD/PIIX4+IDE disk/AC97 */
319#define VBOX_LINUX_SUBTYPE_D_X64(a_szSubtype, a_Id, a_Description, a_Memory, a_Vram, a_Diskspace) \
320 VBOX_LINUX_SUBTYPE_TEMPLATE_X64(a_szSubtype, a_Id, a_Description, a_Id, VBOX_LINUX_OSHINTS_D_X64, a_Memory, a_Vram, a_Diskspace, \
321 NetworkAdapterType_I82540EM, StorageControllerType_PIIX4, StorageBus_IDE)
322
323 VBOX_LINUX_SUBTYPE_D_X86("Linux 2.2", Linux22, "Linux 2.2 (32-bit)", 64, 4, 2),
324 VBOX_LINUX_SUBTYPE_D_X86("Linux 2.4", Linux24, "Linux 2.4 (32-bit)", 128, 16, 2),
325 VBOX_LINUX_SUBTYPE_D_X64("Linux 2.4", Linux24, "Linux 2.4 (64-bit)", 1024, 16, 4),
326 VBOX_LINUX_SUBTYPE_A_X86("Linux 2.6", Linux26, "Linux 2.6 / 3.x / 4.x / 5.x (32-bit)", 1024, 16, 8),
327 VBOX_LINUX_SUBTYPE_A_X64("Linux 2.6", Linux26, "Linux 2.6 / 3.x / 4.x / 5.x (64-bit)", 1024, 16, 8),
328
329 VBOX_LINUX_SUBTYPE_A_X86("ArchLinux", ArchLinux, "Arch Linux (32-bit)", 1024, 16, 8),
330 VBOX_LINUX_SUBTYPE_A_X64("ArchLinux", ArchLinux, "Arch Linux (64-bit)", 1024, 16, 8),
331 VBOX_LINUX_SUBTYPE_A_A64("ArchLinux", ArchLinux, "Arch Linux (ARM 64-bit)", 1024, 128, 8),
332
333 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian, "Debian (32-bit)", 2048, 16, 20),
334 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian, "Debian (64-bit)", 2048, 16, 20),
335 VBOX_LINUX_SUBTYPE_A_A64("Debian", Debian, "Debian (ARM 64-bit)", 2048, 128, 20),
336 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian31, "Debian 3.1 Sarge (32-bit)", 1024, 16, 8), // 32-bit only
337 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian4, "Debian 4.0 Etch (32-bit)", 1024, 16, 8),
338 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian4, "Debian 4.0 Etch (64-bit)", 1024, 16, 8),
339 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian5, "Debian 5.0 Lenny (32-bit)", 1024, 16, 8),
340 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian5, "Debian 5.0 Lenny (64-bit)", 1024, 16, 8),
341 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian6, "Debian 6.0 Squeeze (32-bit)", 1024, 16, 8),
342 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian6, "Debian 6.0 Squeeze (64-bit)", 1024, 16, 8),
343 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian7, "Debian 7 Wheezy (32-bit)", 2048, 16, 20),
344 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian7, "Debian 7 Wheezy (64-bit)", 2048, 16, 20),
345 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian8, "Debian 8 Jessie (32-bit)", 2048, 16, 20),
346 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian8, "Debian 8 Jessie (64-bit)", 2048, 16, 20),
347 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian9, "Debian 9 Stretch (32-bit)", 2048, 16, 20),
348 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian9, "Debian 9 Stretch (64-bit)", 2048, 16, 20),
349 VBOX_LINUX_SUBTYPE_A_A64("Debian", Debian9, "Debian 9 Stretch (ARM 64-bit)", 2048, 16, 20),
350 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian10, "Debian 10 Buster (32-bit)", 2048, 16, 20),
351 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian10, "Debian 10 Buster (64-bit)", 2048, 16, 20),
352 VBOX_LINUX_SUBTYPE_A_A64("Debian", Debian10, "Debian 10 Buster (ARM 64-bit)", 2048, 16, 20),
353 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian11, "Debian 11 Bullseye (32-bit)", 2048, 16, 20),
354 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian11, "Debian 11 Bullseye (64-bit)", 2048, 16, 20),
355 VBOX_LINUX_SUBTYPE_A_A64("Debian", Debian11, "Debian 11 Bullseye (ARM 64-bit)", 2048, 16, 20),
356 VBOX_LINUX_SUBTYPE_A_X86("Debian", Debian12, "Debian 12 Bookworm (32-bit)", 2048, 16, 20),
357 VBOX_LINUX_SUBTYPE_A_X64("Debian", Debian12, "Debian 12 Bookworm (64-bit)", 2048, 16, 20),
358 VBOX_LINUX_SUBTYPE_A_A64("Debian", Debian12, "Debian 12 Bookworm (ARM 64-bit)", 2048, 16, 20),
359
360 /** @todo rename VBOXOSTYPE entries to Fedora to avoid this? */
361 VBOX_LINUX_SUBTYPE_A_WITH_OSTYPE_X86("Fedora", Fedora, "Fedora (32-bit)", FedoraCore, 2048, 16, 15),
362 VBOX_LINUX_SUBTYPE_A_WITH_OSTYPE_X64("Fedora", Fedora, "Fedora (64-bit)", FedoraCore, 2048, 16, 15),
363 VBOX_LINUX_SUBTYPE_A_WITH_OSTYPE_A64("Fedora", Fedora, "Fedora (ARM 64-bit)", FedoraCore, 2048, 16, 15),
364
365 VBOX_LINUX_SUBTYPE_A_X86("Gentoo", Gentoo, "Gentoo (32-bit)", 1024, 16, 8),
366 VBOX_LINUX_SUBTYPE_A_X64("Gentoo", Gentoo, "Gentoo (64-bit)", 1024, 16, 8),
367
368 VBOX_LINUX_SUBTYPE_A_X86("Mandriva", Mandriva, "Mandriva (32-bit)", 1024, 16, 8),
369 VBOX_LINUX_SUBTYPE_A_X64("Mandriva", Mandriva, "Mandriva (64-bit)", 1024, 16, 8),
370 VBOX_LINUX_SUBTYPE_A_X86("Mandriva", OpenMandriva_Lx, "OpenMandriva Lx (32-bit)", 2048, 16, 10),
371 VBOX_LINUX_SUBTYPE_A_X64("Mandriva", OpenMandriva_Lx, "OpenMandriva Lx (64-bit)", 2048, 16, 10),
372 VBOX_LINUX_SUBTYPE_A_X86("PCLinuxOS", PCLinuxOS, "PCLinuxOS / PCLOS (32-bit)", 2048, 16, 10),
373 VBOX_LINUX_SUBTYPE_A_X64("PCLinuxOS", PCLinuxOS, "PCLinuxOS / PCLOS (64-bit)", 2048, 16, 10),
374 VBOX_LINUX_SUBTYPE_A_X86("Mageia", Mageia, "Mageia (32-bit)", 2048, 16, 10),
375 VBOX_LINUX_SUBTYPE_A_X64("Mageia", Mageia, "Mageia (64-bit)", 2048, 16, 10),
376
377 VBOX_LINUX_SUBTYPE_B_X86("Oracle Linux", Oracle, "Oracle Linux (32-bit)", 2048, 16, 20),
378 VBOX_LINUX_SUBTYPE_B_X64("Oracle Linux", Oracle, "Oracle Linux (64-bit)", 2048, 16, 20),
379 VBOX_LINUX_SUBTYPE_B_A64("Oracle Linux", Oracle, "Oracle Linux (ARM 64-bit)", 2048, 16, 20),
380 VBOX_LINUX_SUBTYPE_B_X86("Oracle Linux", Oracle4, "Oracle Linux 4.x (32-bit)", 1024, 16, 8),
381 VBOX_LINUX_SUBTYPE_B_X64("Oracle Linux", Oracle4, "Oracle Linux 4.x (64-bit)", 1024, 16, 8),
382 VBOX_LINUX_SUBTYPE_B_X86("Oracle Linux", Oracle5, "Oracle Linux 5.x (32-bit)", 1024, 16, 8),
383 VBOX_LINUX_SUBTYPE_B_X64("Oracle Linux", Oracle5, "Oracle Linux 5.x (64-bit)", 1024, 16, 8),
384 VBOX_LINUX_SUBTYPE_B_X86("Oracle Linux", Oracle6, "Oracle Linux 6.x (32-bit)", 2048, 16, 10),
385 VBOX_LINUX_SUBTYPE_B_X64("Oracle Linux", Oracle6, "Oracle Linux 6.x (64-bit)", 2048, 16, 10),
386 VBOX_LINUX_SUBTYPE_B_X64("Oracle Linux", Oracle7, "Oracle Linux 7.x (64-bit)", 2048, 16, 20), // 64-bit only
387 VBOX_LINUX_SUBTYPE_B_X64("Oracle Linux", Oracle8, "Oracle Linux 8.x (64-bit)", 2048, 16, 20), // 64-bit only
388 VBOX_LINUX_SUBTYPE_B_X64("Oracle Linux", Oracle9, "Oracle Linux 9.x (64-bit)", 2048, 16, 20), // 64-bit only
389 VBOX_LINUX_SUBTYPE_B_A64("Oracle Linux", Oracle9, "Oracle Linux 9.x (ARM 64-bit)", 2048, 16, 20), // 64-bit only
390
391 VBOX_LINUX_SUBTYPE_B_X86("Red Hat", RedHat, "Red Hat (32-bit)", 2048, 16, 20),
392 VBOX_LINUX_SUBTYPE_B_X64("Red Hat", RedHat, "Red Hat (64-bit)", 2048, 16, 20),
393 VBOX_LINUX_SUBTYPE_B_X86("Red Hat", RedHat3, "Red Hat 3.x (32-bit)", 1024, 16, 8),
394 VBOX_LINUX_SUBTYPE_B_X64("Red Hat", RedHat3, "Red Hat 3.x (64-bit)", 1024, 16, 8),
395 VBOX_LINUX_SUBTYPE_B_X86("Red Hat", RedHat4, "Red Hat 4.x (32-bit)", 1024, 16, 8),
396 VBOX_LINUX_SUBTYPE_B_X64("Red Hat", RedHat4, "Red Hat 4.x (64-bit)", 1024, 16, 8),
397 VBOX_LINUX_SUBTYPE_B_X86("Red Hat", RedHat5, "Red Hat 5.x (32-bit)", 1024, 16, 8),
398 VBOX_LINUX_SUBTYPE_B_X64("Red Hat", RedHat5, "Red Hat 5.x (64-bit)", 1024, 16, 8),
399 VBOX_LINUX_SUBTYPE_B_X86("Red Hat", RedHat6, "Red Hat 6.x (32-bit)", 1024, 16, 10),
400 VBOX_LINUX_SUBTYPE_B_X64("Red Hat", RedHat6, "Red Hat 6.x (64-bit)", 1024, 16, 10),
401 VBOX_LINUX_SUBTYPE_B_X64("Red Hat", RedHat7, "Red Hat 7.x (64-bit)", 2048, 16, 20), // 64-bit only
402 VBOX_LINUX_SUBTYPE_B_X64("Red Hat", RedHat8, "Red Hat 8.x (64-bit)", 2048, 16, 20), // 64-bit only
403 VBOX_LINUX_SUBTYPE_B_X64("Red Hat", RedHat9, "Red Hat 9.x (64-bit)", 2048, 16, 20), // 64-bit only
404
405 VBOX_LINUX_SUBTYPE_A_X86("openSUSE", OpenSUSE, "openSUSE (32-bit)", 1024, 16, 8),
406 VBOX_LINUX_SUBTYPE_A_X64("openSUSE", OpenSUSE, "openSUSE (64-bit)", 1024, 16, 8),
407 VBOX_LINUX_SUBTYPE_A_X64("openSUSE", OpenSUSE_Leap, "openSUSE Leap (64-bit)", 2048, 16, 8), // 64-bit only
408 VBOX_LINUX_SUBTYPE_A_A64("openSUSE", OpenSUSE_Leap, "openSUSE Leap (ARM 64-bit)", 2048, 16, 8), // 64-bit only
409 VBOX_LINUX_SUBTYPE_A_X86("openSUSE", OpenSUSE_Tumbleweed, "openSUSE Tumbleweed (32-bit)", 2048, 16, 8),
410 VBOX_LINUX_SUBTYPE_A_X64("openSUSE", OpenSUSE_Tumbleweed, "openSUSE Tumbleweed (64-bit)", 2048, 16, 8),
411 VBOX_LINUX_SUBTYPE_A_A64("openSUSE", OpenSUSE_Tumbleweed, "openSUSE Tumbleweed (ARM 64-bit)", 2048, 16, 8),
412 VBOX_LINUX_SUBTYPE_A_X86("SUSE", SUSE_LE, "SUSE Linux Enterprise (32-bit)", 2048, 16, 8),
413 VBOX_LINUX_SUBTYPE_A_X64("SUSE", SUSE_LE, "SUSE Linux Enterprise (64-bit)", 2048, 16, 8),
414
415 VBOX_LINUX_SUBTYPE_A_X86("TurboLinux", Turbolinux, "Turbolinux (32-bit)", 384, 16, 8),
416 VBOX_LINUX_SUBTYPE_A_X64("TurboLinux", Turbolinux, "Turbolinux (64-bit)", 384, 16, 8),
417
418 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu, "Ubuntu (32-bit)", 2048, 16, 25),
419 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu, "Ubuntu (64-bit)", 2048, 16, 25),
420 VBOX_LINUX_SUBTYPE_A_A64("Ubuntu", Ubuntu, "Ubuntu (ARM 64-bit)", 2048, 16, 25),
421 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu10_LTS, "Ubuntu 10.04 LTS (Lucid Lynx) (32-bit)", 256, 16, 3),
422 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu10_LTS, "Ubuntu 10.04 LTS (Lucid Lynx) (64-bit)", 256, 16, 3),
423 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu10, "Ubuntu 10.10 (Maverick Meerkat) (32-bit)", 256, 16, 3),
424 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu10, "Ubuntu 10.10 (Maverick Meerkat) (64-bit)", 256, 16, 3),
425 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu11, "Ubuntu 11.04 (Natty Narwhal) / 11.10 (Oneiric Ocelot) (32-bit)", 384, 16, 5),
426 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu11, "Ubuntu 11.04 (Natty Narwhal) / 11.10 (Oneiric Ocelot) (64-bit)", 384, 16, 5),
427 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu12_LTS, "Ubuntu 12.04 LTS (Precise Pangolin) (32-bit)", 768, 16, 5),
428 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu12_LTS, "Ubuntu 12.04 LTS (Precise Pangolin) (64-bit)", 768, 16, 5),
429 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu12, "Ubuntu 12.10 (Quantal Quetzal) (32-bit)", 768, 16, 5),
430 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu12, "Ubuntu 12.10 (Quantal Quetzal) (64-bit)", 768, 16, 5),
431 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu13, "Ubuntu 13.04 (Raring Ringtail) / 13.10 (Saucy Salamander) (32-bit)", 768, 16, 5),
432 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu13, "Ubuntu 13.04 (Raring Ringtail) / 13.10 (Saucy Salamander) (64-bit)", 768, 16, 5),
433 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu14_LTS, "Ubuntu 14.04 LTS (Trusty Tahr) (32-bit)", 1536, 16, 7),
434 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu14_LTS, "Ubuntu 14.04 LTS (Trusty Tahr) (64-bit)", 1536, 16, 7),
435 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu14, "Ubuntu 14.10 (Utopic Unicorn) (32-bit)", 1536, 16, 7),
436 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu14, "Ubuntu 14.10 (Utopic Unicorn) (64-bit)", 1536, 16, 7),
437 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu15, "Ubuntu 15.04 (Vivid Vervet) / 15.10 (Wily Werewolf) (32-bit)", 1536, 16, 7),
438 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu15, "Ubuntu 15.04 (Vivid Vervet) / 15.10 (Wily Werewolf) (64-bit)", 1536, 16, 7),
439 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu16_LTS, "Ubuntu 16.04 LTS (Xenial Xerus) (32-bit)", 1536, 16, 10),
440 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu16_LTS, "Ubuntu 16.04 LTS (Xenial Xerus) (64-bit)", 1536, 16, 10),
441 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu16, "Ubuntu 16.10 (Yakkety Yak) (32-bit)", 1536, 16, 10),
442 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu16, "Ubuntu 16.10 (Yakkety Yak) (64-bit)", 1536, 16, 10),
443 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu17, "Ubuntu 17.04 (Zesty Zapus) / 17.10 (Artful Aardvark) (32-bit)", 1536, 16, 10),
444 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu17, "Ubuntu 17.04 (Zesty Zapus) / 17.10 (Artful Aardvark) (64-bit)", 1536, 16, 10),
445 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu18_LTS, "Ubuntu 18.04 LTS (Bionic Beaver) (32-bit)", 2048, 16, 25),
446 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu18_LTS, "Ubuntu 18.04 LTS (Bionic Beaver) (64-bit)", 2048, 16, 25),
447 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu18, "Ubuntu 18.10 (Cosmic Cuttlefish) (32-bit)", 2048, 16, 25),
448 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu18, "Ubuntu 18.10 (Cosmic Cuttlefish) (64-bit)", 2048, 16, 25),
449 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Ubuntu19, "Ubuntu 19.04 (Disco Dingo) / 19.10 (Eoan Ermine) (32-bit)", 2048, 16, 25),
450 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu19, "Ubuntu 19.04 (Disco Dingo) / 19.10 (Eoan Ermine) (64-bit)", 2048, 16, 25),
451 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu20_LTS, "Ubuntu 20.04 LTS (Focal Fossa) (64-bit)", 2048, 16, 25), // 64-bit only
452 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu20, "Ubuntu 20.10 (Groovy Gorilla) (64-bit)", 2048, 16, 25), // 64-bit only
453 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu21, "Ubuntu 21.04 (Hirsute Hippo) / 21.10 (Impish Indri) (64-bit)", 2048, 16, 25), // 64-bit only
454 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu22_LTS, "Ubuntu 22.04 LTS (Jammy Jellyfish) (64-bit)", 2048, 16, 25), // 64-bit only
455 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu22, "Ubuntu 22.10 (Kinetic Kudu) (64-bit)", 2048, 16, 25), // 64-bit only
456 VBOX_LINUX_SUBTYPE_A_A64("Ubuntu", Ubuntu22, "Ubuntu 22.10 (Kinetic Kudu) (ARM 64-bit)", 2048, 16, 25),
457 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Ubuntu23, "Ubuntu 23.04 (Lunar Lobster) (64-bit)", 2048, 16, 25), // 64-bit only
458 VBOX_LINUX_SUBTYPE_A_A64("Ubuntu", Ubuntu23, "Ubuntu 23.04 (Lunar Lobster) (ARM 64-bit)", 2048, 16, 25),
459 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Lubuntu, "Lubuntu (32-bit)", 1024, 16, 10),
460 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Lubuntu, "Lubuntu (64-bit)", 1024, 16, 10),
461 VBOX_LINUX_SUBTYPE_A_X86("Ubuntu", Xubuntu, "Xubuntu (32-bit)", 1024, 16, 10),
462 VBOX_LINUX_SUBTYPE_A_X64("Ubuntu", Xubuntu, "Xubuntu (64-bit)", 1024, 16, 10),
463
464 VBOX_LINUX_SUBTYPE_C_X86("Xandros", Xandros, "Xandros (32-bit)", 1024, 16, 8),
465 VBOX_LINUX_SUBTYPE_C_X64("Xandros", Xandros, "Xandros (64-bit)", 1024, 16, 8),
466
467 VBOX_LINUX_SUBTYPE_A_X86("Other Linux", Linux, "Other Linux (32-bit)", 256, 16, 8),
468 VBOX_LINUX_SUBTYPE_B_X64("Other Linux", Linux, "Other Linux (64-bit)", 512, 16, 8),
469
470 { "Solaris", "Solaris", "", GUEST_OS_ID_STR_X86("Solaris"), "Oracle Solaris 10 5/09 and earlier (32-bit)",
471 VBOXOSTYPE_Solaris, VBOXOSHINT_NONE,
472 1, 1024, 16, 32 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
473 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
474
475 { "Solaris", "Solaris", "", GUEST_OS_ID_STR_X64("Solaris"), "Oracle Solaris 10 5/09 and earlier (64-bit)",
476 VBOXOSTYPE_Solaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC,
477 1, 2048, 16, 32 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
478 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
479
480 { "Solaris", "Solaris", "", GUEST_OS_ID_STR_X86("Solaris10U8_or_later"), "Oracle Solaris 10 10/09 and later (32-bit)",
481 VBOXOSTYPE_Solaris10U8_or_later, VBOXOSHINT_USBTABLET,
482 1, 1024, 16, 32 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
483 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
484
485 { "Solaris", "Solaris", "", GUEST_OS_ID_STR_X64("Solaris10U8_or_later"), "Oracle Solaris 10 10/09 and later (64-bit)",
486 VBOXOSTYPE_Solaris10U8_or_later_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET,
487 1, 2048, 16, 32 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
488 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
489
490 { "Solaris", "Solaris", "", GUEST_OS_ID_STR_X64("Solaris11"), "Oracle Solaris 11 (64-bit)",
491 VBOXOSTYPE_Solaris11_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_RTCUTC,
492 1, 4096, 16, 32 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
493 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
494
495 { "Solaris", "Solaris", "", GUEST_OS_ID_STR_X86("OpenSolaris"), "OpenSolaris / Illumos / OpenIndiana (32-bit)",
496 VBOXOSTYPE_OpenSolaris, VBOXOSHINT_USBTABLET,
497 1, 1024, 16, 32 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
498 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
499
500 { "Solaris", "Solaris", "", GUEST_OS_ID_STR_X64("OpenSolaris"), "OpenSolaris / Illumos / OpenIndiana (64-bit)",
501 VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_USBTABLET,
502 1, 2048, 16, 32 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
503 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
504
505 { "BSD", "BSD", "FreeBSD", GUEST_OS_ID_STR_X86("FreeBSD"), "FreeBSD (32-bit)",
506 VBOXOSTYPE_FreeBSD, VBOXOSHINT_NONE,
507 1, 1024, 16, 2 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
508 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
509
510 { "BSD", "BSD", "FreeBSD", GUEST_OS_ID_STR_X64("FreeBSD"), "FreeBSD (64-bit)",
511 VBOXOSTYPE_FreeBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC,
512 1, 1024, 16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
513 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
514
515 { "BSD", "BSD", "FreeBSD", GUEST_OS_ID_STR_A64("FreeBSD"), "FreeBSD (ARM 64-bit)",
516 VBOXOSTYPE_FreeBSD_arm64, VBOXOSHINT_64BIT | VBOXOSHINT_USBHID,
517 1, 1024, 16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI,
518 StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI, ChipsetType_ARMv8Virtual, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
519
520 { "BSD", "BSD", "OpenBSD", GUEST_OS_ID_STR_X86("OpenBSD"), "OpenBSD (32-bit)",
521 VBOXOSTYPE_OpenBSD, VBOXOSHINT_X86_HWVIRTEX,
522 1, 1024, 16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
523 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
524
525 { "BSD", "BSD", "OpenBSD", GUEST_OS_ID_STR_X64("OpenBSD"), "OpenBSD (64-bit)",
526 VBOXOSTYPE_OpenBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC,
527 1, 1024, 16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
528 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
529
530 { "BSD", "BSD", "OpenBSD", GUEST_OS_ID_STR_A64("OpenBSD"), "OpenBSD ( ARM64-bit)",
531 VBOXOSTYPE_OpenBSD_arm64, VBOXOSHINT_64BIT | VBOXOSHINT_USBHID,
532 1, 1024, 16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI,
533 StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI, ChipsetType_ARMv8Virtual, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
534
535 { "BSD", "BSD", "NetBSD", GUEST_OS_ID_STR_X86("NetBSD"), "NetBSD (32-bit)",
536 VBOXOSTYPE_NetBSD, VBOXOSHINT_RTCUTC,
537 1, 1024, 16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
538 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
539
540 { "BSD", "BSD", "NetBSD", GUEST_OS_ID_STR_X64("NetBSD"), "NetBSD (64-bit)",
541 VBOXOSTYPE_NetBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_RTCUTC,
542 1, 1024, 16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
543 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
544
545 { "BSD", "BSD", "NetBSD", GUEST_OS_ID_STR_A64("NetBSD"), "NetBSD (ARM 64-bit)",
546 VBOXOSTYPE_OpenBSD_arm64, VBOXOSHINT_64BIT | VBOXOSHINT_USBHID,
547 1, 1024, 16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI,
548 StorageControllerType_VirtioSCSI, StorageBus_VirtioSCSI, ChipsetType_ARMv8Virtual, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
549
550 { "OS2", "IBM OS/2", "", GUEST_OS_ID_STR_X86("OS21x"), "OS/2 1.x",
551 VBOXOSTYPE_OS21x, VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB | VBOXOSHINT_TFRESET,
552 1, 8, 4, 500 * _1M, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
553 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
554
555 { "OS2", "IBM OS/2", "", GUEST_OS_ID_STR_X86("OS2Warp3"), "OS/2 Warp 3",
556 VBOXOSTYPE_OS2Warp3, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_FLOPPY,
557 1, 48, 4, 1 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
558 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
559
560 { "OS2", "IBM OS/2", "", GUEST_OS_ID_STR_X86("OS2Warp4"), "OS/2 Warp 4",
561 VBOXOSTYPE_OS2Warp4, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_FLOPPY,
562 1, 64, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
563 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
564
565 { "OS2", "IBM OS/2", "", GUEST_OS_ID_STR_X86("OS2Warp45"), "OS/2 Warp 4.5",
566 VBOXOSTYPE_OS2Warp45, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_FLOPPY,
567 1, 128, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
568 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
569
570 { "OS2", "IBM OS/2", "", GUEST_OS_ID_STR_X86("OS2eCS"), "eComStation",
571 VBOXOSTYPE_ECS, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_FLOPPY,
572 1, 256, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
573 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
574
575 { "OS2", "IBM OS/2", "", GUEST_OS_ID_STR_X86("OS2ArcaOS"), "ArcaOS",
576 VBOXOSTYPE_ArcaOS, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_FLOPPY,
577 1, 1024, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 1, StorageControllerType_PIIX4, StorageBus_IDE,
578 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
579
580 { "OS2", "IBM OS/2", "", GUEST_OS_ID_STR_X86("OS2"), "Other OS/2",
581 VBOXOSTYPE_OS2, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
582 1, 96, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
583 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
584
585 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X86("MacOS"), "Mac OS X (32-bit)",
586 VBOXOSTYPE_MacOS, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE
587 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
588 1, 2048, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
589 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
590
591 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS"), "Mac OS X (64-bit)",
592 VBOXOSTYPE_MacOS_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
593 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
594 1, 2048, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
595 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
596
597 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X86("MacOS106"), "Mac OS X 10.6 Snow Leopard (32-bit)",
598 VBOXOSTYPE_MacOS106, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE
599 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
600 1, 2048, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
601 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
602
603 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS106"), "Mac OS X 10.6 Snow Leopard (64-bit)",
604 VBOXOSTYPE_MacOS106_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
605 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
606 1, 2048, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
607 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
608
609 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS107"), "Mac OS X 10.7 Lion (64-bit)",
610 VBOXOSTYPE_MacOS107_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
611 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
612 1, 2048, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
613 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
614
615 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS108"), "Mac OS X 10.8 Mountain Lion (64-bit)", /* Aka "Mountain Kitten". */
616 VBOXOSTYPE_MacOS108_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
617 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
618 1, 2048, 16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
619 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
620
621 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS109"), "Mac OS X 10.9 Mavericks (64-bit)", /* Not to be confused with McCain. */
622 VBOXOSTYPE_MacOS109_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
623 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
624 1, 2048, 16, 25 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
625 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
626
627 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS1010"), "Mac OS X 10.10 Yosemite (64-bit)",
628 VBOXOSTYPE_MacOS1010_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
629 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
630 1, 2048, 16, 25 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
631 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
632
633 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS1011"), "Mac OS X 10.11 El Capitan (64-bit)",
634 VBOXOSTYPE_MacOS1011_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
635 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
636 1, 2048, 16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
637 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
638
639 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS1012"), "macOS 10.12 Sierra (64-bit)",
640 VBOXOSTYPE_MacOS1012_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
641 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
642 1, 2048, 16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
643 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
644
645 { "MacOS", "Mac OS X", "", GUEST_OS_ID_STR_X64("MacOS1013"), "macOS 10.13 High Sierra (64-bit)",
646 VBOXOSTYPE_MacOS1013_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT
647 | VBOXOSHINT_USBHID | VBOXOSHINT_X86_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
648 1, 2048, 16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
649 StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221 },
650
651 { "Other", "Other", "", GUEST_OS_ID_STR_X86("DOS"), "DOS",
652 VBOXOSTYPE_DOS, VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
653 1, 32, 4, 500 * _1M, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
654 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16 },
655
656 { "Other", "Other", "", GUEST_OS_ID_STR_X86("Netware"), "Netware",
657 VBOXOSTYPE_Netware, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
658 1, 512, 4, 4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
659 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
660
661 { "Other", "Other", "", GUEST_OS_ID_STR_X86("L4"), "L4",
662 VBOXOSTYPE_L4, VBOXOSHINT_NONE,
663 1, 64, 4, 2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
664 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
665
666 { "Other", "Other", "", GUEST_OS_ID_STR_X86("QNX"), "QNX",
667 VBOXOSTYPE_QNX, VBOXOSHINT_X86_HWVIRTEX,
668 1, 512, 4, 4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
669 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
670
671 { "Other", "Other", "", GUEST_OS_ID_STR_X86("JRockitVE"), "JRockitVE",
672 VBOXOSTYPE_JRockitVE, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_X86_PAE,
673 1, 1024, 4, 8 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
674 StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
675
676 { "Other", "Other", "", GUEST_OS_ID_STR_X64("VBoxBS"), "VirtualBox Bootsector Test (64-bit)",
677 VBOXOSTYPE_VBoxBS_x64, VBOXOSHINT_X86_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_X86_IOAPIC | VBOXOSHINT_X86_PAE | VBOXOSHINT_64BIT,
678 1, 128, 4, 0, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
679 StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
680};
681
682size_t Global::cOSTypes = RT_ELEMENTS(Global::sOSTypes);
683
684/**
685 * Returns an OS Type ID for the given VBOXOSTYPE value.
686 *
687 * The returned ID will correspond to the IGuestOSType::id value of one of the
688 * objects stored in the IVirtualBox::guestOSTypes
689 * (VirtualBoxImpl::COMGETTER(GuestOSTypes)) collection.
690 */
691/* static */
692const char *Global::OSTypeId(VBOXOSTYPE aOSType)
693{
694 for (size_t i = 0; i < RT_ELEMENTS(sOSTypes); ++i)
695 {
696 if (sOSTypes[i].osType == aOSType)
697 return sOSTypes[i].id;
698 }
699
700 return sOSTypes[0].id;
701}
702
703/**
704 * Maps an OS type ID string to index into sOSTypes.
705 *
706 * @returns index on success, UINT32_MAX if not found.
707 * @param pszId The OS type ID string.
708 */
709/* static */ uint32_t Global::getOSTypeIndexFromId(const char *pszId)
710{
711 for (size_t i = 0; i < RT_ELEMENTS(sOSTypes); ++i)
712 if (!RTStrICmp(pszId, Global::sOSTypes[i].id))
713 return (uint32_t)i;
714 return UINT32_MAX;
715}
716
717/*static*/ const char *
718Global::stringifyMachineState(MachineState_T aState)
719{
720 switch (aState)
721 {
722 case MachineState_Null: return GlobalCtx::tr("Null");
723 case MachineState_PoweredOff: return GlobalCtx::tr("PoweredOff");
724 case MachineState_Saved: return GlobalCtx::tr("Saved");
725 case MachineState_Teleported: return GlobalCtx::tr("Teleported");
726 case MachineState_Aborted: return GlobalCtx::tr("Aborted");
727 case MachineState_AbortedSaved: return GlobalCtx::tr("Aborted-Saved");
728 case MachineState_Running: return GlobalCtx::tr("Running");
729 case MachineState_Paused: return GlobalCtx::tr("Paused");
730 case MachineState_Stuck: return GlobalCtx::tr("GuruMeditation");
731 case MachineState_Teleporting: return GlobalCtx::tr("Teleporting");
732 case MachineState_LiveSnapshotting: return GlobalCtx::tr("LiveSnapshotting");
733 case MachineState_Starting: return GlobalCtx::tr("Starting");
734 case MachineState_Stopping: return GlobalCtx::tr("Stopping");
735 case MachineState_Saving: return GlobalCtx::tr("Saving");
736 case MachineState_Restoring: return GlobalCtx::tr("Restoring");
737 case MachineState_TeleportingPausedVM: return GlobalCtx::tr("TeleportingPausedVM");
738 case MachineState_TeleportingIn: return GlobalCtx::tr("TeleportingIn");
739 case MachineState_DeletingSnapshotOnline: return GlobalCtx::tr("DeletingSnapshotOnline");
740 case MachineState_DeletingSnapshotPaused: return GlobalCtx::tr("DeletingSnapshotPaused");
741 case MachineState_OnlineSnapshotting: return GlobalCtx::tr("OnlineSnapshotting");
742 case MachineState_RestoringSnapshot: return GlobalCtx::tr("RestoringSnapshot");
743 case MachineState_DeletingSnapshot: return GlobalCtx::tr("DeletingSnapshot");
744 case MachineState_SettingUp: return GlobalCtx::tr("SettingUp");
745 case MachineState_Snapshotting: return GlobalCtx::tr("Snapshotting");
746 default:
747 AssertMsgFailedReturn(("%d (%#x)\n", aState, aState), ::stringifyMachineState(aState));
748 }
749}
750
751/*static*/ const char *
752Global::stringifySessionState(SessionState_T aState)
753{
754 switch (aState)
755 {
756 case SessionState_Null: return GlobalCtx::tr("Null");
757 case SessionState_Unlocked: return GlobalCtx::tr("Unlocked");
758 case SessionState_Locked: return GlobalCtx::tr("Locked");
759 case SessionState_Spawning: return GlobalCtx::tr("Spawning");
760 case SessionState_Unlocking: return GlobalCtx::tr("Unlocking");
761 default:
762 AssertMsgFailedReturn(("%d (%#x)\n", aState, aState), ::stringifySessionState(aState));
763 }
764}
765
766/*static*/ const char *
767Global::stringifyStorageControllerType(StorageControllerType_T aType)
768{
769 switch (aType)
770 {
771 case StorageControllerType_Null: return GlobalCtx::tr("Null");
772 case StorageControllerType_LsiLogic: return GlobalCtx::tr("LsiLogic");
773 case StorageControllerType_BusLogic: return GlobalCtx::tr("BusLogic");
774 case StorageControllerType_IntelAhci: return GlobalCtx::tr("AHCI");
775 case StorageControllerType_PIIX3: return GlobalCtx::tr("PIIX3");
776 case StorageControllerType_PIIX4 : return GlobalCtx::tr("PIIX4");
777 case StorageControllerType_ICH6: return GlobalCtx::tr("ICH6");
778 case StorageControllerType_I82078: return GlobalCtx::tr("I82078");
779 case StorageControllerType_LsiLogicSas: return GlobalCtx::tr("LsiLogicSas");
780 case StorageControllerType_USB: return GlobalCtx::tr("USB");
781 case StorageControllerType_NVMe: return GlobalCtx::tr("NVMe");
782 case StorageControllerType_VirtioSCSI: return GlobalCtx::tr("VirtioSCSI");
783 default:
784 AssertMsgFailedReturn(("%d (%#x)\n", aType, aType), ::stringifyStorageControllerType(aType));
785 }
786}
787
788/*static*/ const char *
789Global::stringifyDeviceType(DeviceType_T aType)
790{
791 switch (aType)
792 {
793 case DeviceType_Null: return GlobalCtx::tr("Null");
794 case DeviceType_Floppy: return GlobalCtx::tr("Floppy");
795 case DeviceType_DVD: return GlobalCtx::tr("DVD");
796 case DeviceType_HardDisk: return GlobalCtx::tr("HardDisk");
797 case DeviceType_Network: return GlobalCtx::tr("Network");
798 case DeviceType_USB: return GlobalCtx::tr("USB");
799 case DeviceType_SharedFolder: return GlobalCtx::tr("SharedFolder");
800 default:
801 AssertMsgFailedReturn(("%d (%#x)\n", aType, aType), ::stringifyDeviceType(aType));
802 }
803}
804
805/* static */ const char *
806Global::stringifyPlatformArchitecture(PlatformArchitecture_T aEnmArchitecture)
807{
808 switch (aEnmArchitecture)
809 {
810 case PlatformArchitecture_x86: return "x86";
811 case PlatformArchitecture_ARM: return "ARM";
812 default:
813 break;
814 }
815
816 AssertFailedReturn("<None>");
817}
818
819#if 0 /* unused */
820
821/*static*/ const char *
822Global::stringifyStorageBus(StorageBus_T aBus)
823{
824 switch (aBus)
825 {
826 case StorageBus_Null: return GlobalCtx::tr("Null");
827 case StorageBus_IDE: return GlobalCtx::tr("IDE");
828 case StorageBus_SATA: return GlobalCtx::tr("SATA");
829 case StorageBus_Floppy: return GlobalCtx::tr("Floppy");
830 case StorageBus_SAS: return GlobalCtx::tr("SAS");
831 case StorageBus_USB: return GlobalCtx::tr("USB");
832 case StorageBus_PCIe: return GlobalCtx::tr("PCIe");
833 case StorageBus_VirtioSCSI: return GlobalCtx::tr("VirtioSCSI");
834 default:
835 AssertMsgFailedReturn(("%d (%#x)\n", aBus, aBus), ::stringifyStorageBus(aBus));
836 }
837}
838
839/*static*/ const char *
840Global::stringifyReason(Reason_T aReason)
841{
842 switch (aReason)
843 {
844 case Reason_Unspecified: return GlobalCtx::tr("unspecified");
845 case Reason_HostSuspend: return GlobalCtx::tr("host suspend");
846 case Reason_HostResume: return GlobalCtx::tr("host resume");
847 case Reason_HostBatteryLow: return GlobalCtx::tr("host battery low");
848 case Reason_Snapshot: return GlobalCtx::tr("snapshot");
849 default:
850 AssertMsgFailedReturn(("%d (%#x)\n", aReason, aReason), ::stringifyReason(aReason));
851 }
852}
853
854#endif /* unused */
855
856/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

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