[BACK]Return to kernfs_vnops.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / miscfs / kernfs

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/miscfs/kernfs/kernfs_vnops.c between version 1.25 and 1.26

version 1.25, 1994/06/15 17:52:32 version 1.26, 1994/06/15 22:54:43
Line 33 
Line 33 
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.   * SUCH DAMAGE.
  *   *
  *      from: @(#)kernfs_vnops.c        8.6 (Berkeley) 2/10/94   *      from: @(#)kernfs_vnops.c        8.9 (Berkeley) 6/15/94
  *      $Id$   *      $Id$
  */   */
   
Line 227  kernfs_lookup(ap)
Line 227  kernfs_lookup(ap)
         }          }
 #endif  #endif
   
         *vpp = NULL;          *vpp = NULLVP;
   
         for (error = ENOENT, kt = kern_targets, i = 0; i < nkern_targets;          for (error = ENOENT, kt = kern_targets, i = 0; i < nkern_targets;
              kt++, i++) {               kt++, i++) {
                 if (cnp->cn_namelen == strlen(kt->kt_name) &&                  if (cnp->cn_namelen == kt->kt_namlen &&
                     bcmp(kt->kt_name, pname, cnp->cn_namelen) == 0) {                      bcmp(kt->kt_name, pname, cnp->cn_namelen) == 0) {
                         error = 0;                          error = 0;
                         break;                          break;
Line 297  kernfs_access(ap)
Line 297  kernfs_access(ap)
                 struct proc *a_p;                  struct proc *a_p;
         } */ *ap;          } */ *ap;
 {  {
         register struct vnode *vp = ap->a_vp;          struct vnode *vp = ap->a_vp;
         register struct ucred *cred = ap->a_cred;          struct ucred *cred = ap->a_cred;
         mode_t amode = ap->a_mode;          mode_t amode = ap->a_mode;
         mode_t fmode =          mode_t fmode =
             (vp->v_flag & VROOT) ? DIR_MODE : VTOKERN(vp)->kf_kt->kt_mode;              (vp->v_flag & VROOT) ? DIR_MODE : VTOKERN(vp)->kf_kt->kt_mode;
         mode_t mask = 0;          mode_t mask = 0;
         register gid_t *gp;          gid_t *gp;
         int i;          int i;
   
         /* Some files are simply not modifiable. */          /* Some files are simply not modifiable. */
Line 485  kernfs_readdir(ap)
Line 485  kernfs_readdir(ap)
                 struct vnode *a_vp;                  struct vnode *a_vp;
                 struct uio *a_uio;                  struct uio *a_uio;
                 struct ucred *a_cred;                  struct ucred *a_cred;
                   int *a_eofflag;
                   u_long *a_cookies;
                   int a_ncookies;
         } */ *ap;          } */ *ap;
 {  {
         struct uio *uio = ap->a_uio;          struct uio *uio = ap->a_uio;
         register struct kern_target *kt;          struct kern_target *kt;
         struct dirent d;          struct dirent d;
         int i;          int i;
         int error;          int error;
Line 496  kernfs_readdir(ap)
Line 499  kernfs_readdir(ap)
         if (ap->a_vp->v_type != VDIR)          if (ap->a_vp->v_type != VDIR)
                 return (ENOTDIR);                  return (ENOTDIR);
   
           /*
            * We don't allow exporting kernfs mounts, and currently local
            * requests do not need cookies.
            */
           if (ap->a_ncookies != NULL)
                   panic("kernfs_readdir: not hungry");
   
         i = uio->uio_offset / UIO_MX;          i = uio->uio_offset / UIO_MX;
         error = 0;          error = 0;
         for (kt = &kern_targets[i];          for (kt = &kern_targets[i];
              uio->uio_resid >= UIO_MX && i < nkern_targets; kt++, i++) {               uio->uio_resid >= UIO_MX && i < nkern_targets; kt++, i++) {
                 register struct dirent *dp = &d;                  struct dirent *dp = &d;
 #ifdef KERNFS_DIAGNOSTIC  #ifdef KERNFS_DIAGNOSTIC
                 printf("kernfs_readdir: i = %d\n", i);                  printf("kernfs_readdir: i = %d\n", i);
 #endif  #endif
   
                 if (kt->kt_tag == KTT_DEVICE) {                  if (kt->kt_tag == KTT_DEVICE) {
                         register dev_t *dp = kt->kt_data;                          dev_t *dp = kt->kt_data;
                         struct vnode *fvp;                          struct vnode *fvp;
   
                         if (*dp == NODEV || !vfinddev(*dp, kt->kt_vtype, &fvp))                          if (*dp == NODEV || !vfinddev(*dp, kt->kt_vtype, &fvp))
                                 continue;                                  continue;
                 }                  }
   
                 bzero((caddr_t)dp, UIO_MX);                  bzero((caddr_t)dp, UIO_MX);
                 dp->d_namlen = kt->kt_namlen;                  dp->d_namlen = kt->kt_namlen;
                 bcopy(kt->kt_name, dp->d_name, kt->kt_namlen + 1);                  bcopy(kt->kt_name, dp->d_name, kt->kt_namlen+1);
   
 #ifdef KERNFS_DIAGNOSTIC  #ifdef KERNFS_DIAGNOSTIC
                 printf("kernfs_readdir: name = %s, len = %d\n",                  printf("kernfs_readdir: name = %s, len = %d\n",
                                 dp->d_name, dp->d_namlen);                                  dp->d_name, dp->d_namlen);

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

CVSweb <webmaster@jp.NetBSD.org>