1 /* Function prototypes for iso9660 file system. */
5 struct rrii_dir_record
;
6 struct iso9660_dir_record
;
7 struct iso9660_vol_pri_desc
;
9 struct inode_dir_entry
;
12 int fs_putnode(ino_t ino_nr
, unsigned int count
);
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
);
19 int read_directory(struct inode
*dir
);
21 int read_inode(struct inode_dir_entry
*dir_entry
, struct dir_extent
*extent
,
24 struct inode
* inode_cache_get(ino_t ino_nr
);
25 void inode_cache_add(ino_t ino_nr
, struct inode
*i_node
);
27 int check_inodes(void);
30 ssize_t
fs_rdlink(ino_t ino_nr
, struct fsdriver_data
*data
, size_t bytes
);
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);
39 int fs_lookup(ino_t ino_nr
, char *name
, struct fsdriver_node
*node
,
43 ssize_t
fs_read(ino_t ino_nr
, struct fsdriver_data
*data
, size_t bytes
,
45 ssize_t
fs_getdents(ino_t ino_nr
, struct fsdriver_data
*data
, size_t bytes
,
49 int fs_stat(ino_t ino_nr
, struct stat
*statbuf
);
50 int fs_statvfs(struct statvfs
*st
);
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
);
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
);
60 /* susp_rock_ridge.c */
61 void parse_susp_rock_ridge_sl(struct rrii_dir_record
*dir
, char *buffer
,
63 int parse_susp_rock_ridge(struct rrii_dir_record
*dir
, char *buffer
);
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
);
71 time_t date7_to_time_t(const u8_t
*date
);
72 void* alloc_mem(size_t s
);