1/*
2 * Copyright 2002-2011, Haiku Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _FS_ATTR_H
6#define	_FS_ATTR_H
7
8
9#include <OS.h>
10#include <dirent.h>
11
12
13typedef struct attr_info {
14	uint32	type;
15	off_t	size;
16} attr_info;
17
18
19#ifdef  __cplusplus
20extern "C" {
21#endif
22
23extern ssize_t	fs_read_attr(int fd, const char *attribute, uint32 type,
24					off_t pos, void *buffer, size_t readBytes);
25extern ssize_t	fs_write_attr(int fd, const char *attribute, uint32 type,
26					off_t pos, const void *buffer, size_t readBytes);
27extern int		fs_remove_attr(int fd, const char *attribute);
28extern int		fs_stat_attr(int fd, const char *attribute,
29					struct attr_info *attrInfo);
30
31extern int		fs_open_attr(const char *path, const char *attribute,
32					uint32 type, int openMode);
33extern int		fs_fopen_attr(int fd, const char *attribute, uint32 type,
34					int openMode);
35extern int		fs_close_attr(int fd);
36
37extern DIR		*fs_open_attr_dir(const char *path);
38extern DIR		*fs_lopen_attr_dir(const char *path);
39extern DIR		*fs_fopen_attr_dir(int fd);
40extern int		fs_close_attr_dir(DIR *dir);
41extern struct dirent *fs_read_attr_dir(DIR *dir);
42extern void		fs_rewind_attr_dir(DIR *dir);
43
44#ifdef  __cplusplus
45}
46#endif
47
48
49#endif	/* _FS_ATTR_H */
50