[Git][cmucl/cmucl][rtoy-mmap-anon-control-and-binding-stacks] Support stacks at fixed addresses as before.

Raymond Toy rtoy at common-lisp.net
Sun Oct 11 23:00:56 UTC 2015


Raymond Toy pushed to branch rtoy-mmap-anon-control-and-binding-stacks at cmucl / cmucl


Commits:
5a413e60 by Raymond Toy at 2015-10-11T16:00:39Z
Support stacks at fixed addresses as before.

If CONTROL_STACK_START or BINDING_STACK_START are defined, we take
that as a hint that the system wants the stacks mapped at fixed
addresses.  Otherwise, the stacks are mapped wherever there's room.

- - - - -


1 changed file:

- src/lisp/validate.c


Changes:

=====================================
src/lisp/validate.c
=====================================
--- a/src/lisp/validate.c
+++ b/src/lisp/validate.c
@@ -115,16 +115,29 @@ void
 validate_stacks()
 {
     /* Control Stack */
+#ifdef CONTROL_STACK_START
+    /* Map the control stack at a fixed location */
+    control_stack = (lispobj *) CONTROL_STACK_START;
+#if (defined(i386) || defined(__x86_64))
+    control_stack_end = (lispobj *) (CONTROL_STACK_START + control_stack_size);
+#endif
+    ensure_space(control_stack, control_stack_size);
+#else
     /* Map the conrol stack wherever we have space */
   control_stack = (lispobj*) os_validate(NULL, control_stack_size);
 
 #if (defined(i386) || defined(__x86_64))
     control_stack_end = (void*)control_stack + control_stack_size;
 #endif
+#endif
 
     /* Binding Stack */
+#ifdef BINDING_STACK_START
+    binding_stack = (lispobj *) BINDING_STACK_START;
+    ensure_space(binding_stack, binding_stack_size);
+#else
     binding_stack = (lispobj*) os_validate(NULL, binding_stack_size);
-
+#endif
 #ifdef sparc
     make_stack_holes();
 #endif



View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/5a413e601bb1acc75e1e912fc090f8072e3d8c9f
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cmucl-cvs/attachments/20151011/d569bbe0/attachment.html>


More information about the cmucl-cvs mailing list