04fa0dd95d74cd4c9ab48121b527685c8d14dd7a
[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         struct mutex_lock lock; /* defined in lock.h */
10         vector pathvec;
11         vector mpvec;
12 };
13
14 void set_no_path_retry(struct config *conf, struct multipath *mpp);
15
16 int adopt_paths (vector pathvec, struct multipath * mpp);
17 void orphan_paths (vector pathvec, struct multipath * mpp);
18 void orphan_path (struct path * pp, const char *reason);
19
20 int verify_paths(struct multipath * mpp, struct vectors * vecs);
21 int update_mpp_paths(struct multipath * mpp, vector pathvec);
22 int __setup_multipath (struct vectors * vecs, struct multipath * mpp,
23                        int reset);
24 #define setup_multipath(vecs, mpp) __setup_multipath(vecs, mpp, 1)
25 int update_multipath_strings (struct multipath *mpp, vector pathvec,
26                               int is_daemon);
27 void extract_hwe_from_path(struct multipath * mpp);
28
29 void remove_map (struct multipath * mpp, struct vectors * vecs, int purge_vec);
30 void remove_map_and_stop_waiter (struct multipath * mpp, struct vectors * vecs, int purge_vec);
31 void remove_maps (struct vectors * vecs);
32 void remove_maps_and_stop_waiters (struct vectors * vecs);
33
34 void sync_map_state (struct multipath *);
35 int update_map (struct multipath *mpp, struct vectors *vecs);
36 struct multipath * add_map_without_path (struct vectors * vecs, char * alias);
37 struct multipath * add_map_with_path (struct vectors * vecs,
38                                 struct path * pp, int add_vec);
39 int update_multipath (struct vectors *vecs, char *mapname, int reset);
40 void update_queue_mode_del_path(struct multipath *mpp);
41 void update_queue_mode_add_path(struct multipath *mpp);
42 int update_multipath_table (struct multipath *mpp, vector pathvec,
43                             int is_daemon);
44 int update_multipath_status (struct multipath *mpp);
45
46 #endif /* _STRUCTS_VEC_H */