#include "config/cp_annotate.hh"
#include "config/the_isa.hh"
#include "sim/serialize.hh"
-#include "sim/startup.hh"
#include "sim/system.hh"
#if CP_ANNOTATE
global need_resume, need_startup
if need_startup:
- internal.core.SimStartup()
+ internal.core.startupAll()
need_startup = False
for root in need_resume:
#include "base/socket.hh"
#include "base/types.hh"
#include "sim/core.hh"
-#include "sim/startup.hh"
extern const char *compileDate;
%include "base/types.hh"
void setOutputDir(const std::string &dir);
-void SimStartup();
void doExitCleanup();
void disableAllListeners();
void initAll();
void regAllStats();
+void startupAll();
bool want_warn, warn_verbose;
bool want_info, info_verbose;
Serializable::unserializeAll(cpt_dir);
}
+inline void
+startupAll()
+{
+ SimObject::startupAll();
+}
Source('sim_events.cc')
Source('sim_object.cc')
Source('simulate.cc')
-Source('startup.cc')
Source('stat_control.cc')
Source('system.cc')
#include "sim/eventq.hh"
#include "sim/sim_events.hh"
#include "sim/sim_exit.hh"
-#include "sim/startup.hh"
#include "sim/stats.hh"
using namespace std;
{
}
+void
+SimObject::startup()
+{
+}
+
//
// no default statistics, so nothing to do in base implementation
//
}
}
+
+void
+SimObject::startupAll()
+{
+ SimObjectList::iterator i = simObjectList.begin();
+ SimObjectList::iterator end = simObjectList.end();
+
+ while (i != end) {
+ (*i)->startup();
+ ++i;
+ }
+}
+
+
#ifdef DEBUG
//
// static function: flag which objects should have the debugger break
#include "params/SimObject.hh"
#include "sim/eventq.hh"
#include "sim/serialize.hh"
-#include "sim/startup.hh"
class BaseCPU;
class Event;
* correspond to physical components and can be specified via the
* config file (CPUs, caches, etc.).
*/
-class SimObject
- : public EventManager, public Serializable, protected StartupCallback
+class SimObject : public EventManager, public Serializable
{
public:
enum State {
virtual void regFormulas();
virtual void resetStats();
+ // final initialization before simulation
+ // all state is unserialized so
+ virtual void startup();
+ static void startupAll();
+
// static: call reg_stats on all SimObjects
static void regAllStats();
+++ /dev/null
-/*
- * Copyright (c) 2004-2005 The Regents of The University of Michigan
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Authors: Nathan Binkert
- * Kevin Lim
- */
-
-#include <list>
-
-#include "base/misc.hh"
-#include "sim/debug.hh"
-#include "sim/startup.hh"
-
-typedef std::list<StartupCallback *> startupq_t;
-
-startupq_t *startupq = NULL;
-
-StartupCallback::StartupCallback()
-{
- if (startupq == NULL)
- startupq = new startupq_t;
- startupq->push_back(this);
-}
-
-StartupCallback::~StartupCallback()
-{
- startupq->remove(this);
-}
-
-void StartupCallback::startup() { }
-
-void
-SimStartup()
-{
- startupq_t::iterator i = startupq->begin();
- startupq_t::iterator end = startupq->end();
-
- while (i != end) {
- (*i)->startup();
- ++i;
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2004-2005 The Regents of The University of Michigan
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Authors: Nathan Binkert
- */
-
-#ifndef __SIM_STARTUP_HH__
-#define __SIM_STARTUP_HH__
-
-struct StartupCallback
-{
- StartupCallback();
- virtual ~StartupCallback();
- virtual void startup();
-};
-
-void SimStartup();
-
-#endif // __SIM_STARTUP_HH__