diff --git a/src/mem/gems_common/ioutil/SConscript b/src/mem/gems_common/ioutil/SConscript index 1cbab34b9..ea605a361 100644 --- a/src/mem/gems_common/ioutil/SConscript +++ b/src/mem/gems_common/ioutil/SConscript @@ -34,4 +34,3 @@ if not env['RUBY']: Return() Source('confio.cc') -Source('initvar.cc') diff --git a/src/mem/protocol/SConscript b/src/mem/protocol/SConscript index 17701e403..f7f7afdcd 100644 --- a/src/mem/protocol/SConscript +++ b/src/mem/protocol/SConscript @@ -50,7 +50,7 @@ html_dir = Dir('html') # # Use SLICC # -def slicc_action(target, source, env): +def slicc_generator(target, source, env, for_signature): slicc_bin = str(source[0]) protocol = source[1].get_contents() pdir = str(protocol_dir) @@ -65,7 +65,9 @@ def slicc_action(target, source, env): cmdline = [ slicc_bin, pdir, hdir, protocol, do_html ] cmdline += [ str(s) for s in source[2:] ] cmdline = ' '.join(cmdline) - os.system(cmdline) + return cmdline + +slicc_builder = Builder(generator=slicc_generator) protocol = env['PROTOCOL'] sources = [ protocol_dir.File("RubySlicc_interfaces.slicc"), @@ -91,7 +93,9 @@ hh = [ protocol_dir.File(f) for f in hh ] cc = [ protocol_dir.File(f) for f in cc ] slicc_bin = slicc_dir.File("slicc") -env.Command(hh + cc, [ slicc_bin, Value(protocol) ] + sm_files, slicc_action) + +env.Append(BUILDERS={'SLICC' : slicc_builder}) +env.SLICC(hh + cc, [ slicc_bin, Value(protocol) ] + sm_files) for f in cc: Source(f) diff --git a/src/mem/protocol/SConsopts b/src/mem/protocol/SConsopts index 6ca93ca06..ded0814d2 100644 --- a/src/mem/protocol/SConsopts +++ b/src/mem/protocol/SConsopts @@ -49,7 +49,7 @@ all_protocols = [ 'MSI_MOSI_CMP_directory', ] -opt = EnumVariable('PROTOCOL', 'Coherence Protocol for Ruby', 'MOSI_SMP_bcast', +opt = EnumVariable('PROTOCOL', 'Coherence Protocol for Ruby', 'MI_example', all_protocols) sticky_vars.AddVariables(opt) diff --git a/src/mem/ruby/SConscript b/src/mem/ruby/SConscript index 4c52d8688..0c8423c85 100644 --- a/src/mem/ruby/SConscript +++ b/src/mem/ruby/SConscript @@ -40,7 +40,7 @@ Import('*') if not env['RUBY']: Return() -Source('init.cc') +Source('libruby.cc') def do_embed_text(target, source, env): """convert a text file into a file that can be embedded in C @@ -95,24 +95,25 @@ def MakeInclude(source): target = generated_dir.File(basename(source)) env.Command(target, source, MakeIncludeAction) +MakeInclude('slicc_interface/AbstractCacheEntry.hh') +MakeInclude('slicc_interface/AbstractProtocol.hh') +MakeInclude('slicc_interface/Message.hh') +MakeInclude('slicc_interface/NetworkMessage.hh') + +# External types MakeInclude('buffers/MessageBuffer.hh') MakeInclude('common/Address.hh') MakeInclude('common/DataBlock.hh') MakeInclude('common/NetDest.hh') MakeInclude('common/Set.hh') -MakeInclude('slicc_interface/AbstractCacheEntry.hh') -MakeInclude('slicc_interface/AbstractProtocol.hh') -MakeInclude('slicc_interface/Message.hh') -MakeInclude('slicc_interface/NetworkMessage.hh') +MakeInclude('filters/GenericBloomFilter.hh') MakeInclude('system/CacheMemory.hh') +MakeInclude('system/DMASequencer.hh') MakeInclude('system/DirectoryMemory.hh') MakeInclude('system/MachineID.hh') MakeInclude('system/MemoryControl.hh') MakeInclude('system/NodeID.hh') -MakeInclude('system/NodePersistentTable.hh') MakeInclude('system/PerfectCacheMemory.hh') -MakeInclude('system/PersistentTable.hh') MakeInclude('system/Sequencer.hh') -MakeInclude('system/StoreBuffer.hh') MakeInclude('system/TBETable.hh') MakeInclude('system/TimerTable.hh') diff --git a/src/mem/ruby/filters/SConscript b/src/mem/ruby/filters/SConscript new file mode 100644 index 000000000..ac03aaf36 --- /dev/null +++ b/src/mem/ruby/filters/SConscript @@ -0,0 +1,43 @@ +# -*- mode:python -*- + +# Copyright (c) 2009 The Hewlett-Packard Development Company +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# 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: Nathan Binkert + +Import('*') + +if not env['RUBY']: + Return() + +Source('BlockBloomFilter.cc') +Source('BulkBloomFilter.cc') +Source('GenericBloomFilter.cc') +Source('H3BloomFilter.cc') +Source('LSB_CountingBloomFilter.cc') +Source('MultiBitSelBloomFilter.cc') +Source('MultiGrainBloomFilter.cc') +Source('NonCountingBloomFilter.cc') diff --git a/src/mem/ruby/network/SConscript b/src/mem/ruby/network/SConscript new file mode 100644 index 000000000..3c4cdfbc2 --- /dev/null +++ b/src/mem/ruby/network/SConscript @@ -0,0 +1,36 @@ +# -*- mode:python -*- + +# Copyright (c) 2009 The Hewlett-Packard Development Company +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# 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: Nathan Binkert + +Import('*') + +if not env['RUBY']: + Return() + +Source('Network.cc') diff --git a/src/mem/ruby/network/simple/SConscript b/src/mem/ruby/network/simple/SConscript index 3df736c00..45c363337 100644 --- a/src/mem/ruby/network/simple/SConscript +++ b/src/mem/ruby/network/simple/SConscript @@ -33,6 +33,7 @@ Import('*') if not env['RUBY']: Return() +Source('CustomTopology.cc') Source('PerfectSwitch.cc') Source('SimpleNetwork.cc') Source('Switch.cc') diff --git a/src/mem/ruby/recorder/SConscript b/src/mem/ruby/recorder/SConscript index e56fc8722..ef78faed4 100644 --- a/src/mem/ruby/recorder/SConscript +++ b/src/mem/ruby/recorder/SConscript @@ -33,4 +33,6 @@ Import('*') if not env['RUBY']: Return() +Source('CacheRecorder.cc') +Source('Tracer.cc') Source('TraceRecord.cc', Werror=False) diff --git a/src/mem/ruby/slicc_interface/SConscript b/src/mem/ruby/slicc_interface/SConscript index 0cb453209..2b20892ba 100644 --- a/src/mem/ruby/slicc_interface/SConscript +++ b/src/mem/ruby/slicc_interface/SConscript @@ -34,5 +34,4 @@ if not env['RUBY']: Return() Source('AbstractCacheEntry.cc') -Source('AbstractChip.cc') Source('RubySlicc_Profiler_interface.cc') diff --git a/src/mem/ruby/storebuffer/SConscript b/src/mem/ruby/storebuffer/SConscript new file mode 100644 index 000000000..f546b9e60 --- /dev/null +++ b/src/mem/ruby/storebuffer/SConscript @@ -0,0 +1,37 @@ +# -*- mode:python -*- + +# Copyright (c) 2009 The Hewlett-Packard Development Company +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# 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: Nathan Binkert + +Import('*') + +if not env['RUBY']: + Return() + +Source('stb_interface.cc') +Source('storebuffer.cc') diff --git a/src/mem/ruby/system/SConscript b/src/mem/ruby/system/SConscript index ee9b359c5..1d8b1e2df 100644 --- a/src/mem/ruby/system/SConscript +++ b/src/mem/ruby/system/SConscript @@ -33,13 +33,11 @@ Import('*') if not env['RUBY']: Return() +Source('DMASequencer.cc') Source('DirectoryMemory.cc') Source('MemoryControl.cc') Source('MemoryNode.cc') -Source('NodePersistentTable.cc') -Source('PersistentTable.cc') +Source('RubyPort.cc') Source('Sequencer.cc', Werror=False) -Source('StoreBuffer.cc') -Source('StoreCache.cc') Source('System.cc') Source('TimerTable.cc') diff --git a/src/mem/ruby/tester/SConscript b/src/mem/ruby/tester/SConscript index 6409b4f50..9c65ed794 100644 --- a/src/mem/ruby/tester/SConscript +++ b/src/mem/ruby/tester/SConscript @@ -33,14 +33,8 @@ Import('*') if not env['RUBY']: Return() -Source('Check.cc') -Source('CheckTable.cc') -Source('DetermGETXGenerator.cc') -Source('DetermInvGenerator.cc') -Source('DetermSeriesGETSGenerator.cc') -Source('DeterministicDriver.cc') -Source('Instruction.cc') -Source('RequestGenerator.cc') -Source('SpecifiedGenerator.cc') -Source('SyntheticDriver.cc') -Source('Tester.cc') +#Source('DetermGETXGenerator.cc') +#Source('DetermInvGenerator.cc') +#Source('DetermSeriesGETSGenerator.cc') +#Source('DeterministicDriver.cc') +#ource('SpecifiedGenerator.cc') diff --git a/src/mem/slicc/SConscript b/src/mem/slicc/SConscript index 677ee33ec..e26ceb979 100644 --- a/src/mem/slicc/SConscript +++ b/src/mem/slicc/SConscript @@ -107,6 +107,7 @@ SliccSource('ast/Location.cc') SliccSource('ast/MachineAST.cc') SliccSource('ast/MemberExprAST.cc') SliccSource('ast/MethodCallExprAST.cc') +SliccSource('ast/NewExprAST.cc') SliccSource('ast/ObjDeclAST.cc') SliccSource('ast/OutPortDeclAST.cc') SliccSource('ast/PairAST.cc')