Merge branch 'master' of git://git.kernel.org/pub/scm/linux/storage/multipath-tools/
[multipath-tools/.git] / libmultipath / config.h
1 #ifndef _CONFIG_H
2 #define _CONFIG_H
3
4 #define ORIGIN_DEFAULT 0
5 #define ORIGIN_CONFIG  1
6
7 enum devtypes {
8         DEV_NONE,
9         DEV_DEVT,
10         DEV_DEVNODE,
11         DEV_DEVMAP
12 };
13
14 struct hwentry {
15         char * vendor;
16         char * product;
17         char * revision;
18         char * getuid;
19         char * features;
20         char * hwhandler;
21         char * selector;
22         char * checker_name;
23         char * prio_name;
24
25         int pgpolicy;
26         int pgfailback;
27         int rr_weight;
28         int no_path_retry;
29         int minio;
30         int pg_timeout;
31         struct prio * prio;
32         struct checker * checker;
33         char * bl_product;
34 };
35
36 struct mpentry {
37         char * wwid;
38         char * alias;
39         char * getuid;
40         char * selector;
41
42         int pgpolicy;
43         int pgfailback;
44         int rr_weight;
45         int no_path_retry;
46         int minio;
47         int pg_timeout;
48 };
49
50 struct config {
51         int verbosity;
52         int dry_run;
53         int list;
54         int pgpolicy_flag;
55         int with_sysfs;
56         int pgpolicy;
57         struct prio * prio;
58         struct checker * checker;
59         enum devtypes dev_type;
60         int minio;
61         int checkint;
62         int max_checkint;
63         int pgfailback;
64         int remove;
65         int rr_weight;
66         int no_path_retry;
67         int user_friendly_names;
68         int pg_timeout;
69         int max_fds;
70
71         char * dev;
72         char * sysfs_dir;
73         char * udev_dir;
74         char * selector;
75         char * getuid;
76         char * features;
77         char * hwhandler;
78         char * bindings_file;
79
80         vector keywords;
81         vector mptable;
82         vector hwtable;
83
84         vector blist_devnode;
85         vector blist_wwid;
86         vector blist_device;
87         vector elist_devnode;
88         vector elist_wwid;
89         vector elist_device;
90 };
91
92 struct config * conf;
93
94 struct hwentry * find_hwe (vector hwtable, char * vendor, char * product, char *revision);
95 struct mpentry * find_mpe (char * wwid);
96 char * get_mpe_wwid (char * alias);
97
98 struct mpentry * alloc_mpe (void);
99
100 void free_hwe (struct hwentry * hwe);
101 void free_hwtable (vector hwtable);
102 void free_mpe (struct mpentry * mpe);
103 void free_mptable (vector mptable);
104
105 int store_hwe (vector hwtable, struct hwentry *);
106
107 int load_config (char * file);
108 struct config * alloc_config (void);
109 void free_config (struct config * conf);
110
111 #endif