1#ifndef RESTORE_H 2#define RESTORE_H 3#ifndef _GNU_SOURCE 4#define _GNU_SOURCE 5#endif 6#include <fts.h> 7#include <errno.h> 8#include <string.h> 9#include <stdio.h> 10#include <syslog.h> 11#include <sys/stat.h> 12#include <sepol/sepol.h> 13#include <selinux/selinux.h> 14#include <selinux/label.h> 15#include <selinux/restorecon.h> 16#include <stdlib.h> 17#include <limits.h> 18#include <stdint.h> 19 20/* Things that need to be init'd */ 21struct restore_opts { 22 unsigned int nochange; 23 unsigned int verbose; 24 unsigned int progress; 25 unsigned int mass_relabel; 26 unsigned int set_specctx; 27 unsigned int add_assoc; 28 unsigned int ignore_digest; 29 unsigned int recurse; 30 unsigned int userealpath; 31 unsigned int xdev; 32 unsigned int abort_on_error; 33 unsigned int syslog_changes; 34 unsigned int log_matches; 35 unsigned int ignore_noent; 36 unsigned int ignore_mounts; 37 /* restorecon_flags holds | of above for restore_init() */ 38 unsigned int restorecon_flags; 39 char *rootpath; 40 char *progname; 41 struct selabel_handle *hnd; 42 const char *selabel_opt_validate; 43 const char *selabel_opt_path; 44 const char *selabel_opt_digest; 45 int debug; 46}; 47 48void restore_init(struct restore_opts *opts); 49void restore_finish(void); 50void add_exclude(const char *directory); 51int process_glob(char *name, struct restore_opts *opts); 52extern char **exclude_list; 53 54#endif 55