1/* File System attribute queries
2**
3** Distributed under the terms of the MIT License.
4*/
5#ifndef _FSSH_FS_QUERY_H
6#define _FSSH_FS_QUERY_H
7
8
9#include "fssh_os.h"
10#include "fssh_dirent.h"
11
12
13/* Flags for fs_open_[live_]query() */
14
15#define FSSH_B_LIVE_QUERY			0x00000001
16	// Note, if you specify B_LIVE_QUERY, you have to use fs_open_live_query();
17	// it will be ignored in fs_open_query().
18#define FSSH_B_QUERY_NON_INDEXED	0x00000002
19	// Only enable this feature for non time-critical things, it might
20	// take a long time to proceed.
21	// Also, not every file system might support this feature.
22
23
24#ifdef  __cplusplus
25extern "C" {
26#endif
27
28extern fssh_DIR*			fssh_fs_open_query(fssh_dev_t device,
29									const char *query, uint32_t flags);
30extern fssh_DIR*			fssh_fs_open_live_query(fssh_dev_t device,
31									const char *query, uint32_t flags,
32									fssh_port_id port, int32_t token);
33extern int					fssh_fs_close_query(fssh_DIR *d);
34extern struct fssh_dirent*	fssh_fs_read_query(fssh_DIR *d);
35
36extern fssh_status_t		fssh_get_path_for_dirent(struct fssh_dirent *dent,
37								char *buf, fssh_size_t len);
38
39#ifdef  __cplusplus
40}
41#endif
42
43#endif	/* _FSSH_FS_QUERY_H */
44