diff options
author | Brad Beckmann <Brad.Beckmann@amd.com> | 2010-01-29 20:29:33 -0800 |
---|---|---|
committer | Brad Beckmann <Brad.Beckmann@amd.com> | 2010-01-29 20:29:33 -0800 |
commit | c441590b15ea724b07c5cf28afc75017d68a2eb3 (patch) | |
tree | 49449f548f1043e0d9d0a36ceaea0973e7ffa3a2 | |
parent | 1feae85017d8db5d3bf39065fd95724f89b3fd18 (diff) | |
download | gem5-c441590b15ea724b07c5cf28afc75017d68a2eb3.tar.xz |
ruby: Removed if else statement in create_system
Based on Steve's suggestion, the ugly if-elif statement and multiple protocol
module import calls are removed and replaced with exec statements using the
protocol string.
-rw-r--r-- | configs/ruby/Ruby.py | 50 |
1 files changed, 10 insertions, 40 deletions
diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py index 65adc152e..d6889ef1a 100644 --- a/configs/ruby/Ruby.py +++ b/configs/ruby/Ruby.py @@ -32,50 +32,20 @@ from m5.objects import * from m5.defines import buildEnv from m5.util import addToPath -import MOESI_hammer -import MESI_CMP_directory -import MOESI_CMP_directory -import MI_example -import MOESI_CMP_token +protocol = buildEnv['PROTOCOL'] -def create_system(options, physmem, piobus = None, dma_devices = []): +exec "import %s" % protocol - protocol = buildEnv['PROTOCOL'] +def create_system(options, physmem, piobus = None, dma_devices = []): - if protocol == "MOESI_hammer": - (cpu_sequencers, dir_cntrls, all_cntrls) = \ - MOESI_hammer.create_system(options, \ - physmem, \ - piobus, \ - dma_devices) - elif protocol == "MESI_CMP_directory": - (cpu_sequencers, dir_cntrls, all_cntrls) = \ - MESI_CMP_directory.create_system(options, \ - physmem, \ - piobus, \ - dma_devices) - elif protocol == "MOESI_CMP_directory": + try: (cpu_sequencers, dir_cntrls, all_cntrls) = \ - MOESI_CMP_directory.create_system(options, \ - physmem, \ - piobus, \ - dma_devices) - elif protocol == "MI_example": - (cpu_sequencers, dir_cntrls, all_cntrls) = \ - MI_example.create_system(options, \ - physmem, \ - piobus, \ - dma_devices) - elif protocol == "MOESI_CMP_token": - (cpu_sequencers, dir_cntrls, all_cntrls) = \ - MOESI_CMP_token.create_system(options, \ - physmem, \ - piobus, \ - dma_devices) - else: - print "Error: unsupported ruby protocol" - sys.exit(1) - + eval("%s.create_system(options, physmem, piobus, dma_devices)" \ + % protocol) + except: + print "Error: could not create sytem for ruby protocol %s" % protocol + sys.exit(1) + # # Important: the topology constructor must be called before the network # constructor. |