mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 12:24:38 +08:00
New files.
This commit is contained in:
parent
00d74d3ea1
commit
e77fd2694b
@ -38,6 +38,7 @@ run.c
|
||||
run.1
|
||||
sim-assert.h
|
||||
sim-alu.h
|
||||
sim-base.h
|
||||
sim-basics.h
|
||||
sim-bits.c
|
||||
sim-bits.h
|
||||
@ -56,6 +57,7 @@ sim-n-bits.h
|
||||
sim-n-core.h
|
||||
sim-n-endian.h
|
||||
sim-types.h
|
||||
sim-utils.c
|
||||
sim-xcat.h
|
||||
tconfig.in
|
||||
|
||||
|
80
sim/common/sim-base.h
Normal file
80
sim/common/sim-base.h
Normal file
@ -0,0 +1,80 @@
|
||||
/* Simulator pseudo baseclass.
|
||||
Copyright (C) 1997 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.
|
||||
|
||||
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. */
|
||||
|
||||
/* This file is meant to be included by sim-basics.h. */
|
||||
|
||||
#ifndef SIM_BASE_H
|
||||
#define SIM_BASE_H
|
||||
|
||||
/* Global pointer to current state while sim_resume is running.
|
||||
On a machine with lots of registers, it might be possible to reserve
|
||||
one of them for current_state. However on a machine with few registers
|
||||
current_state can't permanently live in one and indirecting through it
|
||||
will be slower [in which case one can have sim_resume set globals from
|
||||
current_state for faster access].
|
||||
If CURRENT_STATE_REG is defined, it means current_state is living in
|
||||
a global register. */
|
||||
|
||||
#ifdef CURRENT_STATE_REG
|
||||
/* FIXME: wip */
|
||||
#else
|
||||
extern struct sim_state *current_state;
|
||||
#endif
|
||||
|
||||
/* Simulator state pseudo base-class.
|
||||
Each simulator is required to have a sim-main.h file that includes
|
||||
sim-basics.h and defines struct sim_state to be:
|
||||
|
||||
struct sim_state {
|
||||
struct sim_state_base base;
|
||||
... simulator specific members ...
|
||||
};
|
||||
*/
|
||||
|
||||
struct sim_state_base {
|
||||
/* Marker for those wanting to do sanity checks. */
|
||||
int magic;
|
||||
#define SIM_MAGIC_NUMBER 0x4242
|
||||
#define STATE_MAGIC(sd) ((sd)->base.magic)
|
||||
|
||||
/* Simulator's argv[0]. */
|
||||
const char *my_name;
|
||||
#define STATE_MY_NAME(sd) ((sd)->base.my_name)
|
||||
|
||||
/* Who opened the simulator. */
|
||||
SIM_OPEN_KIND open_kind;
|
||||
#define STATE_OPEN_KIND(sd) ((sd)->base.open_kind)
|
||||
|
||||
/* The host callbacks. */
|
||||
struct host_callback_struct *callback;
|
||||
#define STATE_CALLBACK(sd) ((sd)->base.callback)
|
||||
|
||||
#if 0 /* FIXME: Not ready yet. */
|
||||
/* Stuff defined in sim-config.h. */
|
||||
struct sim_config config;
|
||||
#define STATE_CONFIG(sd) ((sd)->base.config)
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Functions for allocating/freeing a sim_state. */
|
||||
SIM_DESC sim_state_alloc PARAMS ((void));
|
||||
void sim_state_free PARAMS ((SIM_DESC));
|
||||
|
||||
#endif /* SIM_BASE_H */
|
Loading…
Reference in New Issue
Block a user