summaryrefslogtreecommitdiff
path: root/src/VBox/VMM/VMMR3/PDMDevice.cpp
Commit message (Collapse)AuthorAgeFilesLines
* VMM/ArmV8: Skeleton of the GICv3 interrupt controller emulation, bugref:10404vboxsync2023-04-131-2/+10
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@99385 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: More ARMv8 x86/amd64 separation work, VBoxVMMArm compiles and links ↵vboxsync2023-03-191-0/+4
| | | | | | now, bugref:10385 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@99051 cfe28804-0f27-0410-a406-dd0f0b0b656f
* Copyright year updates by scm.vboxsync2023-01-171-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@98103 cfe28804-0f27-0410-a406-dd0f0b0b656f
* scm copyright and license note updatevboxsync2022-08-221-8/+18
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@96407 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM/PGM,VMM/PDM,VGA: Consolidate the user parameters of the physical access ↵vboxsync2022-02-071-0/+5
| | | | | | handlers into a single uint64_t value that shouldn't be a pointer, at least not for ring-0 callbacks. Special hack for devices where it's translated from a ring-0 device instance index into a current context PPDMDEVINS (not really tested yet). bugref:10094 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@93635 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM/PDMQueue: Rewrote the queue code to not use the hyper heap and be a bit ↵vboxsync2022-02-051-3/+2
| | | | | | safer. Added a testcase (driverless). bugref:10093 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@93609 cfe28804-0f27-0410-a406-dd0f0b0b656f
* scm --update-copyright-yearvboxsync2022-01-011-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@93115 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: More driverless adjustments. bugref:10138vboxsync2021-12-021-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@92723 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM/PDM,PGM: Added PGMR3IsNemModeEnabled and made PDM not put devices in ↵vboxsync2021-11-121-1/+4
| | | | | | ring-0 when the simplified memory mode is active as it is implied that we won't be running anything from ring-0 (at least not on windows and mac, I think). PDM must use RTMemAllocZ instead of MMR3HeapAllocZEx for allocating device instance data to get proper alignment. bugref:10122 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@92410 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM/PDM,PGM: Added PGMR3IsNemModeEnabled and made PDM not put devices in ↵vboxsync2021-11-121-1/+8
| | | | | | ring-0 when the simplified memory mode is active as it is implied that we won't be running anything from ring-0 (at least not on windows and mac, I think). PDM must use RTMemAllocZ instead of MMR3HeapAllocZEx for allocating device instance data to get proper alignment. bugref:10122 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@92409 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: Removed raw-mode stuff from PDMQueue. bugref:9517vboxsync2021-10-201-2/+0
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@91895 cfe28804-0f27-0410-a406-dd0f0b0b656f
* - VMM: Pass pVM to PDMCritSect APIs. bugref:9218 bugref:10074vboxsync2021-07-261-6/+6
| | | | | | | - DrvNetShaper: Do bandwidth allocation via PDMDrvHlp. bugref:10074 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@90346 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM/PDMDevice: Add some details to VBoxDeviceRegister failures. bugref:9813vboxsync2020-08-101-0/+6
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@85658 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM/PDMDevice: Need to assign the device helper tracing variant before ↵vboxsync2020-06-101-18/+18
| | | | | | calling the constructor to catch all interesting events, bugref:9210 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@84765 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM/PDM: DBGF even tracing integration, bugref:9210vboxsync2020-05-221-17/+75
| | | | | | | | | | | | | Integrates the new DBGF event tracing framework into PDM devices. The new CFGM key "TracingEnabled" for a device instance enables tracing using DBGF. A special tracing variant of the PDM device helper is provided. Disabled by default for now, enable with VBOX_WITH_DBGF_TRACING git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@84459 cfe28804-0f27-0410-a406-dd0f0b0b656f
* Copyright year updates by scm.vboxsync2020-02-041-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@82968 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM: Require PDM_DEVREG_FLAGS_NEW_STYLE to be set now. bugref:9218vboxsync2019-12-061-0/+3
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@82457 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDMDevice.cpp: Set VM error on device constructor failures when the ↵vboxsync2019-11-181-1/+7
| | | | | | constructor didn't do it already. bugref:9218 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@81937 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM: Defined a total PDM device instance limit of 4MB (for now). Need some ↵vboxsync2019-11-141-3/+10
| | | | | | 2.5MB for ATA. [fix] bugref:9218 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@81841 cfe28804-0f27-0410-a406-dd0f0b0b656f
* DevSmc,PDM: Converted the SMC device to the new style. Converted ↵vboxsync2019-10-241-0/+1
| | | | | | PDMDevHlpCallR0 to use PDMDEVREGR0::pfnRequest and ditch the inefficient symbol resolving stuff. The SMC device was the only user I could find for this helper. bugref:9218 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@81519 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM,/Makefile.kmk: Kicked out more recompiler related code. bugref:9576vboxsync2019-10-081-3/+0
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@81150 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM,Devices: Moving the PDMPCIDEV structures into the PDMDEVINS allocation. ↵vboxsync2019-09-261-11/+36
| | | | | | Preps for extending the config space to 4KB. bugref:9218 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@81031 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM: Check new device registration fields when creating the ring-0 ↵vboxsync2019-09-101-0/+2
| | | | | | instances. Sketched in PCI device allocation, but haven't implemented it yet. bugref:9218 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80706 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM,Devices: Changed PDM_DEVREG_FLAGS_MSI_X into a registration field giving ↵vboxsync2019-09-101-0/+4
| | | | | | the max MSI-X vector count config for the device (typically VBOX_MSIX_MAX_ENTRIES). bugref:9218 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80704 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM,Devices: Redefined uReserved1 to cMaxPciDevices in the PDMDEVREG ↵vboxsync2019-09-101-0/+2
| | | | | | structures and added PDM_DEVREG_FLAGS_MSI_X for indicating possible need for MSI-X. bugref:9218 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80701 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: Fix for problem loading VBoxEhciR0.r0 after PDM device refactoring. ↵vboxsync2019-09-021-1/+1
| | | | | | bugref:9218 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80542 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM,Devices: Some PDM device model refactoring. bugref:9218vboxsync2019-09-011-72/+141
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80531 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: Eliminating the VBOX_BUGREF_9217 preprocessor macro. bugref:9217vboxsync2019-08-171-4/+0
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80334 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: Eliminating the VBOX_BUGREF_9217_PART_I preprocessor macro. bugref:9217vboxsync2019-08-161-1/+0
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80333 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM,++: Refactoring code to use VMMC & VMMCPUCC. bugref:9217vboxsync2019-08-151-0/+4
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80281 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM/r3: Refactored VMCPU enumeration in preparation that aCpus will be ↵vboxsync2019-08-081-0/+1
| | | | | | replaced with a pointer array. Removed two raw-mode offset members from the CPUM and CPUMCPU sub-structures. bugref:9217 bugref:9517 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80191 cfe28804-0f27-0410-a406-dd0f0b0b656f
* scm --update-copyright-yearvboxsync2019-01-011-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@76553 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VBox/vmm/apic.h: Try avoid dragging in pdmdev.h, so use function for APIC ↵vboxsync2018-12-231-3/+3
| | | | | | device registration rather than exposing g_DeviceAPIC. bugref:9344 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@76402 cfe28804-0f27-0410-a406-dd0f0b0b656f
* *: Made RT_UOFFSETOF, RT_OFFSETOF, RT_UOFFSETOF_ADD and RT_OFFSETOF_ADD work ↵vboxsync2018-07-121-2/+2
| | | | | | like __builtin_offsetof() and require compile time resolvable requests, adding RT_UOFFSETOF_DYN for the dynamic questions that can only be answered at runtime. git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@73097 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: Added a bMainExecutionEngine member to the VM structure for use instead ↵vboxsync2018-02-101-1/+1
| | | | | | of fHMEnabled and fNEMEnabled. Changed a lot of HMIsEnabled invocations to use the new macros VM_IS_RAW_MODE_ENABLED and VM_IS_HM_OR_NEM_ENABLED. Eliminated fHMEnabledFixed. Fixed inverted test for raw-mode debug register sanity checking. Some other minor cleanups. git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@70948 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDMDevice.cpp: Try instantiate devices in instance order, unless 'Priority' ↵vboxsync2018-02-091-2/+6
| | | | | | overrides it. git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@70932 cfe28804-0f27-0410-a406-dd0f0b0b656f
* Fixed typo: Occurance -> Occurrence.vboxsync2017-12-081-10/+10
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@70039 cfe28804-0f27-0410-a406-dd0f0b0b656f
* (C) yearvboxsync2017-10-171-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@69111 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM: rip out the entire FakePCIBIOS support, no longer triggered from herevboxsync2017-06-281-15/+1
| | | | | | | | Devices/Bus: register magic port to trigger FakePCIBIOS BIOS: disable the unneeded function for PCI resource/IRQ initialization (only partially used anyway) and use the magic port to trigger FakePCIBIOS git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@67668 cfe28804-0f27-0410-a406-dd0f0b0b656f
* Recompiler, VMM, Devices: Purge the old APIC and the VBOX_WITH_NEW_APIC define.vboxsync2016-11-101-5/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@64626 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM,Devices: Support for multiple PCI devices/function in a single PDM device.vboxsync2016-10-231-6/+3
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@64373 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMMR3: warningsvboxsync2016-07-281-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@62643 cfe28804-0f27-0410-a406-dd0f0b0b656f
* (C) 2016vboxsync2016-07-221-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@62478 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM: Call pfnInitComplete after both ring-0 and raw-mode is fully ↵vboxsync2016-04-081-1/+18
| | | | | | initialized. Used to call this immediately after the devices were initialized. git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@60387 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: APIC rewrite. Initial commit, work in progress.vboxsync2016-04-041-1/+12
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@60307 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: Made @param pVM more uniform and to the point.vboxsync2015-10-081-5/+5
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@58122 cfe28804-0f27-0410-a406-dd0f0b0b656f
* *: scm cleanup run.vboxsync2015-08-141-9/+9
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@57358 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: Log and assertion formatting fixes.vboxsync2015-07-181-2/+2
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@56985 cfe28804-0f27-0410-a406-dd0f0b0b656f
* VMM: Updated (C) year.vboxsync2015-06-091-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@56287 cfe28804-0f27-0410-a406-dd0f0b0b656f
* PDM/Audio: Ignore old AudioSniffer device when loading older saved states.vboxsync2015-02-231-1/+1
| | | | git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@54385 cfe28804-0f27-0410-a406-dd0f0b0b656f