OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.3/] [sim/] [common/] [sim-reason.c] - Blame information for rev 1181

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1181 sfurman
/* Generic simulator stop_reason.
2
   Copyright (C) 1997 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 2, or (at your option)
10
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 along
18
with this program; if not, write to the Free Software Foundation, Inc.,
19
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
20
 
21
#include "sim-main.h"
22
#include "sim-assert.h"
23
 
24
/* Generic implementation of sim_stop_reason */
25
 
26
void
27
sim_stop_reason (SIM_DESC sd, enum sim_stop *reason, int *sigrc)
28
{
29
  sim_engine *engine = NULL;
30
  SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
31
  engine = STATE_ENGINE (sd);
32
  *reason = engine->reason;
33
  switch (*reason)
34
    {
35
    case sim_exited :
36
      *sigrc = engine->sigrc;
37
      break;
38
    case sim_signalled :
39
      /* ??? See the comment below case `sim_signalled' in
40
         gdb/remote-sim.c:gdbsim_wait.
41
         ??? Consider the case of the target requesting that it
42
         kill(2) itself with SIGNAL.  That SIGNAL, being target
43
         specific, will not correspond to either of the SIM_SIGNAL
44
         enum nor the HOST_SIGNAL.  A mapping from TARGET_SIGNAL to
45
         HOST_SIGNAL is needed.  */
46
      *sigrc = sim_signal_to_host (sd, engine->sigrc);
47
      break;
48
    case sim_stopped :
49
      /* The gdb/simulator interface calls for us to return the host
50
         version of the signal which gdb then converts into the
51
         target's version.  This is obviously a bit clumsy.  */
52
      *sigrc = sim_signal_to_host (sd, engine->sigrc);
53
      break;
54
    default :
55
      abort ();
56
    }
57
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.