multipath: add fast_io_fail and dev_loss_tmo config parameters
[multipath-tools/.git] / libmultipath / config.h
1 #ifndef _CONFIG_H
2 #define _CONFIG_H
3
4 #include <sys/types.h>
5
6 #define ORIGIN_DEFAULT 0
7 #define ORIGIN_CONFIG  1
8
9 enum devtypes {
10         DEV_NONE,
11         DEV_DEVT,
12         DEV_DEVNODE,
13         DEV_DEVMAP
14 };
15
16 struct hwentry {
17         char * vendor;
18         char * product;
19         char * revision;
20         char * getuid;
21         char * features;
22         char * hwhandler;
23         char * selector;
24         char * checker_name;
25         char * prio_name;
26
27         int pgpolicy;
28         int pgfailback;
29         int rr_weight;
30         int no_path_retry;
31         int minio;
32         int pg_timeout;
33         int flush_on_last_del;
34         int fast_io_fail;
35         unsigned int dev_loss;
36         char * bl_product;
37 };
38
39 struct mpentry {
40         char * wwid;
41         char * alias;
42         char * getuid;
43         char * selector;
44
45         int pgpolicy;
46         int pgfailback;
47         int rr_weight;
48         int no_path_retry;
49         int minio;
50         int pg_timeout;
51         int flush_on_last_del;
52         int attribute_flags;
53         uid_t uid;
54         gid_t gid;
55         mode_t mode;
56 };
57
58 struct config {
59         int verbosity;
60         int dry_run;
61         int list;
62         int pgpolicy_flag;
63         int with_sysfs;
64         int pgpolicy;
65         enum devtypes dev_type;
66         int minio;
67         int checkint;
68         int max_checkint;
69         int pgfailback;
70         int remove;
71         int rr_weight;
72         int no_path_retry;
73         int user_friendly_names;
74         int pg_timeout;
75         int max_fds;
76         int force_reload;
77         int daemon;
78         int flush_on_last_del;
79         int attribute_flags;
80         int fast_io_fail;
81         unsigned int dev_loss;
82         uid_t uid;
83         gid_t gid;
84         mode_t mode;
85
86         char * dev;
87         char * sysfs_dir;
88         char * udev_dir;
89         char * multipath_dir;
90         char * selector;
91         char * getuid;
92         char * features;
93         char * hwhandler;
94         char * bindings_file;
95         char * prio_name;
96         char * checker_name;
97
98         vector keywords;
99         vector mptable;
100         vector hwtable;
101
102         vector blist_devnode;
103         vector blist_wwid;
104         vector blist_device;
105         vector elist_devnode;
106         vector elist_wwid;
107         vector elist_device;
108 };
109
110 struct config * conf;
111
112 struct hwentry * find_hwe (vector hwtable, char * vendor, char * product, char *revision);
113 struct mpentry * find_mpe (char * wwid);
114 char * get_mpe_wwid (char * alias);
115
116 struct hwentry * alloc_hwe (void);
117 struct mpentry * alloc_mpe (void);
118
119 void free_hwe (struct hwentry * hwe);
120 void free_hwtable (vector hwtable);
121 void free_mpe (struct mpentry * mpe);
122 void free_mptable (vector mptable);
123
124 int store_hwe (vector hwtable, struct hwentry *);
125
126 int load_config (char * file);
127 struct config * alloc_config (void);
128 void free_config (struct config * conf);
129
130 #endif