*/
-#ifndef _PSIM_CONFIG_H_
-#define _PSIM_CONFIG_H_
+#ifndef SIM_CONFIG_H
+#define SIM_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:
+
+ The target word size is determined by the natural size of its
+ reginsters.
- 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 */
+ 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_TARGET_CELL_BITSIZE
+#define WITH_TARGET_CELL_BITSIZE WITH_TARGET_WORD_BITSIZE
#endif
-#ifndef WITH_HOST_WORD_BITSIZE
-#define WITH_HOST_WORD_BITSIZE 32 /* 64bit ready? */
+#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 void sim_config_default (SIM_DESC sd);
-extern SIM_RC sim_config
-(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