summaryrefslogtreecommitdiff
path: root/src/dev/platform.hh
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2006-07-19 17:59:04 -0400
committerAli Saidi <saidi@eecs.umich.edu>2006-07-19 17:59:04 -0400
commit15e5ce96c76a20b9b27e5f7d7ed29e962422ad1a (patch)
tree610a888b2de5d25c166f65819d8ad3058d13723c /src/dev/platform.hh
parentb36796914af8bfc6729cc8a519e57572460e43e8 (diff)
parent6175f712b3216f3e5387b07d9c41c1931c09acd9 (diff)
downloadgem5-15e5ce96c76a20b9b27e5f7d7ed29e962422ad1a.tar.xz
Merge zizzer:/bk/newmem
into zeep.pool:/z/saidi/work/m5.newmem.head --HG-- extra : convert_revision : 8c747208d72ffbb0160a2ad4a75383420debdf83
Diffstat (limited to 'src/dev/platform.hh')
-rw-r--r--src/dev/platform.hh15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/dev/platform.hh b/src/dev/platform.hh
index 0e6f4ba4a..1940dcad6 100644
--- a/src/dev/platform.hh
+++ b/src/dev/platform.hh
@@ -37,6 +37,9 @@
#ifndef __DEV_PLATFORM_HH__
#define __DEV_PLATFORM_HH__
+#include <bitset>
+#include <set>
+
#include "sim/sim_object.hh"
#include "arch/isa_traits.hh"
@@ -52,9 +55,6 @@ class Platform : public SimObject
/** Pointer to the interrupt controller */
IntrControl *intrctrl;
- /** Pointer to the PCI configuration space */
- PciConfigAll *pciconfig;
-
/** Pointer to the UART, set by the uart */
Uart *uart;
@@ -64,13 +64,20 @@ class Platform : public SimObject
public:
Platform(const std::string &name, IntrControl *intctrl);
virtual ~Platform();
- virtual void init() { if (pciconfig == NULL) panic("PCI Config not set"); }
virtual void postConsoleInt() = 0;
virtual void clearConsoleInt() = 0;
virtual Tick intrFrequency() = 0;
virtual void postPciInt(int line);
virtual void clearPciInt(int line);
virtual Addr pciToDma(Addr pciAddr) const;
+ virtual Addr calcConfigAddr(int bus, int dev, int func) = 0;
+ virtual void registerPciDevice(uint8_t bus, uint8_t dev, uint8_t func,
+ uint8_t intr);
+
+ private:
+ std::bitset<256> intLines;
+ std::set<uint32_t> pciDevices;
+
};
#endif // __DEV_PLATFORM_HH__