From: Brad Beckmann Date: Sat, 30 Jan 2010 04:29:33 +0000 (-0800) Subject: ruby: Removed if else statement in create_system X-Git-Tag: stable_2012_02_02~1523 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c441590b15ea724b07c5cf28afc75017d68a2eb3;p=gem5.git 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. --- 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.