ip                 33 kernel/exec.c    struct inode *ip;
ip                 41 kernel/exec.c    if((ip = namei(path)) == 0){
ip                 45 kernel/exec.c    ilock(ip);
ip                 48 kernel/exec.c    if(readi(ip, 0, (uint64)&elf, 0, sizeof(elf)) != sizeof(elf))
ip                 60 kernel/exec.c      if(readi(ip, 0, (uint64)&ph, off, sizeof(ph)) != sizeof(ph))
ip                 74 kernel/exec.c      if(loadseg(pagetable, ph.vaddr, ip, ph.off, ph.filesz) < 0)
ip                 77 kernel/exec.c    iunlockput(ip);
ip                 79 kernel/exec.c    ip = 0;
ip                143 kernel/exec.c    if(ip){
ip                144 kernel/exec.c      iunlockput(ip);
ip                155 kernel/exec.c  loadseg(pagetable_t pagetable, uint64 va, struct inode *ip, uint offset, uint sz)
ip                168 kernel/exec.c      if(readi(ip, 0, (uint64)pa, offset+i, n) != n)
ip                 80 kernel/file.c      iput(ff.ip);
ip                 94 kernel/file.c      ilock(f->ip);
ip                 95 kernel/file.c      stati(f->ip, &st);
ip                 96 kernel/file.c      iunlock(f->ip);
ip                121 kernel/file.c      ilock(f->ip);
ip                122 kernel/file.c      if((r = readi(f->ip, 1, addr, f->off, n)) > 0)
ip                124 kernel/file.c      iunlock(f->ip);
ip                161 kernel/file.c        ilock(f->ip);
ip                162 kernel/file.c        if ((r = writei(f->ip, 1, addr + i, f->off, n1)) > 0)
ip                164 kernel/file.c        iunlock(f->ip);
ip                  7 kernel/file.h    struct inode *ip;  // FD_INODE and FD_DEVICE
ip                227 kernel/fs.c    iupdate(struct inode *ip)
ip                232 kernel/fs.c      bp = bread(ip->dev, IBLOCK(ip->inum, sb));
ip                233 kernel/fs.c      dip = (struct dinode*)bp->data + ip->inum%IPB;
ip                234 kernel/fs.c      dip->type = ip->type;
ip                235 kernel/fs.c      dip->major = ip->major;
ip                236 kernel/fs.c      dip->minor = ip->minor;
ip                237 kernel/fs.c      dip->nlink = ip->nlink;
ip                238 kernel/fs.c      dip->size = ip->size;
ip                239 kernel/fs.c      memmove(dip->addrs, ip->addrs, sizeof(ip->addrs));
ip                250 kernel/fs.c      struct inode *ip, *empty;
ip                256 kernel/fs.c      for(ip = &itable.inode[0]; ip < &itable.inode[NINODE]; ip++){
ip                257 kernel/fs.c        if(ip->ref > 0 && ip->dev == dev && ip->inum == inum){
ip                258 kernel/fs.c          ip->ref++;
ip                260 kernel/fs.c          return ip;
ip                262 kernel/fs.c        if(empty == 0 && ip->ref == 0)    // Remember empty slot.
ip                263 kernel/fs.c          empty = ip;
ip                270 kernel/fs.c      ip = empty;
ip                271 kernel/fs.c      ip->dev = dev;
ip                272 kernel/fs.c      ip->inum = inum;
ip                273 kernel/fs.c      ip->ref = 1;
ip                274 kernel/fs.c      ip->valid = 0;
ip                277 kernel/fs.c      return ip;
ip                283 kernel/fs.c    idup(struct inode *ip)
ip                286 kernel/fs.c      ip->ref++;
ip                288 kernel/fs.c      return ip;
ip                294 kernel/fs.c    ilock(struct inode *ip)
ip                299 kernel/fs.c      if(ip == 0 || ip->ref < 1)
ip                302 kernel/fs.c      acquiresleep(&ip->lock);
ip                304 kernel/fs.c      if(ip->valid == 0){
ip                305 kernel/fs.c        bp = bread(ip->dev, IBLOCK(ip->inum, sb));
ip                306 kernel/fs.c        dip = (struct dinode*)bp->data + ip->inum%IPB;
ip                307 kernel/fs.c        ip->type = dip->type;
ip                308 kernel/fs.c        ip->major = dip->major;
ip                309 kernel/fs.c        ip->minor = dip->minor;
ip                310 kernel/fs.c        ip->nlink = dip->nlink;
ip                311 kernel/fs.c        ip->size = dip->size;
ip                312 kernel/fs.c        memmove(ip->addrs, dip->addrs, sizeof(ip->addrs));
ip                314 kernel/fs.c        ip->valid = 1;
ip                315 kernel/fs.c        if(ip->type == 0)
ip                322 kernel/fs.c    iunlock(struct inode *ip)
ip                324 kernel/fs.c      if(ip == 0 || !holdingsleep(&ip->lock) || ip->ref < 1)
ip                327 kernel/fs.c      releasesleep(&ip->lock);
ip                338 kernel/fs.c    iput(struct inode *ip)
ip                342 kernel/fs.c      if(ip->ref == 1 && ip->valid && ip->nlink == 0){
ip                347 kernel/fs.c        acquiresleep(&ip->lock);
ip                351 kernel/fs.c        itrunc(ip);
ip                352 kernel/fs.c        ip->type = 0;
ip                353 kernel/fs.c        iupdate(ip);
ip                354 kernel/fs.c        ip->valid = 0;
ip                356 kernel/fs.c        releasesleep(&ip->lock);
ip                361 kernel/fs.c      ip->ref--;
ip                367 kernel/fs.c    iunlockput(struct inode *ip)
ip                369 kernel/fs.c      iunlock(ip);
ip                370 kernel/fs.c      iput(ip);
ip                377 kernel/fs.c        struct inode *ip = 0;
ip                382 kernel/fs.c          ip = iget(dev, inum);
ip                385 kernel/fs.c        if (ip) {
ip                387 kernel/fs.c          ilock(ip);
ip                388 kernel/fs.c          iunlock(ip);
ip                389 kernel/fs.c          iput(ip);
ip                406 kernel/fs.c    bmap(struct inode *ip, uint bn)
ip                412 kernel/fs.c        if((addr = ip->addrs[bn]) == 0){
ip                413 kernel/fs.c          addr = balloc(ip->dev);
ip                416 kernel/fs.c          ip->addrs[bn] = addr;
ip                424 kernel/fs.c        if((addr = ip->addrs[NDIRECT]) == 0){
ip                425 kernel/fs.c          addr = balloc(ip->dev);
ip                428 kernel/fs.c          ip->addrs[NDIRECT] = addr;
ip                430 kernel/fs.c        bp = bread(ip->dev, addr);
ip                433 kernel/fs.c          addr = balloc(ip->dev);
ip                449 kernel/fs.c    itrunc(struct inode *ip)
ip                456 kernel/fs.c        if(ip->addrs[i]){
ip                457 kernel/fs.c          bfree(ip->dev, ip->addrs[i]);
ip                458 kernel/fs.c          ip->addrs[i] = 0;
ip                462 kernel/fs.c      if(ip->addrs[NDIRECT]){
ip                463 kernel/fs.c        bp = bread(ip->dev, ip->addrs[NDIRECT]);
ip                467 kernel/fs.c            bfree(ip->dev, a[j]);
ip                470 kernel/fs.c        bfree(ip->dev, ip->addrs[NDIRECT]);
ip                471 kernel/fs.c        ip->addrs[NDIRECT] = 0;
ip                474 kernel/fs.c      ip->size = 0;
ip                475 kernel/fs.c      iupdate(ip);
ip                481 kernel/fs.c    stati(struct inode *ip, struct stat *st)
ip                483 kernel/fs.c      st->dev = ip->dev;
ip                484 kernel/fs.c      st->ino = ip->inum;
ip                485 kernel/fs.c      st->type = ip->type;
ip                486 kernel/fs.c      st->nlink = ip->nlink;
ip                487 kernel/fs.c      st->size = ip->size;
ip                495 kernel/fs.c    readi(struct inode *ip, int user_dst, uint64 dst, uint off, uint n)
ip                500 kernel/fs.c      if(off > ip->size || off + n < off)
ip                502 kernel/fs.c      if(off + n > ip->size)
ip                503 kernel/fs.c        n = ip->size - off;
ip                506 kernel/fs.c        uint addr = bmap(ip, off/BSIZE);
ip                509 kernel/fs.c        bp = bread(ip->dev, addr);
ip                529 kernel/fs.c    writei(struct inode *ip, int user_src, uint64 src, uint off, uint n)
ip                534 kernel/fs.c      if(off > ip->size || off + n < off)
ip                540 kernel/fs.c        uint addr = bmap(ip, off/BSIZE);
ip                543 kernel/fs.c        bp = bread(ip->dev, addr);
ip                553 kernel/fs.c      if(off > ip->size)
ip                554 kernel/fs.c        ip->size = off;
ip                559 kernel/fs.c      iupdate(ip);
ip                607 kernel/fs.c      struct inode *ip;
ip                610 kernel/fs.c      if((ip = dirlookup(dp, name, 0)) != 0){
ip                611 kernel/fs.c        iput(ip);
ip                677 kernel/fs.c      struct inode *ip, *next;
ip                680 kernel/fs.c        ip = iget(ROOTDEV, ROOTINO);
ip                682 kernel/fs.c        ip = idup(myproc()->cwd);
ip                685 kernel/fs.c        ilock(ip);
ip                686 kernel/fs.c        if(ip->type != T_DIR){
ip                687 kernel/fs.c          iunlockput(ip);
ip                692 kernel/fs.c          iunlock(ip);
ip                693 kernel/fs.c          return ip;
ip                695 kernel/fs.c        if((next = dirlookup(ip, name, 0)) == 0){
ip                696 kernel/fs.c          iunlockput(ip);
ip                699 kernel/fs.c        iunlockput(ip);
ip                700 kernel/fs.c        ip = next;
ip                703 kernel/fs.c        iput(ip);
ip                706 kernel/fs.c      return ip;
ip                 12 kernel/syscall.c fetchaddr(uint64 addr, uint64 *ip)
ip                 17 kernel/syscall.c   if(copyin(p->pagetable, (char *)ip, addr, sizeof(*ip)) != 0)
ip                 57 kernel/syscall.c argint(int n, int *ip)
ip                 59 kernel/syscall.c   *ip = argraw(n);
ip                 66 kernel/syscall.c argaddr(int n, uint64 *ip)
ip                 68 kernel/syscall.c   *ip = argraw(n);
ip                127 kernel/sysfile.c   struct inode *dp, *ip;
ip                133 kernel/sysfile.c   if((ip = namei(old)) == 0){
ip                138 kernel/sysfile.c   ilock(ip);
ip                139 kernel/sysfile.c   if(ip->type == T_DIR){
ip                140 kernel/sysfile.c     iunlockput(ip);
ip                145 kernel/sysfile.c   ip->nlink++;
ip                146 kernel/sysfile.c   iupdate(ip);
ip                147 kernel/sysfile.c   iunlock(ip);
ip                152 kernel/sysfile.c   if(dp->dev != ip->dev || dirlink(dp, name, ip->inum) < 0){
ip                157 kernel/sysfile.c   iput(ip);
ip                164 kernel/sysfile.c   ilock(ip);
ip                165 kernel/sysfile.c   ip->nlink--;
ip                166 kernel/sysfile.c   iupdate(ip);
ip                167 kernel/sysfile.c   iunlockput(ip);
ip                191 kernel/sysfile.c   struct inode *ip, *dp;
ip                211 kernel/sysfile.c   if((ip = dirlookup(dp, name, &off)) == 0)
ip                213 kernel/sysfile.c   ilock(ip);
ip                215 kernel/sysfile.c   if(ip->nlink < 1)
ip                217 kernel/sysfile.c   if(ip->type == T_DIR && !isdirempty(ip)){
ip                218 kernel/sysfile.c     iunlockput(ip);
ip                225 kernel/sysfile.c   if(ip->type == T_DIR){
ip                231 kernel/sysfile.c   ip->nlink--;
ip                232 kernel/sysfile.c   iupdate(ip);
ip                233 kernel/sysfile.c   iunlockput(ip);
ip                248 kernel/sysfile.c   struct inode *ip, *dp;
ip                256 kernel/sysfile.c   if((ip = dirlookup(dp, name, 0)) != 0){
ip                258 kernel/sysfile.c     ilock(ip);
ip                259 kernel/sysfile.c     if(type == T_FILE && (ip->type == T_FILE || ip->type == T_DEVICE))
ip                260 kernel/sysfile.c       return ip;
ip                261 kernel/sysfile.c     iunlockput(ip);
ip                265 kernel/sysfile.c   if((ip = ialloc(dp->dev, type)) == 0){
ip                270 kernel/sysfile.c   ilock(ip);
ip                271 kernel/sysfile.c   ip->major = major;
ip                272 kernel/sysfile.c   ip->minor = minor;
ip                273 kernel/sysfile.c   ip->nlink = 1;
ip                274 kernel/sysfile.c   iupdate(ip);
ip                278 kernel/sysfile.c     if(dirlink(ip, ".", ip->inum) < 0 || dirlink(ip, "..", dp->inum) < 0)
ip                282 kernel/sysfile.c   if(dirlink(dp, name, ip->inum) < 0)
ip                293 kernel/sysfile.c   return ip;
ip                297 kernel/sysfile.c   ip->nlink = 0;
ip                298 kernel/sysfile.c   iupdate(ip);
ip                299 kernel/sysfile.c   iunlockput(ip);
ip                310 kernel/sysfile.c   struct inode *ip;
ip                320 kernel/sysfile.c     ip = create(path, T_FILE, 0, 0);
ip                321 kernel/sysfile.c     if(ip == 0){
ip                326 kernel/sysfile.c     if((ip = namei(path)) == 0){
ip                330 kernel/sysfile.c     ilock(ip);
ip                331 kernel/sysfile.c     if(ip->type == T_DIR && omode != O_RDONLY){
ip                332 kernel/sysfile.c       iunlockput(ip);
ip                338 kernel/sysfile.c   if(ip->type == T_DEVICE && (ip->major < 0 || ip->major >= NDEV)){
ip                339 kernel/sysfile.c     iunlockput(ip);
ip                347 kernel/sysfile.c     iunlockput(ip);
ip                352 kernel/sysfile.c   if(ip->type == T_DEVICE){
ip                354 kernel/sysfile.c     f->major = ip->major;
ip                359 kernel/sysfile.c   f->ip = ip;
ip                363 kernel/sysfile.c   if((omode & O_TRUNC) && ip->type == T_FILE){
ip                364 kernel/sysfile.c     itrunc(ip);
ip                367 kernel/sysfile.c   iunlock(ip);
ip                377 kernel/sysfile.c   struct inode *ip;
ip                380 kernel/sysfile.c   if(argstr(0, path, MAXPATH) < 0 || (ip = create(path, T_DIR, 0, 0)) == 0){
ip                384 kernel/sysfile.c   iunlockput(ip);
ip                392 kernel/sysfile.c   struct inode *ip;
ip                400 kernel/sysfile.c      (ip = create(path, T_DEVICE, major, minor)) == 0){
ip                404 kernel/sysfile.c   iunlockput(ip);
ip                413 kernel/sysfile.c   struct inode *ip;
ip                417 kernel/sysfile.c   if(argstr(0, path, MAXPATH) < 0 || (ip = namei(path)) == 0){
ip                421 kernel/sysfile.c   ilock(ip);
ip                422 kernel/sysfile.c   if(ip->type != T_DIR){
ip                423 kernel/sysfile.c     iunlockput(ip);
ip                427 kernel/sysfile.c   iunlock(ip);
ip                430 kernel/sysfile.c   p->cwd = ip;
ip                 39 mkfs/mkfs.c    void rinode(uint inum, struct dinode *ip);
ip                187 mkfs/mkfs.c    winode(uint inum, struct dinode *ip)
ip                196 mkfs/mkfs.c      *dip = *ip;
ip                201 mkfs/mkfs.c    rinode(uint inum, struct dinode *ip)
ip                210 mkfs/mkfs.c      *ip = *dip;