-/* This file is part of the program psim.
+/* The common simulator framework for GDB, the GNU Debugger.
+ Copyright 2002 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 2 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. */
+
+
+#ifndef SIM_CONFIG_H
+#define SIM_CONFIG_H
-#ifndef _PSIM_CONFIG_H_
-#define _PSIM_CONFIG_H_
/* Host dependant:
#if defined(__linux__)
# include <endian.h>
-# include <asm/byteorder.h>
# if defined(__LITTLE_ENDIAN) && !defined(LITTLE_ENDIAN)
# define LITTLE_ENDIAN __LITTLE_ENDIAN
# endif
/* INSERT HERE - additional hosts that do not have LITTLE_ENDIAN and
BIG_ENDIAN definitions available. */
+\f
+/* Until devices and tree properties are sorted out, tell sim-config.c
+ not to call the tree_find_foo fns. */
+#define WITH_TREE_PROPERTIES 0
/* endianness of the host/target:
The actual number of processors is taken from the device
/options/smp@<nr-cpu> */
-#if defined (WITH_SMP) && WITH_SMP > 0
+#if defined (WITH_SMP) && (WITH_SMP > 0)
#define MAX_NR_PROCESSORS WITH_SMP
#endif
#endif
-/* Word size of host/target:
+/* Size of target word, address and OpenFirmware Cell:
- Set these according to your host and target requirements. At this
- point in time, I've only compiled (not run) for a 64bit and never
- built for a 64bit host. This will always remain a compile time
- option */
+ The target word size is determined by the natural size of its
+ reginsters.
+
+ On most hosts, the address and cell are the same size as a target
+ word. */
#ifndef WITH_TARGET_WORD_BITSIZE
-#define WITH_TARGET_WORD_BITSIZE 32 /* compiled only */
+#define WITH_TARGET_WORD_BITSIZE 32
+#endif
+
+#ifndef WITH_TARGET_ADDRESS_BITSIZE
+#define WITH_TARGET_ADDRESS_BITSIZE WITH_TARGET_WORD_BITSIZE
#endif
-#ifndef WITH_HOST_WORD_BITSIZE
-#define WITH_HOST_WORD_BITSIZE 32 /* 64bit ready? */
+#ifndef WITH_TARGET_CELL_BITSIZE
+#define WITH_TARGET_CELL_BITSIZE WITH_TARGET_WORD_BITSIZE
+#endif
+
+#ifndef WITH_TARGET_FLOATING_POINT_BITSIZE
+#define WITH_TARGET_FLOATING_POINT_BITSIZE 64
#endif
setting these to specific values, the build process is able to
eliminate non relevent environment code.
- CURRENT_ENVIRONMENT specifies which of vea or oea is required for
+ STATE_ENVIRONMENT(sd) specifies which of vea or oea is required for
the current runtime.
ALL_ENVIRONMENT is used during configuration as a value for
WITH_ENVIRONMENT to indicate the choice is runtime selectable.
The default is then USER_ENVIRONMENT [since allowing the user to choose
the default at configure time seems like featuritis and since people using
- OPERATING_ENVIRONMENT have more to worry about than selecting the default].
- ALL_ENVIRONMENT is also used to set `current_environment' to the
- "unknown" state. */
+ OPERATING_ENVIRONMENT have more to worry about than selecting the
+ default].
+ ALL_ENVIRONMENT is also used to set STATE_ENVIRONMENT to the
+ "uninitialized" state. */
enum sim_environment {
ALL_ENVIRONMENT,
? WITH_ENVIRONMENT \
: USER_ENVIRONMENT)
-extern enum sim_environment current_environment;
-#define CURRENT_ENVIRONMENT (WITH_ENVIRONMENT != ALL_ENVIRONMENT \
- ? WITH_ENVIRONMENT \
- : current_environment)
-
/* Callback & Modulo Memory.
#endif
-/* complete/verify/print the simulator configuration */
+/* Set the default state configuration, before parsing argv. */
-extern SIM_RC sim_config
-(SIM_DESC sd);
+extern void sim_config_default (SIM_DESC sd);
+/* Complete and verify the simulator configuration. */
+
+extern SIM_RC sim_config (SIM_DESC sd);
+
+/* Print the simulator configuration. */
extern void print_sim_config (SIM_DESC sd);
-#endif /* _PSIM_CONFIG_H */
+#endif