From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- src/VBox/Main/include/GuestOSTypeImpl.h | 131 ++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 src/VBox/Main/include/GuestOSTypeImpl.h (limited to 'src/VBox/Main/include/GuestOSTypeImpl.h') diff --git a/src/VBox/Main/include/GuestOSTypeImpl.h b/src/VBox/Main/include/GuestOSTypeImpl.h new file mode 100644 index 00000000..354edfa3 --- /dev/null +++ b/src/VBox/Main/include/GuestOSTypeImpl.h @@ -0,0 +1,131 @@ +/* $Id: GuestOSTypeImpl.h $ */ +/** @file + * + * VirtualBox COM class implementation + */ + +/* + * Copyright (C) 2006-2023 Oracle and/or its affiliates. + * + * This file is part of VirtualBox base platform packages, as + * available from https://www.virtualbox.org. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, in version 3 of the + * License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +#ifndef MAIN_INCLUDED_GuestOSTypeImpl_h +#define MAIN_INCLUDED_GuestOSTypeImpl_h +#ifndef RT_WITHOUT_PRAGMA_ONCE +# pragma once +#endif + +#include "Global.h" +#include "GuestOSTypeWrap.h" + +class ATL_NO_VTABLE GuestOSType : + public GuestOSTypeWrap +{ +public: + + DECLARE_COMMON_CLASS_METHODS(GuestOSType) + + HRESULT FinalConstruct(); + void FinalRelease(); + + // public initializer/uninitializer for internal purposes only + HRESULT init(const Global::OSType &ostype); + void uninit(); + + // public methods only for internal purposes + const Utf8Str &i_id() const { return mID; } + const Utf8Str &i_familyId() const { return mFamilyID; } + bool i_is64Bit() const { return !!(mOSHint & VBOXOSHINT_64BIT); } + bool i_recommendedIOAPIC() const { return !!(mOSHint & VBOXOSHINT_IOAPIC); } + bool i_recommendedX2APIC() const { return !!(mOSHint & VBOXOSHINT_X2APIC); } + bool i_recommendedVirtEx() const { return !!(mOSHint & VBOXOSHINT_HWVIRTEX); } + bool i_recommendedEFI() const { return !!(mOSHint & VBOXOSHINT_EFI); } + bool i_recommendedEFISecureBoot() const { return !!(mOSHint & VBOXOSHINT_EFI_SECUREBOOT); } + bool i_recommendedTpm2() const { return !!(mOSHint & VBOXOSHINT_TPM2); } + NetworkAdapterType_T i_networkAdapterType() const { return mNetworkAdapterType; } + uint32_t i_numSerialEnabled() const { return mNumSerialEnabled; } + +private: + + // Wrapped IGuestOSType properties + HRESULT getFamilyId(com::Utf8Str &aFamilyId); + HRESULT getFamilyDescription(com::Utf8Str &aFamilyDescription); + HRESULT getId(com::Utf8Str &aId); + HRESULT getDescription(com::Utf8Str &aDescription); + HRESULT getIs64Bit(BOOL *aIs64Bit); + HRESULT getRecommendedIOAPIC(BOOL *aRecommendedIOAPIC); + HRESULT getRecommendedVirtEx(BOOL *aRecommendedVirtEx); + HRESULT getRecommendedRAM(ULONG *RAMSize); + HRESULT getRecommendedGraphicsController(GraphicsControllerType_T *aRecommendedGraphicsController); + HRESULT getRecommendedVRAM(ULONG *aVRAMSize); + HRESULT getRecommended2DVideoAcceleration(BOOL *aRecommended2DVideoAcceleration); + HRESULT getRecommended3DAcceleration(BOOL *aRecommended3DAcceleration); + HRESULT getRecommendedHDD(LONG64 *aHDDSize); + HRESULT getAdapterType(NetworkAdapterType_T *aNetworkAdapterType); + HRESULT getRecommendedPAE(BOOL *aRecommendedPAE); + HRESULT getRecommendedDVDStorageController(StorageControllerType_T *aStorageControllerType); + HRESULT getRecommendedFirmware(FirmwareType_T *aFirmwareType); + HRESULT getRecommendedDVDStorageBus(StorageBus_T *aStorageBusType); + HRESULT getRecommendedHDStorageController(StorageControllerType_T *aStorageControllerType); + HRESULT getRecommendedHDStorageBus(StorageBus_T *aStorageBusType); + HRESULT getRecommendedUSBHID(BOOL *aRecommendedUSBHID); + HRESULT getRecommendedHPET(BOOL *aRecommendedHPET); + HRESULT getRecommendedUSBTablet(BOOL *aRecommendedUSBTablet); + HRESULT getRecommendedRTCUseUTC(BOOL *aRecommendedRTCUseUTC); + HRESULT getRecommendedChipset(ChipsetType_T *aChipsetType); + HRESULT getRecommendedIommuType(IommuType_T *aIommuType); + HRESULT getRecommendedAudioController(AudioControllerType_T *aAudioController); + HRESULT getRecommendedAudioCodec(AudioCodecType_T *aAudioCodec); + HRESULT getRecommendedFloppy(BOOL *aRecommendedFloppy); + HRESULT getRecommendedUSB(BOOL *aRecommendedUSB); + HRESULT getRecommendedUSB3(BOOL *aRecommendedUSB3); + HRESULT getRecommendedTFReset(BOOL *aRecommendedTFReset); + HRESULT getRecommendedX2APIC(BOOL *aRecommendedX2APIC); + HRESULT getRecommendedCPUCount(ULONG *aRecommendedCPUCount); + HRESULT getRecommendedTpmType(TpmType_T *aRecommendedTpmType); + HRESULT getRecommendedSecureBoot(BOOL *aRecommendedSecureBoot); + HRESULT getRecommendedWDDMGraphics(BOOL *aRecommendedWDDMGraphics); + + + const Utf8Str mFamilyID; + const Utf8Str mFamilyDescription; + const Utf8Str mID; + const Utf8Str mDescription; + const VBOXOSTYPE mOSType; + const uint32_t mOSHint; + const uint32_t mRAMSize; + const uint32_t mCPUCount; + const GraphicsControllerType_T mGraphicsControllerType; + const uint32_t mVRAMSize; + const uint64_t mHDDSize; + const NetworkAdapterType_T mNetworkAdapterType; + const uint32_t mNumSerialEnabled; + const StorageControllerType_T mDVDStorageControllerType; + const StorageBus_T mDVDStorageBusType; + const StorageControllerType_T mHDStorageControllerType; + const StorageBus_T mHDStorageBusType; + const ChipsetType_T mChipsetType; + const IommuType_T mIommuType; + const AudioControllerType_T mAudioControllerType; + const AudioCodecType_T mAudioCodecType; +}; + +#endif /* !MAIN_INCLUDED_GuestOSTypeImpl_h */ +/* vi: set tabstop=4 shiftwidth=4 expandtab: */ -- cgit v1.2.3