VirtualBox

source: vbox/trunk/src/VBox/Main/include/GuestOSTypeImpl.h

Last change on this file was 108642, checked in by vboxsync, 3 weeks ago

Removed 2D video acceleration (aka VHWA / VBOX_WITH_VIDEOHWACCEL) [build fix, forgot some files]. bugref:10756

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.9 KB
Line 
1/* $Id: GuestOSTypeImpl.h 108642 2025-03-20 12:53:11Z vboxsync $ */
2/** @file
3 *
4 * VirtualBox COM class implementation
5 */
6
7/*
8 * Copyright (C) 2006-2024 Oracle and/or its affiliates.
9 *
10 * This file is part of VirtualBox base platform packages, as
11 * available from https://www.virtualbox.org.
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation, in version 3 of the
16 * License.
17 *
18 * This program is distributed in the hope that it will be useful, but
19 * WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, see <https://www.gnu.org/licenses>.
25 *
26 * SPDX-License-Identifier: GPL-3.0-only
27 */
28
29#ifndef MAIN_INCLUDED_GuestOSTypeImpl_h
30#define MAIN_INCLUDED_GuestOSTypeImpl_h
31#ifndef RT_WITHOUT_PRAGMA_ONCE
32# pragma once
33#endif
34
35#include "Global.h"
36#include "GuestOSTypeWrap.h"
37
38class ATL_NO_VTABLE GuestOSType :
39 public GuestOSTypeWrap
40{
41public:
42
43 DECLARE_COMMON_CLASS_METHODS(GuestOSType)
44
45 HRESULT FinalConstruct();
46 void FinalRelease();
47
48 // public initializer/uninitializer for internal purposes only
49 HRESULT init(const Global::OSType &ostype);
50 void uninit();
51
52 // public methods only for internal purposes
53 const Utf8Str &i_id() const { return mID; }
54 const Utf8Str &i_familyId() const { return mFamilyID; }
55 const Utf8Str &i_subtype() const { return mOSSubtype; }
56 const Utf8Str &i_description() const { return mDescription; }
57 bool i_is64Bit() const { return !!(mOSHint & VBOXOSHINT_64BIT); }
58 PlatformArchitecture_T i_platformArchitecture() const;
59 bool i_recommendedIOAPIC() const { return !!(mOSHint & VBOXOSHINT_X86_IOAPIC); }
60 bool i_recommendedX2APIC() const { return !!(mOSHint & VBOXOSHINT_X86_X2APIC); }
61 bool i_recommendedVirtEx() const { return !!(mOSHint & VBOXOSHINT_X86_HWVIRTEX); }
62 bool i_recommendedEFI() const { return !!(mOSHint & VBOXOSHINT_EFI); }
63 bool i_recommendedEFISecureBoot() const { return !!(mOSHint & VBOXOSHINT_EFI_SECUREBOOT); }
64 bool i_recommendedTpm2() const { return !!(mOSHint & VBOXOSHINT_TPM2); }
65 NetworkAdapterType_T i_networkAdapterType() const { return mNetworkAdapterType; }
66 uint32_t i_numSerialEnabled() const { return mNumSerialEnabled; }
67
68private:
69
70 // Wrapped IGuestOSType properties
71 HRESULT getFamilyId(com::Utf8Str &aFamilyId);
72 HRESULT getFamilyDescription(com::Utf8Str &aFamilyDescription);
73 HRESULT getSubtype(com::Utf8Str &aSubtype);
74 HRESULT getId(com::Utf8Str &aId);
75 HRESULT getDescription(com::Utf8Str &aDescription);
76 HRESULT getIs64Bit(BOOL *aIs64Bit);
77 HRESULT getPlatformArchitecture(PlatformArchitecture_T *aPlatformArchitecture);
78 HRESULT getRecommendedIOAPIC(BOOL *aRecommendedIOAPIC);
79 HRESULT getRecommendedVirtEx(BOOL *aRecommendedVirtEx);
80 HRESULT getRecommendedRAM(ULONG *RAMSize);
81 HRESULT getRecommendedGraphicsController(GraphicsControllerType_T *aRecommendedGraphicsController);
82 HRESULT getRecommendedVRAM(ULONG *aVRAMSize);
83 HRESULT getRecommended3DAcceleration(BOOL *aRecommended3DAcceleration);
84 HRESULT getRecommendedHDD(LONG64 *aHDDSize);
85 HRESULT getAdapterType(NetworkAdapterType_T *aNetworkAdapterType);
86 HRESULT getRecommendedPAE(BOOL *aRecommendedPAE);
87 HRESULT getRecommendedDVDStorageController(StorageControllerType_T *aStorageControllerType);
88 HRESULT getRecommendedFirmware(FirmwareType_T *aFirmwareType);
89 HRESULT getRecommendedDVDStorageBus(StorageBus_T *aStorageBusType);
90 HRESULT getRecommendedHDStorageController(StorageControllerType_T *aStorageControllerType);
91 HRESULT getRecommendedHDStorageBus(StorageBus_T *aStorageBusType);
92 HRESULT getRecommendedUSBHID(BOOL *aRecommendedUSBHID);
93 HRESULT getRecommendedHPET(BOOL *aRecommendedHPET);
94 HRESULT getRecommendedUSBTablet(BOOL *aRecommendedUSBTablet);
95 HRESULT getRecommendedRTCUseUTC(BOOL *aRecommendedRTCUseUTC);
96 HRESULT getRecommendedChipset(ChipsetType_T *aChipsetType);
97 HRESULT getRecommendedIommuType(IommuType_T *aIommuType);
98 HRESULT getRecommendedAudioController(AudioControllerType_T *aAudioController);
99 HRESULT getRecommendedAudioCodec(AudioCodecType_T *aAudioCodec);
100 HRESULT getRecommendedFloppy(BOOL *aRecommendedFloppy);
101 HRESULT getRecommendedUSB(BOOL *aRecommendedUSB);
102 HRESULT getRecommendedUSB3(BOOL *aRecommendedUSB3);
103 HRESULT getRecommendedTFReset(BOOL *aRecommendedTFReset);
104 HRESULT getRecommendedX2APIC(BOOL *aRecommendedX2APIC);
105 HRESULT getRecommendedCPUCount(ULONG *aRecommendedCPUCount);
106 HRESULT getRecommendedTpmType(TpmType_T *aRecommendedTpmType);
107 HRESULT getRecommendedSecureBoot(BOOL *aRecommendedSecureBoot);
108 HRESULT getRecommendedWDDMGraphics(BOOL *aRecommendedWDDMGraphics);
109 HRESULT getGuestAdditionsInstallPackageName(com::Utf8Str &aGuestAdditionsInstallPkgName);
110
111
112 const Utf8Str mFamilyID;
113 const Utf8Str mFamilyDescription;
114 const Utf8Str mOSSubtype;
115 const Utf8Str mID;
116 const Utf8Str mDescription;
117 const Utf8Str mGuestAdditionsInstallPackageName;
118 const VBOXOSTYPE mOSType;
119 const uint32_t mOSHint;
120 const uint32_t mRAMSize;
121 const uint32_t mCPUCount;
122 const GraphicsControllerType_T mGraphicsControllerType;
123 const uint32_t mVRAMSize;
124 const uint64_t mHDDSize;
125 const NetworkAdapterType_T mNetworkAdapterType;
126 const uint32_t mNumSerialEnabled;
127 const StorageControllerType_T mDVDStorageControllerType;
128 const StorageBus_T mDVDStorageBusType;
129 const StorageControllerType_T mHDStorageControllerType;
130 const StorageBus_T mHDStorageBusType;
131 const ChipsetType_T mChipsetType;
132 const IommuType_T mIommuType;
133 const AudioControllerType_T mAudioControllerType;
134 const AudioCodecType_T mAudioCodecType;
135};
136
137#endif /* !MAIN_INCLUDED_GuestOSTypeImpl_h */
138/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

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