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@xxxxxxxxxxxxxx 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 */ };