xref: /haiku/headers/os/kernel/fs_attr.h (revision 99d027cd0238c1d86da86d7c3f4200509ccc61a6)
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 
13 typedef struct attr_info {
14 	uint32	type;
15 	off_t	size;
16 } attr_info;
17 
18 
19 #ifdef  __cplusplus
20 extern "C" {
21 #endif
22 
23 extern ssize_t	fs_read_attr(int fd, const char *attribute, uint32 type,
24 					off_t pos, void *buffer, size_t readBytes);
25 extern ssize_t	fs_write_attr(int fd, const char *attribute, uint32 type,
26 					off_t pos, const void *buffer, size_t readBytes);
27 extern int		fs_remove_attr(int fd, const char *attribute);
28 extern int		fs_stat_attr(int fd, const char *attribute,
29 					struct attr_info *attrInfo);
30 
31 extern int		fs_open_attr(const char *path, const char *attribute,
32 					uint32 type, int openMode);
33 extern int		fs_fopen_attr(int fd, const char *attribute, uint32 type,
34 					int openMode);
35 extern int		fs_close_attr(int fd);
36 
37 extern DIR		*fs_open_attr_dir(const char *path);
38 extern DIR		*fs_lopen_attr_dir(const char *path);
39 extern DIR		*fs_fopen_attr_dir(int fd);
40 extern int		fs_close_attr_dir(DIR *dir);
41 extern struct dirent *fs_read_attr_dir(DIR *dir);
42 extern void		fs_rewind_attr_dir(DIR *dir);
43 
44 #ifdef  __cplusplus
45 }
46 #endif
47 
48 
49 #endif	/* _FS_ATTR_H */
50