kern_procctl.c (31564) | kern_procctl.c (32702) |
---|---|
1/* 2 * Copyright (c) 1994, Sean Eric Fagan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 14 unchanged lines hidden (view full) --- 23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * | 1/* 2 * Copyright (c) 1994, Sean Eric Fagan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 14 unchanged lines hidden (view full) --- 23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * |
31 * $Id: sys_process.c,v 1.32 1997/11/12 12:28:12 tegge Exp $ | 31 * $Id: sys_process.c,v 1.33 1997/12/06 04:11:10 sef Exp $ |
32 */ 33 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/sysproto.h> 37#include <sys/proc.h> 38#include <sys/vnode.h> 39#include <sys/ptrace.h> --- 17 unchanged lines hidden (view full) --- 57 int rv; 58 vm_map_t map, tmap; 59 vm_object_t object; 60 vm_offset_t kva = 0; 61 int page_offset; /* offset into page */ 62 vm_offset_t pageno; /* page number */ 63 vm_map_entry_t out_entry; 64 vm_prot_t out_prot; | 32 */ 33 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/sysproto.h> 37#include <sys/proc.h> 38#include <sys/vnode.h> 39#include <sys/ptrace.h> --- 17 unchanged lines hidden (view full) --- 57 int rv; 58 vm_map_t map, tmap; 59 vm_object_t object; 60 vm_offset_t kva = 0; 61 int page_offset; /* offset into page */ 62 vm_offset_t pageno; /* page number */ 63 vm_map_entry_t out_entry; 64 vm_prot_t out_prot; |
65 boolean_t wired, single_use; | 65 boolean_t wired; |
66 vm_pindex_t pindex; 67 68 /* Map page into kernel space */ 69 70 map = &procp->p_vmspace->vm_map; 71 72 page_offset = addr - trunc_page(addr); 73 pageno = trunc_page(addr); 74 75 tmap = map; 76 rv = vm_map_lookup (&tmap, pageno, VM_PROT_READ, &out_entry, | 66 vm_pindex_t pindex; 67 68 /* Map page into kernel space */ 69 70 map = &procp->p_vmspace->vm_map; 71 72 page_offset = addr - trunc_page(addr); 73 pageno = trunc_page(addr); 74 75 tmap = map; 76 rv = vm_map_lookup (&tmap, pageno, VM_PROT_READ, &out_entry, |
77 &object, &pindex, &out_prot, &wired, &single_use); | 77 &object, &pindex, &out_prot, &wired); |
78 79 if (rv != KERN_SUCCESS) 80 return EINVAL; 81 82 vm_map_lookup_done (tmap, out_entry); 83 84 /* Find space in kernel_map for the page we're interested in */ 85 rv = vm_map_find (kernel_map, object, IDX_TO_OFF(pindex), --- 19 unchanged lines hidden (view full) --- 105 int rv; 106 vm_map_t map, tmap; 107 vm_object_t object; 108 vm_offset_t kva = 0; 109 int page_offset; /* offset into page */ 110 vm_offset_t pageno; /* page number */ 111 vm_map_entry_t out_entry; 112 vm_prot_t out_prot; | 78 79 if (rv != KERN_SUCCESS) 80 return EINVAL; 81 82 vm_map_lookup_done (tmap, out_entry); 83 84 /* Find space in kernel_map for the page we're interested in */ 85 rv = vm_map_find (kernel_map, object, IDX_TO_OFF(pindex), --- 19 unchanged lines hidden (view full) --- 105 int rv; 106 vm_map_t map, tmap; 107 vm_object_t object; 108 vm_offset_t kva = 0; 109 int page_offset; /* offset into page */ 110 vm_offset_t pageno; /* page number */ 111 vm_map_entry_t out_entry; 112 vm_prot_t out_prot; |
113 boolean_t wired, single_use; | 113 boolean_t wired; |
114 vm_pindex_t pindex; 115 boolean_t fix_prot = 0; 116 117 /* Map page into kernel space */ 118 119 map = &procp->p_vmspace->vm_map; 120 121 page_offset = addr - trunc_page(addr); --- 21 unchanged lines hidden (view full) --- 143 * Now we need to get the page. out_entry, out_prot, wired, and 144 * single_use aren't used. One would think the vm code would be 145 * a *bit* nicer... We use tmap because vm_map_lookup() can 146 * change the map argument. 147 */ 148 149 tmap = map; 150 rv = vm_map_lookup (&tmap, pageno, VM_PROT_WRITE, &out_entry, | 114 vm_pindex_t pindex; 115 boolean_t fix_prot = 0; 116 117 /* Map page into kernel space */ 118 119 map = &procp->p_vmspace->vm_map; 120 121 page_offset = addr - trunc_page(addr); --- 21 unchanged lines hidden (view full) --- 143 * Now we need to get the page. out_entry, out_prot, wired, and 144 * single_use aren't used. One would think the vm code would be 145 * a *bit* nicer... We use tmap because vm_map_lookup() can 146 * change the map argument. 147 */ 148 149 tmap = map; 150 rv = vm_map_lookup (&tmap, pageno, VM_PROT_WRITE, &out_entry, |
151 &object, &pindex, &out_prot, &wired, &single_use); | 151 &object, &pindex, &out_prot, &wired); |
152 if (rv != KERN_SUCCESS) { 153 return EINVAL; 154 } 155 156 /* 157 * Okay, we've got the page. Let's release tmap. 158 */ 159 --- 365 unchanged lines hidden --- | 152 if (rv != KERN_SUCCESS) { 153 return EINVAL; 154 } 155 156 /* 157 * Okay, we've got the page. Let's release tmap. 158 */ 159 --- 365 unchanged lines hidden --- |