summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/pci.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/pci.h')
-rw-r--r--src/devices/machine/pci.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/devices/machine/pci.h b/src/devices/machine/pci.h
index 89a20827e5b..e9fa3ec0b2a 100644
--- a/src/devices/machine/pci.h
+++ b/src/devices/machine/pci.h
@@ -6,7 +6,8 @@
#pragma once
-class pci_device : public device_t {
+class device_pci_interface : public device_interface
+{
public:
typedef delegate<void ()> pci_mapper_cb;
@@ -58,7 +59,7 @@ public:
void pci_interrupt_pin_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
protected:
- pci_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+ device_pci_interface(const machine_config &mconfig, device_t &device);
optional_memory_region m_pci_region;
@@ -98,8 +99,8 @@ protected:
bool m_pci_is_multifunction_device;
uint8_t m_pci_intr_line, m_pci_intr_pin;
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void interface_pre_start() override;
+ virtual void interface_pre_reset() override;
void pci_skip_map_regs(int count);
void pci_add_map(uint64_t size, int flags, const address_map_constructor &map, device_t *relative_to = nullptr);
@@ -120,6 +121,15 @@ protected:
void pci_set_map_flags(int id, int flags);
};
+class pci_device : public device_t, public device_pci_interface
+{
+protected:
+ pci_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
+ virtual void device_start() override;
+};
+
+
class agp_device : public pci_device {
protected:
agp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);