1*2d543d20SAndroid Build Coastguard Worker #ifndef RESTORE_H 2*2d543d20SAndroid Build Coastguard Worker #define RESTORE_H 3*2d543d20SAndroid Build Coastguard Worker #ifndef _GNU_SOURCE 4*2d543d20SAndroid Build Coastguard Worker #define _GNU_SOURCE 5*2d543d20SAndroid Build Coastguard Worker #endif 6*2d543d20SAndroid Build Coastguard Worker #include <fts.h> 7*2d543d20SAndroid Build Coastguard Worker #include <errno.h> 8*2d543d20SAndroid Build Coastguard Worker #include <string.h> 9*2d543d20SAndroid Build Coastguard Worker #include <stdio.h> 10*2d543d20SAndroid Build Coastguard Worker #include <syslog.h> 11*2d543d20SAndroid Build Coastguard Worker #include <sys/stat.h> 12*2d543d20SAndroid Build Coastguard Worker #include <sepol/sepol.h> 13*2d543d20SAndroid Build Coastguard Worker #include <selinux/selinux.h> 14*2d543d20SAndroid Build Coastguard Worker #include <selinux/label.h> 15*2d543d20SAndroid Build Coastguard Worker #include <selinux/restorecon.h> 16*2d543d20SAndroid Build Coastguard Worker #include <stdlib.h> 17*2d543d20SAndroid Build Coastguard Worker #include <limits.h> 18*2d543d20SAndroid Build Coastguard Worker #include <stdint.h> 19*2d543d20SAndroid Build Coastguard Worker 20*2d543d20SAndroid Build Coastguard Worker /* 21*2d543d20SAndroid Build Coastguard Worker * STAR_COUNT is also defined in libselinux/src/selinux_restorecon.c where it 22*2d543d20SAndroid Build Coastguard Worker * is used to output "*" for each number of files processed. Defined here for 23*2d543d20SAndroid Build Coastguard Worker * inclusion in man pages. 24*2d543d20SAndroid Build Coastguard Worker */ 25*2d543d20SAndroid Build Coastguard Worker #define STAR_COUNT 1000 26*2d543d20SAndroid Build Coastguard Worker 27*2d543d20SAndroid Build Coastguard Worker /* Things that need to be init'd */ 28*2d543d20SAndroid Build Coastguard Worker struct restore_opts { 29*2d543d20SAndroid Build Coastguard Worker unsigned int nochange; 30*2d543d20SAndroid Build Coastguard Worker unsigned int verbose; 31*2d543d20SAndroid Build Coastguard Worker unsigned int progress; 32*2d543d20SAndroid Build Coastguard Worker unsigned int set_specctx; 33*2d543d20SAndroid Build Coastguard Worker unsigned int add_assoc; 34*2d543d20SAndroid Build Coastguard Worker unsigned int ignore_digest; 35*2d543d20SAndroid Build Coastguard Worker unsigned int recurse; 36*2d543d20SAndroid Build Coastguard Worker unsigned int userealpath; 37*2d543d20SAndroid Build Coastguard Worker unsigned int xdev; 38*2d543d20SAndroid Build Coastguard Worker unsigned int abort_on_error; 39*2d543d20SAndroid Build Coastguard Worker unsigned int syslog_changes; 40*2d543d20SAndroid Build Coastguard Worker unsigned int log_matches; 41*2d543d20SAndroid Build Coastguard Worker unsigned int ignore_noent; 42*2d543d20SAndroid Build Coastguard Worker unsigned int ignore_mounts; 43*2d543d20SAndroid Build Coastguard Worker /* restorecon_flags holds | of above for restore_init() */ 44*2d543d20SAndroid Build Coastguard Worker unsigned int restorecon_flags; 45*2d543d20SAndroid Build Coastguard Worker char *rootpath; 46*2d543d20SAndroid Build Coastguard Worker char *progname; 47*2d543d20SAndroid Build Coastguard Worker struct selabel_handle *hnd; 48*2d543d20SAndroid Build Coastguard Worker const char *selabel_opt_validate; 49*2d543d20SAndroid Build Coastguard Worker const char *selabel_opt_path; 50*2d543d20SAndroid Build Coastguard Worker const char *selabel_opt_digest; 51*2d543d20SAndroid Build Coastguard Worker int debug; 52*2d543d20SAndroid Build Coastguard Worker FILE *outfile; 53*2d543d20SAndroid Build Coastguard Worker }; 54*2d543d20SAndroid Build Coastguard Worker 55*2d543d20SAndroid Build Coastguard Worker void restore_init(struct restore_opts *opts); 56*2d543d20SAndroid Build Coastguard Worker void restore_finish(void); 57*2d543d20SAndroid Build Coastguard Worker void add_exclude(const char *directory); 58*2d543d20SAndroid Build Coastguard Worker int process_glob(char *name, struct restore_opts *opts); 59*2d543d20SAndroid Build Coastguard Worker extern char **exclude_list; 60*2d543d20SAndroid Build Coastguard Worker 61*2d543d20SAndroid Build Coastguard Worker #endif 62