Add LDFLAGS when building libsparse.a
[project/make_ext4fs.git] / xattr.h
1 #include <sys/types.h>
2
3 #ifndef _SYSTEM_EXTRAS_EXT4_UTILS_XATTR_H
4 #define _SYSTEM_EXTRAS_EXT4_UTILS_XATTR_H 1
5
6 #define EXT4_XATTR_MAGIC 0xEA020000
7 #define EXT4_XATTR_INDEX_SECURITY 6
8
9 struct ext4_xattr_header {
10 __le32 h_magic;
11 __le32 h_refcount;
12 __le32 h_blocks;
13 __le32 h_hash;
14 __le32 h_checksum;
15 __u32 h_reserved[3];
16 };
17
18 struct ext4_xattr_ibody_header {
19 __le32 h_magic;
20 };
21
22 struct ext4_xattr_entry {
23 __u8 e_name_len;
24 __u8 e_name_index;
25 __le16 e_value_offs;
26 __le32 e_value_block;
27 __le32 e_value_size;
28 __le32 e_hash;
29 char e_name[0];
30 };
31
32 #define EXT4_XATTR_PAD_BITS 2
33 #define EXT4_XATTR_PAD (1<<EXT4_XATTR_PAD_BITS)
34 #define EXT4_XATTR_ROUND (EXT4_XATTR_PAD-1)
35 #define EXT4_XATTR_LEN(name_len) \
36 (((name_len) + EXT4_XATTR_ROUND + \
37 sizeof(struct ext4_xattr_entry)) & ~EXT4_XATTR_ROUND)
38 #define EXT4_XATTR_NEXT(entry) \
39 ((struct ext4_xattr_entry *)( \
40 (char *)(entry) + EXT4_XATTR_LEN((entry)->e_name_len)))
41 #define EXT4_XATTR_SIZE(size) \
42 (((size) + EXT4_XATTR_ROUND) & ~EXT4_XATTR_ROUND)
43 #define IS_LAST_ENTRY(entry) (*(uint32_t *)(entry) == 0)
44
45 #endif /* !_SYSTEM_EXTRAS_EXT4_UTILS_XATTR_H */