From 6784e7940071ff72b790cb24141ad56e3c5b3084 Mon Sep 17 00:00:00 2001
From: dtc <dtc>
Date: Thu, 17 Sep 1998 10:54:24 +0000
Subject: [PATCH] Back-out the address map changes for Linux. Only FreeBSD now
 uses a new address space.

---
 compiler/x86/parms.lisp | 14 ++++++++-----
 lisp/x86-validate.h     | 45 ++++++++++++++++++++++++++---------------
 2 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/compiler/x86/parms.lisp b/compiler/x86/parms.lisp
index f87d55e8b..cb7a19138 100644
--- a/compiler/x86/parms.lisp
+++ b/compiler/x86/parms.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
- "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/parms.lisp,v 1.12 1998/08/30 04:56:50 dtc Exp $")
+ "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/parms.lisp,v 1.13 1998/09/17 10:54:24 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -173,14 +173,18 @@
 
 ;;; Where to put the different spaces.
 ;;; 
-(defparameter target-read-only-space-start #x10000000)
-(defparameter target-static-space-start    #x28000000)
-(defparameter target-dynamic-space-start   #x48000000)
+#-linux (defparameter target-read-only-space-start #x10000000)
+#-linux (defparameter target-static-space-start    #x28000000)
+#-linux (defparameter target-dynamic-space-start   #x48000000)
+#+linux (defparameter target-read-only-space-start #x01000000)
+#+linux (defparameter target-static-space-start    #x05000000)
+#+linux (defparameter target-dynamic-space-start   #x09000000)
 
 ;;; Given that NIL is the first things allocated in static space, we
 ;;; know its value at compile time:
 ;;; 
-(defparameter nil-value #x2800000B)
+#-linux (defparameter nil-value #x2800000B)
+#+linux (defparameter nil-value #x0500000B)
 
 
 ;;;; Other random constants.
diff --git a/lisp/x86-validate.h b/lisp/x86-validate.h
index 7266a0188..7acc502d6 100644
--- a/lisp/x86-validate.h
+++ b/lisp/x86-validate.h
@@ -3,7 +3,7 @@
  * This code was written as part of the CMU Common Lisp project at
  * Carnegie Mellon University, and has been placed in the public domain.
  *
- *  $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-validate.h,v 1.8 1998/09/01 13:00:44 dtc Exp $
+ *  $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-validate.h,v 1.9 1998/09/17 10:54:23 dtc Exp $
  *
  */
 
@@ -20,7 +20,9 @@
  *	0x40000000->0x48000000 128M Control stack growing down.
  *	0x48000000->0xC8000000 2GB  Dynamic Space.
  *	0xE0000000->           256M C stack - Alien stack.
- *  Linux:
+ *
+ *  Linux: Note that this map has some problems and requires some further
+ *	   development so is not implemented below.
  *	0x00000000->0x08000000 128M Unused.
  *	0x08000000->0x10000000 128M C program and memory allocation.
  *	0x10000000->0x20000000 256M Read-Only Space.
@@ -32,39 +34,50 @@
  *
  */
 
+#ifdef __FreeBSD__
 #define READ_ONLY_SPACE_START   (0x10000000)
 #define READ_ONLY_SPACE_SIZE    (0x0ffff000) /* 256MB - 1 page */
 
 #define STATIC_SPACE_START	(0x28000000)
 #define STATIC_SPACE_SIZE	(0x0ffff000) /* 256MB - 1 page */
 
-#ifdef __FreeBSD__
 #define BINDING_STACK_START	(0x38000000)
 #define BINDING_STACK_SIZE	(0x07fff000) /* 128MB - 1 page */
+
 #define CONTROL_STACK_START	(0x40000000)
 #define CONTROL_STACK_SIZE	(0x08000000) /* 128MB */
+
+#define DYNAMIC_0_SPACE_START	(0x48000000)
+#ifdef GENCGC
+#define DYNAMIC_SPACE_SIZE	(0x40000000) /* May be up to 2GB */
+#else
+#define DYNAMIC_SPACE_SIZE	(0x04000000) /* 64MB */
 #endif
+#endif
+
 
 #ifdef __linux__
-#define BINDING_STACK_START	(0x20000000)
+#define READ_ONLY_SPACE_START   (0x01000000)
+#define READ_ONLY_SPACE_SIZE    (0x02800000) /* 40MB */
+
+#define STATIC_SPACE_START	(0x05000000)
+#define STATIC_SPACE_SIZE	(0x02fff000) /* 48MB - 1 page */
+
+#define BINDING_STACK_START	(0x60000000)
 #define BINDING_STACK_SIZE	(0x07fff000) /* 128MB - 1 page */
-#define CONTROL_STACK_START	(0x38001000)
-#define CONTROL_STACK_SIZE	(0x07fff000) /* 128MB - 1 page */
-#endif
 
-#define CONTROL_STACK_END	(CONTROL_STACK_START + CONTROL_STACK_SIZE)
+#define CONTROL_STACK_START	(0x50000000)
+#define CONTROL_STACK_SIZE	(0x07fff000) /* 128MB - 1 page */
 
-/* Note that GENCGC only uses dynamic_space 0. */
-#define DYNAMIC_0_SPACE_START	(0x48000000)
+#define DYNAMIC_0_SPACE_START	(0x09000000)
 #ifdef GENCGC
-#ifdef __FreeBSD__
-#define DYNAMIC_SPACE_SIZE	(0x40000000) /* May be up to 2GB */
-#endif
-#ifdef __linux__
-#define DYNAMIC_SPACE_SIZE	(0x40000000) /* May be up to 1.75GB */
-#endif
+#define DYNAMIC_SPACE_SIZE	(0x20000000) /* 512MB */
 #else
 #define DYNAMIC_SPACE_SIZE	(0x04000000) /* 64MB */
 #endif
+#endif
 
+#define CONTROL_STACK_END	(CONTROL_STACK_START + CONTROL_STACK_SIZE)
+
+/* Note that GENCGC only uses dynamic_space 0. */
 #define DYNAMIC_1_SPACE_START	(DYNAMIC_0_SPACE_START + DYNAMIC_SPACE_SIZE)
-- 
GitLab