4 #include <libdevmapper.h>
6 #include <linux/kdev_t.h>
9 dm_prereq (char * str, int x, int y, int z)
13 struct dm_versions *target;
14 struct dm_versions *last_target;
16 if (!(dmt = dm_task_create(DM_DEVICE_LIST_VERSIONS)))
19 dm_task_no_open_count(dmt);
21 if (!dm_task_run(dmt))
24 target = dm_task_get_versions(dmt);
26 /* Fetch targets and print 'em */
30 if (!strncmp(str, target->name, strlen(str)) &&
31 /* dummy prereq on multipath version */
32 target->version[0] >= x &&
33 target->version[1] >= y &&
34 target->version[2] >= z
38 target = (void *) target + target->next;
39 } while (last_target != target);
47 dm_simplecmd (int task, const char *name) {
51 if (!(dmt = dm_task_create(task)))
54 if (!dm_task_set_name(dmt, name))
57 dm_task_no_open_count(dmt);
67 dm_addmap (int task, const char *name, const char *target,
68 const char *params, unsigned long size) {
72 if (!(dmt = dm_task_create (task)))
75 if (!dm_task_set_name (dmt, name))
78 if (!dm_task_add_target (dmt, 0, size, target, params))
81 dm_task_no_open_count(dmt);
83 r = dm_task_run (dmt);
86 dm_task_destroy (dmt);
91 dm_map_present (char * str)
97 if (!(dmt = dm_task_create(DM_DEVICE_INFO)))
100 if (!dm_task_set_name(dmt, str))
103 dm_task_no_open_count(dmt);
105 if (!dm_task_run(dmt))
108 if (!dm_task_get_info(dmt, &info))
114 dm_task_destroy(dmt);
120 dm_mapname(int major, int minor)
125 if (!(dmt = dm_task_create(DM_DEVICE_INFO)))
128 dm_task_no_open_count(dmt);
129 dm_task_set_major(dmt, major);
130 dm_task_set_minor(dmt, minor);
132 if (!dm_task_run(dmt))
135 mapname = strdup(dm_task_get_name(dmt));
137 dm_task_destroy(dmt);