Deleted Added
full compact
procfs_map.c (77799) procfs_map.c (79224)
1/*
2 * Copyright (c) 1993 Jan-Simon Pendry
3 * Copyright (c) 1993
4 * The Regents of the University of California. All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * Jan-Simon Pendry.
8 *

--- 22 unchanged lines hidden (view full) ---

31 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 *
37 * @(#)procfs_status.c 8.3 (Berkeley) 2/17/94
38 *
1/*
2 * Copyright (c) 1993 Jan-Simon Pendry
3 * Copyright (c) 1993
4 * The Regents of the University of California. All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * Jan-Simon Pendry.
8 *

--- 22 unchanged lines hidden (view full) ---

31 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 *
37 * @(#)procfs_status.c 8.3 (Berkeley) 2/17/94
38 *
39 * $FreeBSD: head/sys/fs/procfs/procfs_map.c 77799 2001-06-06 04:13:11Z tanimura $
39 * $FreeBSD: head/sys/fs/procfs/procfs_map.c 79224 2001-07-04 16:20:28Z dillon $
40 */
41
42#include <sys/param.h>
43#include <sys/systm.h>
44#include <sys/lock.h>
45#include <sys/mutex.h>
46#include <sys/proc.h>
47#include <sys/vnode.h>

--- 28 unchanged lines hidden (view full) ---

76{
77 int len;
78 int error;
79 vm_map_t map = &p->p_vmspace->vm_map;
80 pmap_t pmap = vmspace_pmap(p->p_vmspace);
81 vm_map_entry_t entry;
82 char mebuffer[MEBUFFERSIZE];
83
40 */
41
42#include <sys/param.h>
43#include <sys/systm.h>
44#include <sys/lock.h>
45#include <sys/mutex.h>
46#include <sys/proc.h>
47#include <sys/vnode.h>

--- 28 unchanged lines hidden (view full) ---

76{
77 int len;
78 int error;
79 vm_map_t map = &p->p_vmspace->vm_map;
80 pmap_t pmap = vmspace_pmap(p->p_vmspace);
81 vm_map_entry_t entry;
82 char mebuffer[MEBUFFERSIZE];
83
84 GIANT_REQUIRED;
85
84 if (uio->uio_rw != UIO_READ)
85 return (EOPNOTSUPP);
86
87 if (uio->uio_offset != 0)
88 return (0);
89
86 if (uio->uio_rw != UIO_READ)
87 return (EOPNOTSUPP);
88
89 if (uio->uio_offset != 0)
90 return (0);
91
90 mtx_lock(&vm_mtx);
91
92 error = 0;
93 if (map != &curproc->p_vmspace->vm_map)
94 vm_map_lock_read(map);
95 for (entry = map->header.next;
96 ((uio->uio_resid > 0) && (entry != &map->header));
97 entry = entry->next) {
98 vm_object_t obj, tobj, lobj;
99 int ref_count, shadow_count, flags;

--- 66 unchanged lines hidden (view full) ---

166 (entry->eflags & MAP_ENTRY_NEEDS_COPY)?"NC":"NNC",
167 type);
168
169 len = strlen(mebuffer);
170 if (len > uio->uio_resid) {
171 error = EFBIG;
172 break;
173 }
92 error = 0;
93 if (map != &curproc->p_vmspace->vm_map)
94 vm_map_lock_read(map);
95 for (entry = map->header.next;
96 ((uio->uio_resid > 0) && (entry != &map->header));
97 entry = entry->next) {
98 vm_object_t obj, tobj, lobj;
99 int ref_count, shadow_count, flags;

--- 66 unchanged lines hidden (view full) ---

166 (entry->eflags & MAP_ENTRY_NEEDS_COPY)?"NC":"NNC",
167 type);
168
169 len = strlen(mebuffer);
170 if (len > uio->uio_resid) {
171 error = EFBIG;
172 break;
173 }
174 mtx_unlock(&vm_mtx);
175 error = uiomove(mebuffer, len, uio);
174 error = uiomove(mebuffer, len, uio);
176 mtx_lock(&vm_mtx);
177 if (error)
178 break;
179 }
180 if (map != &curproc->p_vmspace->vm_map)
181 vm_map_unlock_read(map);
182
175 if (error)
176 break;
177 }
178 if (map != &curproc->p_vmspace->vm_map)
179 vm_map_unlock_read(map);
180
183 mtx_unlock(&vm_mtx);
184
185 return error;
186}
187
188int
189procfs_validmap(p)
190 struct proc *p;
191{
192 return ((p->p_flag & P_SYSTEM) == 0);
193}
181 return error;
182}
183
184int
185procfs_validmap(p)
186 struct proc *p;
187{
188 return ((p->p_flag & P_SYSTEM) == 0);
189}