Version 3 of the ioctl interface. [Alasdair Kergon]
--- diff/include/linux/dm-ioctl.h	2003-04-17 17:47:30.000000000 +0100
+++ source/include/linux/dm-ioctl.h	2003-04-17 17:54:42.000000000 +0100
@@ -47,10 +47,10 @@
 				 * relative to start of this struct */
 
 	uint32_t target_count;	/* in/out */
-	uint32_t open_count;	/* out */
+	int32_t open_count;	/* out */
 	uint32_t flags;		/* in/out */
 
-	__kernel_dev_t dev;	/* in/out */
+	uint64_t dev;		/* in/out */
 
 	char name[DM_NAME_LEN];	/* device name */
 	char uuid[DM_UUID_LEN];	/* unique identifier for
@@ -62,9 +62,9 @@
  * dm_ioctl.
  */
 struct dm_target_spec {
-	int32_t status;		/* used when reading from kernel only */
 	uint64_t sector_start;
-	uint32_t length;
+	uint64_t length;
+	int32_t status;		/* used when reading from kernel only */
 
 	/*
 	 * Offset in bytes (from the start of this struct) to
@@ -85,9 +85,9 @@
  * Used to retrieve the target dependencies.
  */
 struct dm_target_deps {
-	uint32_t count;
-
-	__kernel_dev_t dev[0];	/* out */
+	uint32_t count;		/* Array size */
+	uint32_t padding;	/* unused */
+	uint64_t dev[0];	/* out */
 };
 
 /*
@@ -129,10 +129,10 @@
 #define DM_TARGET_STATUS _IOWR(DM_IOCTL, DM_TARGET_STATUS_CMD, struct dm_ioctl)
 #define DM_TARGET_WAIT   _IOWR(DM_IOCTL, DM_TARGET_WAIT_CMD, struct dm_ioctl)
 
-#define DM_VERSION_MAJOR	1
+#define DM_VERSION_MAJOR	3
 #define DM_VERSION_MINOR	0
-#define DM_VERSION_PATCHLEVEL	10
-#define DM_VERSION_EXTRA	"-ioctl (2003-03-26)"
+#define DM_VERSION_PATCHLEVEL	0
+#define DM_VERSION_EXTRA	"-ioctl (2003-03-28)"
 
 /* Status bits */
 #define DM_READONLY_FLAG	0x00000001
