[dm-devel] Proposed change to dm ioctl interface

Alasdair G Kergon agk at uk.sistina.com
Fri Mar 28 14:03:01 UTC 2003


Proposed structures for version 3.0.0 of dm-ioctl.h,
also available from device-mapper CVS HEAD.

Aim is to fix some alignment issues and always use 64 bits to
pass the device so the interface itself won't need changing 
whatever the final __kernel_dev_t decision.

Any further changes needed at this stage?
If not, we'll release this (as patches, devmapper tarball etc.)
next week.

Alasdair
-- 
agk at uk.sistina.com


struct dm_ioctl {
	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 */

	int32_t target_count;	/* in/out */
	int32_t open_count;	/* out */
	uint32_t flags;		/* in/out */

	uint64_t dev;		/* in/out */

	char name[DM_NAME_LEN];	/* device name */
	char uuid[DM_UUID_LEN];	/* unique identifier for
				 * the block device */
};

struct dm_target_spec {
	uint64_t sector_start;
	uint64_t length;
	int32_t status;		/* used when reading from kernel only */

	/*
	 * Offset in bytes (from the start of this struct) to
	 * next target_spec.
	 */
	uint32_t next;

	char target_type[DM_MAX_TYPE_NAME];

	/*
	 * Parameter string starts immediately after this object.
	 * Be careful to add padding after string to ensure correct
	 * alignment of subsequent dm_target_spec.
	 */
};

/*
 * Used to retrieve the target dependencies.
 */
struct dm_target_deps {
	uint32_t count;		/* Array size */
	uint32_t padding;	/* unused */
	uint64_t dev[0];	/* out */
};





More information about the dm-devel mailing list