96954b8c2ed28c48d34258526db93d99d8185c3c
[external/binutils.git] / sim / mcore / sim-main.h
1 /* Simulator for Motorola's MCore processor
2    Copyright (C) 2009-2015 Free Software Foundation, Inc.
3
4 This file is part of GDB, the GNU debugger.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
18
19 #ifndef SIM_MAIN_H
20 #define SIM_MAIN_H
21
22 #include "sim-basics.h"
23
24 typedef address_word sim_cia;
25 typedef long int           word;
26 typedef unsigned long int  uword;
27
28 typedef struct _sim_cpu SIM_CPU;
29
30 #include "sim-base.h"
31 #include "bfd.h"
32
33 #define CIA_GET(cpu)     (cpu)->pc
34 #define CIA_SET(cpu,val) (cpu)->pc = (val)
35
36 struct _sim_cpu {
37
38   word pc;
39
40   sim_cpu_base base;
41 };
42
43 struct sim_state {
44
45   sim_cpu *cpu[MAX_NR_PROCESSORS];
46 #if (WITH_SMP)
47 #define STATE_CPU(sd,n) ((sd)->cpu[n])
48 #else
49 #define STATE_CPU(sd,n) ((sd)->cpu[0])
50 #endif
51
52   sim_state_base base;
53 };
54
55 #endif
56