summaryrefslogtreecommitdiff
path: root/runtime/graphdriver/devmapper/devmapper_doc.go
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/graphdriver/devmapper/devmapper_doc.go')
-rw-r--r--runtime/graphdriver/devmapper/devmapper_doc.go106
1 files changed, 106 insertions, 0 deletions
diff --git a/runtime/graphdriver/devmapper/devmapper_doc.go b/runtime/graphdriver/devmapper/devmapper_doc.go
new file mode 100644
index 0000000000..c1c3e3891b
--- /dev/null
+++ b/runtime/graphdriver/devmapper/devmapper_doc.go
@@ -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;
+// };
+//