summaryrefslogtreecommitdiff
path: root/src/mem/slicc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/slicc')
-rw-r--r--src/mem/slicc/main.py3
-rw-r--r--src/mem/slicc/symbols/StateMachine.py38
-rw-r--r--src/mem/slicc/symbols/SymbolTable.py2
-rw-r--r--src/mem/slicc/symbols/Type.py14
4 files changed, 30 insertions, 27 deletions
diff --git a/src/mem/slicc/main.py b/src/mem/slicc/main.py
index f2a47510f..f7f04946d 100644
--- a/src/mem/slicc/main.py
+++ b/src/mem/slicc/main.py
@@ -90,7 +90,8 @@ def main(args=None):
output("SLICC v0.4")
output("Parsing...")
- protocol_base = os.path.join(os.path.dirname(__file__), '..', 'protocol')
+ protocol_base = os.path.join(os.path.dirname(__file__),
+ '..', 'ruby', 'protocol')
slicc = SLICC(slicc_file, protocol_base, verbose=True, debug=opts.debug,
traceback=opts.tb)
diff --git a/src/mem/slicc/symbols/StateMachine.py b/src/mem/slicc/symbols/StateMachine.py
index 03e624b11..a92e078e2 100644
--- a/src/mem/slicc/symbols/StateMachine.py
+++ b/src/mem/slicc/symbols/StateMachine.py
@@ -230,7 +230,7 @@ from m5.objects.Controller import RubyController
class $py_ident(RubyController):
type = '$py_ident'
- cxx_header = 'mem/protocol/${c_ident}.hh'
+ cxx_header = 'mem/ruby/protocol/${c_ident}.hh'
''')
code.indent()
for param in self.config_parameters:
@@ -272,9 +272,9 @@ class $py_ident(RubyController):
#include <sstream>
#include <string>
-#include "mem/protocol/TransitionResult.hh"
-#include "mem/protocol/Types.hh"
#include "mem/ruby/common/Consumer.hh"
+#include "mem/ruby/protocol/TransitionResult.hh"
+#include "mem/ruby/protocol/Types.hh"
#include "mem/ruby/slicc_interface/AbstractController.hh"
#include "params/$c_ident.hh"
@@ -283,7 +283,7 @@ class $py_ident(RubyController):
seen_types = set()
for var in self.objects:
if var.type.ident not in seen_types and not var.type.isPrimitive:
- code('#include "mem/protocol/${{var.type.c_ident}}.hh"')
+ code('#include "mem/ruby/protocol/${{var.type.c_ident}}.hh"')
seen_types.add(var.type.ident)
# for adding information to the protocol debug trace
@@ -459,18 +459,18 @@ void unset_tbe(${{self.TBEType.c_ident}}*& m_tbe_ptr);
#include <typeinfo>
#include "base/compiler.hh"
-#include "mem/ruby/common/BoolVec.hh"
#include "base/cprintf.hh"
+#include "mem/ruby/common/BoolVec.hh"
''')
for f in self.debug_flags:
code('#include "debug/${{f}}.hh"')
code('''
-#include "mem/protocol/${ident}_Controller.hh"
-#include "mem/protocol/${ident}_Event.hh"
-#include "mem/protocol/${ident}_State.hh"
-#include "mem/protocol/Types.hh"
#include "mem/ruby/network/Network.hh"
+#include "mem/ruby/protocol/${ident}_Controller.hh"
+#include "mem/ruby/protocol/${ident}_Event.hh"
+#include "mem/ruby/protocol/${ident}_State.hh"
+#include "mem/ruby/protocol/Types.hh"
#include "mem/ruby/system/RubySystem.hh"
''')
@@ -486,7 +486,7 @@ using namespace std;
seen_types = set()
for var in self.objects:
if var.type.ident not in seen_types and not var.type.isPrimitive:
- code('#include "mem/protocol/${{var.type.c_ident}}.hh"')
+ code('#include "mem/ruby/protocol/${{var.type.c_ident}}.hh"')
seen_types.add(var.type.ident)
num_in_ports = len(self.in_ports)
@@ -1057,17 +1057,17 @@ $c_ident::functionalWriteBuffers(PacketPtr& pkt)
for f in self.debug_flags:
code('#include "debug/${{f}}.hh"')
code('''
-#include "mem/protocol/${ident}_Controller.hh"
-#include "mem/protocol/${ident}_Event.hh"
-#include "mem/protocol/${ident}_State.hh"
+#include "mem/ruby/protocol/${ident}_Controller.hh"
+#include "mem/ruby/protocol/${ident}_Event.hh"
+#include "mem/ruby/protocol/${ident}_State.hh"
''')
if outputRequest_types:
- code('''#include "mem/protocol/${ident}_RequestType.hh"''')
+ code('''#include "mem/ruby/protocol/${ident}_RequestType.hh"''')
code('''
-#include "mem/protocol/Types.hh"
+#include "mem/ruby/protocol/Types.hh"
#include "mem/ruby/system/RubySystem.hh"
''')
@@ -1172,10 +1172,10 @@ ${ident}_Controller::wakeup()
#include "base/trace.hh"
#include "debug/ProtocolTrace.hh"
#include "debug/RubyGenerated.hh"
-#include "mem/protocol/${ident}_Controller.hh"
-#include "mem/protocol/${ident}_Event.hh"
-#include "mem/protocol/${ident}_State.hh"
-#include "mem/protocol/Types.hh"
+#include "mem/ruby/protocol/${ident}_Controller.hh"
+#include "mem/ruby/protocol/${ident}_Event.hh"
+#include "mem/ruby/protocol/${ident}_State.hh"
+#include "mem/ruby/protocol/Types.hh"
#include "mem/ruby/system/RubySystem.hh"
#define HASH_FUN(state, event) ((int(state)*${ident}_Event_NUM)+int(event))
diff --git a/src/mem/slicc/symbols/SymbolTable.py b/src/mem/slicc/symbols/SymbolTable.py
index e991fec2b..e4fc0a3fb 100644
--- a/src/mem/slicc/symbols/SymbolTable.py
+++ b/src/mem/slicc/symbols/SymbolTable.py
@@ -133,7 +133,7 @@ class SymbolTable(object):
for symbol in self.sym_vec:
if isinstance(symbol, Type) and not symbol.isPrimitive:
- code('#include "mem/protocol/${{symbol.c_ident}}.hh"')
+ code('#include "mem/ruby/protocol/${{symbol.c_ident}}.hh"')
code.write(path, "Types.hh")
diff --git a/src/mem/slicc/symbols/Type.py b/src/mem/slicc/symbols/Type.py
index e9ea61815..c4d8eae06 100644
--- a/src/mem/slicc/symbols/Type.py
+++ b/src/mem/slicc/symbols/Type.py
@@ -201,15 +201,16 @@ class Type(Symbol):
#include <iostream>
#include "mem/ruby/slicc_interface/RubySlicc_Util.hh"
+
''')
for dm in self.data_members.values():
if not dm.type.isPrimitive:
- code('#include "mem/protocol/$0.hh"', dm.type.c_ident)
+ code('#include "mem/ruby/protocol/$0.hh"', dm.type.c_ident)
parent = ""
if "interface" in self:
- code('#include "mem/protocol/$0.hh"', self["interface"])
+ code('#include "mem/ruby/protocol/$0.hh"', self["interface"])
parent = " : public %s" % self["interface"]
code('''
@@ -404,7 +405,7 @@ operator<<(std::ostream& out, const ${{self.c_ident}}& obj)
#include <iostream>
#include <memory>
-#include "mem/protocol/${{self.c_ident}}.hh"
+#include "mem/ruby/protocol/${{self.c_ident}}.hh"
#include "mem/ruby/system/RubySystem.hh"
using namespace std;
@@ -456,7 +457,7 @@ out << "${{dm.ident}} = " << printAddress(m_${{dm.ident}}) << " ";''')
''')
if self.isStateDecl:
- code('#include "mem/protocol/AccessPermission.hh"')
+ code('#include "mem/ruby/protocol/AccessPermission.hh"')
if self.isMachineType:
code('#include <functional>')
@@ -558,7 +559,7 @@ std::ostream& operator<<(std::ostream& out, const ${{self.c_ident}}& obj);
#include <string>
#include "base/logging.hh"
-#include "mem/protocol/${{self.c_ident}}.hh"
+#include "mem/ruby/protocol/${{self.c_ident}}.hh"
using namespace std;
@@ -588,7 +589,8 @@ AccessPermission ${{self.c_ident}}_to_permission(const ${{self.c_ident}}& obj)
if self.isMachineType:
for enum in self.enums.itervalues():
if enum.primary:
- code('#include "mem/protocol/${{enum.ident}}_Controller.hh"')
+ code('#include "mem/ruby/protocol/${{enum.ident}}'
+ '_Controller.hh"')
code('#include "mem/ruby/common/MachineID.hh"')
code('''