1 /* Function prototypes for iso9660 file system. */ 2 3 struct dir_record; 4 struct dir_extent; 5 struct rrii_dir_record; 6 struct iso9660_dir_record; 7 struct iso9660_vol_pri_desc; 8 struct inode; 9 struct inode_dir_entry; 10 11 /* inode.c */ 12 int fs_putnode(ino_t ino_nr, unsigned int count); 13 14 struct inode* get_inode(ino_t ino_nr); 15 struct inode* open_inode(ino_t ino_nr); 16 void put_inode(struct inode *i); 17 void dup_inode(struct inode *i_node); 18 19 int read_directory(struct inode *dir); 20 21 int read_inode(struct inode_dir_entry *dir_entry, struct dir_extent *extent, 22 size_t *offset); 23 24 struct inode* inode_cache_get(ino_t ino_nr); 25 void inode_cache_add(ino_t ino_nr, struct inode *i_node); 26 27 int check_inodes(void); 28 29 /* link.c */ 30 ssize_t fs_rdlink(ino_t ino_nr, struct fsdriver_data *data, size_t bytes); 31 32 /* mount.c */ 33 int fs_mount(dev_t dev, unsigned int flags, struct fsdriver_node *root_node, 34 unsigned int *res_flags); 35 int fs_mountpt(ino_t ino_nr); 36 void fs_unmount(void); 37 38 /* path.c */ 39 int fs_lookup(ino_t ino_nr, char *name, struct fsdriver_node *node, 40 int *is_mountpt); 41 42 /* read.c */ 43 ssize_t fs_read(ino_t ino_nr, struct fsdriver_data *data, size_t bytes, 44 off_t pos, int call); 45 ssize_t fs_getdents(ino_t ino_nr, struct fsdriver_data *data, size_t bytes, 46 off_t *pos); 47 48 /* stadir.c */ 49 int fs_stat(ino_t ino_nr, struct stat *statbuf); 50 int fs_statvfs(struct statvfs *st); 51 52 /* super.c */ 53 int release_vol_pri_desc(struct iso9660_vol_pri_desc *vol_pri); 54 int read_vds(struct iso9660_vol_pri_desc *v_pri, dev_t dev); 55 56 /* susp.c */ 57 int parse_susp(struct rrii_dir_record *dir, char *buffer); 58 void parse_susp_buffer(struct rrii_dir_record *dir, char *buffer, u32_t size); 59 60 /* susp_rock_ridge.c */ 61 void parse_susp_rock_ridge_sl(struct rrii_dir_record *dir, char *buffer, 62 int length); 63 int parse_susp_rock_ridge(struct rrii_dir_record *dir, char *buffer); 64 65 /* utility.c */ 66 void free_inode_dir_entry(struct inode_dir_entry *e); 67 void free_extent(struct dir_extent *extent); 68 struct buf* read_extent_block(struct dir_extent *e, size_t block); 69 size_t get_extent_absolute_block_id(struct dir_extent *e, size_t block); 70 71 time_t date7_to_time_t(const u8_t *date); 72 void* alloc_mem(size_t s);