diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2012-03-28 11:01:53 -0500 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2012-03-28 11:01:53 -0500 |
commit | 390cfc7be9e5e477451a31a1dc8df82b42ee4011 (patch) | |
tree | 79535c74b31fdac5d3e0f64c12372fc7572609c8 /configs/example | |
parent | 6ca3af8ecfa5e6fbc03b01c0eba3de9d6e2f7c45 (diff) | |
download | gem5-390cfc7be9e5e477451a31a1dc8df82b42ee4011.tar.xz |
Config: Change the way options are added
I am not too happy with the way options are added in files se.py and fs.py
currently. This patch moves all the options to the file Options.py, functions
from which are called when required.
Diffstat (limited to 'configs/example')
-rw-r--r-- | configs/example/fs.py | 39 | ||||
-rw-r--r-- | configs/example/ruby_fs.py | 27 | ||||
-rw-r--r-- | configs/example/se.py | 29 |
3 files changed, 13 insertions, 82 deletions
diff --git a/configs/example/fs.py b/configs/example/fs.py index 8b27f25c1..4b6956b72 100644 --- a/configs/example/fs.py +++ b/configs/example/fs.py @@ -39,7 +39,6 @@ # Authors: Ali Saidi import optparse -import os import sys import m5 @@ -55,43 +54,11 @@ from Benchmarks import * import Simulation import CacheConfig from Caches import * - -# Get paths we might need. It's expected this file is in m5/configs/example. -config_path = os.path.dirname(os.path.abspath(__file__)) -config_root = os.path.dirname(config_path) +import Options parser = optparse.OptionParser() - -# Simulation options -parser.add_option("--timesync", action="store_true", - help="Prevent simulated time from getting ahead of real time") - -# System options -parser.add_option("--kernel", action="store", type="string") -parser.add_option("--script", action="store", type="string") -parser.add_option("--frame-capture", action="store_true", - help="Stores changed frame buffers from the VNC server to compressed "\ - "files in the gem5 output directory") - -if buildEnv['TARGET_ISA'] == "arm": - parser.add_option("--bare-metal", action="store_true", - help="Provide the raw system without the linux specific bits") - parser.add_option("--machine-type", action="store", type="choice", - choices=ArmMachineType.map.keys(), default="RealView_PBX") -# Benchmark options -parser.add_option("--dual", action="store_true", - help="Simulate two systems attached with an ethernet link") -parser.add_option("-b", "--benchmark", action="store", type="string", - dest="benchmark", - help="Specify the benchmark to run. Available benchmarks: %s"\ - % DefinedBenchmarks) - -# Metafile options -parser.add_option("--etherdump", action="store", type="string", dest="etherdump", - help="Specify the filename to dump a pcap capture of the" \ - "ethernet traffic") - -execfile(os.path.join(config_root, "common", "Options.py")) +Options.addCommonOptions(parser) +Options.addFSOptions(parser) (options, args) = parser.parse_args() diff --git a/configs/example/ruby_fs.py b/configs/example/ruby_fs.py index ac7587bf5..b5ce643b9 100644 --- a/configs/example/ruby_fs.py +++ b/configs/example/ruby_fs.py @@ -31,9 +31,7 @@ # import optparse -import os import sys -from os.path import join as joinpath import m5 from m5.defines import buildEnv @@ -48,35 +46,16 @@ import Ruby from FSConfig import * from SysPaths import * from Benchmarks import * +import Options import Simulation -from Caches import * - -# Get paths we might need. It's expected this file is in m5/configs/example. -config_path = os.path.dirname(os.path.abspath(__file__)) -config_root = os.path.dirname(config_path) parser = optparse.OptionParser() -# System options -parser.add_option("--kernel", action="store", type="string") -parser.add_option("--script", action="store", type="string") -# Benchmark options -parser.add_option("-b", "--benchmark", action="store", type="string", - dest="benchmark", - help="Specify the benchmark to run. Available benchmarks: %s"\ - % DefinedBenchmarks) -parser.add_option("-o", "--options", default="", - help='The options to pass to the binary, use " " around the entire string') -parser.add_option("-i", "--input", default="", help="Read stdin from a file.") -parser.add_option("--output", default="", help="Redirect stdout to a file.") -parser.add_option("--errout", default="", help="Redirect stderr to a file.") +Options.addCommonOptions(parser) +Options.addFSOptions(parser) -# # Add the ruby specific and protocol specific options -# Ruby.define_options(parser) -execfile(os.path.join(config_root, "common", "Options.py")) - (options, args) = parser.parse_args() options.ruby = True diff --git a/configs/example/se.py b/configs/example/se.py index b1e6ae142..a6cf1ec19 100644 --- a/configs/example/se.py +++ b/configs/example/se.py @@ -42,10 +42,8 @@ # # "m5 test.py" -import os import optparse import sys -from os.path import join as joinpath import m5 from m5.defines import buildEnv @@ -55,32 +53,16 @@ from m5.util import addToPath, fatal addToPath('../common') addToPath('../ruby') +import Options import Ruby - import Simulation import CacheConfig from Caches import * from cpu2000 import * -# Get paths we might need. It's expected this file is in m5/configs/example. -config_path = os.path.dirname(os.path.abspath(__file__)) -config_root = os.path.dirname(config_path) -m5_root = os.path.dirname(config_root) - parser = optparse.OptionParser() - -# Benchmark options -parser.add_option("-c", "--cmd", - default=joinpath(m5_root, "tests/test-progs/hello/bin/%s/linux/hello" % \ - buildEnv['TARGET_ISA']), - help="The binary to run in syscall emulation mode.") -parser.add_option("-o", "--options", default="", - help='The options to pass to the binary, use " " around the entire string') -parser.add_option("-i", "--input", default="", help="Read stdin from a file.") -parser.add_option("--output", default="", help="Redirect stdout to a file.") -parser.add_option("--errout", default="", help="Redirect stderr to a file.") - -execfile(os.path.join(config_root, "common", "Options.py")) +Options.addCommonOptions(parser) +Options.addSEOptions(parser) if '--ruby' in sys.argv: Ruby.define_options(parser) @@ -110,11 +92,14 @@ if options.bench: except: print >>sys.stderr, "Unable to find workload for %s: %s" % (buildEnv['TARGET_ISA'], app) sys.exit(1) -else: +elif options.cmd: process = LiveProcess() process.executable = options.cmd process.cmd = [options.cmd] + options.options.split() multiprocesses.append(process) +else: + print >> sys.stderr, "No workload specified. Exiting!\n" + sys.exit(1) if options.input != "": |