#include "os.h"
#include "signal.h"
+/* Do anything we need to do when starting up the runtime environment
+ * on this architecture. */
extern void arch_init(void);
+
+/* FIXME: It would be good to document these too! */
extern void arch_skip_instruction(os_context_t*);
extern boolean arch_pseudo_atomic_atomic(os_context_t*);
extern void arch_set_pseudo_atomic_interrupted(os_context_t*);
#include <sys/stat.h>
#include <unistd.h>
-#include "x86-validate.h"
+#include "validate.h"
size_t os_vm_page_size;
#if defined GENCGC
main(int argc, char *argv[], char *envp[])
{
/* the name of the core file we're to execute. Note that this is
- * a malloc'ed string which must be freed eventually. */
+ * a malloc'ed string which should be freed eventually. */
char *core = 0;
/* other command line options */
lispobj initial_function;
+ /* KLUDGE: os_vm_page_size is set by os_init(), and on some
+ * systems (e.g. Alpha) arch_init() needs need os_vm_page_size, so
+ * it must follow os_init(). -- WHN 2000-01-26 */
os_init();
+ arch_init();
gc_init();
validate();
#if !defined(_INCLUDE_VALIDATE_H_)
#define _INCLUDE_VALIDATE_H_
-#ifdef parisc
-#include "hppa-validate.h"
-#endif parisc
-
-#ifdef mips
-#include "mips-validate.h"
-#endif
-
-#ifdef ibmrt
-#include "rt-validate.h"
-#endif
-
-#ifdef sparc
-#include "sparc-validate.h"
-#endif
-
-#ifdef __i386__
-#include "x86-validate.h"
-#endif
-
-#ifdef alpha
-#include "alpha-validate.h"
+/* constants derived from the fundamental constants in passed by GENESIS */
+#define BINDING_STACK_SIZE ( BINDING_STACK_END - BINDING_STACK_START)
+#define CONTROL_STACK_SIZE ( CONTROL_STACK_END - CONTROL_STACK_START)
+#define DYNAMIC_SPACE_SIZE ( DYNAMIC_SPACE_END - DYNAMIC_SPACE_START)
+#define READ_ONLY_SPACE_SIZE (READ_ONLY_SPACE_END - READ_ONLY_SPACE_START)
+#define STATIC_SPACE_SIZE ( STATIC_SPACE_END - STATIC_SPACE_START)
+
+#if !defined(LANGUAGE_ASSEMBLY)
+extern void validate(void);
#endif
-extern void validate(void);
+/* note for anyone trying to port an architecture's support files
+ * from CMU CL to SBCL:
+ *
+ * CMU CL had architecture-dependent header files included here to
+ * define memory map data:
+ * #ifdef __i386__
+ * #include "x86-validate.h"
+ * #endif
+ * and so forth. In SBCL, the memory map data are defined at the Lisp
+ * level and stuffed into the sbcl.h file created by GENESIS, so
+ * there's no longer a need for an architecture-dependent header file
+ * of memory map data. */
#endif
* files for more information.
*/
\f
-#include "x86-validate.h"
-
#define LANGUAGE_ASSEMBLY
+#include "validate.h"
#include "sbcl.h"
/* Minimize conditionalization for different OS naming schemes. */
+++ /dev/null
-/*
- * This software is part of the SBCL system. See the README file for
- * more information.
- *
- * This software is derived from the CMU CL system, which was
- * written at Carnegie Mellon University and released into the
- * public domain. The software is in the public domain and is
- * provided with absolutely no warranty. See the COPYING and CREDITS
- * files for more information.
- */
-
-#define BINDING_STACK_SIZE ( BINDING_STACK_END - BINDING_STACK_START)
-#define CONTROL_STACK_SIZE ( CONTROL_STACK_END - CONTROL_STACK_START)
-#define DYNAMIC_SPACE_SIZE ( DYNAMIC_SPACE_END - DYNAMIC_SPACE_START)
-#define READ_ONLY_SPACE_SIZE (READ_ONLY_SPACE_END - READ_ONLY_SPACE_START)
-#define STATIC_SPACE_SIZE ( STATIC_SPACE_END - STATIC_SPACE_START)
;;; versions, and a string like "0.6.5.12" is used for versions which
;;; aren't released but correspond only to CVS tags or snapshots.
-"0.6.10.7"
+"0.6.10.8"