mirror of
https://github.com/dingusdev/dingusppc.git
synced 2024-12-23 06:29:38 +00:00
Add stub for pci_unregister_device.
This commit is contained in:
parent
9ade14e076
commit
60a4738694
@ -34,8 +34,9 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
bool PCIHost::pci_register_device(int dev_fun_num, PCIBase* dev_instance)
|
||||
{
|
||||
// return false if dev_fun_num already registered
|
||||
if (this->dev_map.count(dev_fun_num))
|
||||
return false;
|
||||
if (this->dev_map.count(dev_fun_num)) {
|
||||
pci_unregister_device(dev_fun_num);
|
||||
}
|
||||
|
||||
int fun_num = dev_fun_num & 7;
|
||||
int dev_num = (dev_fun_num >> 3) & 0x1f;
|
||||
@ -69,6 +70,22 @@ bool PCIHost::pci_register_device(int dev_fun_num, PCIBase* dev_instance)
|
||||
return true;
|
||||
}
|
||||
|
||||
void PCIHost::pci_unregister_device(int dev_fun_num)
|
||||
{
|
||||
if (!this->dev_map.count(dev_fun_num)) {
|
||||
return;
|
||||
}
|
||||
PCIBase* dev_instance = this->dev_map[dev_fun_num];
|
||||
|
||||
HWComponent *hwc = dynamic_cast<HWComponent*>(this);
|
||||
LOG_F(
|
||||
ERROR, "%s: pci_unregister_device(%s) not supported yet (every PCI device needs a working destructor)",
|
||||
hwc ? hwc->get_name().c_str() : "PCIHost", dev_instance->get_name().c_str()
|
||||
);
|
||||
|
||||
delete dev_instance;
|
||||
}
|
||||
|
||||
bool PCIHost::pci_register_mmio_region(uint32_t start_addr, uint32_t size, PCIBase* obj)
|
||||
{
|
||||
MemCtrlBase *mem_ctrl = dynamic_cast<MemCtrlBase *>
|
||||
|
@ -61,6 +61,7 @@ public:
|
||||
~PCIHost() = default;
|
||||
|
||||
virtual bool pci_register_device(int dev_fun_num, PCIBase* dev_instance);
|
||||
virtual void pci_unregister_device(int dev_fun_num);
|
||||
|
||||
virtual bool pci_register_mmio_region(uint32_t start_addr, uint32_t size, PCIBase* obj);
|
||||
virtual bool pci_unregister_mmio_region(uint32_t start_addr, uint32_t size, PCIBase* obj);
|
||||
|
Loading…
Reference in New Issue
Block a user