|
@@ -0,0 +1,106 @@
|
|
|
|
+package devmapper
|
|
|
|
+
|
|
|
|
+// Definition of struct dm_task and sub structures (from lvm2)
|
|
|
|
+//
|
|
|
|
+// struct dm_ioctl {
|
|
|
|
+// /*
|
|
|
|
+// * The version number is made up of three parts:
|
|
|
|
+// * major - no backward or forward compatibility,
|
|
|
|
+// * minor - only backwards compatible,
|
|
|
|
+// * patch - both backwards and forwards compatible.
|
|
|
|
+// *
|
|
|
|
+// * All clients of the ioctl interface should fill in the
|
|
|
|
+// * version number of the interface that they were
|
|
|
|
+// * compiled with.
|
|
|
|
+// *
|
|
|
|
+// * All recognised ioctl commands (ie. those that don't
|
|
|
|
+// * return -ENOTTY) fill out this field, even if the
|
|
|
|
+// * command failed.
|
|
|
|
+// */
|
|
|
|
+// uint32_t version[3]; /* in/out */
|
|
|
|
+// uint32_t data_size; /* total size of data passed in
|
|
|
|
+// * including this struct */
|
|
|
|
+
|
|
|
|
+// uint32_t data_start; /* offset to start of data
|
|
|
|
+// * relative to start of this struct */
|
|
|
|
+
|
|
|
|
+// uint32_t target_count; /* in/out */
|
|
|
|
+// int32_t open_count; /* out */
|
|
|
|
+// uint32_t flags; /* in/out */
|
|
|
|
+
|
|
|
|
+// /*
|
|
|
|
+// * event_nr holds either the event number (input and output) or the
|
|
|
|
+// * udev cookie value (input only).
|
|
|
|
+// * The DM_DEV_WAIT ioctl takes an event number as input.
|
|
|
|
+// * The DM_SUSPEND, DM_DEV_REMOVE and DM_DEV_RENAME ioctls
|
|
|
|
+// * use the field as a cookie to return in the DM_COOKIE
|
|
|
|
+// * variable with the uevents they issue.
|
|
|
|
+// * For output, the ioctls return the event number, not the cookie.
|
|
|
|
+// */
|
|
|
|
+// uint32_t event_nr; /* in/out */
|
|
|
|
+// uint32_t padding;
|
|
|
|
+
|
|
|
|
+// uint64_t dev; /* in/out */
|
|
|
|
+
|
|
|
|
+// char name[DM_NAME_LEN]; /* device name */
|
|
|
|
+// char uuid[DM_UUID_LEN]; /* unique identifier for
|
|
|
|
+// * the block device */
|
|
|
|
+// char data[7]; /* padding or data */
|
|
|
|
+// };
|
|
|
|
+
|
|
|
|
+// struct target {
|
|
|
|
+// uint64_t start;
|
|
|
|
+// uint64_t length;
|
|
|
|
+// char *type;
|
|
|
|
+// char *params;
|
|
|
|
+
|
|
|
|
+// struct target *next;
|
|
|
|
+// };
|
|
|
|
+
|
|
|
|
+// typedef enum {
|
|
|
|
+// DM_ADD_NODE_ON_RESUME, /* add /dev/mapper node with dmsetup resume */
|
|
|
|
+// DM_ADD_NODE_ON_CREATE /* add /dev/mapper node with dmsetup create */
|
|
|
|
+// } dm_add_node_t;
|
|
|
|
+
|
|
|
|
+// struct dm_task {
|
|
|
|
+// int type;
|
|
|
|
+// char *dev_name;
|
|
|
|
+// char *mangled_dev_name;
|
|
|
|
+
|
|
|
|
+// struct target *head, *tail;
|
|
|
|
+
|
|
|
|
+// int read_only;
|
|
|
|
+// uint32_t event_nr;
|
|
|
|
+// int major;
|
|
|
|
+// int minor;
|
|
|
|
+// int allow_default_major_fallback;
|
|
|
|
+// uid_t uid;
|
|
|
|
+// gid_t gid;
|
|
|
|
+// mode_t mode;
|
|
|
|
+// uint32_t read_ahead;
|
|
|
|
+// uint32_t read_ahead_flags;
|
|
|
|
+// union {
|
|
|
|
+// struct dm_ioctl *v4;
|
|
|
|
+// } dmi;
|
|
|
|
+// char *newname;
|
|
|
|
+// char *message;
|
|
|
|
+// char *geometry;
|
|
|
|
+// uint64_t sector;
|
|
|
|
+// int no_flush;
|
|
|
|
+// int no_open_count;
|
|
|
|
+// int skip_lockfs;
|
|
|
|
+// int query_inactive_table;
|
|
|
|
+// int suppress_identical_reload;
|
|
|
|
+// dm_add_node_t add_node;
|
|
|
|
+// uint64_t existing_table_size;
|
|
|
|
+// int cookie_set;
|
|
|
|
+// int new_uuid;
|
|
|
|
+// int secure_data;
|
|
|
|
+// int retry_remove;
|
|
|
|
+// int enable_checks;
|
|
|
|
+// int expected_errno;
|
|
|
|
+
|
|
|
|
+// char *uuid;
|
|
|
|
+// char *mangled_uuid;
|
|
|
|
+// };
|
|
|
|
+//
|