xref: /minix/minix/fs/isofs/proto.h (revision 0a6a1f1d)
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);