summaryrefslogtreecommitdiff
path: root/minix/lib/libvtreefs/proto.h
blob: c6d2d8881b228b7d492384aeac2020065f8e8904 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#ifndef _VTREEFS_PROTO_H
#define _VTREEFS_PROTO_H

/* extra.c */
int init_extra(unsigned int inodes, size_t inode_extra);
void clear_inode_extra(struct inode *node);

/* file.c */
int init_buf(size_t size);
void cleanup_buf(void);
ssize_t fs_read(ino_t ino_nr, struct fsdriver_data *data, size_t bytes,
	off_t pos, int call);
ssize_t fs_write(ino_t ino_nr, struct fsdriver_data *data, size_t bytes,
	off_t pos, int call);
int fs_trunc(ino_t ino_nr, off_t start_pos, off_t end_pos);
ssize_t fs_getdents(ino_t ino_nr, struct fsdriver_data *data, size_t bytes,
	off_t *pos);

/* inode.c */
int init_inodes(unsigned int inodes, struct inode_stat *stat,
	index_t nr_indexed_entries);
void cleanup_inodes(void);
struct inode *find_inode(ino_t num);
struct inode *get_inode(ino_t num);
void put_inode(struct inode *node);
void ref_inode(struct inode *node);
int get_inode_number(const struct inode *node);
int is_inode_deleted(const struct inode *node);
int fs_putnode(ino_t ino_nr, unsigned int count);

/* link.c */
ssize_t fs_rdlink(ino_t ino_nr, struct fsdriver_data *data, size_t bytes);
int fs_slink(ino_t dir_nr, char *name, uid_t uid, gid_t gid,
	struct fsdriver_data *data, size_t bytes);
int fs_mknod(ino_t dir_nr, char *name, mode_t mode, uid_t uid, gid_t gid,
	dev_t rdev);
int fs_unlink(ino_t dir_nr, char *name, int call);

/* mount.c */
int fs_mount(dev_t dev, unsigned int flags, struct fsdriver_node *root_node,
	unsigned int *res_flags);
void fs_unmount(void);

/* main.c */
void fs_other(const message *m_ptr, int ipc_status);

/* path.c */
int fs_lookup(ino_t dir_nr, char *name, struct fsdriver_node *node,
	int *is_mountpt);

/* sdbm.c */
long sdbm_hash(const char *str, int len);

/* stadir.c */
int fs_stat(ino_t ino_nr, struct stat *buf);
int fs_chmod(ino_t ino_nr, mode_t *mode);
int fs_chown(ino_t ino_nr, uid_t uid, gid_t gid, mode_t *mode);
int fs_statvfs(struct statvfs *buf);

#endif /* _VTREEFS_PROTO_H */