diff options
| author | David Greenman <dg@FreeBSD.org> | 1994-09-24 17:01:05 +0000 |
|---|---|---|
| committer | David Greenman <dg@FreeBSD.org> | 1994-09-24 17:01:05 +0000 |
| commit | 0f85a5596568cbba6b97c3d097b6baaffdbaa78d (patch) | |
| tree | 414669f3c655bf1f90bf96a6ecba582641000d58 | |
| parent | 2a531c809e3b9d942e6534464ae977404dbb5c30 (diff) | |
Notes
| -rw-r--r-- | sys/fs/procfs/procfs_vnops.c | 24 | ||||
| -rw-r--r-- | sys/miscfs/procfs/procfs_vnops.c | 24 |
2 files changed, 40 insertions, 8 deletions
diff --git a/sys/fs/procfs/procfs_vnops.c b/sys/fs/procfs/procfs_vnops.c index 760589381d24..1a748599cf72 100644 --- a/sys/fs/procfs/procfs_vnops.c +++ b/sys/fs/procfs/procfs_vnops.c @@ -36,7 +36,7 @@ * * @(#)procfs_vnops.c 8.6 (Berkeley) 2/7/94 * - * $Id: procfs_vnops.c,v 1.4 1994/08/18 22:35:15 wollman Exp $ + * $Id: procfs_vnops.c,v 1.5 1994/09/21 03:47:07 wollman Exp $ */ /* @@ -74,7 +74,11 @@ static struct pfsnames { } procent[] = { #define N(s) sizeof(s)-1, s /* namlen, nam, type */ + { N("."), Pproc }, + { N(".."), Proot }, +#if 0 { N("file"), Pfile }, +#endif { N("mem"), Pmem }, { N("regs"), Pregs }, { N("fpregs"), Pfpregs }, @@ -395,15 +399,17 @@ procfs_getattr(ap) switch (pfs->pfs_type) { case Proot: - vap->va_nlink = 2; + vap->va_nlink = nprocs + 3; vap->va_uid = 0; vap->va_gid = 0; + vap->va_bytes = vap->va_size = DEV_BSIZE; break; case Pproc: - vap->va_nlink = 2; + vap->va_nlink = Nprocent; vap->va_uid = procp->p_ucred->cr_uid; vap->va_gid = procp->p_ucred->cr_gid; + vap->va_bytes = vap->va_size = DEV_BSIZE; break; case Pfile: @@ -704,7 +710,7 @@ procfs_readdir(ap) p = allproc; -#define PROCFS_XFILES 1 /* number of other entries, like "curproc" */ +#define PROCFS_XFILES 3 /* number of other entries, like "curproc" */ pcnt = PROCFS_XFILES; while (p && uio->uio_resid >= UIO_MX) { @@ -714,6 +720,16 @@ procfs_readdir(ap) switch (i) { case 0: + dp->d_fileno = PROCFS_FILENO(0, Proot); + dp->d_namlen = sprintf(dp->d_name, "."); + break; + + case 1: + dp->d_fileno = PROCFS_FILENO(0, Proot); + dp->d_namlen = sprintf(dp->d_name, ".."); + break; + + case 2: /* ship out entry for "curproc" */ dp->d_fileno = PROCFS_FILENO(PID_MAX+1, Pproc); dp->d_namlen = sprintf(dp->d_name, "curproc"); diff --git a/sys/miscfs/procfs/procfs_vnops.c b/sys/miscfs/procfs/procfs_vnops.c index 760589381d24..1a748599cf72 100644 --- a/sys/miscfs/procfs/procfs_vnops.c +++ b/sys/miscfs/procfs/procfs_vnops.c @@ -36,7 +36,7 @@ * * @(#)procfs_vnops.c 8.6 (Berkeley) 2/7/94 * - * $Id: procfs_vnops.c,v 1.4 1994/08/18 22:35:15 wollman Exp $ + * $Id: procfs_vnops.c,v 1.5 1994/09/21 03:47:07 wollman Exp $ */ /* @@ -74,7 +74,11 @@ static struct pfsnames { } procent[] = { #define N(s) sizeof(s)-1, s /* namlen, nam, type */ + { N("."), Pproc }, + { N(".."), Proot }, +#if 0 { N("file"), Pfile }, +#endif { N("mem"), Pmem }, { N("regs"), Pregs }, { N("fpregs"), Pfpregs }, @@ -395,15 +399,17 @@ procfs_getattr(ap) switch (pfs->pfs_type) { case Proot: - vap->va_nlink = 2; + vap->va_nlink = nprocs + 3; vap->va_uid = 0; vap->va_gid = 0; + vap->va_bytes = vap->va_size = DEV_BSIZE; break; case Pproc: - vap->va_nlink = 2; + vap->va_nlink = Nprocent; vap->va_uid = procp->p_ucred->cr_uid; vap->va_gid = procp->p_ucred->cr_gid; + vap->va_bytes = vap->va_size = DEV_BSIZE; break; case Pfile: @@ -704,7 +710,7 @@ procfs_readdir(ap) p = allproc; -#define PROCFS_XFILES 1 /* number of other entries, like "curproc" */ +#define PROCFS_XFILES 3 /* number of other entries, like "curproc" */ pcnt = PROCFS_XFILES; while (p && uio->uio_resid >= UIO_MX) { @@ -714,6 +720,16 @@ procfs_readdir(ap) switch (i) { case 0: + dp->d_fileno = PROCFS_FILENO(0, Proot); + dp->d_namlen = sprintf(dp->d_name, "."); + break; + + case 1: + dp->d_fileno = PROCFS_FILENO(0, Proot); + dp->d_namlen = sprintf(dp->d_name, ".."); + break; + + case 2: /* ship out entry for "curproc" */ dp->d_fileno = PROCFS_FILENO(PID_MAX+1, Pproc); dp->d_namlen = sprintf(dp->d_name, "curproc"); |
