Raymond Toy pushed to branch rtoy-mmap-anon-control-and-binding-stacks at cmucl / cmucl
Commits: 57a7df13 by Raymond Toy at 2015-10-03T14:10:24Z Replace CONTROL_STACK_START with control_stack.
Cast to appropriate pointer types too.
- - - - - e0ae3367 by Raymond Toy at 2015-10-03T14:11:08Z Replace CONTROL_STACK_START with control_stack and BINDING_STACK_START with binding_stack.
- - - - - 748991e2 by Raymond Toy at 2015-10-03T14:11:33Z Cast os_validate to the appropriate type to get rid of warning.
- - - - - e4897224 by Raymond Toy at 2015-10-03T14:11:43Z Declare validate_stacks().
- - - - -
4 changed files:
- src/lisp/backtrace.c - src/lisp/solaris-os.c - src/lisp/validate.c - src/lisp/validate.h
Changes:
===================================== src/lisp/backtrace.c ===================================== --- a/src/lisp/backtrace.c +++ b/src/lisp/backtrace.c @@ -252,7 +252,7 @@ backtrace(int nframes) static int stack_pointer_p(unsigned long p) { - return (p < CONTROL_STACK_START + control_stack_size + return ((void *)p < (void *)control_stack + control_stack_size && p > (unsigned long) &p && (p & 3) == 0); }
===================================== src/lisp/solaris-os.c ===================================== --- a/src/lisp/solaris-os.c +++ b/src/lisp/solaris-os.c @@ -199,8 +199,8 @@ boolean valid_addr(os_vm_address_t addr) #ifndef GENCGC || in_range_p(addr, DYNAMIC_1_SPACE_START, dynamic_space_size) #endif - || in_range_p(addr, CONTROL_STACK_START, control_stack_size) - || in_range_p(addr, BINDING_STACK_START, binding_stack_size)); + || in_range_p(addr, control_stack, control_stack_size) + || in_range_p(addr, binding_stack, binding_stack_size)); }
/* ---------------------------------------------------------------- */ @@ -412,8 +412,7 @@ os_vm_address_t round_up_sparse_size(os_vm_address_t addr) * of the dynamic space can be controlled from the command line. */ static os_vm_address_t spaces[] = { - READ_ONLY_SPACE_START, STATIC_SPACE_START, - BINDING_STACK_START, CONTROL_STACK_START + READ_ONLY_SPACE_START, STATIC_SPACE_START };
/*
===================================== src/lisp/validate.c ===================================== --- a/src/lisp/validate.c +++ b/src/lisp/validate.c @@ -116,14 +116,14 @@ validate_stacks() { /* Control Stack */ /* Map the conrol stack wherever we have space */ - control_stack = os_validate(NULL, control_stack_size); + 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
/* Binding Stack */ - binding_stack = os_validate(NULL, binding_stack_size); + binding_stack = (lispobj*) os_validate(NULL, binding_stack_size);
#ifdef sparc make_stack_holes();
===================================== src/lisp/validate.h ===================================== --- a/src/lisp/validate.h +++ b/src/lisp/validate.h @@ -37,5 +37,6 @@ #endif
extern void validate(void); +extern void validate_stacks(void);
#endif /* _VALIDATE_H_ */
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/65b5ed7715ded275fd4d360ea...