VirtualBox

source: vbox/trunk/src/VBox/VMM/VMMR3/cpus/Intel_80386.h@ 109008

Last change on this file since 109008 was 109008, checked in by vboxsync, 5 days ago

VMM,Main: Working on ARM CPU profile support, which is neede/useful for getting info about the host CPU as well. The CPUDBENTRY typedef is used externally by Main, so we can't have two definitions of it, so left the bits that are common to both x86 and ARM in CPUDBENTRY and created sub-structures for each of the two targets/platforms. Also started reworking the VBoxCpuReport tool so we can use it on arm as well (much left to do there, though). jiraref:VBP-1598

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1/* $Id: Intel_80386.h 109008 2025-04-16 20:59:36Z vboxsync $ */
2/** @file
3 * CPU database entry "Intel 80386".
4 * Handcrafted.
5 */
6
7/*
8 * Copyright (C) 2013-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 VBOX_CPUDB_Intel_80386_h
30#define VBOX_CPUDB_Intel_80386_h
31#ifndef RT_WITHOUT_PRAGMA_ONCE
32# pragma once
33#endif
34
35#ifndef CPUM_DB_STANDALONE
36/**
37 * Fake CPUID leaves for Intel(R) 80386.
38 *
39 * We fake these to keep the CPUM ignorant of CPUs withou CPUID leaves
40 * and avoid having to seed CPUM::GuestFeatures filling with bits from the
41 * CPUMDBENTRY.
42 */
43static CPUMCPUIDLEAF const g_aCpuIdLeaves_Intel_80386[] =
44{
45 { 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x756e6547, 0x6c65746e, 0x49656e69, 0 },
46 { 0x00000001, 0x00000000, 0x00000000, 0x00000300, 0x00000100, 0x00000000, 0x00000000, 0 },
47 { 0x80000000, 0x00000000, 0x00000000, 0x80000008, 0x00000000, 0x00000000, 0x00000000, 0 },
48 { 0x80000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
49 { 0x80000002, 0x00000000, 0x00000000, 0x65746e49, 0x2952286c, 0x33303820, 0x20203638, 0 },
50 { 0x80000003, 0x00000000, 0x00000000, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0 },
51 { 0x80000004, 0x00000000, 0x00000000, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0 },
52 { 0x80000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
53 { 0x80000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
54 { 0x80000007, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
55 { 0x80000008, 0x00000000, 0x00000000, 0x00001818, 0x00000000, 0x00000000, 0x00000000, 0 },
56};
57#endif /* !CPUM_DB_STANDALONE */
58
59/**
60 * Database entry for Intel(R) 80386.
61 */
62static CPUMDBENTRYX86 const g_Entry_Intel_80386 =
63{
64 {
65 /*.pszName = */ "Intel 80386",
66 /*.pszFullName = */ "Intel(R) 80386",
67 /*.enmVendor = */ CPUMCPUVENDOR_INTEL,
68 /*.enmMicroarch = */ kCpumMicroarch_Intel_80386,
69 /*.fFlags = */ CPUMDB_F_EXECUTE_ALL_IN_IEM,
70 /*.enmEntryType = */ CPUMDBENTRYTYPE_X86,
71 },
72 /*.uFamily = */ 3,
73 /*.uModel = */ 0,
74 /*.uStepping = */ 0,
75 /*.uScalableBusFreq = */ CPUM_SBUSFREQ_UNKNOWN,
76 /*.cMaxPhysAddrWidth= */ 24,
77 /*.fMxCsrMask = */ 0,
78 /*.paCpuIdLeaves = */ NULL_ALONE(g_aCpuIdLeaves_Intel_80386),
79 /*.cCpuIdLeaves = */ ZERO_ALONE(RT_ELEMENTS(g_aCpuIdLeaves_Intel_80386)),
80 /*.enmUnknownCpuId = */ CPUMUNKNOWNCPUID_DEFAULTS,
81 /*.DefUnknownCpuId = */ { 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
82 /*.fMsrMask = */ 0,
83 /*.cMsrRanges = */ 0,
84 /*.paMsrRanges = */ NULL,
85};
86
87#endif /* !VBOX_CPUDB_Intel_80386_h */
88
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