xref: /aosp_15_r20/external/selinux/restorecond/restore.h (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
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