VirtualBox

source: vbox/trunk/include/VBox/ostypes.h@ 101814

Last change on this file since 101814 was 101687, checked in by vboxsync, 16 months ago

Main/Unattended|GuestOSType: Add an entry in the guest OS type to indicate the name of the additions install package instead of hardcoding it in the templates. Allows easy adaption if something changes and makes it possible to auto install guest additions for linux.arm64 guests, bugref:10542 [missing files]

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 13.2 KB
Line 
1/** @file
2 * VirtualBox - Global Guest Operating System definition.
3 */
4
5/*
6 * Copyright (C) 2006-2023 Oracle and/or its affiliates.
7 *
8 * This file is part of VirtualBox base platform packages, as
9 * available from https://www.virtualbox.org.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License
13 * as published by the Free Software Foundation, in version 3 of the
14 * License.
15 *
16 * This program is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, see <https://www.gnu.org/licenses>.
23 *
24 * The contents of this file may alternatively be used under the terms
25 * of the Common Development and Distribution License Version 1.0
26 * (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
27 * in the VirtualBox distribution, in which case the provisions of the
28 * CDDL are applicable instead of those of the GPL.
29 *
30 * You may elect to license modified versions of this file under the
31 * terms and conditions of either the GPL or the CDDL or both.
32 *
33 * SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
34 */
35
36#ifndef VBOX_INCLUDED_ostypes_h
37#define VBOX_INCLUDED_ostypes_h
38#ifndef RT_WITHOUT_PRAGMA_ONCE
39# pragma once
40#endif
41
42#include <iprt/cdefs.h>
43
44RT_C_DECLS_BEGIN
45
46/**
47 * Global list of guest operating system types.
48 *
49 * They are grouped into families. A family identifer is always has
50 * mod 0x10000 == 0. New entries can be added, however other components
51 * depend on the values (e.g. the Qt GUI and guest additions) so the
52 * existing values MUST stay the same.
53 */
54typedef enum VBOXOSTYPE
55{
56 VBOXOSTYPE_Unknown = 0,
57 VBOXOSTYPE_Unknown_x64 = 0x00100,
58 VBOXOSTYPE_Unknown_arm32 = 0x00200,
59 VBOXOSTYPE_Unknown_arm64 = 0x00300,
60
61 /** @name DOS and it's descendants
62 * @{ */
63 VBOXOSTYPE_DOS = 0x10000,
64 VBOXOSTYPE_Win31 = 0x15000,
65 VBOXOSTYPE_Win9x = 0x20000,
66 VBOXOSTYPE_Win95 = 0x21000,
67 VBOXOSTYPE_Win98 = 0x22000,
68 VBOXOSTYPE_WinMe = 0x23000,
69 VBOXOSTYPE_WinNT = 0x30000,
70 VBOXOSTYPE_WinNT_x64 = 0x30100,
71 VBOXOSTYPE_WinNT3x = 0x30800,
72 VBOXOSTYPE_WinNT4 = 0x31000,
73 VBOXOSTYPE_Win2k = 0x32000,
74 VBOXOSTYPE_WinXP = 0x33000,
75 VBOXOSTYPE_WinXP_x64 = 0x33100,
76 VBOXOSTYPE_Win2k3 = 0x34000,
77 VBOXOSTYPE_Win2k3_x64 = 0x34100,
78 VBOXOSTYPE_WinVista = 0x35000,
79 VBOXOSTYPE_WinVista_x64 = 0x35100,
80 VBOXOSTYPE_Win2k8 = 0x36000,
81 VBOXOSTYPE_Win2k8_x64 = 0x36100,
82 VBOXOSTYPE_Win7 = 0x37000,
83 VBOXOSTYPE_Win7_x64 = 0x37100,
84 VBOXOSTYPE_Win8 = 0x38000,
85 VBOXOSTYPE_Win8_x64 = 0x38100,
86 VBOXOSTYPE_Win2k12_x64 = 0x39100,
87 VBOXOSTYPE_Win81 = 0x3A000,
88 VBOXOSTYPE_Win81_x64 = 0x3A100,
89 VBOXOSTYPE_Win10 = 0x3B000,
90 VBOXOSTYPE_Win10_x64 = 0x3B100,
91 VBOXOSTYPE_Win2k16_x64 = 0x3C100,
92 VBOXOSTYPE_Win2k19_x64 = 0x3D100,
93 VBOXOSTYPE_Win11_x64 = 0x3E100,
94 VBOXOSTYPE_Win2k22_x64 = 0x3F100,
95 VBOXOSTYPE_OS2 = 0x40000,
96 VBOXOSTYPE_OS2Warp3 = 0x41000,
97 VBOXOSTYPE_OS2Warp4 = 0x42000,
98 VBOXOSTYPE_OS2Warp45 = 0x43000,
99 VBOXOSTYPE_ECS = 0x44000,
100 VBOXOSTYPE_ArcaOS = 0x45000,
101 VBOXOSTYPE_OS21x = 0x48000,
102 /** @} */
103 /** @name Unixy related OSes
104 * @{ */
105 VBOXOSTYPE_Linux = 0x50000,
106 VBOXOSTYPE_Linux_x64 = 0x50100,
107 VBOXOSTYPE_Linux22 = 0x51000,
108 VBOXOSTYPE_Linux24 = 0x52000,
109 VBOXOSTYPE_Linux24_x64 = 0x52100,
110 VBOXOSTYPE_Linux26 = 0x53000,
111 VBOXOSTYPE_Linux26_x64 = 0x53100,
112 VBOXOSTYPE_ArchLinux = 0x54000,
113 VBOXOSTYPE_ArchLinux_x64 = 0x54100,
114 VBOXOSTYPE_ArchLinux_arm64 = 0x54300,
115 VBOXOSTYPE_Debian = 0x55000,
116 VBOXOSTYPE_Debian_x64 = 0x55100,
117 VBOXOSTYPE_Debian_arm32 = 0x55200,
118 VBOXOSTYPE_Debian_arm64 = 0x55300,
119 VBOXOSTYPE_Debian31 = 0x55001, // 32-bit only
120 VBOXOSTYPE_Debian4 = 0x55002,
121 VBOXOSTYPE_Debian4_x64 = 0x55102,
122 VBOXOSTYPE_Debian5 = 0x55003,
123 VBOXOSTYPE_Debian5_x64 = 0x55103,
124 VBOXOSTYPE_Debian6 = 0x55004,
125 VBOXOSTYPE_Debian6_x64 = 0x55104,
126 VBOXOSTYPE_Debian7 = 0x55005,
127 VBOXOSTYPE_Debian7_x64 = 0x55105,
128 VBOXOSTYPE_Debian8 = 0x55006,
129 VBOXOSTYPE_Debian8_x64 = 0x55106,
130 VBOXOSTYPE_Debian9 = 0x55007,
131 VBOXOSTYPE_Debian9_x64 = 0x55107,
132 VBOXOSTYPE_Debian9_arm64 = 0x55307,
133 VBOXOSTYPE_Debian10 = 0x55008,
134 VBOXOSTYPE_Debian10_x64 = 0x55108,
135 VBOXOSTYPE_Debian10_arm64 = 0x55308,
136 VBOXOSTYPE_Debian11 = 0x55009,
137 VBOXOSTYPE_Debian11_x64 = 0x55109,
138 VBOXOSTYPE_Debian11_arm64 = 0x55309,
139 VBOXOSTYPE_Debian12 = 0x5500a,
140 VBOXOSTYPE_Debian12_x64 = 0x5510a,
141 VBOXOSTYPE_Debian12_arm64 = 0x5530a,
142 VBOXOSTYPE_Debian_latest_x64 = VBOXOSTYPE_Debian12_x64,
143 VBOXOSTYPE_Debian_latest_arm64 = VBOXOSTYPE_Debian12_arm64,
144 VBOXOSTYPE_OpenSUSE = 0x56000,
145 VBOXOSTYPE_OpenSUSE_x64 = 0x56100,
146 VBOXOSTYPE_OpenSUSE_Leap_x64 = 0x56101, // 64-bit only
147 VBOXOSTYPE_OpenSUSE_Leap_arm64 = 0x56301,
148 VBOXOSTYPE_OpenSUSE_Tumbleweed = 0x56002,
149 VBOXOSTYPE_OpenSUSE_Tumbleweed_x64 = 0x56102,
150 VBOXOSTYPE_OpenSUSE_Tumbleweed_arm64 = 0x56302,
151 VBOXOSTYPE_SUSE_LE = 0x56003,
152 VBOXOSTYPE_SUSE_LE_x64 = 0x56103,
153 VBOXOSTYPE_FedoraCore = 0x57000,
154 VBOXOSTYPE_FedoraCore_x64 = 0x57100,
155 VBOXOSTYPE_FedoraCore_arm64 = 0x57300,
156 VBOXOSTYPE_Gentoo = 0x58000,
157 VBOXOSTYPE_Gentoo_x64 = 0x58100,
158 VBOXOSTYPE_Mandriva = 0x59000,
159 VBOXOSTYPE_Mandriva_x64 = 0x59100,
160 VBOXOSTYPE_OpenMandriva_Lx = 0x59001,
161 VBOXOSTYPE_OpenMandriva_Lx_x64 = 0x59101,
162 VBOXOSTYPE_PCLinuxOS = 0x59002,
163 VBOXOSTYPE_PCLinuxOS_x64 = 0x59102,
164 VBOXOSTYPE_Mageia = 0x59003,
165 VBOXOSTYPE_Mageia_x64 = 0x59103,
166 VBOXOSTYPE_RedHat = 0x5A000,
167 VBOXOSTYPE_RedHat_x64 = 0x5A100,
168 VBOXOSTYPE_RedHat_arm32 = 0x5A200,
169 VBOXOSTYPE_RedHat_arm64 = 0x5A300,
170 VBOXOSTYPE_RedHat3 = 0x5A001,
171 VBOXOSTYPE_RedHat3_x64 = 0x5A101,
172 VBOXOSTYPE_RedHat4 = 0x5A002,
173 VBOXOSTYPE_RedHat4_x64 = 0x5A102,
174 VBOXOSTYPE_RedHat5 = 0x5A003,
175 VBOXOSTYPE_RedHat5_x64 = 0x5A103,
176 VBOXOSTYPE_RedHat6 = 0x5A004,
177 VBOXOSTYPE_RedHat6_x64 = 0x5A104,
178 VBOXOSTYPE_RedHat7_x64 = 0x5A105, // 64-bit only
179 VBOXOSTYPE_RedHat8_x64 = 0x5A106, // 64-bit only
180 VBOXOSTYPE_RedHat9_x64 = 0x5A107, // 64-bit only
181 VBOXOSTYPE_RedHat_latest_x64 = VBOXOSTYPE_RedHat9_x64,
182 VBOXOSTYPE_Turbolinux = 0x5B000,
183 VBOXOSTYPE_Turbolinux_x64 = 0x5B100,
184 VBOXOSTYPE_Ubuntu = 0x5C000,
185 VBOXOSTYPE_Ubuntu_x64 = 0x5C100,
186 VBOXOSTYPE_Ubuntu_arm32 = 0x5C200,
187 VBOXOSTYPE_Ubuntu_arm64 = 0x5C300,
188 VBOXOSTYPE_Xubuntu = 0x5C001,
189 VBOXOSTYPE_Xubuntu_x64 = 0x5C101,
190 VBOXOSTYPE_Lubuntu = 0x5C002,
191 VBOXOSTYPE_Lubuntu_x64 = 0x5C102,
192 VBOXOSTYPE_Ubuntu10_LTS = 0x5C003,
193 VBOXOSTYPE_Ubuntu10_LTS_x64 = 0x5C103,
194 VBOXOSTYPE_Ubuntu10 = 0x5C004,
195 VBOXOSTYPE_Ubuntu10_x64 = 0x5C104,
196 VBOXOSTYPE_Ubuntu11 = 0x5C005,
197 VBOXOSTYPE_Ubuntu11_x64 = 0x5C105,
198 VBOXOSTYPE_Ubuntu12_LTS = 0x5C006,
199 VBOXOSTYPE_Ubuntu12_LTS_x64 = 0x5C106,
200 VBOXOSTYPE_Ubuntu12 = 0x5C007,
201 VBOXOSTYPE_Ubuntu12_x64 = 0x5C107,
202 VBOXOSTYPE_Ubuntu13 = 0x5C008,
203 VBOXOSTYPE_Ubuntu13_x64 = 0x5C108,
204 VBOXOSTYPE_Ubuntu14_LTS = 0x5C009,
205 VBOXOSTYPE_Ubuntu14_LTS_x64 = 0x5C109,
206 VBOXOSTYPE_Ubuntu14 = 0x5C00a,
207 VBOXOSTYPE_Ubuntu14_x64 = 0x5C10a,
208 VBOXOSTYPE_Ubuntu15 = 0x5C00b,
209 VBOXOSTYPE_Ubuntu15_x64 = 0x5C10b,
210 VBOXOSTYPE_Ubuntu16_LTS = 0x5C00c,
211 VBOXOSTYPE_Ubuntu16_LTS_x64 = 0x5C10c,
212 VBOXOSTYPE_Ubuntu16 = 0x5C00d,
213 VBOXOSTYPE_Ubuntu16_x64 = 0x5C10d,
214 VBOXOSTYPE_Ubuntu17 = 0x5C00e,
215 VBOXOSTYPE_Ubuntu17_x64 = 0x5C10e,
216 VBOXOSTYPE_Ubuntu18_LTS = 0x5C00f,
217 VBOXOSTYPE_Ubuntu18_LTS_x64 = 0x5C10f,
218 VBOXOSTYPE_Ubuntu18 = 0x5C010,
219 VBOXOSTYPE_Ubuntu18_x64 = 0x5C110,
220 VBOXOSTYPE_Ubuntu19 = 0x5C011,
221 VBOXOSTYPE_Ubuntu19_x64 = 0x5C111,
222 VBOXOSTYPE_Ubuntu20_LTS_x64 = 0x5C112, // 64-bit only
223 VBOXOSTYPE_Ubuntu20_x64 = 0x5C113, // 64-bit only
224 VBOXOSTYPE_Ubuntu21_x64 = 0x5C114, // 64-bit only
225 VBOXOSTYPE_Ubuntu22_LTS_x64 = 0x5C115, // 64-bit only
226 VBOXOSTYPE_Ubuntu22_x64 = 0x5C116, // 64-bit only
227 VBOXOSTYPE_Ubuntu22_arm64 = 0x5C316,
228 VBOXOSTYPE_Ubuntu23_x64 = 0x5C117, // 64-bit only
229 VBOXOSTYPE_Ubuntu23_arm64 = 0x5C317,
230 VBOXOSTYPE_Ubuntu_latest_x64 = VBOXOSTYPE_Ubuntu23_x64,
231 VBOXOSTYPE_Ubuntu_latest_arm64 = VBOXOSTYPE_Ubuntu23_arm64,
232 VBOXOSTYPE_Xandros = 0x5D000,
233 VBOXOSTYPE_Xandros_x64 = 0x5D100,
234 VBOXOSTYPE_Oracle = 0x5E000,
235 VBOXOSTYPE_Oracle_x64 = 0x5E100,
236 VBOXOSTYPE_Oracle_arm32 = 0x5E200,
237 VBOXOSTYPE_Oracle_arm64 = 0x5E300,
238 VBOXOSTYPE_Oracle4 = 0x5E001,
239 VBOXOSTYPE_Oracle4_x64 = 0x5E101,
240 VBOXOSTYPE_Oracle5 = 0x5E002,
241 VBOXOSTYPE_Oracle5_x64 = 0x5E102,
242 VBOXOSTYPE_Oracle6 = 0x5E003,
243 VBOXOSTYPE_Oracle6_x64 = 0x5E103,
244 VBOXOSTYPE_Oracle7_x64 = 0x5E104, // 64-bit only
245 VBOXOSTYPE_Oracle8_x64 = 0x5E105, // 64-bit only
246 VBOXOSTYPE_Oracle9_x64 = 0x5E106, // 64-bit only
247 VBOXOSTYPE_Oracle9_arm64 = 0x5E306,
248 VBOXOSTYPE_Oracle_latest_x64 = VBOXOSTYPE_Oracle9_x64,
249 VBOXOSTYPE_Oracle_latest_arm64 = VBOXOSTYPE_Oracle9_arm64,
250 VBOXOSTYPE_FreeBSD = 0x60000,
251 VBOXOSTYPE_FreeBSD_x64 = 0x60100,
252 VBOXOSTYPE_FreeBSD_arm64 = 0x60300,
253 VBOXOSTYPE_OpenBSD = 0x61000,
254 VBOXOSTYPE_OpenBSD_x64 = 0x61100,
255 VBOXOSTYPE_OpenBSD_arm64 = 0x61300,
256 VBOXOSTYPE_NetBSD = 0x62000,
257 VBOXOSTYPE_NetBSD_x64 = 0x62100,
258 VBOXOSTYPE_NetBSD_arm64 = 0x62300,
259 VBOXOSTYPE_Netware = 0x70000,
260 VBOXOSTYPE_Solaris = 0x80000, // Solaris 10U7 (5/09) and earlier
261 VBOXOSTYPE_Solaris_x64 = 0x80100, // Solaris 10U7 (5/09) and earlier
262 VBOXOSTYPE_Solaris10U8_or_later = 0x80001,
263 VBOXOSTYPE_Solaris10U8_or_later_x64 = 0x80101,
264 VBOXOSTYPE_OpenSolaris = 0x81000,
265 VBOXOSTYPE_OpenSolaris_x64 = 0x81100,
266 VBOXOSTYPE_Solaris11_x64 = 0x82100,
267 VBOXOSTYPE_L4 = 0x90000,
268 VBOXOSTYPE_QNX = 0xA0000,
269 VBOXOSTYPE_MacOS = 0xB0000,
270 VBOXOSTYPE_MacOS_x64 = 0xB0100,
271 VBOXOSTYPE_MacOS106 = 0xB2000,
272 VBOXOSTYPE_MacOS106_x64 = 0xB2100,
273 VBOXOSTYPE_MacOS107_x64 = 0xB3100,
274 VBOXOSTYPE_MacOS108_x64 = 0xB4100,
275 VBOXOSTYPE_MacOS109_x64 = 0xB5100,
276 VBOXOSTYPE_MacOS1010_x64 = 0xB6100,
277 VBOXOSTYPE_MacOS1011_x64 = 0xB7100,
278 VBOXOSTYPE_MacOS1012_x64 = 0xB8100,
279 VBOXOSTYPE_MacOS1013_x64 = 0xB9100,
280 /** @} */
281 /** @name Other OSes and stuff
282 * @{ */
283 VBOXOSTYPE_JRockitVE = 0xC0000,
284 VBOXOSTYPE_Haiku = 0xD0000,
285 VBOXOSTYPE_Haiku_x64 = 0xD0100,
286 VBOXOSTYPE_VBoxBS_x64 = 0xE0100,
287 /** @} */
288
289 /** OS type mask. */
290 VBOXOSTYPE_OsTypeMask = 0x00fff000,
291
292 /** @name Architecture Type
293 * @{ */
294 /** Mask containing the architecture value. */
295 VBOXOSTYPE_ArchitectureMask = 0x00f00,
296 /** Architecture value for 16-bit and 32-bit x86. */
297 VBOXOSTYPE_x86 = 0x00000,
298 /** Architecture value for 64-bit x86 (AMD64). */
299 VBOXOSTYPE_x64 = 0x00100,
300 /** Architecture value for 32-bit ARM. */
301 VBOXOSTYPE_arm32 = 0x00200,
302 /** Architecture value for 64-bit ARM. */
303 VBOXOSTYPE_arm64 = 0x00300,
304 /** Architecture value for unknown or unsupported architectures. */
305 VBOXOSTYPE_UnknownArch = 0x00f00,
306 /** @} */
307
308 /** The usual 32-bit hack. */
309 VBOXOSTYPE_32BIT_HACK = 0x7fffffff
310} VBOXOSTYPE;
311
312
313/**
314 * Global list of guest OS families.
315 */
316typedef enum VBOXOSFAMILY
317{
318 VBOXOSFAMILY_Unknown = 0,
319 VBOXOSFAMILY_Windows32 = 1,
320 VBOXOSFAMILY_Windows64 = 2,
321 VBOXOSFAMILY_Linux32 = 3,
322 VBOXOSFAMILY_Linux64 = 4,
323 VBOXOSFAMILY_FreeBSD32 = 5,
324 VBOXOSFAMILY_FreeBSD64 = 6,
325 VBOXOSFAMILY_Solaris32 = 7,
326 VBOXOSFAMILY_Solaris64 = 8,
327 VBOXOSFAMILY_MacOSX32 = 9,
328 VBOXOSFAMILY_MacOSX64 = 10,
329 /** The usual 32-bit hack. */
330 VBOXOSFAMILY_32BIT_HACK = 0x7fffffff
331} VBOXOSFAMILY;
332
333RT_C_DECLS_END
334
335#endif /* !VBOX_INCLUDED_ostypes_h */
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