f                  28 file.c           struct file *f;
f                  31 file.c           for(f = ftable.file; f < ftable.file + NFILE; f++){
f                  32 file.c             if(f->ref == 0){
f                  33 file.c               f->ref = 1;
f                  35 file.c               return f;
f                  44 file.c         filedup(struct file *f)
f                  47 file.c           if(f->ref < 1)
f                  49 file.c           f->ref++;
f                  51 file.c           return f;
f                  56 file.c         fileclose(struct file *f)
f                  61 file.c           if(f->ref < 1)
f                  63 file.c           if(--f->ref > 0){
f                  67 file.c           ff = *f;
f                  68 file.c           f->ref = 0;
f                  69 file.c           f->type = FD_NONE;
f                  83 file.c         filestat(struct file *f, struct stat *st)
f                  85 file.c           if(f->type == FD_INODE){
f                  86 file.c             ilock(f->ip);
f                  87 file.c             stati(f->ip, st);
f                  88 file.c             iunlock(f->ip);
f                  96 file.c         fileread(struct file *f, char *addr, int n)
f                 100 file.c           if(f->readable == 0)
f                 102 file.c           if(f->type == FD_PIPE)
f                 103 file.c             return piperead(f->pipe, addr, n);
f                 104 file.c           if(f->type == FD_INODE){
f                 105 file.c             ilock(f->ip);
f                 106 file.c             if((r = readi(f->ip, addr, f->off, n)) > 0)
f                 107 file.c               f->off += r;
f                 108 file.c             iunlock(f->ip);
f                 117 file.c         filewrite(struct file *f, char *addr, int n)
f                 121 file.c           if(f->writable == 0)
f                 123 file.c           if(f->type == FD_PIPE)
f                 124 file.c             return pipewrite(f->pipe, addr, n);
f                 125 file.c           if(f->type == FD_INODE){
f                 140 file.c               ilock(f->ip);
f                 141 file.c               if ((r = writei(f->ip, addr + i, f->off, n1)) > 0)
f                 142 file.c                 f->off += r;
f                 143 file.c               iunlock(f->ip);
f                  23 sysfile.c        struct file *f;
f                  27 sysfile.c        if(fd < 0 || fd >= NOFILE || (f=proc->ofile[fd]) == 0)
f                  32 sysfile.c          *pf = f;
f                  39 sysfile.c      fdalloc(struct file *f)
f                  45 sysfile.c            proc->ofile[fd] = f;
f                  55 sysfile.c        struct file *f;
f                  58 sysfile.c        if(argfd(0, 0, &f) < 0)
f                  60 sysfile.c        if((fd=fdalloc(f)) < 0)
f                  62 sysfile.c        filedup(f);
f                  69 sysfile.c        struct file *f;
f                  73 sysfile.c        if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argptr(1, &p, n) < 0)
f                  75 sysfile.c        return fileread(f, p, n);
f                  81 sysfile.c        struct file *f;
f                  85 sysfile.c        if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argptr(1, &p, n) < 0)
f                  87 sysfile.c        return filewrite(f, p, n);
f                  94 sysfile.c        struct file *f;
f                  96 sysfile.c        if(argfd(0, &fd, &f) < 0)
f                  99 sysfile.c        fileclose(f);
f                 106 sysfile.c        struct file *f;
f                 109 sysfile.c        if(argfd(0, 0, &f) < 0 || argptr(1, (void*)&st, sizeof(*st)) < 0)
f                 111 sysfile.c        return filestat(f, st);
f                 288 sysfile.c        struct file *f;
f                 315 sysfile.c        if((f = filealloc()) == 0 || (fd = fdalloc(f)) < 0){
f                 316 sysfile.c          if(f)
f                 317 sysfile.c            fileclose(f);
f                 325 sysfile.c        f->type = FD_INODE;
f                 326 sysfile.c        f->ip = ip;
f                 327 sysfile.c        f->off = 0;
f                 328 sysfile.c        f->readable = !(omode & O_WRONLY);
f                 329 sysfile.c        f->writable = (omode & O_WRONLY) || (omode & O_RDWR);