111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_DM_IOCTL_V4_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_DM_IOCTL_V4_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_DIR "mapper" 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_MAX_TYPE_NAME 16 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_NAME_LEN 128 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_UUID_LEN 129 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dm_ioctl { 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t version[3]; 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t data_size; 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t data_start; 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t target_count; 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int32_t open_count; 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t flags; 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t event_nr; 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t padding; 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint64_t dev; 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[DM_NAME_LEN]; 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char uuid[DM_UUID_LEN]; 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char data[7]; 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dm_target_spec { 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint64_t sector_start; 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint64_t length; 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int32_t status; 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t next; 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char target_type[DM_MAX_TYPE_NAME]; 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dm_target_deps { 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t count; 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t padding; 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint64_t dev[0]; 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dm_name_list { 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint64_t dev; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t next; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[0]; 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dm_target_versions { 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t next; 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t version[3]; 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[0]; 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dm_target_msg { 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint64_t sector; 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char message[0]; 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_VERSION_CMD = 0, 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_REMOVE_ALL_CMD, 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_LIST_DEVICES_CMD, 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_DEV_CREATE_CMD, 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_DEV_REMOVE_CMD, 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_DEV_RENAME_CMD, 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_DEV_SUSPEND_CMD, 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_DEV_STATUS_CMD, 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_DEV_WAIT_CMD, 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_TABLE_LOAD_CMD, 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_TABLE_CLEAR_CMD, 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_TABLE_DEPS_CMD, 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_TABLE_STATUS_CMD, 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_LIST_VERSIONS_CMD, 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_TARGET_MSG_CMD, 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DM_DEV_SET_GEOMETRY_CMD 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_IOCTL 0xfd 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_VERSION _IOWR(DM_IOCTL, DM_VERSION_CMD, struct dm_ioctl) 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_REMOVE_ALL _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD, struct dm_ioctl) 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_LIST_DEVICES _IOWR(DM_IOCTL, DM_LIST_DEVICES_CMD, struct dm_ioctl) 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_DEV_CREATE _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD, struct dm_ioctl) 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_DEV_REMOVE _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD, struct dm_ioctl) 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_DEV_RENAME _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD, struct dm_ioctl) 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_DEV_SUSPEND _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD, struct dm_ioctl) 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_DEV_STATUS _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD, struct dm_ioctl) 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_DEV_WAIT _IOWR(DM_IOCTL, DM_DEV_WAIT_CMD, struct dm_ioctl) 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_TABLE_LOAD _IOWR(DM_IOCTL, DM_TABLE_LOAD_CMD, struct dm_ioctl) 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_TABLE_CLEAR _IOWR(DM_IOCTL, DM_TABLE_CLEAR_CMD, struct dm_ioctl) 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_TABLE_DEPS _IOWR(DM_IOCTL, DM_TABLE_DEPS_CMD, struct dm_ioctl) 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_TABLE_STATUS _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, struct dm_ioctl) 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl) 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl) 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_VERSION_MAJOR 4 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_VERSION_MINOR 14 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_VERSION_PATCHLEVEL 0 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_VERSION_EXTRA "-ioctl (2008-04-23)" 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_READONLY_FLAG (1 << 0) 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_SUSPEND_FLAG (1 << 1) 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_PERSISTENT_DEV_FLAG (1 << 3) 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_STATUS_TABLE_FLAG (1 << 4) 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_ACTIVE_PRESENT_FLAG (1 << 5) 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_INACTIVE_PRESENT_FLAG (1 << 6) 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_BUFFER_FULL_FLAG (1 << 8) 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_SKIP_BDGET_FLAG (1 << 9) 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_SKIP_LOCKFS_FLAG (1 << 10) 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DM_NOFLUSH_FLAG (1 << 11) 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 147