X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;ds=inline;f=src%2Fsecurity.h;h=e20ad168451fd698f4ce2609c1db26959a861b68;hb=f701cf0f5a189832629b13c97961f238cb95452e;hp=4d701d0c0106c6617c37fba2da1b2d48d14b67c9;hpb=8c26ca707e56d9848e52076ad3f7c26ea7fa338d;p=wimlib diff --git a/src/security.h b/src/security.h index 4d701d0c..e20ad168 100644 --- a/src/security.h +++ b/src/security.h @@ -1,10 +1,3 @@ -/* - * - * Macros and structures for security descriptors - * - * From Microsoft's public documentation and the WINE project - */ - #include "util.h" #include "rbtree.h" #include "sha1.h" @@ -12,18 +5,25 @@ #ifndef _WIMLIB_SECURITY_H #define _WIMLIB_SECURITY_H -#if defined(WITH_NTFS_3G) || defined(__WIN32__) /* Red-black tree that maps SHA1 message digests of security descriptors to * security IDs, which are themselves indices into the table of security * descriptors in the 'struct wim_security_data'. */ struct sd_set { struct wim_security_data *sd; struct rb_root rb_root; + int32_t orig_num_entries; }; -void destroy_sd_set(struct sd_set *sd_set); -int lookup_sd(struct sd_set *set, const u8 hash[SHA1_HASH_SIZE]); -int sd_set_add_sd(struct sd_set *sd_set, const char descriptor[], - size_t size); -#endif +extern void +destroy_sd_set(struct sd_set *sd_set, bool rollback); + +extern int +lookup_sd(struct sd_set *set, const u8 hash[SHA1_HASH_SIZE]); + +extern int +sd_set_add_sd(struct sd_set *sd_set, const char descriptor[], + size_t size); + +extern int +init_sd_set(struct sd_set *sd_set, struct wim_security_data *sd); #endif /* _WIMLIB_SECURITY_H */