1f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/****************************************************************************
2f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ****************************************************************************
3f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ***
4f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ***   This header was automatically generated from a Linux kernel header
5f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ***   of the same name, to make information necessary for userspace to
6f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ***   call into the kernel available to libc.  It contains only constants,
7f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ***   structures, and macros generated from the original header, and thus,
8f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ***   contains no copyrightable information.
9f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ***
10f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ****************************************************************************
11f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ****************************************************************************/
12f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#ifndef _LINUX_DM_IOCTL_V4_H
13f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define _LINUX_DM_IOCTL_V4_H
14f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
15f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#include <linux/types.h>
16f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
17f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_DIR "mapper"
18f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_MAX_TYPE_NAME 16
19f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_NAME_LEN 128
20f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_UUID_LEN 129
21f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
22f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct dm_ioctl {
23f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
24f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t version[3];
25f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t data_size;
26f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
27f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t data_start;
28f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
29f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t target_count;
30f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner int32_t open_count;
31f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t flags;
32f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t event_nr;
33f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t padding;
34f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
35f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint64_t dev;
36f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
37f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner char name[DM_NAME_LEN];
38f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner char uuid[DM_UUID_LEN];
39f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner char data[7];
40f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner};
41f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
42f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct dm_target_spec {
43f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint64_t sector_start;
44f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint64_t length;
45f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner int32_t status;
46f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
47f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t next;
48f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
49f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner char target_type[DM_MAX_TYPE_NAME];
50f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
51f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner};
52f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
53f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct dm_target_deps {
54f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t count;
55f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t padding;
56f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint64_t dev[0];
57f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner};
58f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
59f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct dm_name_list {
60f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint64_t dev;
61f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t next;
62f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner char name[0];
63f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner};
64f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
65f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct dm_target_versions {
66f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t next;
67f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint32_t version[3];
68f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
69f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner char name[0];
70f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner};
71f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
72f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct dm_target_msg {
73f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner uint64_t sector;
74f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
75f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner char message[0];
76f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner};
77f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
78f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerenum {
79f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
80f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_VERSION_CMD = 0,
81f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_REMOVE_ALL_CMD,
82f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_LIST_DEVICES_CMD,
83f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
84f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_DEV_CREATE_CMD,
85f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_DEV_REMOVE_CMD,
86f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_DEV_RENAME_CMD,
87f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_DEV_SUSPEND_CMD,
88f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_DEV_STATUS_CMD,
89f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_DEV_WAIT_CMD,
90f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
91f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_TABLE_LOAD_CMD,
92f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_TABLE_CLEAR_CMD,
93f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_TABLE_DEPS_CMD,
94f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_TABLE_STATUS_CMD,
95f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
96f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_LIST_VERSIONS_CMD,
97f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_TARGET_MSG_CMD,
98f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner DM_DEV_SET_GEOMETRY_CMD
99f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner};
100f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
101f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_IOCTL 0xfd
102f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
103f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_VERSION _IOWR(DM_IOCTL, DM_VERSION_CMD, struct dm_ioctl)
104f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_REMOVE_ALL _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD, struct dm_ioctl)
105f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_LIST_DEVICES _IOWR(DM_IOCTL, DM_LIST_DEVICES_CMD, struct dm_ioctl)
106f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
107f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_DEV_CREATE _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD, struct dm_ioctl)
108f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_DEV_REMOVE _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD, struct dm_ioctl)
109f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_DEV_RENAME _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD, struct dm_ioctl)
110f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_DEV_SUSPEND _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD, struct dm_ioctl)
111f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_DEV_STATUS _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD, struct dm_ioctl)
112f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_DEV_WAIT _IOWR(DM_IOCTL, DM_DEV_WAIT_CMD, struct dm_ioctl)
113f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
114f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_TABLE_LOAD _IOWR(DM_IOCTL, DM_TABLE_LOAD_CMD, struct dm_ioctl)
115f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_TABLE_CLEAR _IOWR(DM_IOCTL, DM_TABLE_CLEAR_CMD, struct dm_ioctl)
116f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_TABLE_DEPS _IOWR(DM_IOCTL, DM_TABLE_DEPS_CMD, struct dm_ioctl)
117f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_TABLE_STATUS _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, struct dm_ioctl)
118f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
119f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl)
120f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
121f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
122f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
123f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
124f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_VERSION_MAJOR 4
125f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_VERSION_MINOR 14
126f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_VERSION_PATCHLEVEL 0
127f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_VERSION_EXTRA "-ioctl (2008-04-23)"
128f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
129f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_READONLY_FLAG (1 << 0)
130f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_SUSPEND_FLAG (1 << 1)
131f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_PERSISTENT_DEV_FLAG (1 << 3)
132f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
133f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_STATUS_TABLE_FLAG (1 << 4)
134f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
135f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_ACTIVE_PRESENT_FLAG (1 << 5)
136f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_INACTIVE_PRESENT_FLAG (1 << 6)
137f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
138f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_BUFFER_FULL_FLAG (1 << 8)
139f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
140f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_SKIP_BDGET_FLAG (1 << 9)
141f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
142f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_SKIP_LOCKFS_FLAG (1 << 10)
143f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
144f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define DM_NOFLUSH_FLAG (1 << 11)
145f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner
146f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif
147