subr_trap.c (798) | subr_trap.c (806) |
---|---|
1/*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * the University of Utah, and William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 | 1/*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * the University of Utah, and William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 |
37 * $Id: trap.c,v 1.7 1993/11/13 02:25:08 davidg Exp $ | 37 * $Id: trap.c,v 1.8 1993/11/25 01:31:01 wollman Exp $ |
38 */ 39 40/* 41 * 386 Trap and System call handleing 42 */ 43 44#include "npx.h" 45#include "machine/cpu.h" --- 271 unchanged lines hidden (view full) --- 317 } 318#endif 319 320 /* 321 * XXX: rude hack to make stack limits "work" 322 */ 323 nss = 0; 324 if ((caddr_t)va >= vm->vm_maxsaddr | 38 */ 39 40/* 41 * 386 Trap and System call handleing 42 */ 43 44#include "npx.h" 45#include "machine/cpu.h" --- 271 unchanged lines hidden (view full) --- 317 } 318#endif 319 320 /* 321 * XXX: rude hack to make stack limits "work" 322 */ 323 nss = 0; 324 if ((caddr_t)va >= vm->vm_maxsaddr |
325 && (caddr_t)va < (caddr_t)VM_MAXUSER_ADDRESS | 325 && (caddr_t)va < (caddr_t)USRSTACK |
326 && map != kernel_map 327 && dostacklimits) { 328 nss = clrnd(btoc((unsigned)vm->vm_maxsaddr 329 + MAXSSIZ - (unsigned)va)); 330 if (nss > btoc(p->p_rlimit[RLIMIT_STACK].rlim_cur)) { 331/*pg("trap rlimit %d, maxsaddr %x va %x ", nss, vm->vm_maxsaddr, va);*/ 332 rv = KERN_FAILURE; 333 goto nogo; --- 135 unchanged lines hidden (view full) --- 469 if (va >= VM_MAXUSER_ADDRESS) 470 return (1); 471 /* 472 * XXX: rude stack hack adapted from trap(). 473 */ 474 nss = 0; 475 p = curproc; 476 vm = p->p_vmspace; | 326 && map != kernel_map 327 && dostacklimits) { 328 nss = clrnd(btoc((unsigned)vm->vm_maxsaddr 329 + MAXSSIZ - (unsigned)va)); 330 if (nss > btoc(p->p_rlimit[RLIMIT_STACK].rlim_cur)) { 331/*pg("trap rlimit %d, maxsaddr %x va %x ", nss, vm->vm_maxsaddr, va);*/ 332 rv = KERN_FAILURE; 333 goto nogo; --- 135 unchanged lines hidden (view full) --- 469 if (va >= VM_MAXUSER_ADDRESS) 470 return (1); 471 /* 472 * XXX: rude stack hack adapted from trap(). 473 */ 474 nss = 0; 475 p = curproc; 476 vm = p->p_vmspace; |
477 if ((caddr_t)va >= vm->vm_maxsaddr && dostacklimits) { | 477 if ((caddr_t)va >= vm->vm_maxsaddr 478 && (caddr_t)va < (caddr_t)USRSTACK /* EWS 11/27/93 */ 479 && dostacklimits) { |
478 nss = clrnd(btoc((unsigned)vm->vm_maxsaddr + MAXSSIZ 479 - (unsigned)va)); 480 if (nss > btoc(p->p_rlimit[RLIMIT_STACK].rlim_cur)) 481 return (1); 482 } 483 484 if (vm_fault(&vm->vm_map, va, VM_PROT_READ | VM_PROT_WRITE, FALSE) 485 != KERN_SUCCESS) --- 148 unchanged lines hidden --- | 480 nss = clrnd(btoc((unsigned)vm->vm_maxsaddr + MAXSSIZ 481 - (unsigned)va)); 482 if (nss > btoc(p->p_rlimit[RLIMIT_STACK].rlim_cur)) 483 return (1); 484 } 485 486 if (vm_fault(&vm->vm_map, va, VM_PROT_READ | VM_PROT_WRITE, FALSE) 487 != KERN_SUCCESS) --- 148 unchanged lines hidden --- |