sim_exit.hh revision 9952:7437cc334df1
111828Sjason@lowepower.com/* 211482Sandreas.sandberg@arm.com * Copyright (c) 2003-2005 The Regents of The University of Michigan 311482Sandreas.sandberg@arm.com * All rights reserved. 411482Sandreas.sandberg@arm.com * 511482Sandreas.sandberg@arm.com * Redistribution and use in source and binary forms, with or without 611482Sandreas.sandberg@arm.com * modification, are permitted provided that the following conditions are 711482Sandreas.sandberg@arm.com * met: redistributions of source code must retain the above copyright 811482Sandreas.sandberg@arm.com * notice, this list of conditions and the following disclaimer; 911482Sandreas.sandberg@arm.com * redistributions in binary form must reproduce the above copyright 1011482Sandreas.sandberg@arm.com * notice, this list of conditions and the following disclaimer in the 1111482Sandreas.sandberg@arm.com * documentation and/or other materials provided with the distribution; 1211482Sandreas.sandberg@arm.com * neither the name of the copyright holders nor the names of its 1311482Sandreas.sandberg@arm.com * contributors may be used to endorse or promote products derived from 1411482Sandreas.sandberg@arm.com * this software without specific prior written permission. 1511482Sandreas.sandberg@arm.com * 1611482Sandreas.sandberg@arm.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1711482Sandreas.sandberg@arm.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1811482Sandreas.sandberg@arm.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1911482Sandreas.sandberg@arm.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2011482Sandreas.sandberg@arm.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2111482Sandreas.sandberg@arm.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2211482Sandreas.sandberg@arm.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2311482Sandreas.sandberg@arm.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2411482Sandreas.sandberg@arm.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2511482Sandreas.sandberg@arm.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2611482Sandreas.sandberg@arm.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2711482Sandreas.sandberg@arm.com * 2811482Sandreas.sandberg@arm.com * Authors: Nathan Binkert 2911482Sandreas.sandberg@arm.com * Steve Reinhardt 3011482Sandreas.sandberg@arm.com */ 3111482Sandreas.sandberg@arm.com 3211482Sandreas.sandberg@arm.com#ifndef __SIM_EXIT_HH__ 3311482Sandreas.sandberg@arm.com#define __SIM_EXIT_HH__ 3411482Sandreas.sandberg@arm.com 3511482Sandreas.sandberg@arm.com#include <string> 3611482Sandreas.sandberg@arm.com 3711482Sandreas.sandberg@arm.com#include "base/types.hh" 3811482Sandreas.sandberg@arm.com#include "sim/core.hh" 3911482Sandreas.sandberg@arm.com 4012575Sgiacomo.travaglini@arm.com// forward declaration 4112575Sgiacomo.travaglini@arm.comclass Callback; 4211482Sandreas.sandberg@arm.comclass EventQueue; 4311482Sandreas.sandberg@arm.comclass SimLoopExitEvent; 4411482Sandreas.sandberg@arm.com 4511482Sandreas.sandberg@arm.com/// Register a callback to be called when Python exits. Defined in 4611482Sandreas.sandberg@arm.com/// sim/main.cc. 4711482Sandreas.sandberg@arm.comvoid registerExitCallback(Callback *); 4811482Sandreas.sandberg@arm.com 4911482Sandreas.sandberg@arm.com/// Schedule an event to exit the simulation loop (returning to 5011482Sandreas.sandberg@arm.com/// Python) at the end of the current cycle (curTick()). The message 5111482Sandreas.sandberg@arm.com/// and exit_code parameters are saved in the SimLoopExitEvent to 5211482Sandreas.sandberg@arm.com/// indicate why the exit occurred. 5311482Sandreas.sandberg@arm.comvoid exitSimLoop(const std::string &message, int exit_code = 0, 5411482Sandreas.sandberg@arm.com Tick when = curTick(), Tick repeat = 0, 5511482Sandreas.sandberg@arm.com bool serialize = false); 5611482Sandreas.sandberg@arm.com 5711482Sandreas.sandberg@arm.com#endif // __SIM_EXIT_HH__ 5811482Sandreas.sandberg@arm.com