1/* ntfsdir.h - directory functions
2 *
3 * Copyright (c) 2006 Troeglazov Gerasim (3dEyes**)
4 *
5 * This program/include file is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as published
7 * by the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program/include file is distributed in the hope that it will be
11 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program (in the main directory of the Linux-NTFS
17 * distribution in the file COPYING); if not, write to the Free Software
18 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20#ifndef NTFSDIR_H
21#define NTFSDIR_H
22
23
24#include "ntfs.h"
25
26
27typedef struct cache_entry {
28	struct dirent *ent;
29	struct cache_entry *next;
30} cache_entry;
31
32
33typedef struct dircookie {
34	u64					pos;
35	dev_t				dev_id;
36	BOOL 				show_sys_files;
37	cache_entry 		*cache_root;
38	cache_entry 		*entry;
39} dircookie;
40
41
42status_t	fs_closedir(fs_volume *volume, fs_vnode *vnode, void *cookie);
43status_t	fs_free_dircookie(fs_volume *volume, fs_vnode *vnode, void *cookie);
44status_t	fs_opendir(fs_volume *volume, fs_vnode *vnode, void** cookie);
45status_t  	fs_readdir(fs_volume *volume, fs_vnode *vnode, void *_cookie,
46				struct dirent *buf, size_t bufsize, uint32 *num );
47status_t	fs_rewinddir(fs_volume *volume, fs_vnode *vnode, void *cookie);
48
49void		fs_ntfs_update_times(fs_volume *vol, ntfs_inode *ni,
50				ntfs_time_update_flags mask);
51
52#endif // NTFSDIR_H
53
54