X86: Implement the media floating point max instructions.
[gem5.git] / src / arch / x86 / system.hh
index ce44651c61821943ce65b166f6ff26ceb0f97a35..12a471f6f69a5f666d9686ab9fe4f91cadfedaad 100644 (file)
 #include "sim/sim_object.hh"
 #include "sim/system.hh"
 
+namespace X86ISA
+{
+    namespace SMBios
+    {
+        class SMBiosTable;
+    }
+    namespace IntelMP
+    {
+        class FloatingPointer;
+        class ConfigTable;
+    }
+}
+
 class X86System : public System
 {
   public:
@@ -79,10 +92,24 @@ class X86System : public System
  * Serialization stuff
  */
   public:
-    virtual void serialize(std::ostream &os);
-    virtual void unserialize(Checkpoint *cp, const std::string &section);
+    void serialize(std::ostream &os);
+    void unserialize(Checkpoint *cp, const std::string &section);
+
+    void startup();
 
   protected:
+
+    X86ISA::SMBios::SMBiosTable * smbiosTable;
+    X86ISA::IntelMP::FloatingPointer * mpFloatingPointer;
+    X86ISA::IntelMP::ConfigTable * mpConfigTable;
+    X86ISA::ACPI::RSDP * rsdp;
+
+    void writeOutSMBiosTable(Addr header,
+            Addr &headerSize, Addr &tableSize, Addr table = 0);
+
+    void writeOutMPTable(Addr fp,
+            Addr &fpSize, Addr &tableSize, Addr table = 0);
+
     const Params *params() const { return (const Params *)_params; }
 
     virtual Addr fixFuncEventAddr(Addr addr)