]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Changes to common header files.
authorJohn Wolfe <jwolfe@vmware.com>
Fri, 26 Mar 2021 03:21:17 +0000 (20:21 -0700)
committerJohn Wolfe <jwolfe@vmware.com>
Fri, 26 Mar 2021 03:21:17 +0000 (20:21 -0700)
GuestOS: Begin recognizing Arm in VMware products.

open-vm-tools/lib/include/guest_os.h
open-vm-tools/lib/include/guest_os_tables.h

index 1f9c9b3436c71241feb31a45a32fa6c331340e62..a840368f45b0585b2ead9f060191508c414a4315 100644 (file)
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 1998-2020 VMware, Inc. All rights reserved.
+ * Copyright (C) 1998-2021 VMware, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as published
@@ -54,7 +54,7 @@ GUEST_OS_TYPE_GEN
 /*
  * Maximum number of guests in a set, must be <= LIST_SIZE in geninfo.h
  */
-#define MAXGOSSET 64
+#define MAXGOSSET 128
 
 typedef enum GuestOSFamilyType {
    GUEST_OS_FAMILY_ANY         = 0x0000,
@@ -70,7 +70,7 @@ typedef enum GuestOSFamilyType {
 } GuestOSFamilyType;
 
 #define ALLOS           GUEST_OS_ANY
-#define BS(suf)                GUEST_OS_##suf
+#define BS(suf)         GUEST_OS_##suf
 #define GOS_IN_SET(gos, ...)   Gos_InSet(gos, __VA_ARGS__, 0)
 #define GOS_IN_SET_ARRAY(gos, set)   Gos_InSetArray(gos, set)
 
@@ -85,16 +85,18 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 #define ALLWINXP              ALLWINXP32, ALLWINXP64
 
 #define ALLFREEBSD32          BS(FREEBSD),    BS(FREEBSD11),  \
-                              BS(FREEBSD12),  BS(FREEBSD13)
+                              BS(FREEBSD12),  BS(FREEBSD13),  \
+                              BS(FREEBSD14)
 
 #define ALLFREEBSD64          BS(FREEBSD_64),   BS(FREEBSD11_64), \
-                              BS(FREEBSD12_64), BS(FREEBSD13_64)
+                              BS(FREEBSD12_64), BS(FREEBSD13_64), \
+                              BS(FREEBSD14_64)
 
 #define ALLFREEBSD            ALLFREEBSD32, ALLFREEBSD64
 
 #define ALLWINNET32           BS(WINNET)
 #define ALLWINNET64           BS(WINNET_64)
-#define ALLWINNET            ALLWINNET32, ALLWINNET64
+#define ALLWINNET             ALLWINNET32, ALLWINNET64
 
 #define ALLWINLONGHORN32      BS(LONGHORN)
 #define ALLWINLONGHORN64      BS(LONGHORN_64)
@@ -122,10 +124,11 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 
 #define ALLWINTENSERVER64     BS(WIN_2016SRV_64), BS(WIN_2019SRV_64), \
                               BS(WIN_2022SRV_64)
+
 #define ALLWINTENSERVER       ALLWINTENSERVER64
 
 #define ALLWINTENCLIENT32     BS(WINTEN)
-#define ALLWINTENCLIENT64     BS(WINTEN_64)
+#define ALLWINTENCLIENT64     BS(WINTEN_64), BS(ARM_WINTEN_64)
 #define ALLWINTENCLIENT       ALLWINTENCLIENT32, ALLWINTENCLIENT64
 
 #define ALLWINTEN32           ALLWINTENCLIENT32
@@ -134,33 +137,34 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 
 #define ALLHYPER_V            BS(HYPER_V)
 
-#define ALLWINVISTA_OR_HIGHER ALLWINVISTA, ALLWINLONGHORN,           \
-                              ALLWIN2008R2, ALLWINSEVEN,             \
+#define ALLWINVISTA_OR_HIGHER ALLWINVISTA,       ALLWINLONGHORN,     \
+                              ALLWIN2008R2,      ALLWINSEVEN,        \
                               ALLWINEIGHTSERVER, ALLWINEIGHTCLIENT,  \
-                              ALLWINTENSERVER, ALLWINTENCLIENT,      \
+                              ALLWINTENSERVER,   ALLWINTENCLIENT,    \
                               ALLHYPER_V                             \
 
-#define ALLWINNT32           BS(WINNT), ALLWIN2000, ALLWINXP32,     \
-                              ALLWINNET32, ALLWINVISTA32,            \
-                              ALLWINLONGHORN32, ALLWINSEVEN32,       \
-                              ALLWINEIGHTCLIENT32, ALLWINTENCLIENT32
-
-#define ALLWINNT64           ALLWINXP64, ALLWINNET64,               \
-                              ALLWINVISTA64, ALLWINLONGHORN64,       \
-                              ALLWINSEVEN64,  ALLWIN2008R2_64,       \
-                              ALLWINEIGHTCLIENT64, ALLWINEIGHTSERVER,\
-                              ALLWINTENCLIENT64, ALLWINTENSERVER,    \
+#define ALLWINNT32            BS(WINNT),           ALLWIN2000,          \
+                              ALLWINXP32,          ALLWINNET32,         \
+                              ALLWINVISTA32,       ALLWINLONGHORN32,    \
+                              ALLWINSEVEN32,       ALLWINEIGHTCLIENT32, \
+                              ALLWINTENCLIENT32
+
+#define ALLWINNT64            ALLWINXP64,          ALLWINNET64,       \
+                              ALLWINVISTA64,       ALLWINLONGHORN64,  \
+                              ALLWINSEVEN64,       ALLWIN2008R2_64,   \
+                              ALLWINEIGHTCLIENT64, ALLWINEIGHTSERVER, \
+                              ALLWINTENCLIENT64,   ALLWINTENSERVER,   \
                               ALLHYPER_V
 
-#define ALLWINNT             ALLWINNT32, ALLWINNT64
+#define ALLWINNT              ALLWINNT32, ALLWINNT64
 
-#define ALLWIN32             ALLWIN9X, ALLWINNT32
+#define ALLWIN32              ALLWIN9X, ALLWINNT32
 #define ALLWIN64              ALLWINNT64
 #define ALLWIN                ALLWIN32, ALLWIN64
 
 #define ALLOTHER              BS(OTHER), BS(OTHER_64)
 
-#define ALLPHOTON             BS(PHOTON_64)
+#define ALLPHOTON             BS(PHOTON_64), BS(ARM_PHOTON_64)
 
 #define ALLSOLARIS11_OR_HIGHER \
                               BS(SOLARIS11_64)
@@ -176,33 +180,35 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 
 #define ALLNETWARE            BS(NETWARE4), BS(NETWARE5), BS(NETWARE6)
 
-#define ALL26XLINUX32         BS(OTHER26XLINUX), BS(DEBIAN), BS(RHEL), \
-                              BS(UBUNTU), BS(CENTOS), BS(ORACLE)
+#define ALL26XLINUX32         BS(DEBIAN),  BS(RHEL),   \
+                              BS(UBUNTU),  BS(CENTOS), \
+                              BS(ORACLE),  BS(OTHER26XLINUX)
 
-#define ALL26XLINUX64         BS(OTHER26XLINUX_64), BS(DEBIAN_64), \
-                              BS(RHEL_64), BS(CENTOS_64), BS(ORACLE_64)
+#define ALL26XLINUX64         BS(DEBIAN_64),  BS(RHEL_64),   \
+                              BS(UBUNTU_64),  BS(CENTOS_64), \
+                              BS(ORACLE_64),  BS(OTHER26XLINUX_64)
 
 #define ALL3XLINUX32          BS(OTHER3XLINUX), BS(CENTOS6), BS(ORACLE6)
 
-#define ALL3XLINUX64          BS(OTHER3XLINUX_64), \
+#define ALL3XLINUX64          BS(OTHER3XLINUX_64),            \
                               BS(CENTOS6_64), BS(CENTOS7_64), \
                               BS(ORACLE6_64), BS(ORACLE7_64)
 
 #define ALL4XLINUX32          BS(OTHER4XLINUX)
 
-#define ALL4XLINUX64          BS(OTHER4XLINUX_64), BS(PHOTON_64), \
-                              BS(CENTOS8_64), BS(CENTOS9_64), \
-                              BS(ORACLE8_64), BS(ORACLE9_64), \
-                              BS(CRXSYS1_64), BS(CRXPOD1_64), \
+#define ALL4XLINUX64          BS(OTHER4XLINUX_64), BS(PHOTON_64),       \
+                              BS(CENTOS8_64),      BS(CENTOS9_64),      \
+                              BS(ORACLE8_64),      BS(ORACLE9_64),      \
+                              BS(CRXSYS1_64),      BS(CRXPOD1_64),      \
                               BS(AMAZONLINUX2_64), BS(AMAZONLINUX3_64), \
                               BS(LINUX_MINT_64)
 
 #define ALL5XLINUX32          BS(OTHER5XLINUX)
 
-#define ALL5XLINUX64          BS(OTHER5XLINUX_64)
+#define ALL5XLINUX64          BS(OTHER5XLINUX_64), BS(ARM_OTHER5XLINUX_64)
 
-#define ALLVMKERNEL           BS(VMKERNEL), BS(VMKERNEL5), BS(VMKERNEL6), \
-                              BS(VMKERNEL65), BS(VMKERNEL7)
+#define ALLVMKERNEL           BS(VMKERNEL),   BS(VMKERNEL5), BS(VMKERNEL6), \
+                              BS(VMKERNEL65), BS(VMKERNEL7), BS(ARM_VMKERNEL7)
 
 #define ALLLINUX32            BS(VMKERNEL), BS(OTHERLINUX), \
                               BS(OTHER24XLINUX), \
@@ -217,20 +223,21 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 
 #define ALLDARWIN32           BS(DARWIN9), BS(DARWIN10), BS(DARWIN11)
 
-#define ALLDARWIN64           BS(DARWIN9_64),  BS(DARWIN10_64), \
-                              BS(DARWIN11_64), BS(DARWIN12_64), \
-                              BS(DARWIN13_64), BS(DARWIN14_64), \
-                              BS(DARWIN15_64), BS(DARWIN16_64), \
-                              BS(DARWIN17_64), BS(DARWIN18_64), \
-                              BS(DARWIN19_64), BS(DARWIN20_64), \
+#define ALLDARWIN64           BS(DARWIN9_64),  BS(DARWIN10_64),  \
+                              BS(DARWIN11_64), BS(DARWIN12_64),  \
+                              BS(DARWIN13_64), BS(DARWIN14_64),  \
+                              BS(DARWIN15_64), BS(DARWIN16_64),  \
+                              BS(DARWIN17_64), BS(DARWIN18_64),  \
+                              BS(DARWIN19_64), BS(DARWIN20_64),  \
                               BS(DARWIN21_64)
 
 #define ALLDARWIN             ALLDARWIN32, ALLDARWIN64
 
-#define ALL64                 ALLLINUX64,       ALLFREEBSD64,      \
-                              ALLDARWIN64,      ALLVMKERNEL,       \
-                              BS(SOLARIS10_64), BS(SOLARIS11_64),  \
-                              ALLWIN64,         BS(OTHER_64)
+#define ALL64                 ALLLINUX64,        ALLWIN64,          \
+                              ALLFREEBSD64,      ALLDARWIN64,       \
+                              ALLPHOTON,         ALLVMKERNEL,       \
+                              BS(SOLARIS10_64),  BS(SOLARIS11_64),  \
+                              BS(OTHER_64),      BS(ARM_OTHER_64)
 
 #define ALLECOMSTATION        BS(ECOMSTATION), BS(ECOMSTATION2)
 
@@ -238,6 +245,9 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 
 #define ALLCRX                BS(CRXSYS1_64), BS(CRXPOD1_64)
 
+#define ALLARM                BS(ARM_WINTEN_64), BS(ARM_UBUNTU_64),  \
+                              BS(ARM_PHOTON_64), BS(ARM_VMKERNEL7),  \
+                              BS(ARM_OTHER_64),  BS(ARM_OTHER5XLINUX_64)
 /*
  * These constants are generated by GuestInfoGetOSName which is in
  * the bora-vmsoft subtree.
@@ -245,6 +255,7 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 
 /* vmkernel (ESX) */
 #define STR_OS_VMKERNEL            "vmkernel"
+#define STR_OS_ARM_VMKERNEL        "arm-vmkernel"
 
 /* Linux */
 #define STR_OS_AMAZON_LINUX        "amazonlinux"
@@ -260,6 +271,7 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 #define STR_OS_COBALT              "Cobalt"
 #define STR_OS_CONECTIVA           "Conectiva"
 #define STR_OS_DEBIAN              "debian"
+#define STR_OS_ARM_DEBIAN          "arm-debian"
 #define STR_OS_FEDORA              "Fedora"
 #define STR_OS_FLATCAR             "flatcar"
 #define STR_OS_GENTOO              "Gentoo"
@@ -276,8 +288,14 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 #define STR_OS_NOVELL             "nld9"
 #define STR_OS_NOVELL_FULL        "Novell Linux Desktop 9"
 #define STR_OS_ORACLE             "oraclelinux"
-#define STR_OS_OTHER              "otherlinux"
-#define STR_OS_OTHER_FULL         "Other Linux"
+#define STR_OS_OTHER_LINUX        "otherlinux"
+#define STR_OS_OTHER_LINUX_FULL   "Other Linux"
+#define STR_OS_OTHER              "other"
+#define STR_OS_OTHER_FULL         "Other OSes"
+#define STR_OS_ARM_OTHER          "arm-other"
+#define STR_OS_ARM_OTHER_FULL     "Other OSes Arm"
+#define STR_OS_OTHER_LINUX        "otherlinux"
+#define STR_OS_OTHER_LINUXFULL    "Other Linux"
 #define STR_OS_OTHER_24           "other24xlinux"
 #define STR_OS_OTHER_24_FULL      "Other Linux 2.4.x kernel"
 #define STR_OS_OTHER_26           "other26xlinux"
@@ -288,7 +306,10 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 #define STR_OS_OTHER_4X_FULL      "Other Linux 4.x"
 #define STR_OS_OTHER_5X           "other5xlinux"
 #define STR_OS_OTHER_5X_FULL      "Other Linux 5.x and later kernel"
+#define STR_OS_ARM_OTHER_5X       "arm-other5xlinux"
+#define STR_OS_ARM_OTHER_5X_FULL  "Other Linux 5.x and later kernel Arm"
 #define STR_OS_PHOTON             "vmware-photon"
+#define STR_OS_ARM_PHOTON         "arm-vmware-photon"
 #define STR_OS_PHOTON_FULL        "VMware Photon OS"
 #define STR_OS_PLD                "PLD"
 #define STR_OS_RED_HAT            "redhat"
@@ -306,6 +327,7 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 #define STR_OS_TURBO              "turbolinux"
 #define STR_OS_TURBO_FULL         "Turbolinux"
 #define STR_OS_UBUNTU             "ubuntu"
+#define STR_OS_ARM_UBUNTU         "arm-ubuntu"
 #define STR_OS_ULTRAPENGUIN       "UltraPenguin"
 #define STR_OS_UNITEDLINUX        "UnitedLinux"
 #define STR_OS_VALINUX            "VALinux"
@@ -487,13 +509,14 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 /*
  * Windows 10
  *
- * Microsoft renamed Windows 9 to Windows 10; Windows 9 was never released.
- * So as to not invalidate any existing VMs or released software we retain
- * the Windows 9 identifier strings as Windows 10.
+ * Microsoft renamed Windows 9 to Windows 10 at the last minute; Windows 9 was
+ * never officially released. We retain the Windows 9 identifier strings as
+ * Windows 10 to ensure that things continue to work.
  */
 
-#define STR_OS_WIN_TEN           "windows9"
-#define STR_OS_WIN_TEN_X64       "windows9-64"
+#define STR_OS_WINTEN        "windows9"
+#define STR_OS_WINTEN_X64    "windows9-64"
+#define STR_OS_ARM_WIN       "arm-windows"
 
 #define STR_OS_WIN_TEN_GENERIC_FULL        "Windows 10"
 #define STR_OS_WIN_10_HOME_FULL            "Windows 10 Home"
@@ -541,10 +564,8 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
 #define STR_OS_WIN_64_BIT_EXTENSION ", 64-bit"
 
 /* FreeBSD */
-#define STR_OS_FREEBSD   "freeBSD"
-#define STR_OS_FREEBSD11 "freeBSD11"
-#define STR_OS_FREEBSD12 "freeBSD12"
-#define STR_OS_FREEBSD13 "freeBSD13"
+#define STR_OS_FREEBSD      "freeBSD"
+#define STR_OS_ARM_FREEBSD  "arm-freeBSD"
 
 /* Solaris */
 #define STR_OS_SOLARIS "solaris"
index 345b1b04e4a762d2ce65f98f4636efd97dd51760..85594893a43885f5f6aa9e556807500bebd2b0e6 100644 (file)
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 1998-2020 VMware, Inc. All rights reserved.
+ * Copyright (C) 1998-2021 VMware, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as published
 extern "C" {
 #endif
 
+/*
+ * Unless explicitly specified (i.e. _ARM_), all guests are assumed to be
+ * Intel architecture.
+ */
+
 #define GUEST_OS_TYPE_GEN                                                  \
    GOT(GUEST_OS_ANY)                                                       \
    GOT(GUEST_OS_DOS)                                                       \
@@ -45,38 +50,44 @@ extern "C" {
    GOT(GUEST_OS_LONGHORN_64)                                               \
    GOT(GUEST_OS_WINVISTA)                                                  \
    GOT(GUEST_OS_WINVISTA_64)                                               \
-   GOT(GUEST_OS_WINSEVEN)          /* Windows 7 */                         \
-   GOT(GUEST_OS_WINSEVEN_64)       /* Windows 7 */                         \
-   GOT(GUEST_OS_WIN2008R2_64)      /* Server 2008 R2 */                    \
-   GOT(GUEST_OS_WINEIGHT)          /* Windows 8 */                         \
-   GOT(GUEST_OS_WINEIGHT_64)       /* Windows 8 x64 */                     \
-   GOT(GUEST_OS_WINEIGHTSERVER_64) /* Windows 8 Server X64 */              \
-   GOT(GUEST_OS_WINTEN)            /* Windows 10 */                        \
-   GOT(GUEST_OS_WINTEN_64)         /* Windows 10 x64 */                    \
-   GOT(GUEST_OS_WIN_2016SRV_64)    /* Windows Server 2016 X64 */           \
-   GOT(GUEST_OS_WIN_2019SRV_64)    /* Windows Server 2019 X64 */           \
-   GOT(GUEST_OS_WIN_2022SRV_64)    /* Windows Server 2022 X64 */           \
-   GOT(GUEST_OS_HYPER_V)           /* Microsoft Hyper-V */                 \
+   GOT(GUEST_OS_WINSEVEN)            /* Windows 7 32-bit */                \
+   GOT(GUEST_OS_WINSEVEN_64)         /* Windows 7 64-bit */                \
+   GOT(GUEST_OS_WIN2008R2_64)        /* Server 2008 R2 64-bit */           \
+   GOT(GUEST_OS_WINEIGHT)            /* Windows 8 32-bit */                \
+   GOT(GUEST_OS_WINEIGHT_64)         /* Windows 8 64-bit */                \
+   GOT(GUEST_OS_WINEIGHTSERVER_64)   /* Windows 8 Server 64-bit */         \
+   GOT(GUEST_OS_WINTEN)              /* Windows 10 32-bit */               \
+   GOT(GUEST_OS_WINTEN_64)           /* Windows 10 64-bit */               \
+   GOT(GUEST_OS_ARM_WINTEN_64)       /* Windows 10 Arm 64-bit */           \
+   GOT(GUEST_OS_WIN_2016SRV_64)      /* Windows Server 2016 64-bit */      \
+   GOT(GUEST_OS_WIN_2019SRV_64)      /* Windows Server 2019 64-bit */      \
+   GOT(GUEST_OS_WIN_2022SRV_64)      /* Windows Server 2022 64-bit */      \
+   GOT(GUEST_OS_HYPER_V)             /* Microsoft Hyper-V */               \
    GOT(GUEST_OS_OS2)                                                       \
-   GOT(GUEST_OS_ECOMSTATION)       /* OS/2 variant; 1.x */                 \
-   GOT(GUEST_OS_ECOMSTATION2)      /* OS/2 variant; 2.x */                 \
+   GOT(GUEST_OS_ECOMSTATION)         /* OS/2 variant; 1.x */               \
+   GOT(GUEST_OS_ECOMSTATION2)        /* OS/2 variant; 2.x */               \
    GOT(GUEST_OS_OTHERLINUX)                                                \
    GOT(GUEST_OS_OTHERLINUX_64)                                             \
    GOT(GUEST_OS_OTHER24XLINUX)                                             \
    GOT(GUEST_OS_OTHER24XLINUX_64)                                          \
    GOT(GUEST_OS_OTHER26XLINUX)                                             \
    GOT(GUEST_OS_OTHER26XLINUX_64)                                          \
-   GOT(GUEST_OS_OTHER3XLINUX)      /* Linux 3.x */                         \
-   GOT(GUEST_OS_OTHER3XLINUX_64)   /* Linux 3.x X64 */                     \
-   GOT(GUEST_OS_OTHER4XLINUX)      /* Linux 4.x */                         \
-   GOT(GUEST_OS_OTHER4XLINUX_64)   /* Linux 4.x X64 */                     \
-   GOT(GUEST_OS_OTHER5XLINUX)      /* Linux 5.x and later */               \
-   GOT(GUEST_OS_OTHER5XLINUX_64)   /* Linux 5.x and later X64 */           \
+   GOT(GUEST_OS_OTHER3XLINUX)        /* Linux 3.x 32-bit */                \
+   GOT(GUEST_OS_OTHER3XLINUX_64)     /* Linux 3.x 64-bit */                \
+   GOT(GUEST_OS_OTHER4XLINUX)        /* Linux 4.x 32-bit */                \
+   GOT(GUEST_OS_OTHER4XLINUX_64)     /* Linux 4.x 64-bit  */               \
+   GOT(GUEST_OS_OTHER5XLINUX)        /* Linux 5.x and later 32-bit */      \
+   GOT(GUEST_OS_OTHER5XLINUX_64)     /* Linux 5.x and later 64-bit */      \
+   GOT(GUEST_OS_ARM_OTHER5XLINUX_64) /* Linux 5.x and later Arm 64-bit */  \
    GOT(GUEST_OS_OTHER)                                                     \
-   GOT(GUEST_OS_OTHER_64)                                                  \
+   GOT(GUEST_OS_OTHER_64)            /* Other 64-bit */                    \
+   GOT(GUEST_OS_ARM_OTHER_64)        /* Other Arm 64-bit */                \
    GOT(GUEST_OS_UBUNTU)                                                    \
+   GOT(GUEST_OS_UBUNTU_64)                                                 \
+   GOT(GUEST_OS_ARM_UBUNTU_64)                                             \
    GOT(GUEST_OS_DEBIAN)                                                    \
    GOT(GUEST_OS_DEBIAN_64)                                                 \
+   GOT(GUEST_OS_ARM_DEBIAN_64)                                             \
    GOT(GUEST_OS_RHEL)                                                      \
    GOT(GUEST_OS_RHEL_64)                                                   \
    GOT(GUEST_OS_FREEBSD)                                                   \
@@ -87,39 +98,45 @@ extern "C" {
    GOT(GUEST_OS_FREEBSD12_64)                                              \
    GOT(GUEST_OS_FREEBSD13)                                                 \
    GOT(GUEST_OS_FREEBSD13_64)                                              \
+   GOT(GUEST_OS_FREEBSD14)                                                 \
+   GOT(GUEST_OS_FREEBSD14_64)                                              \
+   GOT(GUEST_OS_ARM_FREEBSD13_64)                                          \
+   GOT(GUEST_OS_ARM_FREEBSD14_64)                                          \
    GOT(GUEST_OS_SOLARIS_6_AND_7)                                           \
    GOT(GUEST_OS_SOLARIS8)                                                  \
    GOT(GUEST_OS_SOLARIS9)                                                  \
    GOT(GUEST_OS_SOLARIS10)                                                 \
    GOT(GUEST_OS_SOLARIS10_64)                                              \
    GOT(GUEST_OS_SOLARIS11_64)                                              \
-   GOT(GUEST_OS_DARWIN9)           /* Mac OS 10.5 */                       \
+   GOT(GUEST_OS_DARWIN9)             /* Mac OS 10.5 */                     \
    GOT(GUEST_OS_DARWIN9_64)                                                \
-   GOT(GUEST_OS_DARWIN10)          /* Mac OS 10.6 */                       \
+   GOT(GUEST_OS_DARWIN10)            /* Mac OS 10.6 */                     \
    GOT(GUEST_OS_DARWIN10_64)                                               \
-   GOT(GUEST_OS_DARWIN11)          /* Mac OS 10.7 */                       \
+   GOT(GUEST_OS_DARWIN11)            /* Mac OS 10.7 */                     \
    GOT(GUEST_OS_DARWIN11_64)                                               \
-   GOT(GUEST_OS_DARWIN12_64)       /* Mac OS 10.8 */                       \
-   GOT(GUEST_OS_DARWIN13_64)       /* Mac OS 10.9 */                       \
-   GOT(GUEST_OS_DARWIN14_64)       /* Mac OS 10.10 */                      \
-   GOT(GUEST_OS_DARWIN15_64)       /* Mac OS 10.11 */                      \
-   GOT(GUEST_OS_DARWIN16_64)       /* Mac OS 10.12 */                      \
-   GOT(GUEST_OS_DARWIN17_64)       /* Mac OS 10.13 */                      \
-   GOT(GUEST_OS_DARWIN18_64)       /* Mac OS 10.14 */                      \
-   GOT(GUEST_OS_DARWIN19_64)       /* Mac OS 10.15 */                      \
-   GOT(GUEST_OS_DARWIN20_64)       /* Mac OS 11 */                         \
-   GOT(GUEST_OS_DARWIN21_64)       /* Mac OS 12 */                         \
+   GOT(GUEST_OS_DARWIN12_64)         /* Mac OS 10.8 */                     \
+   GOT(GUEST_OS_DARWIN13_64)         /* Mac OS 10.9 */                     \
+   GOT(GUEST_OS_DARWIN14_64)         /* Mac OS 10.10 */                    \
+   GOT(GUEST_OS_DARWIN15_64)         /* Mac OS 10.11 */                    \
+   GOT(GUEST_OS_DARWIN16_64)         /* Mac OS 10.12 */                    \
+   GOT(GUEST_OS_DARWIN17_64)         /* Mac OS 10.13 */                    \
+   GOT(GUEST_OS_DARWIN18_64)         /* Mac OS 10.14 */                    \
+   GOT(GUEST_OS_DARWIN19_64)         /* Mac OS 10.15 */                    \
+   GOT(GUEST_OS_DARWIN20_64)         /* Mac OS 11 */                       \
+   GOT(GUEST_OS_DARWIN21_64)         /* Mac OS 12 */                       \
    GOT(GUEST_OS_OPENSERVER_5_AND_6)                                        \
    GOT(GUEST_OS_UNIXWARE7)                                                 \
    GOT(GUEST_OS_NETWARE4)                                                  \
    GOT(GUEST_OS_NETWARE5)                                                  \
    GOT(GUEST_OS_NETWARE6)                                                  \
-   GOT(GUEST_OS_VMKERNEL)          /* ESX 4.x */                           \
-   GOT(GUEST_OS_VMKERNEL5)         /* ESX 5.x */                           \
-   GOT(GUEST_OS_VMKERNEL6)         /* ESX 6 */                             \
-   GOT(GUEST_OS_VMKERNEL65)        /* ESX 6.5 */                           \
-   GOT(GUEST_OS_VMKERNEL7)         /* ESX 7 and later */                   \
-   GOT(GUEST_OS_PHOTON_64)         /* VMware Photon IA 64-bit */           \
+   GOT(GUEST_OS_VMKERNEL)            /* ESX 4.x 64-bit */                  \
+   GOT(GUEST_OS_VMKERNEL5)           /* ESX 5.x 64-bit */                  \
+   GOT(GUEST_OS_VMKERNEL6)           /* ESX 6 64-bit */                    \
+   GOT(GUEST_OS_VMKERNEL65)          /* ESX 6.5 and 6.7 64-bit */          \
+   GOT(GUEST_OS_VMKERNEL7)           /* ESX 7 and later 64-bit */          \
+   GOT(GUEST_OS_ARM_VMKERNEL7)       /* ESX 7 and later Arm 64-bit */      \
+   GOT(GUEST_OS_PHOTON_64)           /* VMware Photon 64-bit */            \
+   GOT(GUEST_OS_ARM_PHOTON_64)       /* VMware Photon Arm 64-bit */        \
    GOT(GUEST_OS_ORACLE)                                                    \
    GOT(GUEST_OS_ORACLE_64)                                                 \
    GOT(GUEST_OS_ORACLE6)                                                   \