multipathd: add deferred_remove support
[multipath-tools/.git] / libmultipath / devmapper.h
1 #ifndef _DEVMAPPER_H
2 #define _DEVMAPPER_H
3
4 #include "structs.h"
5
6 #define TGT_MPATH       "multipath"
7 #define TGT_PART        "linear"
8
9 #ifdef DM_SUBSYSTEM_UDEV_FLAG0
10 #define MPATH_UDEV_RELOAD_FLAG DM_SUBSYSTEM_UDEV_FLAG0
11 #else
12 #define MPATH_UDEV_RELOAD_FLAG 0
13 #endif
14
15 void dm_init(void);
16 int dm_prereq (void);
17 int dm_drv_version (unsigned int * version, char * str);
18 int dm_simplecmd_flush (int, const char *, int, uint16_t);
19 int dm_simplecmd_noflush (int, const char *, uint16_t);
20 int dm_addmap_create (struct multipath *mpp, char *params);
21 int dm_addmap_reload (struct multipath *mpp, char *params);
22 int dm_map_present (const char *);
23 int dm_get_map(const char *, unsigned long long *, char *);
24 int dm_get_status(char *, char *);
25 int dm_type(const char *, char *);
26 int _dm_flush_map (const char *, int, int);
27 int dm_flush_map_nopaths(const char * mapname, int deferred_remove);
28 #define dm_flush_map(mapname) _dm_flush_map(mapname, 1, 0)
29 #define dm_flush_map_nosync(mapname) _dm_flush_map(mapname, 0, 0)
30 int dm_cancel_deferred_remove(struct multipath *mpp);
31 int dm_suspend_and_flush_map(const char * mapname);
32 int dm_flush_maps (void);
33 int dm_fail_path(char * mapname, char * path);
34 int dm_reinstate_path(char * mapname, char * path);
35 int dm_queue_if_no_path(char *mapname, int enable);
36 int dm_switchgroup(char * mapname, int index);
37 int dm_enablegroup(char * mapname, int index);
38 int dm_disablegroup(char * mapname, int index);
39 int dm_get_maps (vector mp);
40 int dm_geteventnr (char *name);
41 int dm_get_major (char *name);
42 int dm_get_minor (char *name);
43 char * dm_mapname(int major, int minor);
44 int dm_remove_partmaps (const char * mapname, int need_sync,
45                         int deferred_remove);
46 int dm_get_uuid(char *name, char *uuid);
47 int dm_get_info (char * mapname, struct dm_info ** dmi);
48 int dm_rename (char * old, char * new);
49 int dm_reassign(const char * mapname);
50 int dm_reassign_table(const char *name, char *old, char *new);
51 int dm_setgeometry(struct multipath *mpp);
52 void udev_wait(unsigned int c);
53 void udev_set_sync_support(int c);
54
55 #define VERSION_GE(v, minv) ( \
56  (v[0] > minv[0]) || \
57  ((v[0] == minv[0]) && (v[1] > minv[1])) || \
58  ((v[0] == minv[0]) && (v[1] == minv[1]) && (v[2] >= minv[2])) \
59 )
60
61 #endif /* _DEVMAPPER_H */