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 _DOSFS_DIR_H_
6#define _DOSFS_DIR_H_
7
8
9#include "dosfs.h"
10
11
12bool is_filename_legal(const char *name);
13status_t	check_dir_empty(nspace *vol, vnode *dir);
14status_t 	findfile_case(nspace *vol, vnode *dir, const char *file,
15				ino_t *vnid, vnode **node);
16status_t 	findfile_nocase(nspace *vol, vnode *dir, const char *file,
17				ino_t *vnid, vnode **node);
18status_t 	findfile_nocase_duplicates(nspace *vol, vnode *dir, const char *file,
19				ino_t *vnid, vnode **node, bool *dups_exist);
20status_t 	findfile_case_duplicates(nspace *vol, vnode *dir, const char *file,
21				ino_t *vnid, vnode **node, bool *dups_exist);
22status_t	erase_dir_entry(nspace *vol, vnode *node);
23status_t	compact_directory(nspace *vol, vnode *dir);
24status_t	create_volume_label(nspace *vol, const char name[11], uint32 *index);
25status_t	create_dir_entry(nspace *vol, vnode *dir, vnode *node,
26				const char *name, uint32 *ns, uint32 *ne);
27
28status_t	dosfs_read_vnode(fs_volume *_vol, ino_t vnid, fs_vnode *_node,
29				int *_type, uint32 *_flags, bool reenter);
30status_t	dosfs_walk(fs_volume *_vol, fs_vnode *_dir, const char *file,
31				ino_t *_vnid);
32status_t	dosfs_access(fs_volume *_vol, fs_vnode *_node, int mode);
33status_t	dosfs_opendir(fs_volume *_vol, fs_vnode *_node, void **cookie);
34status_t	dosfs_readdir(fs_volume *_vol, fs_vnode *_node, void *cookie,
35				struct dirent *buf, size_t bufsize, uint32 *num);
36status_t	dosfs_rewinddir(fs_volume *_vol, fs_vnode *_node, void *cookie);
37status_t	dosfs_closedir(fs_volume *_vol, fs_vnode *_node, void *cookie);
38status_t	dosfs_free_dircookie(fs_volume *_vol, fs_vnode *_node,
39				void *cookie);
40
41#endif
42