d33fe9848124f66e2ca7e491137954a308f18eb3
[platform/upstream/multipath-tools.git] / libmultipath / structs_vec.h
1 #ifndef _STRUCTS_VEC_H
2 #define _STRUCTS_VEC_H
3
4 #include "vector.h"
5 #include "config.h"
6 #include "lock.h"
7
8 struct vectors {
9         vector pathvec;
10         vector mpvec;
11         struct mutex_lock lock; /* defined in lock.h */
12 };
13
14 void __set_no_path_retry(struct multipath *mpp, bool check_features);
15 #define set_no_path_retry(mpp) __set_no_path_retry(mpp, true)
16
17 int adopt_paths (vector pathvec, struct multipath * mpp);
18 void orphan_path (struct path * pp, const char *reason);
19 void set_path_removed(struct path *pp);
20
21 int verify_paths(struct multipath *mpp);
22 int update_mpp_paths(struct multipath * mpp, vector pathvec);
23 int update_multipath_strings (struct multipath *mpp, vector pathvec);
24 void extract_hwe_from_path(struct multipath * mpp);
25
26 void remove_map (struct multipath *mpp, vector pathvec, vector mpvec);
27 void remove_map_by_alias(const char *alias, struct vectors * vecs);
28 void remove_maps (struct vectors * vecs);
29
30 void sync_map_state (struct multipath *);
31 struct multipath * add_map_with_path (struct vectors * vecs,
32                                 struct path * pp, int add_vec);
33 void update_queue_mode_del_path(struct multipath *mpp);
34 void update_queue_mode_add_path(struct multipath *mpp);
35 int update_multipath_table (struct multipath *mpp, vector pathvec, int flags);
36 int update_multipath_status (struct multipath *mpp);
37 vector get_used_hwes(const struct _vector *pathvec);
38
39 #endif /* _STRUCTS_VEC_H */