X86: Get rid of the unused getAllocator on the python base microop class.
[gem5.git] / src / arch / sparc / system.hh
index 27aa8768a62625ad1790563a0a23a20ffeee4252..086ce3fdb50cd24a66124d14203e1bbcf0a83762 100644 (file)
@@ -24,6 +24,8 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Ali Saidi
  */
 
 #ifndef __ARCH_SPARC_SYSTEM_HH__
 #include "base/loader/symtab.hh"
 #include "cpu/pc_event.hh"
 #include "kern/system_events.hh"
+#include "params/SparcSystem.hh"
 #include "sim/sim_object.hh"
 #include "sim/system.hh"
 
 class SparcSystem : public System
 {
   public:
-    struct Params : public System::Params
-    {
-        std::string reset_bin;
-        std::string hypervison_bin;
-        std::string openboot_bin;
-        std::string boot_osflags;
-        uint64_t system_type;
-        uint64_t system_rev;
-    };
-
+    typedef SparcSystemParams Params;
     SparcSystem(Params *p);
-
-    ~SparcaSystem();
-
-    virtual bool breakpoint();
+    ~SparcSystem();
 
 /**
  * Serialization stuff
@@ -73,6 +64,15 @@ class SparcSystem : public System
     /** openboot symbol table */
     SymbolTable *openbootSymtab;
 
+    /** nvram symbol table? */
+    SymbolTable *nvramSymtab;
+
+    /** hypervisor desc symbol table? */
+    SymbolTable *hypervisorDescSymtab;
+
+    /** partition desc symbol table? */
+    SymbolTable *partitionDescSymtab;
+
     /** Object pointer for the reset binary */
     ObjectFile *reset;
 
@@ -82,32 +82,59 @@ class SparcSystem : public System
     /** Object pointer for the openboot code */
     ObjectFile *openboot;
 
+    /** Object pointer for the nvram image */
+    ObjectFile *nvram;
+
+    /** Object pointer for the hypervisor description image */
+    ObjectFile *hypervisor_desc;
+
+    /** Object pointer for the partition description image */
+    ObjectFile *partition_desc;
+
+    /** System Tick for syncronized tick across all cpus. */
+    Tick sysTick;
+
+    /** functional port to ROM */
+    FunctionalPort funcRomPort;
+
+    /** functional port to nvram */
+    FunctionalPort funcNvramPort;
+
+    /** functional port to hypervisor description */
+    FunctionalPort funcHypDescPort;
+
+    /** functional port to partition description */
+    FunctionalPort funcPartDescPort;
+
   protected:
     const Params *params() const { return (const Params *)_params; }
 
     /** Add a function-based event to reset binary. */
     template <class T>
-    T *SparcSystem::addResetFuncEvent(const char *lbl)
+    T *addResetFuncEvent(const char *lbl)
     {
         return addFuncEvent<T>(resetSymtab, lbl);
     }
 
     /** Add a function-based event to the hypervisor. */
     template <class T>
-    T *SparcSystem::addHypervisorFuncEvent(const char *lbl)
+    T *addHypervisorFuncEvent(const char *lbl)
     {
         return addFuncEvent<T>(hypervisorSymtab, lbl);
     }
 
     /** Add a function-based event to the openboot. */
     template <class T>
-    T *SparcSystem::addOpenbootFuncEvent(const char *lbl)
+    T *addOpenbootFuncEvent(const char *lbl)
     {
         return addFuncEvent<T>(openbootSymtab, lbl);
     }
 
-    virtual Addr fixFuncEventAddr(Addr addr);
-
+    virtual Addr fixFuncEventAddr(Addr addr)
+    {
+        //XXX This may eventually have to do something useful.
+        return addr;
+    }
 };
 
 #endif