VirtualBox

Changeset 76165 in vbox


Ignore:
Timestamp:
Dec 11, 2018 4:37:21 PM (6 years ago)
Author:
vboxsync
Message:

Main/Global.cpp: Split out status code conversion functions into a separate file.

Location:
trunk/src/VBox/Main
Files:
2 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/Makefile.kmk

    r76092 r76165  
    427427        src-all/EventImpl.cpp \
    428428        src-all/Global.cpp \
     429        src-all/GlobalStatusConversion.cpp \
    429430        src-all/HashedPw.cpp \
    430431        src-all/Logging.cpp \
     
    851852        src-all/EventImpl.cpp \
    852853        src-all/Global.cpp \
     854        src-all/GlobalStatusConversion.cpp \
    853855        src-all/HashedPw.cpp \
    854856        src-all/Logging.cpp \
     
    995997        src-all/EventImpl.cpp \
    996998        src-all/Global.cpp \
     999        src-all/GlobalStatusConversion.cpp \
    9971000        src-all/AutoCaller.cpp \
    9981001        src-all/ThreadTask.cpp \
  • trunk/src/VBox/Main/src-all/Global.cpp

    r75834 r76165  
    685685}
    686686
    687 /*static*/ int
    688 Global::vboxStatusCodeFromCOM(HRESULT aComStatus)
    689 {
    690     switch (aComStatus)
    691     {
    692         case S_OK:                              return VINF_SUCCESS;
    693 
    694         /* Standard COM status codes. See also RTErrConvertFromDarwinCOM */
    695         case E_UNEXPECTED:                      return VERR_COM_UNEXPECTED;
    696         case E_NOTIMPL:                         return VERR_NOT_IMPLEMENTED;
    697         case E_OUTOFMEMORY:                     return VERR_NO_MEMORY;
    698         case E_INVALIDARG:                      return VERR_INVALID_PARAMETER;
    699         case E_NOINTERFACE:                     return VERR_NOT_SUPPORTED;
    700         case E_POINTER:                         return VERR_INVALID_POINTER;
    701 #ifdef E_HANDLE
    702         case E_HANDLE:                          return VERR_INVALID_HANDLE;
    703 #endif
    704         case E_ABORT:                           return VERR_CANCELLED;
    705         case E_FAIL:                            return VERR_GENERAL_FAILURE;
    706         case E_ACCESSDENIED:                    return VERR_ACCESS_DENIED;
    707 
    708         /* VirtualBox status codes */
    709         case VBOX_E_OBJECT_NOT_FOUND:           return VERR_COM_OBJECT_NOT_FOUND;
    710         case VBOX_E_INVALID_VM_STATE:           return VERR_COM_INVALID_VM_STATE;
    711         case VBOX_E_VM_ERROR:                   return VERR_COM_VM_ERROR;
    712         case VBOX_E_FILE_ERROR:                 return VERR_COM_FILE_ERROR;
    713         case VBOX_E_IPRT_ERROR:                 return VERR_COM_IPRT_ERROR;
    714         case VBOX_E_PDM_ERROR:                  return VERR_COM_PDM_ERROR;
    715         case VBOX_E_INVALID_OBJECT_STATE:       return VERR_COM_INVALID_OBJECT_STATE;
    716         case VBOX_E_HOST_ERROR:                 return VERR_COM_HOST_ERROR;
    717         case VBOX_E_NOT_SUPPORTED:              return VERR_COM_NOT_SUPPORTED;
    718         case VBOX_E_XML_ERROR:                  return VERR_COM_XML_ERROR;
    719         case VBOX_E_INVALID_SESSION_STATE:      return VERR_COM_INVALID_SESSION_STATE;
    720         case VBOX_E_OBJECT_IN_USE:              return VERR_COM_OBJECT_IN_USE;
    721 
    722         default:
    723             if (SUCCEEDED(aComStatus))
    724                 return VINF_SUCCESS;
    725             /** @todo Check for the win32 facility and use the
    726              *        RTErrConvertFromWin32 function on windows. */
    727             return VERR_UNRESOLVED_ERROR;
    728     }
    729 }
    730 
    731 
    732 /*static*/ HRESULT
    733 Global::vboxStatusCodeToCOM(int aVBoxStatus)
    734 {
    735     switch (aVBoxStatus)
    736     {
    737         case VINF_SUCCESS:                      return S_OK;
    738 
    739         /* Standard COM status codes. */
    740         case VERR_COM_UNEXPECTED:               return E_UNEXPECTED;
    741         case VERR_NOT_IMPLEMENTED:              return E_NOTIMPL;
    742         case VERR_NO_MEMORY:                    return E_OUTOFMEMORY;
    743         case VERR_INVALID_PARAMETER:            return E_INVALIDARG;
    744         case VERR_NOT_SUPPORTED:                return E_NOINTERFACE;
    745         case VERR_INVALID_POINTER:              return E_POINTER;
    746 #ifdef E_HANDLE
    747         case VERR_INVALID_HANDLE:               return E_HANDLE;
    748 #endif
    749         case VERR_CANCELLED:                    return E_ABORT;
    750         case VERR_GENERAL_FAILURE:              return E_FAIL;
    751         case VERR_ACCESS_DENIED:                return E_ACCESSDENIED;
    752 
    753         /* VirtualBox COM status codes. */
    754         case VERR_COM_OBJECT_NOT_FOUND:         return VBOX_E_OBJECT_NOT_FOUND;
    755         case VERR_COM_INVALID_VM_STATE:         return VBOX_E_INVALID_VM_STATE;
    756         case VERR_COM_VM_ERROR:                 return VBOX_E_VM_ERROR;
    757         case VERR_COM_FILE_ERROR:               return VBOX_E_FILE_ERROR;
    758         case VERR_COM_IPRT_ERROR:               return VBOX_E_IPRT_ERROR;
    759         case VERR_COM_PDM_ERROR:                return VBOX_E_PDM_ERROR;
    760         case VERR_COM_INVALID_OBJECT_STATE:     return VBOX_E_INVALID_OBJECT_STATE;
    761         case VERR_COM_HOST_ERROR:               return VBOX_E_HOST_ERROR;
    762         case VERR_COM_NOT_SUPPORTED:            return VBOX_E_NOT_SUPPORTED;
    763         case VERR_COM_XML_ERROR:                return VBOX_E_XML_ERROR;
    764         case VERR_COM_INVALID_SESSION_STATE:    return VBOX_E_INVALID_SESSION_STATE;
    765         case VERR_COM_OBJECT_IN_USE:            return VBOX_E_OBJECT_IN_USE;
    766 
    767         /* Other errors. */
    768         case VERR_UNRESOLVED_ERROR:             return E_FAIL;
    769         case VERR_NOT_EQUAL:                    return VBOX_E_FILE_ERROR;
    770         case VERR_FILE_NOT_FOUND:               return VBOX_E_OBJECT_NOT_FOUND;
    771 
    772         /* Guest Control errors. */
    773         case VERR_GSTCTL_MAX_OBJECTS_REACHED:   return VBOX_E_MAXIMUM_REACHED;
    774         case VERR_GSTCTL_GUEST_ERROR:           return VBOX_E_GSTCTL_GUEST_ERROR;
    775 
    776         default:
    777             AssertMsgFailed(("%Rrc\n", aVBoxStatus));
    778             if (RT_SUCCESS(aVBoxStatus))
    779                 return S_OK;
    780 
    781             /* try categorize it */
    782             if (   aVBoxStatus < 0
    783                 && (   aVBoxStatus > -1000
    784                     || (aVBoxStatus < -22000 && aVBoxStatus > -32766) )
    785                )
    786                 return VBOX_E_IPRT_ERROR;
    787             if (    aVBoxStatus <  VERR_PDM_NO_SUCH_LUN / 100 * 10
    788                 &&  aVBoxStatus >  VERR_PDM_NO_SUCH_LUN / 100 * 10 - 100)
    789                 return VBOX_E_PDM_ERROR;
    790             if (    aVBoxStatus <= -1000
    791                 &&  aVBoxStatus >  -5000 /* wrong, but so what... */)
    792                 return VBOX_E_VM_ERROR;
    793 
    794             return E_FAIL;
    795     }
    796 }
    797 
    798687/* vi: set tabstop=4 shiftwidth=4 expandtab: */
  • trunk/src/VBox/Main/src-all/GlobalStatusConversion.cpp

    r76159 r76165  
    11/* $Id$ */
    22/** @file
    3  * VirtualBox COM global definitions
     3 * VirtualBox COM global definitions - status code conversion.
    44 *
    55 * NOTE: This file is part of both VBoxC.dll and VBoxSVC.exe.
     
    2121
    2222#include <iprt/assert.h>
    23 #include <iprt/string.h>
    2423#include <VBox/err.h>
    2524
    26 /* static */
    27 const Global::OSType Global::sOSTypes[] =
    28 {
    29     /* NOTE1: we assume that unknown is always the first two entries!
    30      * NOTE2: please use powers of 2 when specifying the size of harddisks since
    31      *        '2GB' looks better than '1.95GB' (= 2000MB) */
    32     { "Other",   "Other",             "Other",              "Other/Unknown",
    33       VBOXOSTYPE_Unknown,         VBOXOSHINT_NONE,
    34         64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    35       StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
    36 
    37     { "Other",   "Other",             "Other_64",           "Other/Unknown (64-bit)",
    38       VBOXOSTYPE_Unknown_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
    39         64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    40       StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
    41 
    42     { "Windows", "Microsoft Windows", "Windows31",          "Windows 3.1",
    43       VBOXOSTYPE_Win31,           VBOXOSHINT_FLOPPY,
    44         32,   4,  1 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    45         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    46 
    47     { "Windows", "Microsoft Windows", "Windows95",          "Windows 95",
    48       VBOXOSTYPE_Win95,           VBOXOSHINT_FLOPPY,
    49         64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    50         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    51 
    52     { "Windows", "Microsoft Windows", "Windows98",          "Windows 98",
    53       VBOXOSTYPE_Win98,           VBOXOSHINT_FLOPPY,
    54         64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    55         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    56 
    57     { "Windows", "Microsoft Windows", "WindowsMe",          "Windows ME",
    58       VBOXOSTYPE_WinMe,           VBOXOSHINT_FLOPPY | VBOXOSHINT_USBTABLET,
    59         128,  4,  4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    60         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    61 
    62     { "Windows", "Microsoft Windows", "WindowsNT3x",        "Windows NT 3.x",
    63        VBOXOSTYPE_WinNT3x,       VBOXOSHINT_NOUSB | VBOXOSHINT_FLOPPY,
    64        64,    8,  _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_BusLogic, StorageBus_SCSI,
    65         StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    66 
    67     { "Windows", "Microsoft Windows", "WindowsNT4",         "Windows NT 4",
    68       VBOXOSTYPE_WinNT4,          VBOXOSHINT_NOUSB,
    69        128,  16,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    70         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    71 
    72     { "Windows", "Microsoft Windows", "Windows2000",        "Windows 2000",
    73       VBOXOSTYPE_Win2k,            VBOXOSHINT_USBTABLET,
    74        168,  16,  4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    75         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    76 
    77     { "Windows", "Microsoft Windows", "WindowsXP",          "Windows XP (32-bit)",
    78       VBOXOSTYPE_WinXP,            VBOXOSHINT_USBTABLET,
    79        192,  16, 10 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82543GC, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    80         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    81 
    82     { "Windows", "Microsoft Windows", "WindowsXP_64",       "Windows XP (64-bit)",
    83       VBOXOSTYPE_WinXP_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    84        512,  16, 10 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    85         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    86 
    87     { "Windows", "Microsoft Windows", "Windows2003",        "Windows 2003 (32-bit)",
    88       VBOXOSTYPE_Win2k3,           VBOXOSHINT_USBTABLET,
    89        512,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82543GC, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    90         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    91 
    92     { "Windows", "Microsoft Windows", "Windows2003_64",     "Windows 2003 (64-bit)",
    93       VBOXOSTYPE_Win2k3_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    94        512,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    95         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    96 
    97     { "Windows", "Microsoft Windows", "WindowsVista",       "Windows Vista (32-bit)",
    98       VBOXOSTYPE_WinVista,         VBOXOSHINT_USBTABLET,
    99        512,  16, 25 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    100         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    101 
    102     { "Windows", "Microsoft Windows", "WindowsVista_64",    "Windows Vista (64-bit)",
    103       VBOXOSTYPE_WinVista_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    104        512,  16, 25 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    105         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    106 
    107     { "Windows", "Microsoft Windows", "Windows2008",        "Windows 2008 (32-bit)",
    108       VBOXOSTYPE_Win2k8,           VBOXOSHINT_USBTABLET,
    109        1024, 16, 32 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    110         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    111 
    112     { "Windows", "Microsoft Windows", "Windows2008_64",     "Windows 2008 (64-bit)",
    113       VBOXOSTYPE_Win2k8_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    114        2048, 16, 32 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    115         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    116 
    117     { "Windows", "Microsoft Windows", "Windows7",           "Windows 7 (32-bit)",
    118       VBOXOSTYPE_Win7,             VBOXOSHINT_USBTABLET,
    119        1024, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    120         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    121 
    122     { "Windows", "Microsoft Windows", "Windows7_64",        "Windows 7 (64-bit)",
    123       VBOXOSTYPE_Win7_x64,        VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    124        2048, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    125         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    126 
    127     { "Windows", "Microsoft Windows", "Windows8",           "Windows 8 (32-bit)",
    128       VBOXOSTYPE_Win8,             VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
    129        1024,128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    130         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    131 
    132     { "Windows", "Microsoft Windows", "Windows8_64",        "Windows 8 (64-bit)",
    133       VBOXOSTYPE_Win8_x64,        VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    134        2048,128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    135         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    136 
    137     { "Windows", "Microsoft Windows", "Windows81",          "Windows 8.1 (32-bit)",
    138       VBOXOSTYPE_Win81,            VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
    139        1024,128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    140         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    141 
    142     { "Windows", "Microsoft Windows", "Windows81_64",       "Windows 8.1 (64-bit)",
    143       VBOXOSTYPE_Win81_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    144        2048,128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    145         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    146 
    147     { "Windows", "Microsoft Windows", "Windows2012_64",     "Windows 2012 (64-bit)",
    148       VBOXOSTYPE_Win2k12_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    149        2048,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    150         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    151 
    152     { "Windows", "Microsoft Windows", "Windows10",          "Windows 10 (32-bit)",
    153       VBOXOSTYPE_Win10,            VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
    154        1024,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    155         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    156 
    157     { "Windows", "Microsoft Windows", "Windows10_64",       "Windows 10 (64-bit)",
    158       VBOXOSTYPE_Win10_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    159        2048,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    160         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    161 
    162     { "Windows", "Microsoft Windows", "Windows2016_64",     "Windows 2016 (64-bit)",
    163       VBOXOSTYPE_Win2k16_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    164        2048,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    165         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    166 
    167 #if 0
    168     { "Windows", "Microsoft Windows", "Windows2019_64",     "Windows 2019 (64-bit)",
    169       VBOXOSTYPE_Win2k16_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    170        2048,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    171         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    172 #endif
    173 
    174     { "Windows", "Microsoft Windows", "WindowsNT",          "Other Windows (32-bit)",
    175       VBOXOSTYPE_WinNT,           VBOXOSHINT_NONE,
    176        512,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    177         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    178 
    179     { "Windows", "Microsoft Windows", "WindowsNT_64",       "Other Windows (64-bit)",
    180       VBOXOSTYPE_WinNT_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    181        512,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    182         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    183 
    184     { "Linux",   "Linux",             "Linux22",            "Linux 2.2",
    185       VBOXOSTYPE_Linux22,         VBOXOSHINT_RTCUTC,
    186         64,   4,  2 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    187         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    188 
    189     { "Linux",   "Linux",             "Linux24",            "Linux 2.4 (32-bit)",
    190       VBOXOSTYPE_Linux24,         VBOXOSHINT_RTCUTC,
    191        128,  16,  4 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    192         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    193 
    194     { "Linux",   "Linux",             "Linux24_64",         "Linux 2.4 (64-bit)",
    195       VBOXOSTYPE_Linux24_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
    196        128,  16,  4 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    197         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    198 
    199     { "Linux",   "Linux",             "Linux26",            "Linux 2.6 / 3.x / 4.x (32-bit)",
    200       VBOXOSTYPE_Linux26,         VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    201        512,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    202         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    203 
    204     { "Linux",   "Linux",             "Linux26_64",         "Linux 2.6 / 3.x / 4.x (64-bit)",
    205       VBOXOSTYPE_Linux26_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    206                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    207       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    208         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    209 
    210     { "Linux",   "Linux",             "ArchLinux",          "Arch Linux (32-bit)",
    211       VBOXOSTYPE_ArchLinux,       VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    212       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    213         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    214 
    215     { "Linux",   "Linux",             "ArchLinux_64",       "Arch Linux (64-bit)",
    216       VBOXOSTYPE_ArchLinux_x64,   VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    217                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    218       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    219         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    220 
    221     { "Linux",   "Linux",             "Debian",             "Debian (32-bit)",
    222       VBOXOSTYPE_Debian,          VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    223       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    224         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    225 
    226     { "Linux",   "Linux",             "Debian_64",          "Debian (64-bit)",
    227       VBOXOSTYPE_Debian_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    228                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    229       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    230         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980},
    231 
    232     { "Linux",   "Linux",             "Fedora",             "Fedora (32-bit)",
    233       VBOXOSTYPE_FedoraCore,      VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    234       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    235         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    236 
    237     { "Linux",   "Linux",             "Fedora_64",          "Fedora (64-bit)",
    238       VBOXOSTYPE_FedoraCore_x64,  VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    239                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    240       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    241         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    242 
    243     { "Linux",   "Linux",             "Gentoo",             "Gentoo (32-bit)",
    244       VBOXOSTYPE_Gentoo,          VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    245       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    246         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    247 
    248     { "Linux",   "Linux",             "Gentoo_64",          "Gentoo (64-bit)",
    249       VBOXOSTYPE_Gentoo_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    250                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    251       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    252         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    253 
    254     { "Linux",   "Linux",             "Mandriva",           "Mandriva (32-bit)",
    255       VBOXOSTYPE_Mandriva,        VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    256       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    257         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    258 
    259     { "Linux",   "Linux",             "Mandriva_64",        "Mandriva (64-bit)",
    260       VBOXOSTYPE_Mandriva_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    261                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    262       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    263         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    264 
    265     { "Linux",   "Linux",             "Oracle",             "Oracle (32-bit)",
    266       VBOXOSTYPE_Oracle,          VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_X2APIC,
    267       1024,  16, 12 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    268         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    269 
    270     { "Linux",   "Linux",             "Oracle_64",          "Oracle (64-bit)",
    271       VBOXOSTYPE_Oracle_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    272                                 | VBOXOSHINT_X2APIC,
    273       1024,  16, 12 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    274         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    275 
    276     { "Linux",   "Linux",             "RedHat",             "Red Hat (32-bit)",
    277       VBOXOSTYPE_RedHat,          VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_X2APIC,
    278       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    279         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    280 
    281     { "Linux",   "Linux",             "RedHat_64",          "Red Hat (64-bit)",
    282       VBOXOSTYPE_RedHat_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    283                                 | VBOXOSHINT_X2APIC,
    284       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    285         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    286 
    287     { "Linux",   "Linux",             "OpenSUSE",           "openSUSE (32-bit)",
    288       VBOXOSTYPE_OpenSUSE,        VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    289       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    290         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    291 
    292     { "Linux",   "Linux",             "OpenSUSE_64",        "openSUSE (64-bit)",
    293       VBOXOSTYPE_OpenSUSE_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    294                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    295       1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    296         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    297 
    298     { "Linux",   "Linux",             "Turbolinux",         "Turbolinux (32-bit)",
    299       VBOXOSTYPE_Turbolinux,      VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    300        384,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    301         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    302 
    303     { "Linux",   "Linux",             "Turbolinux_64",      "Turbolinux (64-bit)",
    304       VBOXOSTYPE_Turbolinux_x64,  VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    305                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    306        384,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    307         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    308 
    309     { "Linux",   "Linux",             "Ubuntu",             "Ubuntu (32-bit)",
    310       VBOXOSTYPE_Ubuntu,          VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    311       1024,  16, 10 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    312         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    313 
    314     { "Linux",   "Linux",             "Ubuntu_64",          "Ubuntu (64-bit)",
    315       VBOXOSTYPE_Ubuntu_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
    316                                 | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    317       1024,  16, 10 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    318         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    319 
    320     { "Linux",   "Linux",             "Xandros",            "Xandros (32-bit)",
    321       VBOXOSTYPE_Xandros,         VBOXOSHINT_RTCUTC | VBOXOSHINT_X2APIC,
    322        256,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    323         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    324 
    325     { "Linux",   "Linux",             "Xandros_64",         "Xandros (64-bit)",
    326       VBOXOSTYPE_Xandros_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_X2APIC,
    327        256,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    328         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    329 
    330     { "Linux",   "Linux",             "Linux",              "Other Linux (32-bit)",
    331       VBOXOSTYPE_Linux,           VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    332        256,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    333         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
    334 
    335     { "Linux",   "Linux",             "Linux_64",           "Other Linux (64-bit)",
    336       VBOXOSTYPE_Linux_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC
    337                                 | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    338        512,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    339         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    340 
    341     { "Solaris", "Solaris",           "Solaris",            "Oracle Solaris 10 5/09 and earlier (32-bit)",
    342       VBOXOSTYPE_Solaris,         VBOXOSHINT_NONE,
    343        768,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    344         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    345 
    346     { "Solaris", "Solaris",           "Solaris_64",         "Oracle Solaris 10 5/09 and earlier (64-bit)",
    347       VBOXOSTYPE_Solaris_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
    348       1536,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    349         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    350 
    351     { "Solaris", "Solaris",           "OpenSolaris",        "Oracle Solaris 10 10/09 and later (32-bit)",
    352       VBOXOSTYPE_OpenSolaris,     VBOXOSHINT_USBTABLET,
    353        768,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    354         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    355 
    356     { "Solaris", "Solaris",           "OpenSolaris_64",     "Oracle Solaris 10 10/09 and later (64-bit)",
    357       VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    358       1536,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    359         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    360 
    361     { "Solaris", "Solaris",           "Solaris11_64",       "Oracle Solaris 11 (64-bit)",
    362       VBOXOSTYPE_Solaris11_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_RTCUTC,
    363       1536,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    364         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    365 
    366     { "BSD",     "BSD",               "FreeBSD",            "FreeBSD (32-bit)",
    367       VBOXOSTYPE_FreeBSD,         VBOXOSHINT_NONE,
    368       1024,  16,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    369         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    370 
    371     { "BSD",     "BSD",               "FreeBSD_64",         "FreeBSD (64-bit)",
    372       VBOXOSTYPE_FreeBSD_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
    373       1024,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    374         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    375 
    376     { "BSD",     "BSD",               "OpenBSD",            "OpenBSD (32-bit)",
    377       VBOXOSTYPE_OpenBSD,         VBOXOSHINT_HWVIRTEX,
    378       1024,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    379         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    380 
    381     { "BSD",     "BSD",               "OpenBSD_64",         "OpenBSD (64-bit)",
    382       VBOXOSTYPE_OpenBSD_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
    383       1024,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    384         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    385 
    386     { "BSD",     "BSD",               "NetBSD",             "NetBSD (32-bit)",
    387       VBOXOSTYPE_NetBSD,          VBOXOSHINT_RTCUTC,
    388       1024,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    389         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    390 
    391     { "BSD",     "BSD",               "NetBSD_64",          "NetBSD (64-bit)",
    392       VBOXOSTYPE_NetBSD_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
    393       1024,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    394         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    395 
    396     { "OS2",     "IBM OS/2",          "OS2Warp3",           "OS/2 Warp 3",
    397       VBOXOSTYPE_OS2Warp3,        VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
    398         48,   4,  1 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    399         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    400 
    401     { "OS2",     "IBM OS/2",          "OS2Warp4",           "OS/2 Warp 4",
    402       VBOXOSTYPE_OS2Warp4,        VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
    403         64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    404         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    405 
    406     { "OS2",     "IBM OS/2",          "OS2Warp45",          "OS/2 Warp 4.5",
    407       VBOXOSTYPE_OS2Warp45,       VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
    408         128,  4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    409         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    410 
    411     { "OS2",     "IBM OS/2",          "OS2eCS",             "eComStation",
    412       VBOXOSTYPE_ECS,             VBOXOSHINT_HWVIRTEX,
    413         256,  4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    414         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    415 
    416     { "OS2",     "IBM OS/2",          "OS21x",              "OS/2 1.x",
    417       VBOXOSTYPE_OS21x,           VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB | VBOXOSHINT_TFRESET,
    418         8, 4, 500 * _1M, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    419         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    420 
    421     { "OS2",     "IBM OS/2",          "OS2",                "Other OS/2",
    422       VBOXOSTYPE_OS2,             VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
    423         96,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    424         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    425 
    426     { "MacOS",   "Mac OS X",          "MacOS",              "Mac OS X (32-bit)",
    427       VBOXOSTYPE_MacOS,           VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE
    428                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    429       2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    430        StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    431       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    432 
    433     { "MacOS",   "Mac OS X",          "MacOS_64",           "Mac OS X (64-bit)",
    434       VBOXOSTYPE_MacOS_x64,       VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    435                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    436       2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    437       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    438       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    439 
    440     { "MacOS",   "Mac OS X",          "MacOS106",           "Mac OS X 10.6 Snow Leopard (32-bit)",
    441       VBOXOSTYPE_MacOS106,        VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE
    442                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    443       2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    444        StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    445       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    446 
    447     { "MacOS",   "Mac OS X",          "MacOS106_64",        "Mac OS X 10.6 Snow Leopard (64-bit)",
    448       VBOXOSTYPE_MacOS106_x64,    VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    449                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    450       2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    451       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    452       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    453 
    454     { "MacOS",   "Mac OS X",          "MacOS107_64",        "Mac OS X 10.7 Lion (64-bit)",
    455       VBOXOSTYPE_MacOS107_x64,    VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    456                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    457       2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    458       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    459       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    460     { "MacOS",   "Mac OS X",          "MacOS108_64",        "Mac OS X 10.8 Mountain Lion (64-bit)",  /* Aka "Mountain Kitten". */
    461       VBOXOSTYPE_MacOS108_x64,    VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    462                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    463       2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    464       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    465       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    466 
    467     { "MacOS",   "Mac OS X",          "MacOS109_64",        "Mac OS X 10.9 Mavericks (64-bit)", /* Not to be confused with McCain. */
    468       VBOXOSTYPE_MacOS109_x64,    VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    469                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    470       2048,  16, 25 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    471       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    472       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    473 
    474     { "MacOS",   "Mac OS X",          "MacOS1010_64",       "Mac OS X 10.10 Yosemite (64-bit)",
    475       VBOXOSTYPE_MacOS1010_x64,   VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    476                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    477       2048,  16, 25 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    478       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    479       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    480 
    481     { "MacOS",   "Mac OS X",          "MacOS1011_64",       "Mac OS X 10.11 El Capitan (64-bit)",
    482       VBOXOSTYPE_MacOS1011_x64,   VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    483                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    484       2048,  16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    485       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    486       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    487 
    488     { "MacOS",   "Mac OS X",          "MacOS1012_64",       "macOS 10.12 Sierra (64-bit)",
    489       VBOXOSTYPE_MacOS1012_x64,   VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    490                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    491       2048,  16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    492       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    493       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    494 
    495     { "MacOS",   "Mac OS X",          "MacOS1013_64",       "macOS 10.13 High Sierra (64-bit)",
    496       VBOXOSTYPE_MacOS1013_x64,   VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
    497                                 | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
    498       2048,  16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    499       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    500       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    501 
    502     { "Other",   "Other",             "DOS",                "DOS",
    503       VBOXOSTYPE_DOS,             VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
    504         32,   4,  500 * _1M, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    505         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
    506 
    507     { "Other",   "Other",             "Netware",            "Netware",
    508       VBOXOSTYPE_Netware,         VBOXOSHINT_HWVIRTEX,
    509        512,   4,  4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    510         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    511 
    512     { "Other",   "Other",             "L4",                 "L4",
    513       VBOXOSTYPE_L4,              VBOXOSHINT_NONE,
    514         64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    515         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    516 
    517     { "Other",   "Other",             "QNX",                "QNX",
    518 #ifdef VBOX_WITH_RAW_RING1
    519       VBOXOSTYPE_QNX,             VBOXOSHINT_NONE,
    520 #else
    521       VBOXOSTYPE_QNX,             VBOXOSHINT_HWVIRTEX,
    522 #endif
    523        512,   4,  4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    524       StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    525 
    526     { "Other",   "Other",             "JRockitVE",          "JRockitVE",
    527         VBOXOSTYPE_JRockitVE,     VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE,
    528         1024, 4,  8 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    529         StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    530 
    531     { "Other",   "Other",             "VBoxBS_64",          "VirtualBox Bootsector Test (64-bit)",
    532         VBOXOSTYPE_VBoxBS_x64,    VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE | VBOXOSHINT_64BIT,
    533         128, 4,  0, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    534         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    535 };
    536 
    537 size_t Global::cOSTypes = RT_ELEMENTS(Global::sOSTypes);
    538 
    539 /**
    540  * Returns an OS Type ID for the given VBOXOSTYPE value.
    541  *
    542  * The returned ID will correspond to the IGuestOSType::id value of one of the
    543  * objects stored in the IVirtualBox::guestOSTypes
    544  * (VirtualBoxImpl::COMGETTER(GuestOSTypes)) collection.
    545  */
    546 /* static */
    547 const char *Global::OSTypeId(VBOXOSTYPE aOSType)
    548 {
    549     for (size_t i = 0; i < RT_ELEMENTS(sOSTypes); ++i)
    550     {
    551         if (sOSTypes[i].osType == aOSType)
    552             return sOSTypes[i].id;
    553     }
    554 
    555     return sOSTypes[0].id;
    556 }
    557 
    558 /**
    559  * Maps an OS type ID string to index into sOSTypes.
    560  *
    561  * @returns index on success, UINT32_MAX if not found.
    562  * @param   pszId       The OS type ID string.
    563  */
    564 /* static */ uint32_t Global::getOSTypeIndexFromId(const char *pszId)
    565 {
    566     for (size_t i = 0; i < RT_ELEMENTS(sOSTypes); ++i)
    567         if (!RTStrICmp(pszId, Global::sOSTypes[i].id))
    568             return (uint32_t)i;
    569     return UINT32_MAX;
    570 }
    571 
    572 /*static*/ uint32_t Global::getMaxNetworkAdapters(ChipsetType_T aChipsetType)
    573 {
    574     switch (aChipsetType)
    575     {
    576         case ChipsetType_PIIX3:
    577             return 8;
    578         case ChipsetType_ICH9:
    579             return 36;
    580         default:
    581             return 0;
    582     }
    583 }
    584 
    585 /*static*/ const char *
    586 Global::stringifyMachineState(MachineState_T aState)
    587 {
    588     switch (aState)
    589     {
    590         case MachineState_Null:                 return "Null";
    591         case MachineState_PoweredOff:           return "PoweredOff";
    592         case MachineState_Saved:                return "Saved";
    593         case MachineState_Teleported:           return "Teleported";
    594         case MachineState_Aborted:              return "Aborted";
    595         case MachineState_Running:              return "Running";
    596         case MachineState_Paused:               return "Paused";
    597         case MachineState_Stuck:                return "GuruMeditation";
    598         case MachineState_Teleporting:          return "Teleporting";
    599         case MachineState_LiveSnapshotting:     return "LiveSnapshotting";
    600         case MachineState_Starting:             return "Starting";
    601         case MachineState_Stopping:             return "Stopping";
    602         case MachineState_Saving:               return "Saving";
    603         case MachineState_Restoring:            return "Restoring";
    604         case MachineState_TeleportingPausedVM:  return "TeleportingPausedVM";
    605         case MachineState_TeleportingIn:        return "TeleportingIn";
    606         case MachineState_FaultTolerantSyncing: return "FaultTolerantSyncing";
    607         case MachineState_DeletingSnapshotOnline: return "DeletingSnapshotOnline";
    608         case MachineState_DeletingSnapshotPaused: return "DeletingSnapshotPaused";
    609         case MachineState_OnlineSnapshotting:   return "OnlineSnapshotting";
    610         case MachineState_RestoringSnapshot:    return "RestoringSnapshot";
    611         case MachineState_DeletingSnapshot:     return "DeletingSnapshot";
    612         case MachineState_SettingUp:            return "SettingUp";
    613         case MachineState_Snapshotting:         return "Snapshotting";
    614         default:
    615         {
    616             AssertMsgFailed(("%d (%#x)\n", aState, aState));
    617             static char s_szMsg[48];
    618             RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidState-0x%08x\n", aState);
    619             return s_szMsg;
    620         }
    621     }
    622 }
    623 
    624 /*static*/ const char *
    625 Global::stringifySessionState(SessionState_T aState)
    626 {
    627     switch (aState)
    628     {
    629         case SessionState_Null:         return "Null";
    630         case SessionState_Unlocked:     return "Unlocked";
    631         case SessionState_Locked:       return "Locked";
    632         case SessionState_Spawning:     return "Spawning";
    633         case SessionState_Unlocking:    return "Unlocking";
    634         default:
    635         {
    636             AssertMsgFailed(("%d (%#x)\n", aState, aState));
    637             static char s_szMsg[48];
    638             RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidState-0x%08x\n", aState);
    639             return s_szMsg;
    640         }
    641     }
    642 }
    643 
    644 /*static*/ const char *
    645 Global::stringifyDeviceType(DeviceType_T aType)
    646 {
    647     switch (aType)
    648     {
    649         case DeviceType_Null:         return "Null";
    650         case DeviceType_Floppy:       return "Floppy";
    651         case DeviceType_DVD:          return "DVD";
    652         case DeviceType_HardDisk:     return "HardDisk";
    653         case DeviceType_Network:      return "Network";
    654         case DeviceType_USB:          return "USB";
    655         case DeviceType_SharedFolder: return "ShardFolder";
    656         default:
    657         {
    658             AssertMsgFailed(("%d (%#x)\n", aType, aType));
    659             static char s_szMsg[48];
    660             RTStrPrintf(s_szMsg, sizeof(s_szMsg), "InvalidType-0x%08x\n", aType);
    661             return s_szMsg;
    662         }
    663     }
    664 }
    665 
    666 
    667 /*static*/ const char *
    668 Global::stringifyReason(Reason_T aReason)
    669 {
    670     switch (aReason)
    671     {
    672         case Reason_Unspecified:      return "unspecified";
    673         case Reason_HostSuspend:      return "host suspend";
    674         case Reason_HostResume:       return "host resume";
    675         case Reason_HostBatteryLow:   return "host battery low";
    676         case Reason_Snapshot:         return "snapshot";
    677         default:
    678         {
    679             AssertMsgFailed(("%d (%#x)\n", aReason, aReason));
    680             static char s_szMsg[48];
    681             RTStrPrintf(s_szMsg, sizeof(s_szMsg), "invalid reason %#010x\n", aReason);
    682             return s_szMsg;
    683         }
    684     }
    685 }
    68625
    68726/*static*/ int
Note: See TracChangeset for help on using the changeset viewer.

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