10 #define ORIGIN_DEFAULT 0
11 #define ORIGIN_CONFIG 1
14 * In kernel, fast_io_fail == 0 means immediate failure on rport delete.
15 * OTOH '0' means not-configured in various places in multipath-tools.
17 #define MP_FAST_IO_FAIL_UNSET (0)
18 #define MP_FAST_IO_FAIL_OFF (-1)
19 #define MP_FAST_IO_FAIL_ZERO (-2)
43 enum force_reload_types {
69 int flush_on_last_del;
71 unsigned int dev_loss;
72 int user_friendly_names;
77 int delay_watch_checks;
78 int delay_wait_checks;
79 int san_path_err_threshold;
80 int san_path_err_forget_rate;
81 int san_path_err_recovery_time;
82 int marginal_path_err_sample_time;
83 int marginal_path_err_rate_threshold;
84 int marginal_path_err_recheck_gap_time;
85 int marginal_path_double_failed_time;
104 struct be64 reservation_key;
112 int flush_on_last_del;
114 int user_friendly_names;
116 int delay_watch_checks;
117 int delay_wait_checks;
118 int san_path_err_threshold;
119 int san_path_err_forget_rate;
120 int san_path_err_recovery_time;
121 int marginal_path_err_sample_time;
122 int marginal_path_err_rate_threshold;
123 int marginal_path_err_recheck_gap_time;
124 int marginal_path_double_failed_time;
140 unsigned int checkint;
141 unsigned int max_checkint;
146 int user_friendly_names;
147 int bindings_read_only;
150 int queue_without_daemon;
152 int flush_on_last_del;
155 unsigned int dev_loss;
163 int retain_hwhandler;
168 int processed_main_config;
169 int delay_watch_checks;
170 int delay_wait_checks;
171 int san_path_err_threshold;
172 int san_path_err_forget_rate;
173 int san_path_err_recovery_time;
174 int marginal_path_err_sample_time;
175 int marginal_path_err_rate_threshold;
176 int marginal_path_err_recheck_gap_time;
177 int marginal_path_double_failed_time;
182 int delayed_reconfig;
183 int uev_wait_timeout;
188 int find_multipaths_timeout;
189 int marginal_pathgroups;
190 unsigned int version[3];
192 char * multipath_dir;
194 struct _vector uid_attrs;
195 char * uid_attribute;
199 char * bindings_file;
206 char * partition_delim;
210 struct be64 reservation_key;
216 struct hwentry *overrides;
218 vector blist_devnode;
221 vector blist_property;
222 vector blist_protocol;
223 vector elist_devnode;
226 vector elist_property;
227 vector elist_protocol;
228 char *enable_foreign;
231 extern struct udev * udev;
233 int find_hwe (const struct _vector *hwtable,
234 const char * vendor, const char * product, const char *revision,
236 struct mpentry * find_mpe (vector mptable, char * wwid);
237 char * get_mpe_wwid (vector mptable, char * alias);
239 struct hwentry * alloc_hwe (void);
240 struct mpentry * alloc_mpe (void);
242 void free_hwe (struct hwentry * hwe);
243 void free_hwtable (vector hwtable);
244 void free_mpe (struct mpentry * mpe);
245 void free_mptable (vector mptable);
247 int store_hwe (vector hwtable, struct hwentry *);
249 struct config *load_config (char * file);
250 struct config * alloc_config (void);
251 void free_config (struct config * conf);
252 extern struct config *get_multipath_config(void);
253 extern void put_multipath_config(void *);
255 int parse_uid_attrs(char *uid_attrs, struct config *conf);
256 char *get_uid_attribute_by_attrs(struct config *conf,
257 const char *path_dev);