svr4_misc.c (101924) | svr4_misc.c (102630) |
---|---|
1/* 2 * Copyright (c) 1998 Mark Newton 3 * Copyright (c) 1994 Christos Zoulas 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * | 1/* 2 * Copyright (c) 1998 Mark Newton 3 * Copyright (c) 1994 Christos Zoulas 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * |
28 * $FreeBSD: head/sys/compat/svr4/svr4_misc.c 101924 2002-08-15 15:46:10Z rwatson $ | 28 * $FreeBSD: head/sys/compat/svr4/svr4_misc.c 102630 2002-08-30 18:09:46Z dillon $ |
29 */ 30 31/* 32 * SVR4 compatibility module. 33 * 34 * SVR4 system calls that are implemented differently in BSD are 35 * handled here. 36 */ --- 804 unchanged lines hidden (view full) --- 841 */ 842 return EINVAL; 843 } 844 845 old = base + ctob(vm->vm_dsize); 846 847 if (new > old) { 848 vm_size_t diff; | 29 */ 30 31/* 32 * SVR4 compatibility module. 33 * 34 * SVR4 system calls that are implemented differently in BSD are 35 * handled here. 36 */ --- 804 unchanged lines hidden (view full) --- 841 */ 842 return EINVAL; 843 } 844 845 old = base + ctob(vm->vm_dsize); 846 847 if (new > old) { 848 vm_size_t diff; |
849 if (swap_pager_full) { 850 return (ENOMEM); 851 } | |
852 diff = new - old; | 849 diff = new - old; |
850 if (vm->vm_map.size + diff > p->p_rlimit[RLIMIT_VMEM].rlim_cur) 851 return(ENOMEM); |
|
853 rv = vm_map_find(&vm->vm_map, NULL, 0, &old, diff, FALSE, 854 VM_PROT_ALL, VM_PROT_ALL, 0); 855 if (rv != KERN_SUCCESS) { 856 return (ENOMEM); 857 } 858 vm->vm_dsize += btoc(diff); 859 } else if (new < old) { 860 rv = vm_map_remove(&vm->vm_map, new, old); --- 900 unchanged lines hidden --- | 852 rv = vm_map_find(&vm->vm_map, NULL, 0, &old, diff, FALSE, 853 VM_PROT_ALL, VM_PROT_ALL, 0); 854 if (rv != KERN_SUCCESS) { 855 return (ENOMEM); 856 } 857 vm->vm_dsize += btoc(diff); 858 } else if (new < old) { 859 rv = vm_map_remove(&vm->vm_map, new, old); --- 900 unchanged lines hidden --- |