arch: Use const StaticInstPtr references where possible
[gem5.git] / src / cpu / func_unit.hh
index 7801430969ed8547260b78fe0246ef17c4d602df..51e2011f8776d25ee14d98805086787bf29ccc08 100644 (file)
@@ -36,6 +36,8 @@
 #include <vector>
 
 #include "cpu/op_class.hh"
+#include "params/FUDesc.hh"
+#include "params/OpDesc.hh"
 #include "sim/sim_object.hh"
 
 ////////////////////////////////////////////////////////////////////////////
 //
 //
 
-struct OpDesc : public SimObject
+class OpDesc : public SimObject
 {
+  public:
     OpClass opClass;
-    unsigned    opLat;
-    unsigned    issueLat;
+    Cycles opLat;
+    Cycles issueLat;
 
-    OpDesc(std::string name, OpClass c, unsigned o, unsigned i)
-        : SimObject(name), opClass(c), opLat(o), issueLat(i) {};
+    OpDesc(const OpDescParams *p)
+        : SimObject(p), opClass(p->opClass), opLat(p->opLat),
+          issueLat(p->issueLat) {};
 };
 
-struct FUDesc : public SimObject
+class FUDesc : public SimObject
 {
+  public:
     std::vector<OpDesc *> opDescList;
     unsigned         number;
 
-    FUDesc(std::string name, std::vector<OpDesc *> l, unsigned n)
-        : SimObject(name), opDescList(l), number(n) {};
+    FUDesc(const FUDescParams *p)
+        : SimObject(p), opDescList(p->opList), number(p->count) {};
 };
 
-typedef std::vector<OpDesc *>::iterator OPDDiterator;
-typedef std::vector<FUDesc *>::iterator FUDDiterator;
+typedef std::vector<OpDesc *>::const_iterator OPDDiterator;
+typedef std::vector<FUDesc *>::const_iterator FUDDiterator;