From c441590b15ea724b07c5cf28afc75017d68a2eb3 Mon Sep 17 00:00:00 2001 From: Brad Beckmann Date: Fri, 29 Jan 2010 20:29:33 -0800 Subject: [PATCH] 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. --- configs/ruby/Ruby.py | 50 +++++++++----------------------------------- 1 file 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. -- 2.30.2