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