Add a feature to procfs to allow display of the process address map

with multiple entries as follows:

	start address, end address, resident pages in range, private pages
		in range, RW/RO, COW or not, (vnode/device/swap/default).
This commit is contained in:
John Dyson 1996-06-17 22:43:36 +00:00
parent c40d042f0f
commit 9353aadd89
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=16467
7 changed files with 23 additions and 8 deletions

View file

@ -120,6 +120,7 @@ miscfs/procfs/procfs_status.c optional procfs
miscfs/procfs/procfs_subr.c optional procfs miscfs/procfs/procfs_subr.c optional procfs
miscfs/procfs/procfs_vfsops.c optional procfs miscfs/procfs/procfs_vfsops.c optional procfs
miscfs/procfs/procfs_vnops.c optional procfs miscfs/procfs/procfs_vnops.c optional procfs
miscfs/procfs/procfs_map.c optional procfs
miscfs/specfs/spec_vnops.c standard miscfs/specfs/spec_vnops.c standard
miscfs/umapfs/umap_subr.c optional umapfs miscfs/umapfs/umap_subr.c optional umapfs
miscfs/umapfs/umap_vfsops.c optional umapfs miscfs/umapfs/umap_vfsops.c optional umapfs

View file

@ -36,7 +36,7 @@
* *
* @(#)procfs.h 8.6 (Berkeley) 2/3/94 * @(#)procfs.h 8.6 (Berkeley) 2/3/94
* *
* $Id: procfs.h,v 1.8 1995/11/16 11:39:09 bde Exp $ * $Id: procfs.h,v 1.9 1996/01/24 18:40:37 peter Exp $
*/ */
/* /*
@ -52,7 +52,8 @@ typedef enum {
Pctl, /* process control */ Pctl, /* process control */
Pstatus, /* process status */ Pstatus, /* process status */
Pnote, /* process notifier */ Pnote, /* process notifier */
Pnotepg /* process group notifier */ Pnotepg, /* process group notifier */
Pmap /* memory map */
} pfstype; } pfstype;
/* /*

View file

@ -36,7 +36,7 @@
* *
* @(#)procfs_subr.c 8.4 (Berkeley) 1/27/94 * @(#)procfs_subr.c 8.4 (Berkeley) 1/27/94
* *
* $Id: procfs_subr.c,v 1.5 1995/05/30 08:07:11 rgrimes Exp $ * $Id: procfs_subr.c,v 1.6 1996/06/12 03:37:36 davidg Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -166,6 +166,7 @@ procfs_allocvp(mp, vpp, pid, pfs_type)
pfs->pfs_mode = (VWRITE); pfs->pfs_mode = (VWRITE);
break; break;
case Pmap:
case Pstatus: case Pstatus:
pfs->pfs_mode = (VREAD) | pfs->pfs_mode = (VREAD) |
(VREAD >> 3) | (VREAD >> 3) |
@ -250,6 +251,9 @@ procfs_rw(ap)
case Pstatus: case Pstatus:
return (procfs_dostatus(curp, p, pfs, uio)); return (procfs_dostatus(curp, p, pfs, uio));
case Pmap:
return (procfs_domap(curp, p, pfs, uio));
case Pmem: case Pmem:
return (procfs_domem(curp, p, pfs, uio)); return (procfs_domem(curp, p, pfs, uio));

View file

@ -36,7 +36,7 @@
* *
* @(#)procfs_vnops.c 8.6 (Berkeley) 2/7/94 * @(#)procfs_vnops.c 8.6 (Berkeley) 2/7/94
* *
* $Id: procfs_vnops.c,v 1.20 1996/01/24 18:41:41 peter Exp $ * $Id: procfs_vnops.c,v 1.21 1996/03/11 06:13:09 hsu Exp $
*/ */
/* /*
@ -95,6 +95,7 @@ static struct pfsnames {
{ N("status"), Pstatus, NULL }, { N("status"), Pstatus, NULL },
{ N("note"), Pnote, NULL }, { N("note"), Pnote, NULL },
{ N("notepg"), Pnotepg, NULL }, { N("notepg"), Pnotepg, NULL },
{ N("map"), Pmap, NULL },
#undef N #undef N
}; };
#define Nprocent (sizeof(procent)/sizeof(procent[0])) #define Nprocent (sizeof(procent)/sizeof(procent[0]))
@ -430,6 +431,7 @@ procfs_getattr(ap)
vap->va_gid = KMEM_GROUP; vap->va_gid = KMEM_GROUP;
break; break;
case Pmap:
case Pregs: case Pregs:
case Pfpregs: case Pfpregs:
case Pctl: case Pctl:

View file

@ -36,7 +36,7 @@
* *
* @(#)procfs.h 8.6 (Berkeley) 2/3/94 * @(#)procfs.h 8.6 (Berkeley) 2/3/94
* *
* $Id: procfs.h,v 1.8 1995/11/16 11:39:09 bde Exp $ * $Id: procfs.h,v 1.9 1996/01/24 18:40:37 peter Exp $
*/ */
/* /*
@ -52,7 +52,8 @@ typedef enum {
Pctl, /* process control */ Pctl, /* process control */
Pstatus, /* process status */ Pstatus, /* process status */
Pnote, /* process notifier */ Pnote, /* process notifier */
Pnotepg /* process group notifier */ Pnotepg, /* process group notifier */
Pmap /* memory map */
} pfstype; } pfstype;
/* /*

View file

@ -36,7 +36,7 @@
* *
* @(#)procfs_subr.c 8.4 (Berkeley) 1/27/94 * @(#)procfs_subr.c 8.4 (Berkeley) 1/27/94
* *
* $Id: procfs_subr.c,v 1.5 1995/05/30 08:07:11 rgrimes Exp $ * $Id: procfs_subr.c,v 1.6 1996/06/12 03:37:36 davidg Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -166,6 +166,7 @@ procfs_allocvp(mp, vpp, pid, pfs_type)
pfs->pfs_mode = (VWRITE); pfs->pfs_mode = (VWRITE);
break; break;
case Pmap:
case Pstatus: case Pstatus:
pfs->pfs_mode = (VREAD) | pfs->pfs_mode = (VREAD) |
(VREAD >> 3) | (VREAD >> 3) |
@ -250,6 +251,9 @@ procfs_rw(ap)
case Pstatus: case Pstatus:
return (procfs_dostatus(curp, p, pfs, uio)); return (procfs_dostatus(curp, p, pfs, uio));
case Pmap:
return (procfs_domap(curp, p, pfs, uio));
case Pmem: case Pmem:
return (procfs_domem(curp, p, pfs, uio)); return (procfs_domem(curp, p, pfs, uio));

View file

@ -36,7 +36,7 @@
* *
* @(#)procfs_vnops.c 8.6 (Berkeley) 2/7/94 * @(#)procfs_vnops.c 8.6 (Berkeley) 2/7/94
* *
* $Id: procfs_vnops.c,v 1.20 1996/01/24 18:41:41 peter Exp $ * $Id: procfs_vnops.c,v 1.21 1996/03/11 06:13:09 hsu Exp $
*/ */
/* /*
@ -95,6 +95,7 @@ static struct pfsnames {
{ N("status"), Pstatus, NULL }, { N("status"), Pstatus, NULL },
{ N("note"), Pnote, NULL }, { N("note"), Pnote, NULL },
{ N("notepg"), Pnotepg, NULL }, { N("notepg"), Pnotepg, NULL },
{ N("map"), Pmap, NULL },
#undef N #undef N
}; };
#define Nprocent (sizeof(procent)/sizeof(procent[0])) #define Nprocent (sizeof(procent)/sizeof(procent[0]))
@ -430,6 +431,7 @@ procfs_getattr(ap)
vap->va_gid = KMEM_GROUP; vap->va_gid = KMEM_GROUP;
break; break;
case Pmap:
case Pregs: case Pregs:
case Pfpregs: case Pfpregs:
case Pctl: case Pctl: