summaryrefslogtreecommitdiff
path: root/src/VBox/Devices/build/VBoxDD.h
blob: 273d9d55a146d10c7e28dad0ae7b002efd9806e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
/* $Id$ */
/** @file
 * Built-in drivers & devices (part 1) header.
 */

/*
 * 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 <https://www.gnu.org/licenses>.
 *
 * SPDX-License-Identifier: GPL-3.0-only
 */

#ifndef VBOX_INCLUDED_SRC_build_VBoxDD_h
#define VBOX_INCLUDED_SRC_build_VBoxDD_h
#ifndef RT_WITHOUT_PRAGMA_ONCE
# pragma once
#endif

#include <VBox/vmm/pdm.h>

RT_C_DECLS_BEGIN

/** The default BIOS logo data. */
extern const unsigned char  g_abVgaDefBiosLogo[];
extern const unsigned char  g_abVgaDefBiosLogoNY[];
/** The size of the default BIOS logo data. */
extern const unsigned       g_cbVgaDefBiosLogo;
extern const unsigned       g_cbVgaDefBiosLogoNY;


extern const PDMDEVREG g_DevicePCI;
extern const PDMDEVREG g_DevicePciIch9;
extern const PDMDEVREG g_DevicePcArch;
extern const PDMDEVREG g_DevicePcBios;
extern const PDMDEVREG g_DeviceIOAPIC;
extern const PDMDEVREG g_DevicePS2KeyboardMouse;
extern const PDMDEVREG g_DeviceI8254;
extern const PDMDEVREG g_DeviceI8259;
extern const PDMDEVREG g_DeviceHPET;
extern const PDMDEVREG g_DeviceSmc;
extern const PDMDEVREG g_DeviceFlash;
extern const PDMDEVREG g_DeviceMC146818;
extern const PDMDEVREG g_DevicePIIX3IDE;
extern const PDMDEVREG g_DeviceFloppyController;
extern const PDMDEVREG g_DeviceVga;
extern const PDMDEVREG g_DeviceVMMDev;
extern const PDMDEVREG g_DevicePCNet;
#ifdef VBOX_WITH_E1000
extern const PDMDEVREG g_DeviceE1000;
#endif
#ifdef VBOX_WITH_VIRTIO
extern const PDMDEVREG g_DeviceVirtioNet;
#endif
extern const PDMDEVREG g_DeviceDP8390;
extern const PDMDEVREG g_Device3C501;
#ifdef VBOX_WITH_INIP
extern const PDMDEVREG g_DeviceINIP;
#endif
extern const PDMDEVREG g_DeviceICHAC97;
extern const PDMDEVREG g_DeviceSB16;
extern const PDMDEVREG g_DeviceHDA;
extern const PDMDEVREG g_DeviceOHCI;
extern const PDMDEVREG g_DeviceEHCI;
extern const PDMDEVREG g_DeviceXHCI;
extern const PDMDEVREG g_DeviceACPI;
extern const PDMDEVREG g_DeviceDMA;
extern const PDMDEVREG g_DeviceFloppyController;
extern const PDMDEVREG g_DeviceSerialPort;
extern const PDMDEVREG g_DeviceOxPcie958;
extern const PDMDEVREG g_DeviceParallelPort;
#ifdef VBOX_WITH_AHCI
extern const PDMDEVREG g_DeviceAHCI;
#endif
#ifdef VBOX_WITH_BUSLOGIC
extern const PDMDEVREG g_DeviceBusLogic;
#endif
extern const PDMDEVREG g_DevicePCIBridge;
extern const PDMDEVREG g_DevicePciIch9Bridge;
#ifdef VBOX_WITH_LSILOGIC
extern const PDMDEVREG g_DeviceLsiLogicSCSI;
extern const PDMDEVREG g_DeviceLsiLogicSAS;
#endif
#ifdef VBOX_WITH_NVME_IMPL
extern const PDMDEVREG g_DeviceNVMe;
#endif
#ifdef VBOX_WITH_VIRTIO_SCSI
extern const PDMDEVREG g_DeviceVirtioSCSI;
#endif
#ifdef VBOX_WITH_EFI
extern const PDMDEVREG g_DeviceEFI;
#endif
#ifdef VBOX_WITH_PCI_PASSTHROUGH_IMPL
extern const PDMDEVREG g_DevicePciRaw;
#endif
extern const PDMDEVREG g_DeviceGIMDev;
extern const PDMDEVREG g_DeviceLPC;
#ifdef VBOX_WITH_VIRTUALKD
extern const PDMDEVREG g_DeviceVirtualKD;
#endif
extern const PDMDEVREG g_DeviceQemuFwCfg;
#ifdef VBOX_WITH_TPM
extern const PDMDEVREG g_DeviceTpm;
#endif

