xref: /aosp_15_r20/external/erofs-utils/include/erofs/exclude.h (revision 33b1fccf6a0fada2c2875d400ed01119b7676ee5)
1*33b1fccfSAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0+ OR Apache-2.0 */
2*33b1fccfSAndroid Build Coastguard Worker /*
3*33b1fccfSAndroid Build Coastguard Worker  * Created by Li Guifu <[email protected]>
4*33b1fccfSAndroid Build Coastguard Worker  */
5*33b1fccfSAndroid Build Coastguard Worker #ifndef __EROFS_EXCLUDE_H
6*33b1fccfSAndroid Build Coastguard Worker #define __EROFS_EXCLUDE_H
7*33b1fccfSAndroid Build Coastguard Worker 
8*33b1fccfSAndroid Build Coastguard Worker #ifdef __cplusplus
9*33b1fccfSAndroid Build Coastguard Worker extern "C"
10*33b1fccfSAndroid Build Coastguard Worker {
11*33b1fccfSAndroid Build Coastguard Worker #endif
12*33b1fccfSAndroid Build Coastguard Worker 
13*33b1fccfSAndroid Build Coastguard Worker #include <sys/types.h>
14*33b1fccfSAndroid Build Coastguard Worker #include <regex.h>
15*33b1fccfSAndroid Build Coastguard Worker 
16*33b1fccfSAndroid Build Coastguard Worker struct erofs_exclude_rule {
17*33b1fccfSAndroid Build Coastguard Worker 	struct list_head list;
18*33b1fccfSAndroid Build Coastguard Worker 
19*33b1fccfSAndroid Build Coastguard Worker 	char *pattern;
20*33b1fccfSAndroid Build Coastguard Worker 	regex_t reg;
21*33b1fccfSAndroid Build Coastguard Worker };
22*33b1fccfSAndroid Build Coastguard Worker 
23*33b1fccfSAndroid Build Coastguard Worker void erofs_exclude_set_root(const char *rootdir);
24*33b1fccfSAndroid Build Coastguard Worker void erofs_cleanup_exclude_rules(void);
25*33b1fccfSAndroid Build Coastguard Worker 
26*33b1fccfSAndroid Build Coastguard Worker int erofs_parse_exclude_path(const char *args, bool is_regex);
27*33b1fccfSAndroid Build Coastguard Worker struct erofs_exclude_rule *erofs_is_exclude_path(const char *dir,
28*33b1fccfSAndroid Build Coastguard Worker 						 const char *name);
29*33b1fccfSAndroid Build Coastguard Worker 
30*33b1fccfSAndroid Build Coastguard Worker #ifdef __cplusplus
31*33b1fccfSAndroid Build Coastguard Worker }
32*33b1fccfSAndroid Build Coastguard Worker #endif
33*33b1fccfSAndroid Build Coastguard Worker 
34*33b1fccfSAndroid Build Coastguard Worker #endif
35