libmultipath: avoid frequent messages from filter_property()
[multipath-tools/.git] / libmultipath / blacklist.h
1 #ifndef _BLACKLIST_H
2 #define _BLACKLIST_H
3
4 #include <libudev.h>
5 #include <regex.h>
6
7 #define MATCH_NOTHING        0
8 #define MATCH_WWID_BLIST     1
9 #define MATCH_DEVICE_BLIST   2
10 #define MATCH_DEVNODE_BLIST  3
11 #define MATCH_PROPERTY_BLIST 4
12 #define MATCH_PROPERTY_BLIST_MISSING 5
13 #define MATCH_PROTOCOL_BLIST 6
14 #define MATCH_WWID_BLIST_EXCEPT     -MATCH_WWID_BLIST
15 #define MATCH_DEVICE_BLIST_EXCEPT   -MATCH_DEVICE_BLIST
16 #define MATCH_DEVNODE_BLIST_EXCEPT  -MATCH_DEVNODE_BLIST
17 #define MATCH_PROPERTY_BLIST_EXCEPT -MATCH_PROPERTY_BLIST
18 #define MATCH_PROTOCOL_BLIST_EXCEPT -MATCH_PROTOCOL_BLIST
19
20 struct blentry {
21         char * str;
22         regex_t regex;
23         int origin;
24 };
25
26 struct blentry_device {
27         char * vendor;
28         char * product;
29         regex_t vendor_reg;
30         regex_t product_reg;
31         int origin;
32 };
33
34 int setup_default_blist (struct config *);
35 int alloc_ble_device (vector);
36 int filter_devnode (vector, vector, char *);
37 int filter_wwid (vector, vector, char *, char *);
38 int filter_device (vector, vector, char *, char *, char *);
39 int filter_path (struct config *, struct path *);
40 int filter_property(struct config *, struct udev_device *, int);
41 int filter_protocol(vector, vector, struct path *);
42 int store_ble (vector, char *, int);
43 int set_ble_device (vector, char *, char *, int);
44 void free_blacklist (vector);
45 void free_blacklist_device (vector);
46 void merge_blacklist(vector);
47 void merge_blacklist_device(vector);
48
49 #endif /* _BLACKLIST_H */