[libmultipath] Remove libsysfs
[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 * getprio;
20         char * features;
21         char * hwhandler;
22         char * selector;
23         char * checker_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 checker * checker;
32         char * bl_product;
33 };
34
35 struct mpentry {
36         char * wwid;
37         char * alias;
38         char * getuid;
39         char * selector;
40
41         int pgpolicy;
42         int pgfailback;
43         int rr_weight;
44         int no_path_retry;
45         int minio;
46         int pg_timeout;
47 };
48
49 struct config {
50         int verbosity;
51         int dry_run;
52         int list;
53         int pgpolicy_flag;
54         int with_sysfs;
55         int pgpolicy;
56         struct checker * checker;
57         enum devtypes dev_type;
58         int minio;
59         int checkint;
60         int max_checkint;
61         int pgfailback;
62         int remove;
63         int rr_weight;
64         int no_path_retry;
65         int user_friendly_names;
66         int pg_timeout;
67
68         char * dev;
69         char * sysfs_dir;
70         char * udev_dir;
71         char * selector;
72         char * getuid;
73         char * getprio;
74         char * features;
75         char * hwhandler;
76         char * bindings_file;
77
78         vector keywords;
79         vector mptable;
80         vector hwtable;
81
82         vector blist_devnode;
83         vector blist_wwid;
84         vector blist_device;
85         vector elist_devnode;
86         vector elist_wwid;
87         vector elist_device;
88 };
89
90 struct config * conf;
91
92 struct hwentry * find_hwe (vector hwtable, char * vendor, char * product, char *revision);
93 struct mpentry * find_mpe (char * wwid);
94 char * get_mpe_wwid (char * alias);
95
96 struct mpentry * alloc_mpe (void);
97
98 void free_hwe (struct hwentry * hwe);
99 void free_hwtable (vector hwtable);
100 void free_mpe (struct mpentry * mpe);
101 void free_mptable (vector mptable);
102
103 int store_hwe (vector hwtable, struct hwentry *);
104
105 int load_config (char * file);
106 struct config * alloc_config (void);
107 void free_config (struct config * conf);
108
109 #endif