Add basic infrastructure for storing xattr items
[wimlib] / include / wimlib / tagged_items.h
1 #ifndef _WIMLIB_TAGGED_ITEMS_H
2 #define _WIMLIB_TAGGED_ITEMS_H
3
4 #include "wimlib/types.h"
5
6 struct wim_inode;
7
8 /* Windows-style object ID */
9 #define TAG_OBJECT_ID                   0x00000001
10
11 /* [wimlib extension] Standard UNIX metadata: uid, gid, mode, and rdev */
12 #define TAG_WIMLIB_UNIX_DATA            0x337DD873
13
14 /* [wimlib extension] Linux-style xattrs */
15 #define TAG_WIMLIB_LINUX_XATTRS         0x337DD874
16
17 extern void *
18 inode_get_tagged_item(const struct wim_inode *inode, u32 tag, u32 min_len,
19                       u32 *actual_len_ret);
20
21 extern bool
22 inode_set_tagged_data(struct wim_inode *inode, u32 tag,
23                       const void *data, u32 len);
24
25 #endif /* _WIMLIB_TAGGED_ITEMS_H */