VirtualBox

source: vbox/trunk/src/VBox/Devices/build/VBoxDD.h@ 99786

Last change on this file since 99786 was 99750, checked in by vboxsync, 19 months ago

Devices/Bus: Started a basic PCI bus implementation suitable for ARMv8, devices are detected by a Linux guest but interrupts don't work right now. The implementation shares most code with ICH9 PCI device, bugref:10445

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.4 KB
Line 
1/* $Id: VBoxDD.h 99750 2023-05-11 13:37:24Z vboxsync $ */
2/** @file
3 * Built-in drivers & devices (part 1) header.
4 */
5
6/*
7 * Copyright (C) 2006-2023 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28#ifndef VBOX_INCLUDED_SRC_build_VBoxDD_h
29#define VBOX_INCLUDED_SRC_build_VBoxDD_h
30#ifndef RT_WITHOUT_PRAGMA_ONCE
31# pragma once
32#endif
33
34#include <VBox/vmm/pdm.h>
35
36RT_C_DECLS_BEGIN
37
38/** The default BIOS logo data. */
39extern const unsigned char g_abVgaDefBiosLogo[];
40extern const unsigned char g_abVgaDefBiosLogoNY[];
41/** The size of the default BIOS logo data. */
42extern const unsigned g_cbVgaDefBiosLogo;
43extern const unsigned g_cbVgaDefBiosLogoNY;
44
45
46extern const PDMDEVREG g_DevicePCI;
47extern const PDMDEVREG g_DevicePciIch9;
48extern const PDMDEVREG g_DevicePcArch;
49extern const PDMDEVREG g_DevicePcBios;
50extern const PDMDEVREG g_DeviceIOAPIC;
51extern const PDMDEVREG g_DevicePS2KeyboardMouse;
52extern const PDMDEVREG g_DeviceI8254;
53extern const PDMDEVREG g_DeviceI8259;
54extern const PDMDEVREG g_DeviceHPET;
55extern const PDMDEVREG g_DeviceSmc;
56extern const PDMDEVREG g_DeviceFlash;
57extern const PDMDEVREG g_DeviceMC146818;
58extern const PDMDEVREG g_DevicePIIX3IDE;
59extern const PDMDEVREG g_DeviceFloppyController;
60extern const PDMDEVREG g_DeviceVga;
61extern const PDMDEVREG g_DeviceVMMDev;
62extern const PDMDEVREG g_DevicePCNet;
63#ifdef VBOX_WITH_E1000
64extern const PDMDEVREG g_DeviceE1000;
65#endif
66#ifdef VBOX_WITH_VIRTIO
67extern const PDMDEVREG g_DeviceVirtioNet;
68#endif
69extern const PDMDEVREG g_DeviceDP8390;
70extern const PDMDEVREG g_Device3C501;
71#ifdef VBOX_WITH_INIP
72extern const PDMDEVREG g_DeviceINIP;
73#endif
74extern const PDMDEVREG g_DeviceICHAC97;
75extern const PDMDEVREG g_DeviceSB16;
76extern const PDMDEVREG g_DeviceHDA;
77extern const PDMDEVREG g_DeviceOHCI;
78extern const PDMDEVREG g_DeviceEHCI;
79extern const PDMDEVREG g_DeviceXHCI;
80extern const PDMDEVREG g_DeviceACPI;
81extern const PDMDEVREG g_DeviceDMA;
82extern const PDMDEVREG g_DeviceFloppyController;
83extern const PDMDEVREG g_DeviceSerialPort;
84extern const PDMDEVREG g_DeviceOxPcie958;
85extern const PDMDEVREG g_DeviceParallelPort;
86#ifdef VBOX_WITH_AHCI
87extern const PDMDEVREG g_DeviceAHCI;
88#endif
89#ifdef VBOX_WITH_BUSLOGIC
90extern const PDMDEVREG g_DeviceBusLogic;
91#endif
92extern const PDMDEVREG g_DevicePCIBridge;
93extern const PDMDEVREG g_DevicePciIch9Bridge;
94#ifdef VBOX_WITH_LSILOGIC
95extern const PDMDEVREG g_DeviceLsiLogicSCSI;
96extern const PDMDEVREG g_DeviceLsiLogicSAS;
97#endif
98#ifdef VBOX_WITH_NVME_IMPL
99extern const PDMDEVREG g_DeviceNVMe;
100#endif
101#ifdef VBOX_WITH_VIRTIO_SCSI
102extern const PDMDEVREG g_DeviceVirtioSCSI;
103#endif
104#ifdef VBOX_WITH_EFI
105extern const PDMDEVREG g_DeviceEFI;
106#endif
107#ifdef VBOX_WITH_PCI_PASSTHROUGH_IMPL
108extern const PDMDEVREG g_DevicePciRaw;
109#endif
110extern const PDMDEVREG g_DeviceGIMDev;
111extern const PDMDEVREG g_DeviceLPC;
112#ifdef VBOX_WITH_VIRTUALKD
113extern const PDMDEVREG g_DeviceVirtualKD;
114#endif
115extern const PDMDEVREG g_DeviceQemuFwCfg;
116#ifdef VBOX_WITH_TPM
117extern const PDMDEVREG g_DeviceTpm;
118#endif
119
120extern const PDMDRVREG g_DrvMouseQueue;
121extern const PDMDRVREG g_DrvKeyboardQueue;
122extern const PDMDRVREG g_DrvVBoxHDD;
123extern const PDMDRVREG g_DrvVD;
124extern const PDMDRVREG g_DrvHostDVD;
125extern const PDMDRVREG g_DrvHostFloppy;
126extern const PDMDRVREG g_DrvISCSI;
127extern const PDMDRVREG g_DrvISCSITransportTcp;
128#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)
129extern const PDMDRVREG g_DrvHostInterface;
130#endif
131#ifdef VBOX_WITH_UDPTUNNEL
132extern const PDMDRVREG g_DrvUDPTunnel;
133#endif
134#ifdef VBOX_WITH_VDE
135extern const PDMDRVREG g_DrvVDE;
136#endif
137extern const PDMDRVREG g_DrvIntNet;
138extern const PDMDRVREG g_DrvDedicatedNic;
139extern const PDMDRVREG g_DrvNAT;
140#ifdef VBOX_WITH_NETSHAPER
141extern const PDMDRVREG g_DrvNetShaper;
142#endif /* VBOX_WITH_NETSHAPER */
143#ifdef VBOX_WITH_VMNET
144extern const PDMDRVREG g_DrvVMNet;
145#endif /* VBOX_WITH_VMNET */
146extern const PDMDRVREG g_DrvNetSniffer;
147extern const PDMDRVREG g_DrvAUDIO;
148#ifdef VBOX_WITH_AUDIO_DEBUG
149extern const PDMDRVREG g_DrvHostDebugAudio;
150#endif
151#ifdef VBOX_WITH_AUDIO_VALIDATIONKIT
152extern const PDMDRVREG g_DrvHostValidationKitAudio;
153#endif
154extern const PDMDRVREG g_DrvHostNullAudio;
155extern DECL_HIDDEN_DATA(struct PDMIHOSTAUDIO) const g_DrvHostAudioNull;
156#if defined(RT_OS_WINDOWS)
157extern const PDMDRVREG g_DrvHostDSound;
158extern const PDMDRVREG g_DrvHostAudioWas;
159#endif
160#if defined(RT_OS_DARWIN)
161extern const PDMDRVREG g_DrvHostCoreAudio;
162#endif
163#ifdef VBOX_WITH_AUDIO_OSS
164extern const PDMDRVREG g_DrvHostOSSAudio;
165#endif
166#ifdef VBOX_WITH_AUDIO_ALSA
167extern const PDMDRVREG g_DrvHostALSAAudio;
168#endif
169#ifdef VBOX_WITH_AUDIO_PULSE
170extern const PDMDRVREG g_DrvHostPulseAudio;
171#endif
172extern const PDMDRVREG g_DrvACPI;
173extern const PDMDRVREG g_DrvAcpiCpu;
174extern const PDMDRVREG g_DrvVUSBRootHub;
175#ifdef VBOX_WITH_USB_VIDEO_IMPL
176extern const PDMDRVREG g_DrvHostWebcam;
177#endif
178extern const PDMDRVREG g_DrvChar;
179extern const PDMDRVREG g_DrvNamedPipe;
180extern const PDMDRVREG g_DrvTCP;
181extern const PDMDRVREG g_DrvUDP;
182extern const PDMDRVREG g_DrvRawFile;
183extern const PDMDRVREG g_DrvHostParallel;
184extern const PDMDRVREG g_DrvHostSerial;
185#ifdef VBOX_WITH_DRV_DISK_INTEGRITY
186extern const PDMDRVREG g_DrvDiskIntegrity;
187extern const PDMDRVREG g_DrvRamDisk;
188#endif
189#ifdef VBOX_WITH_PCI_PASSTHROUGH_IMPL
190extern const PDMDRVREG g_DrvPciRaw;
191#endif
192
193#ifdef VBOX_WITH_USB
194extern const PDMUSBREG g_UsbDevProxy;
195extern const PDMUSBREG g_UsbMsd;
196#endif
197#ifdef VBOX_WITH_VUSB
198extern const PDMUSBREG g_UsbHid;
199extern const PDMUSBREG g_UsbHidKbd;
200extern const PDMUSBREG g_UsbHidMou;
201#endif
202#ifdef VBOX_WITH_USB_VIDEO_IMPL
203extern const PDMUSBREG g_DevWebcam;
204#endif
205
206#ifdef VBOX_WITH_SCSI
207extern const PDMDRVREG g_DrvSCSI;
208#endif
209
210extern const PDMDRVREG g_DrvIfTrace;
211#ifdef VBOX_WITH_TPM
212extern const PDMDRVREG g_DrvTpmEmu;
213# ifdef RT_OS_LINUX
214extern const PDMDRVREG g_DrvTpmHost;
215# endif
216# ifdef VBOX_WITH_LIBTPMS
217extern const PDMDRVREG g_DrvTpmEmuTpms;
218# endif
219# ifdef VBOX_WITH_CLOUD_NET
220extern const PDMDRVREG g_DrvCloudTunnel;
221# endif
222#endif
223
224#ifdef VBOX_WITH_IOMMU_AMD
225extern const PDMDEVREG g_DeviceIommuAmd;
226#endif
227#ifdef VBOX_WITH_IOMMU_INTEL
228extern const PDMDEVREG g_DeviceIommuIntel;
229#endif
230
231#ifdef VBOX_VMM_TARGET_ARMV8
232extern const PDMDEVREG g_DevicePl011;
233extern const PDMDEVREG g_DevicePl031Rtc;
234extern const PDMDEVREG g_DeviceFlashCFI;
235extern const PDMDEVREG g_DevicePciGenericEcam;
236#endif
237
238/* VBoxAcpi.cpp */
239int acpiPrepareDsdt(PPDMDEVINS pDevIns, void **ppvPtr, size_t *pcbDsdt);
240int acpiCleanupDsdt(PPDMDEVINS pDevIns, void *pvPtr);
241int acpiPrepareSsdt(PPDMDEVINS pDevIns, void **ppvPtr, size_t *pcbSsdt);
242int acpiCleanupSsdt(PPDMDEVINS pDevIns, void *pvPtr);
243
244#ifdef VBOX_WITH_TPM
245int acpiPrepareTpmSsdt(PPDMDEVINS pDevIns, void **ppvPtr, size_t *pcbSsdt);
246int acpiCleanupTpmSsdt(PPDMDEVINS pDevIns, void *pvPtr);
247#endif
248
249RT_C_DECLS_END
250
251#endif /* !VBOX_INCLUDED_SRC_build_VBoxDD_h */
252
Note: See TracBrowser for help on using the repository browser.

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