/** * Register the main drivers. * * @returns VBox status code. * @param pCallbacks Pointer to the callback table. * @param u32Version VBox version number. */ extern "C" DECLEXPORT(int) VBoxDriversRegister(PCPDMDRVREGCB pCallbacks, uint32_t u32Version) { LogFlow(("VBoxDriversRegister: u32Version=%#x\n", u32Version)); AssertReleaseMsg(u32Version == VBOX_VERSION, ("u32Version=%#x VBOX_VERSION=%#x\n", u32Version, VBOX_VERSION)); int rc = pCallbacks->pfnRegister(pCallbacks, &Mouse::DrvReg); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &Keyboard::DrvReg); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &Display::DrvReg); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &VMMDev::DrvReg); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &AudioSniffer::DrvReg); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &Nvram::DrvReg); if (RT_FAILURE(rc)) return rc; #ifdef VBOX_WITH_USB_VIDEO rc = pCallbacks->pfnRegister(pCallbacks, &EmWebcam::DrvReg); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_USB_CARDREADER rc = pCallbacks->pfnRegister(pCallbacks, &UsbCardReader::DrvReg); if (RT_FAILURE(rc)) return rc; #endif rc = pCallbacks->pfnRegister(pCallbacks, &Console::DrvStatusReg); if (RT_FAILURE(rc)) return rc; #ifdef VBOX_WITH_PCI_PASSTHROUGH rc = pCallbacks->pfnRegister(pCallbacks, &PCIRawDev::DrvReg); if (RT_FAILURE(rc)) return rc; #endif return VINF_SUCCESS; }
/** * Register builtin drivers. * * @returns VBox status code. * @param pCallbacks Pointer to the callback table. * @param u32Version VBox version number. */ extern "C" DECLEXPORT(int) VBoxDriversRegister(PCPDMDRVREGCB pCallbacks, uint32_t u32Version) { LogFlow(("VBoxDriversRegister: u32Version=%#x\n", u32Version)); AssertReleaseMsg(u32Version == VBOX_VERSION, ("u32Version=%#x VBOX_VERSION=%#x\n", u32Version, VBOX_VERSION)); int rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvMouseQueue); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvKeyboardQueue); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvVD); if (RT_FAILURE(rc)) return rc; #if defined(RT_OS_DARWIN) || defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_WINDOWS) || defined(RT_OS_FREEBSD) rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostDVD); if (RT_FAILURE(rc)) return rc; #endif #if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostFloppy); if (RT_FAILURE(rc)) return rc; #endif rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvNAT); if (RT_FAILURE(rc)) return rc; #if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostInterface); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_UDPTUNNEL rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvUDPTunnel); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_VDE rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvVDE); if (RT_FAILURE(rc)) return rc; #endif rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvIntNet); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvDedicatedNic); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvNetSniffer); if (RT_FAILURE(rc)) return rc; #ifdef VBOX_WITH_NETSHAPER rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvNetShaper); if (RT_FAILURE(rc)) return rc; #endif rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvAUDIO); if (RT_FAILURE(rc)) return rc; #ifdef VBOX_WITH_AUDIO_DEBUG rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostDebugAudio); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_AUDIO_VALIDATIONKIT rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostValidationKitAudio); if (RT_FAILURE(rc)) return rc; #endif rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostNullAudio); if (RT_FAILURE(rc)) return rc; #if defined(RT_OS_WINDOWS) rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostDSound); if (RT_FAILURE(rc)) return rc; #endif #if defined(RT_OS_DARWIN) rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostCoreAudio); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_AUDIO_ALSA rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostALSAAudio); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_AUDIO_OSS rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostOSSAudio); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_AUDIO_PULSE rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostPulseAudio); if (RT_FAILURE(rc)) return rc; #endif rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvACPI); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvAcpiCpu); if (RT_FAILURE(rc)) return rc; #ifdef VBOX_WITH_VUSB rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvVUSBRootHub); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_USB_VIDEO_IMPL rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostWebcam); if (RT_FAILURE(rc)) return rc; #endif rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvNamedPipe); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvTCP); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvUDP); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvRawFile); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvChar); if (RT_FAILURE(rc)) return rc; #if defined(RT_OS_LINUX) || defined(VBOX_WITH_WIN_PARPORT_SUP) rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostParallel); if (RT_FAILURE(rc)) return rc; #endif #if defined(RT_OS_DARWIN) || defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_WINDOWS) || defined(RT_OS_FREEBSD) rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvHostSerial); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_SCSI rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvSCSI); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_DRV_DISK_INTEGRITY rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvDiskIntegrity); if (RT_FAILURE(rc)) return rc; rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvRamDisk); if (RT_FAILURE(rc)) return rc; #endif #ifdef VBOX_WITH_PCI_PASSTHROUGH_IMPL rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvPciRaw); if (RT_FAILURE(rc)) return rc; #endif return VINF_SUCCESS; }