1/*
2	Copyright 1999-2001, Be Incorporated.   All Rights Reserved.
3	This file may be used under the terms of the Be Sample Code License.
4*/
5#ifndef FAT_FILE_H
6#define FAT_FILE_H
7
8mode_t		make_mode(nspace *volume, vnode *node);
9status_t	write_vnode_entry(nspace *vol, vnode *node);
10
11status_t	dosfs_get_vnode_name(fs_volume *_vol, fs_vnode *_node,
12				char *buffer, size_t bufferSize);
13status_t	dosfs_release_vnode(fs_volume *_vol, fs_vnode *_node,
14				bool reenter);
15status_t	dosfs_rstat(fs_volume *_vol, fs_vnode *_node, struct stat *st);
16status_t	dosfs_open(fs_volume *_vol, fs_vnode *_node, int omode,
17				void **cookie);
18status_t	dosfs_read(fs_volume *_vol, fs_vnode *_node, void *cookie,
19				off_t pos, void *buf, size_t *len);
20status_t	dosfs_free_cookie(fs_volume *vol, fs_vnode *node, void *cookie);
21status_t	dosfs_close(fs_volume *vol, fs_vnode *node, void *cookie);
22
23status_t	dosfs_remove_vnode(fs_volume *vol, fs_vnode *node, bool reenter);
24status_t	dosfs_create(fs_volume *vol, fs_vnode *dir, const char *name,
25				int omode, int perms, void **cookie, ino_t *vnid);
26status_t	dosfs_mkdir(fs_volume *vol, fs_vnode *dir, const char *name,
27				int perms);
28status_t	dosfs_rename(fs_volume *vol, fs_vnode *olddir, const char *oldname,
29				fs_vnode *newdir, const char *newname);
30status_t	dosfs_unlink(fs_volume *vol, fs_vnode *dir, const char *name);
31status_t	dosfs_rmdir(fs_volume *vol, fs_vnode *dir, const char *name);
32status_t	dosfs_wstat(fs_volume *vol, fs_vnode *node, const struct stat *st,
33				uint32 mask);
34status_t	dosfs_write(fs_volume *vol, fs_vnode *node, void *cookie,
35				off_t pos, const void *buf, size_t *len);
36status_t	dosfs_get_file_map(fs_volume *_vol, fs_vnode *_node, off_t pos,
37				size_t reqLen, struct file_io_vec *vecs, size_t *_count);
38bool		dosfs_can_page(fs_volume *_vol, fs_vnode *_node, void *_cookie);
39status_t	dosfs_read_pages(fs_volume *_vol, fs_vnode *_node, void *_cookie,
40				off_t pos, const iovec *vecs, size_t count, size_t *_numBytes);
41status_t	dosfs_write_pages(fs_volume *_vol, fs_vnode *_node, void *_cookie,
42				off_t pos, const iovec *vecs, size_t count, size_t *_numBytes);
43
44#endif	/* FAT_FILE_H */
45