diff options
author | Andrew Bardsley <Andrew.Bardsley@arm.com> | 2014-10-16 05:49:32 -0400 |
---|---|---|
committer | Andrew Bardsley <Andrew.Bardsley@arm.com> | 2014-10-16 05:49:32 -0400 |
commit | d8502ee46d356830698d7b96b29e4b27906a2d79 (patch) | |
tree | c7d052a7e276126bd1630658b386ac715f75238d /src/sim/init.cc | |
parent | a63ba6c7b7fe6620478c0d8d7812661c6a36d55a (diff) | |
download | gem5-d8502ee46d356830698d7b96b29e4b27906a2d79.tar.xz |
config: Add a --without-python option to build process
Add the ability to build libgem5 without embedded Python or the
ability to configure with Python.
This is a prelude to a patch to allow config.ini files to be loaded
into libgem5 using only C++ which would make embedding gem5 within
other simulation systems easier.
This adds a few registration interfaces to things which cross
between Python and C++. Namely: stats dumping and SimObject resolving
Diffstat (limited to 'src/sim/init.cc')
-rw-r--r-- | src/sim/init.cc | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/src/sim/init.cc b/src/sim/init.cc index 042448e41..0a15c384d 100644 --- a/src/sim/init.cc +++ b/src/sim/init.cc @@ -46,7 +46,6 @@ #include <marshal.h> #include <zlib.h> -#include <csignal> #include <iostream> #include <list> #include <string> @@ -65,90 +64,6 @@ using namespace std; -/// Stats signal handler. -void -dumpStatsHandler(int sigtype) -{ - async_event = true; - async_statdump = true; -} - -void -dumprstStatsHandler(int sigtype) -{ - async_event = true; - async_statdump = true; - async_statreset = true; -} - -/// Exit signal handler. -void -exitNowHandler(int sigtype) -{ - async_event = true; - async_exit = true; -} - -/// Abort signal handler. -void -abortHandler(int sigtype) -{ - ccprintf(cerr, "Program aborted at tick %d\n", curTick()); -} - -// Handle SIGIO -static void -ioHandler(int sigtype) -{ - async_event = true; - async_io = true; -} - -static void -installSignalHandler(int signal, void (*handler)(int sigtype)) -{ - struct sigaction sa; - - memset(&sa, 0, sizeof(sa)); - sigemptyset(&sa.sa_mask); - sa.sa_handler = handler; - sa.sa_flags = SA_RESTART; - - if (sigaction(signal, &sa, NULL) == -1) - panic("Failed to setup handler for signal %i\n", signal); -} - -/* - * M5 can do several special things when various signals are sent. - * None are mandatory. - */ -void -initSignals() -{ - // Floating point exceptions may happen on misspeculated paths, so - // ignore them - signal(SIGFPE, SIG_IGN); - - // We use SIGTRAP sometimes for debugging - signal(SIGTRAP, SIG_IGN); - - // Dump intermediate stats - installSignalHandler(SIGUSR1, dumpStatsHandler); - - // Dump intermediate stats and reset them - installSignalHandler(SIGUSR2, dumprstStatsHandler); - - // Exit cleanly on Interrupt (Ctrl-C) - installSignalHandler(SIGINT, exitNowHandler); - - // Print out cycle number on abort - installSignalHandler(SIGABRT, abortHandler); - - // Install a SIGIO handler to handle asynchronous file IO. See the - // PollQueue class. - installSignalHandler(SIGIO, ioHandler); -} - // The python library is totally messed up with respect to constness, // so make a simple macro to make life a little easier #define PyCC(x) (const_cast<char *>(x)) |