1/*
2 * Copyright 2002-2009, 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
23
24extern ssize_t	fs_read_attr(int fd, const char *attribute, uint32 type,
25					off_t pos, void *buffer, size_t readBytes);
26extern ssize_t	fs_write_attr(int fd, const char *attribute, uint32 type,
27					off_t pos, const void *buffer, size_t readBytes);
28extern int		fs_remove_attr(int fd, const char *attribute);
29extern int		fs_stat_attr(int fd, const char *attribute,
30					struct attr_info *attrInfo);
31
32extern int		fs_open_attr(const char *path, const char *attribute,
33					uint32 type, int openMode);
34extern int		fs_fopen_attr(int fd, const char *attribute, uint32 type,
35					int openMode);
36extern int		fs_close_attr(int fd);
37
38extern DIR		*fs_open_attr_dir(const char *path);
39extern DIR		*fs_lopen_attr_dir(const char *path);
40extern DIR		*fs_fopen_attr_dir(int fd);
41extern int		fs_close_attr_dir(DIR *dir);
42extern struct dirent *fs_read_attr_dir(DIR *dir);
43extern void		fs_rewind_attr_dir(DIR *dir);
44
45#ifdef  __cplusplus
46}
47#endif
48
49#endif	/* _FS_ATTR_H */
50