ext4 prefix/name string operations added.
[lwext4.git] / lwext4 / ext4_xattr.h
1 #ifndef EXT4_XATTR_H_
2 #define EXT4_XATTR_H_
3
4 #include "ext4_config.h"
5 #include "ext4_types.h"
6
7 int ext4_fs_get_xattr_ref(struct ext4_fs *fs,
8                           struct ext4_inode_ref *inode_ref,
9                           struct ext4_xattr_ref *ref);
10
11 void ext4_fs_put_xattr_ref(struct ext4_xattr_ref *ref);
12
13 int ext4_fs_set_xattr(struct ext4_xattr_ref *ref,
14                       uint8_t name_index,
15                       char   *name,
16                       size_t  name_len,
17                       void   *data,
18                       size_t  data_size,
19                       bool    replace);
20
21 int ext4_fs_remove_xattr(struct ext4_xattr_ref *ref,
22                          uint8_t name_index,
23                          char   *name,
24                          size_t  name_len);
25
26 int ext4_fs_get_xattr(struct ext4_xattr_ref *ref,
27                           uint8_t name_index,
28                           char    *name,
29                           size_t   name_len,
30                           void    *buf,
31                           size_t   buf_size,
32                           size_t  *size_got);
33
34 void
35 ext4_fs_xattr_iterate(struct ext4_xattr_ref *ref,
36                       int (iter)(struct ext4_xattr_ref *ref,
37                                  struct ext4_xattr_item *item));
38
39 void ext4_fs_xattr_iterate_reset(struct ext4_xattr_ref *ref);
40
41 char *ext4_extract_xattr_name(char *full_name,
42                               size_t full_name_len,
43                               uint8_t *name_index,
44                               size_t *name_len);
45
46 #endif