diff options
author | dg <dg@FreeBSD.org> | 1994-09-24 17:01:05 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1994-09-24 17:01:05 +0000 |
commit | c60a583f860371784b3926d40e01d53c088a6ca7 (patch) | |
tree | 414669f3c655bf1f90bf96a6ecba582641000d58 /sys/fs/procfs | |
parent | 9cac835749a4935d1018265a9f878739c9a9858d (diff) | |
download | FreeBSD-src-c60a583f860371784b3926d40e01d53c088a6ca7.zip FreeBSD-src-c60a583f860371784b3926d40e01d53c088a6ca7.tar.gz |
1) Added "." and ".." entries.
2) Fixed directory size to return something reasonable.
3) Disabled "file" until the code is completed.
4) Corrected directory link counts.
Diffstat (limited to 'sys/fs/procfs')
-rw-r--r-- | sys/fs/procfs/procfs_vnops.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/sys/fs/procfs/procfs_vnops.c b/sys/fs/procfs/procfs_vnops.c index 7605893..1a74859 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"); |