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