Home | History | Annotate | Line # | Download | only in common
      1 /* Generic simulator stop.
      2    Copyright (C) 1997-2024 Free Software Foundation, Inc.
      3    Contributed by Cygnus Support.
      4 
      5 This file is part of GDB, the GNU debugger.
      6 
      7 This program is free software; you can redistribute it and/or modify
      8 it under the terms of the GNU General Public License as published by
      9 the Free Software Foundation; either version 3 of the License, or
     10 (at your option) any later version.
     11 
     12 This program is distributed in the hope that it will be useful,
     13 but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 GNU General Public License for more details.
     16 
     17 You should have received a copy of the GNU General Public License
     18 along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     19 
     20 /* This must come before any other includes.  */
     21 #include "defs.h"
     22 
     23 #include "sim-main.h"
     24 #include "sim-assert.h"
     25 #include "sim-signal.h"
     26 
     27 /* Generic implementation of sim_stop.  */
     28 
     29 static void
     30 control_c_simulation (SIM_DESC sd,
     31 		      void *data)
     32 {
     33   ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
     34   sim_engine_halt (sd, NULL, NULL, NULL_CIA, sim_stopped, SIM_SIGINT);
     35 }
     36 
     37 int
     38 sim_stop (SIM_DESC sd)
     39 {
     40   ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
     41   sim_events_schedule_after_signal (sd,
     42 				    0 /*NOW*/,
     43 				    control_c_simulation,
     44 				    sd /*data*/);
     45   return 1;
     46 }
     47