1d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#ifndef ANDROID_PERMS_H
2d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# define ANDROID_PERMS_H
3d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes
4d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# include "config.h"
5d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# include <ext2fs/ext2fs.h>
6d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes
7d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughestypedef void (*fs_config_f)(const char *path, int dir,
8d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes			    const char *target_out_path,
9d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes			    unsigned *uid, unsigned *gid,
10d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes			    unsigned *mode, uint64_t *capabilities);
11d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes
12d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# ifdef _WIN32
13d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct selabel_handle;
14d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstatic inline errcode_t android_configure_fs(ext2_filsys fs,
15d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes					     char *src_dir,
16d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes					     char *target_out,
17d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes					     char *mountpoint,
18d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes					     void *seopts,
19d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes					     unsigned int nopt,
20d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes					     char *fs_config_file,
21d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes					     time_t fixed_time)
22d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes{
23d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes	return 0;
24d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes}
25d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# else
26d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#  include <selinux/selinux.h>
27d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#  include <selinux/label.h>
28d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#  if defined(__ANDROID__)
29d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#   include <selinux/android.h>
30d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#  endif
31d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#  include <private/android_filesystem_config.h>
32d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#  include <private/canned_fs_config.h>
33d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes
34d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hugheserrcode_t android_configure_fs(ext2_filsys fs, char *src_dir,
35d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes			       char *target_out,
36d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes			       char *mountpoint,
37d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes			       struct selinux_opt *seopts,
38d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes			       unsigned int nopt,
39d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes			       char *fs_config_file, time_t fixed_time);
40d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes
41d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# endif
42d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#endif /* !ANDROID_PERMS_H */
43d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes