X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Funix_data.h;h=ede0fdcec3cf1cc5c46091083db7eeb06c55b36f;hp=bf0ee46c0496555dc2ce574d2d417086b1c16c37;hb=993d197cac3a09508f2afefe0e2a620d7e43fa1a;hpb=5d3d469e410dc5f4a28814ad231336fc174cba56 diff --git a/include/wimlib/unix_data.h b/include/wimlib/unix_data.h index bf0ee46c..ede0fdce 100644 --- a/include/wimlib/unix_data.h +++ b/include/wimlib/unix_data.h @@ -2,44 +2,32 @@ #define _WIMLIB_UNIX_DATA_H #include "wimlib/types.h" -struct wim_inode; -struct wim_lookup_table; -#define WIMLIB_UNIX_DATA_TAG "$$__wimlib_UNIX_data" -#define WIMLIB_UNIX_DATA_TAG_NBYTES (sizeof(WIMLIB_UNIX_DATA_TAG) - 1) +struct wimlib_unix_data { + u32 uid; + u32 gid; + u32 mode; + u32 rdev; +}; -#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" -#define WIMLIB_UNIX_DATA_TAG_UTF16LE_NBYTES (sizeof(WIMLIB_UNIX_DATA_TAG_UTF16LE) - 1) +struct wim_inode; extern bool inode_has_unix_data(const struct wim_inode *inode); -#ifndef __WIN32__ -/* Format for special alternate data stream entries to store UNIX data for files - * and directories (see: WIMLIB_ADD_FLAG_UNIX_DATA) */ -struct wimlib_unix_data { - u16 version; /* Must be 0 */ - u16 uid; - u16 gid; - u16 mode; -} _packed_attribute; - -#define NO_UNIX_DATA (-1) -#define BAD_UNIX_DATA (-2) -extern int +extern bool inode_get_unix_data(const struct wim_inode *inode, - struct wimlib_unix_data *unix_data, - u16 *stream_idx_ret); - -#define UNIX_DATA_UID 0x1 -#define UNIX_DATA_GID 0x2 -#define UNIX_DATA_MODE 0x4 -#define UNIX_DATA_ALL (UNIX_DATA_UID | UNIX_DATA_GID | UNIX_DATA_MODE) -#define UNIX_DATA_CREATE 0x8 -extern int -inode_set_unix_data(struct wim_inode *inode, u16 uid, u16 gid, u16 mode, - struct wim_lookup_table *lookup_table, int which); - -#endif /* __WIN32__ */ + struct wimlib_unix_data *unix_data); + +#define UNIX_DATA_UID 0x1 +#define UNIX_DATA_GID 0x2 +#define UNIX_DATA_MODE 0x4 +#define UNIX_DATA_RDEV 0x8 + +#define UNIX_DATA_ALL 0xF + +extern bool +inode_set_unix_data(struct wim_inode *inode, + struct wimlib_unix_data *unix_data, int which); #endif /* _WIMLIB_UNIX_DATA_H */