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;