147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#ifndef _SELINUX_ANDROID_H_
247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#define _SELINUX_ANDROID_H_
347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#include <stdbool.h>
547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#include <sys/types.h>
647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#include <unistd.h>
747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#include <selinux/label.h>
947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
1047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#ifdef __cplusplus
1147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern "C" {
1247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#endif
1347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
1447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern struct selabel_handle* selinux_android_file_context_handle(void);
1547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
1647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern void selinux_android_set_sehandle(const struct selabel_handle *hndl);
1747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
1847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern int selinux_android_load_policy(void);
1947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
2047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern int selinux_android_reload_policy(void);
2147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
2247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern int selinux_android_setcontext(uid_t uid,
2347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner				      int isSystemServer,
2447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner				      const char *seinfo,
2547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner				      const char *name);
2647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
2747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern int selinux_android_setfilecon(const char *pkgdir,
2847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner				       const char *pkgname,
2947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner				       const char *seinfo,
3047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner				       uid_t uid);
3147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
3247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#define SELINUX_ANDROID_RESTORECON_NOCHANGE 1
3347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#define SELINUX_ANDROID_RESTORECON_VERBOSE  2
3447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#define SELINUX_ANDROID_RESTORECON_RECURSE  4
3547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#define SELINUX_ANDROID_RESTORECON_FORCE    8
3647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#define SELINUX_ANDROID_RESTORECON_DATADATA 16
3747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern int selinux_android_restorecon(const char *file, unsigned int flags);
3847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
3947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern int selinux_android_restorecon_pkgdir(const char *pkgdir,
4047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner                                             const char *seinfo,
4147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner                                             uid_t uid,
4247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner                                             unsigned int flags);
4347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
4447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern int selinux_android_seapp_context_reload(void);
4547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
4647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerextern bool selinux_android_use_data_policy(void);
4747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner
4847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#ifdef __cplusplus
4947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner}
5047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#endif
5147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner#endif
52