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.
This commit is contained in:
parent
1feae85017
commit
c441590b15
1 changed files with 10 additions and 40 deletions
|
@ -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']
|
||||
|
||||
exec "import %s" % protocol
|
||||
|
||||
def create_system(options, physmem, piobus = None, dma_devices = []):
|
||||
|
||||
protocol = buildEnv['PROTOCOL']
|
||||
|
||||
if protocol == "MOESI_hammer":
|
||||
try:
|
||||
(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":
|
||||
(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.
|
||||
|
|
Loading…
Reference in a new issue