#ifndef ANDROID_PERMS_H # define ANDROID_PERMS_H # include typedef void (*fs_config_f)(const char *path, int dir, const char *target_out_path, unsigned *uid, unsigned *gid, unsigned *mode, uint64_t *capabilities); /* * Represents a range of UID/GID mapping. * This maps the id in [|parent_id|, |parent_id| + |length|) into * [|child_id|, |child_id| + |length|) */ struct ugid_map_entry { unsigned int child_id; unsigned int parent_id; unsigned int length; }; struct ugid_map { /* The number of elements in |entries|. */ size_t size; /* An array of entries. If |size| is 0, this is a null pointer. */ struct ugid_map_entry* entries; }; # ifdef _WIN32 struct selabel_handle; static inline errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, char *target_out, char *mountpoint, void *seopts, unsigned int nopt, char *fs_config_file, time_t fixed_time, const struct ugid_map* uid_map, const struct ugdi_map* gid_map) { return 0; } # else # include # include # if defined(__ANDROID__) # include # endif # include # include # include errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, char *target_out, char *mountpoint, struct selinux_opt *seopts, unsigned int nopt, char *fs_config_file, time_t fixed_time, const struct ugid_map* uid_map, const struct ugid_map* gid_map); # endif #endif /* !ANDROID_PERMS_H */