/* Architecture, machine, and model support.
- Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2007, 2008, 2009, 2010
+ Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Nomenclature:
architecture = one of sparc, mips, sh, etc.
/* This is the argument to bfd_scan_arch. */
const char *bfd_name;
#define MACH_BFD_NAME(m) ((m)->bfd_name)
+ enum mach_attr num;
+#define MACH_NUM(m) ((m)->num)
+
int word_bitsize;
#define MACH_WORD_BITSIZE(m) ((m)->word_bitsize)
int addr_bitsize;
/* Called by sim_model_set when the model of a cpu is set. */
void (* init_cpu) (sim_cpu *);
#define MACH_INIT_CPU(m) ((m)->init_cpu)
+
+ /* Initialize the simulator engine for this cpu.
+ Used by cgen simulators to initialize the insn descriptor table. */
+ void (* prepare_run) (sim_cpu *);
+#define MACH_PREPARE_RUN(m) ((m)->prepare_run)
} MACH;
/* A model (implementation) of a machine. */
extern MODULE_INSTALL_FN sim_model_install;
/* Support routines. */
-extern void sim_model_set (SIM_DESC sd, sim_cpu *cpu, const MODEL *model);
-extern const MODEL * sim_model_lookup (const char *name);
-extern const MACH * sim_mach_lookup (const char *name);
+extern void sim_model_set (SIM_DESC sd_, sim_cpu *cpu_, const MODEL *model_);
+extern const MODEL * sim_model_lookup (const char *name_);
+extern const MACH * sim_mach_lookup (const char *name_);
+extern const MACH * sim_mach_lookup_bfd_name (const char *bfd_name_);
#endif /* SIM_MODEL_H */