#include <stdbool.h>
#include "filesys/off_t.h"
#include "devices/block.h"
Go to the source code of this file.
Functions | |
void | inode_init (void) |
bool | inode_create (block_sector_t, off_t) |
struct inode * | inode_open (block_sector_t) |
struct inode * | inode_reopen (struct inode *) |
block_sector_t | inode_get_inumber (const struct inode *) |
void | inode_close (struct inode *) |
void | inode_remove (struct inode *) |
off_t | inode_read_at (struct inode *, void *, off_t size, off_t offset) |
off_t | inode_write_at (struct inode *, const void *, off_t size, off_t offset) |
void | inode_deny_write (struct inode *) |
void | inode_allow_write (struct inode *) |
off_t | inode_length (const struct inode *) |
void inode_allow_write | ( | struct inode * | ) |
Definition at line 334 of file inode.c.
References ASSERT, inode::deny_write_cnt, and inode::open_cnt.
Referenced by file_allow_write().
void inode_close | ( | struct inode * | ) |
Definition at line 165 of file inode.c.
References bytes_to_sectors(), inode::data, inode::elem, free(), free_map_release(), inode_disk::length, list_remove(), NULL, inode::open_cnt, inode::removed, inode::sector, and inode_disk::start.
Referenced by dir_close(), dir_open(), dir_remove(), file_close(), and file_open().
bool inode_create | ( | block_sector_t | , | |
off_t | ||||
) |
Definition at line 74 of file inode.c.
References ASSERT, BLOCK_SECTOR_SIZE, block_write(), bytes_to_sectors(), calloc(), free(), free_map_allocate(), fs_device, INODE_MAGIC, inode_disk::length, inode_disk::magic, NULL, and inode_disk::start.
Referenced by dir_create(), filesys_create(), and free_map_create().
void inode_deny_write | ( | struct inode * | ) |
Definition at line 324 of file inode.c.
References ASSERT, inode::deny_write_cnt, and inode::open_cnt.
Referenced by file_deny_write().
block_sector_t inode_get_inumber | ( | const struct inode * | ) |
void inode_init | ( | void | ) |
Definition at line 63 of file inode.c.
References list_init(), and open_inodes.
Referenced by filesys_init().
Definition at line 343 of file inode.c.
References inode::data, and inode_disk::length.
Referenced by file_length(), inode_read_at(), and inode_write_at().
struct inode* inode_open | ( | block_sector_t | ) | [read] |
Definition at line 113 of file inode.c.
References block_read(), inode::data, inode::deny_write_cnt, inode::elem, fs_device, inode_reopen(), list_begin(), list_end(), list_entry, list_next(), list_push_front(), malloc(), NULL, inode::open_cnt, open_inodes, inode::removed, and inode::sector.
Referenced by dir_lookup(), dir_open_root(), dir_remove(), free_map_create(), and free_map_open().
Definition at line 202 of file inode.c.
References block_read(), BLOCK_SECTOR_SIZE, buffer, byte_to_sector(), free(), fs_device, inode_length(), malloc(), memcpy(), and NULL.
Referenced by dir_add(), dir_readdir(), file_read(), file_read_at(), and lookup().
void inode_remove | ( | struct inode * | ) |
Definition at line 192 of file inode.c.
References ASSERT, NULL, and inode::removed.
Referenced by dir_remove().
Definition at line 147 of file inode.c.
References NULL, and inode::open_cnt.
Referenced by dir_reopen(), file_reopen(), and inode_open().
Definition at line 259 of file inode.c.
References block_read(), BLOCK_SECTOR_SIZE, block_write(), buffer, byte_to_sector(), inode::deny_write_cnt, free(), fs_device, inode_length(), malloc(), memcpy(), memset(), and NULL.
Referenced by dir_add(), dir_remove(), file_write(), and file_write_at().