Deleted Added
full compact
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 ---