extern const PDMDRVREG g_DrvMouseQueue;
extern const PDMDRVREG g_DrvKeyboardQueue;
extern const PDMDRVREG g_DrvVBoxHDD;
extern const PDMDRVREG g_DrvVD;
extern const PDMDRVREG g_DrvHostDVD;
extern const PDMDRVREG g_DrvHostFloppy;
extern const PDMDRVREG g_DrvISCSI;
extern const PDMDRVREG g_DrvISCSITransportTcp;
#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)
extern const PDMDRVREG g_DrvHostInterface;
#endif
#ifdef VBOX_WITH_UDPTUNNEL
extern const PDMDRVREG g_DrvUDPTunnel;
#endif
#ifdef VBOX_WITH_VDE
extern const PDMDRVREG g_DrvVDE;
#endif
extern const PDMDRVREG g_DrvIntNet;
extern const PDMDRVREG g_DrvDedicatedNic;
extern const PDMDRVREG g_DrvNAT;
#ifdef VBOX_WITH_NETSHAPER
extern const PDMDRVREG g_DrvNetShaper;
#endif /* VBOX_WITH_NETSHAPER */
#ifdef VBOX_WITH_VMNET
extern const PDMDRVREG g_DrvVMNet;
#endif /* VBOX_WITH_VMNET */
extern const PDMDRVREG g_DrvNetSniffer;
extern const PDMDRVREG g_DrvAUDIO;
#ifdef VBOX_WITH_AUDIO_DEBUG
extern const PDMDRVREG g_DrvHostDebugAudio;
#endif
#ifdef VBOX_WITH_AUDIO_VALIDATIONKIT
extern const PDMDRVREG g_DrvHostValidationKitAudio;
#endif
extern const PDMDRVREG g_DrvHostNullAudio;
extern DECL_HIDDEN_DATA(struct PDMIHOSTAUDIO) const g_DrvHostAudioNull;
#if defined(RT_OS_WINDOWS)
extern const PDMDRVREG g_DrvHostDSound;
extern const PDMDRVREG g_DrvHostAudioWas;
#endif
#if defined(RT_OS_DARWIN)
extern const PDMDRVREG g_DrvHostCoreAudio;
#endif
#ifdef VBOX_WITH_AUDIO_OSS
extern const PDMDRVREG g_DrvHostOSSAudio;
#endif
#ifdef VBOX_WITH_AUDIO_ALSA
extern const PDMDRVREG g_DrvHostALSAAudio;
#endif
#ifdef VBOX_WITH_AUDIO_PULSE
extern const PDMDRVREG g_DrvHostPulseAudio;
#endif
extern const PDMDRVREG g_DrvACPI;
extern const PDMDRVREG g_DrvAcpiCpu;
extern const PDMDRVREG g_DrvVUSBRootHub;
#ifdef VBOX_WITH_USB_VIDEO_IMPL
extern const PDMDRVREG g_DrvHostWebcam;
#endif
extern const PDMDRVREG g_DrvChar;
extern const PDMDRVREG g_DrvNamedPipe;
extern const PDMDRVREG g_DrvTCP;
extern const PDMDRVREG g_DrvUDP;
extern const PDMDRVREG g_DrvRawFile;
extern const PDMDRVREG g_DrvHostParallel;
extern const PDMDRVREG g_DrvHostSerial;
#ifdef VBOX_WITH_DRV_DISK_INTEGRITY
extern const PDMDRVREG g_DrvDiskIntegrity;
extern const PDMDRVREG g_DrvRamDisk;
#endif
#ifdef VBOX_WITH_PCI_PASSTHROUGH_IMPL
extern const PDMDRVREG g_DrvPciRaw;
#endif

#ifdef VBOX_WITH_USB
extern const PDMUSBREG g_UsbDevProxy;
extern const PDMUSBREG g_UsbMsd;
#endif
#ifdef VBOX_WITH_VUSB
extern const PDMUSBREG g_UsbHid;
extern const PDMUSBREG g_UsbHidKbd;
extern const PDMUSBREG g_UsbHidMou;
#endif
#ifdef VBOX_WITH_USB_VIDEO_IMPL
extern const PDMUSBREG g_DevWebcam;
#endif

#ifdef VBOX_WITH_SCSI
extern const PDMDRVREG g_DrvSCSI;
#endif

extern const PDMDRVREG g_DrvIfTrace;
#ifdef VBOX_WITH_TPM
extern const PDMDRVREG g_DrvTpmEmu;
# ifdef RT_OS_LINUX
extern const PDMDRVREG g_DrvTpmHost;
# endif
# ifdef VBOX_WITH_LIBTPMS
extern const PDMDRVREG g_DrvTpmEmuTpms;
# endif
# ifdef VBOX_WITH_CLOUD_NET
extern const PDMDRVREG g_DrvCloudTunnel;
# endif
#endif

#ifdef VBOX_WITH_IOMMU_AMD
extern const PDMDEVREG g_DeviceIommuAmd;
#endif
#ifdef VBOX_WITH_IOMMU_INTEL
extern const PDMDEVREG g_DeviceIommuIntel;
#endif

#ifdef VBOX_VMM_TARGET_ARMV8
extern const PDMDEVREG g_DevicePl011;
extern const PDMDEVREG g_DevicePl031Rtc;
extern const PDMDEVREG g_DeviceFlashCFI;
#endif

/* VBoxAcpi.cpp */
int acpiPrepareDsdt(PPDMDEVINS pDevIns, void **ppvPtr, size_t *pcbDsdt);
int acpiCleanupDsdt(PPDMDEVINS pDevIns, void *pvPtr);
int acpiPrepareSsdt(PPDMDEVINS pDevIns, void **ppvPtr, size_t *pcbSsdt);
int acpiCleanupSsdt(PPDMDEVINS pDevIns, void *pvPtr);

#ifdef VBOX_WITH_TPM
int acpiPrepareTpmSsdt(PPDMDEVINS pDevIns, void **ppvPtr, size_t *pcbSsdt);
int acpiCleanupTpmSsdt(PPDMDEVINS pDevIns, void *pvPtr);
#endif

RT_C_DECLS_END

#endif /* !VBOX_INCLUDED_SRC_build_VBoxDD_h */