X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=sim%2Fcommon%2Fsim-basics.h;h=32995a870d13959103188b0c9892d8851b54105d;hb=1fef66b0dcc09c9114100e782ea54594550e8fb7;hp=e94075cf4911eafb61ac6f043f4afe4ad82468a6;hpb=fa803dc60f0bf01297674c41d001798e18ade4dc;p=thirdparty%2Fbinutils-gdb.git diff --git a/sim/common/sim-basics.h b/sim/common/sim-basics.h index e94075cf491..32995a870d1 100644 --- a/sim/common/sim-basics.h +++ b/sim/common/sim-basics.h @@ -1,34 +1,32 @@ -/* This file is part of the program psim. +/* The common simulator framework for GDB, the GNU Debugger. - Copyright (C) 1994-1997, Andrew Cagney - Copyright (C) 1997, Free Software Foundation, Inc. + Copyright 2002-2021 Free Software Foundation, Inc. - 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 of the License, or - (at your option) any later version. + Contributed by Andrew Cagney and Red Hat. - 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 part of GDB. + 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 3 of the License, or + (at your option) any later version. -#ifndef _SIM_BASICS_H_ -#define _SIM_BASICS_H_ + 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, see . */ + + +#ifndef SIM_BASICS_H +#define SIM_BASICS_H /* Basic configuration */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif +#include "defs.h" /* Basic host dependant mess - hopefully + will bring potential conflicts out in the open */ @@ -37,65 +35,84 @@ #include #include -#ifndef NULL -#define NULL 0 -#endif - - - -/* Some versions of GCC include an attribute operator, define it */ -#if !defined (__attribute__) -#if (!defined(__GNUC__) || (__GNUC__ < 2) || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)) -#define __attribute__(arg) +#ifndef min +#define min(a, b) ((a) < (b) ? (a) : (b)) #endif +#ifndef max +#define max(a, b) ((a) > (b) ? (a) : (b)) #endif /* Global types that code manipulates */ -typedef struct _device device; +struct hw; +struct _sim_fpu; -/* Address access attributes */ -typedef enum _access_type { +/* Generic address space (maps) and access attributes */ + +enum { + read_map = 0, + write_map = 1, + exec_map = 2, + io_map = 3, + nr_maps = 32, /* something small */ +}; + +enum { access_invalid = 0, - access_read = 1, - access_write = 2, - access_read_write = 3, - access_exec = 4, - access_read_exec = 5, - access_write_exec = 6, - access_read_write_exec = 7, -} access_type; - - -/* Address attachement types */ -typedef enum _attach_type -{ - attach_invalid, - attach_raw_memory, - attach_callback, - /* attach_callback + 1, attach_callback + 2, ... */ -} attach_type; + access_read = 1 << read_map, + access_write = 1 << write_map, + access_exec = 1 << exec_map, + access_io = 1 << io_map, +}; + +enum { + access_read_write = (access_read | access_write), + access_read_exec = (access_read | access_exec), + access_write_exec = (access_write | access_exec), + access_read_write_exec = (access_read | access_write | access_exec), + access_read_io = (access_read | access_io), + access_write_io = (access_write | access_io), + access_read_write_io = (access_read | access_write | access_io), + access_exec_io = (access_exec | access_io), + access_read_exec_io = (access_read | access_exec | access_io), + access_write_exec_io = (access_write | access_exec | access_io), + access_read_write_exec_io = (access_read | access_write | access_exec | access_io), +}; + + +/* disposition of an object when things are reset */ + +typedef enum { + permenant_object, + temporary_object, +} object_disposition; /* Memory transfer types */ + typedef enum _transfer_type { read_transfer, write_transfer, } transfer_type; -/* Basic definitions - ordered so that nothing calls what comes after - it */ +/* directions */ + +typedef enum { + bidirect_port, + input_port, + output_port, +} port_direction; + + + +/* Basic definitions - ordered so that nothing calls what comes after it. */ -#ifdef HAVE_CONFIG_H -#include "tconfig.h" -#endif #include "ansidecl.h" -#include "callback.h" -#include "remote-sim.h" +#include "sim/sim.h" #include "sim-config.h" @@ -111,4 +128,4 @@ typedef enum _transfer_type { weight objects, such as core and events, are defined in the more serious sim-base.h header. */ -#endif /* _SIM_BASICS_H_ */ +#endif /* SIM_BASICS_H */