1 #ifndef _WIMLIB_UNIX_DATA_H
2 #define _WIMLIB_UNIX_DATA_H
4 #include "wimlib/types.h"
6 struct wim_lookup_table;
8 #define WIMLIB_UNIX_DATA_TAG "$$__wimlib_UNIX_data"
9 #define WIMLIB_UNIX_DATA_TAG_NBYTES (sizeof(WIMLIB_UNIX_DATA_TAG) - 1)
11 #define WIMLIB_UNIX_DATA_TAG_UTF16LE "$\0$\0_\0_\0w\0i\0m\0l\0i\0b\0_\0U\0N\0I\0X\0_\0d\0a\0t\0a\0"
12 #define WIMLIB_UNIX_DATA_TAG_UTF16LE_NBYTES (sizeof(WIMLIB_UNIX_DATA_TAG_UTF16LE) - 1)
15 inode_has_unix_data(const struct wim_inode *inode);
18 /* Format for special alternate data stream entries to store UNIX data for files
19 * and directories (see: WIMLIB_ADD_FLAG_UNIX_DATA) */
20 struct wimlib_unix_data {
21 u16 version; /* Must be 0 */
27 #define NO_UNIX_DATA (-1)
28 #define BAD_UNIX_DATA (-2)
30 inode_get_unix_data(const struct wim_inode *inode,
31 struct wimlib_unix_data *unix_data,
34 #define UNIX_DATA_UID 0x1
35 #define UNIX_DATA_GID 0x2
36 #define UNIX_DATA_MODE 0x4
37 #define UNIX_DATA_ALL (UNIX_DATA_UID | UNIX_DATA_GID | UNIX_DATA_MODE)
38 #define UNIX_DATA_CREATE 0x8
40 inode_set_unix_data(struct wim_inode *inode, u16 uid, u16 gid, u16 mode,
41 struct wim_lookup_table *lookup_table, int which);
43 #endif /* __WIN32__ */
45 #endif /* _WIMLIB_UNIX_DATA_H */