libdm-compat.h revision 1.1 1 1.1 haad /* $NetBSD: libdm-compat.h,v 1.1 2008/12/22 00:18:35 haad Exp $ */
2 1.1 haad
3 1.1 haad /*
4 1.1 haad * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
5 1.1 haad * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
6 1.1 haad *
7 1.1 haad * This file is part of the device-mapper userspace tools.
8 1.1 haad *
9 1.1 haad * This copyrighted material is made available to anyone wishing to use,
10 1.1 haad * modify, copy, or redistribute it subject to the terms and conditions
11 1.1 haad * of the GNU Lesser General Public License v.2.1.
12 1.1 haad *
13 1.1 haad * You should have received a copy of the GNU Lesser General Public License
14 1.1 haad * along with this program; if not, write to the Free Software Foundation,
15 1.1 haad * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 1.1 haad */
17 1.1 haad
18 1.1 haad #ifndef _LINUX_LIBDM_COMPAT_H
19 1.1 haad #define _LINUX_LIBDM_COMPAT_H
20 1.1 haad
21 1.1 haad #include "kdev_t.h"
22 1.1 haad #include "dm-ioctl.h"
23 1.1 haad #include <inttypes.h>
24 1.1 haad #include <sys/ioctl.h>
25 1.1 haad
26 1.1 haad struct dm_task;
27 1.1 haad struct dm_info;
28 1.1 haad
29 1.1 haad /*
30 1.1 haad * Old versions of structures for backwards compatibility.
31 1.1 haad */
32 1.1 haad
33 1.1 haad struct dm_ioctl_v1 {
34 1.1 haad uint32_t version[3]; /* in/out */
35 1.1 haad uint32_t data_size; /* total size of data passed in
36 1.1 haad * including this struct */
37 1.1 haad
38 1.1 haad uint32_t data_start; /* offset to start of data
39 1.1 haad * relative to start of this struct */
40 1.1 haad
41 1.1 haad int32_t target_count; /* in/out */
42 1.1 haad int32_t open_count; /* out */
43 1.1 haad uint32_t flags; /* in/out */
44 1.1 haad
45 1.1 haad __kernel_dev_t dev; /* in/out */
46 1.1 haad
47 1.1 haad char name[DM_NAME_LEN]; /* device name */
48 1.1 haad char uuid[DM_UUID_LEN]; /* unique identifier for
49 1.1 haad * the block device */
50 1.1 haad };
51 1.1 haad
52 1.1 haad struct dm_target_spec_v1 {
53 1.1 haad int32_t status; /* used when reading from kernel only */
54 1.1 haad uint64_t sector_start;
55 1.1 haad uint32_t length;
56 1.1 haad uint32_t next;
57 1.1 haad
58 1.1 haad char target_type[DM_MAX_TYPE_NAME];
59 1.1 haad
60 1.1 haad };
61 1.1 haad
62 1.1 haad struct dm_target_deps_v1 {
63 1.1 haad uint32_t count;
64 1.1 haad
65 1.1 haad __kernel_dev_t dev[0]; /* out */
66 1.1 haad };
67 1.1 haad
68 1.1 haad enum {
69 1.1 haad /* Top level cmds */
70 1.1 haad DM_VERSION_CMD_V1 = 0,
71 1.1 haad DM_REMOVE_ALL_CMD_V1,
72 1.1 haad
73 1.1 haad /* device level cmds */
74 1.1 haad DM_DEV_CREATE_CMD_V1,
75 1.1 haad DM_DEV_REMOVE_CMD_V1,
76 1.1 haad DM_DEV_RELOAD_CMD_V1,
77 1.1 haad DM_DEV_RENAME_CMD_V1,
78 1.1 haad DM_DEV_SUSPEND_CMD_V1,
79 1.1 haad DM_DEV_DEPS_CMD_V1,
80 1.1 haad DM_DEV_STATUS_CMD_V1,
81 1.1 haad
82 1.1 haad /* target level cmds */
83 1.1 haad DM_TARGET_STATUS_CMD_V1,
84 1.1 haad DM_TARGET_WAIT_CMD_V1,
85 1.1 haad };
86 1.1 haad
87 1.1 haad #define DM_VERSION_V1 _IOWR(DM_IOCTL, DM_VERSION_CMD_V1, struct dm_ioctl)
88 1.1 haad #define DM_REMOVE_ALL_V1 _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD_V1, struct dm_ioctl)
89 1.1 haad
90 1.1 haad #define DM_DEV_CREATE_V1 _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD_V1, struct dm_ioctl)
91 1.1 haad #define DM_DEV_REMOVE_V1 _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD_V1, struct dm_ioctl)
92 1.1 haad #define DM_DEV_RELOAD_V1 _IOWR(DM_IOCTL, DM_DEV_RELOAD_CMD_V1, struct dm_ioctl)
93 1.1 haad #define DM_DEV_SUSPEND_V1 _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD_V1, struct dm_ioctl)
94 1.1 haad #define DM_DEV_RENAME_V1 _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD_V1, struct dm_ioctl)
95 1.1 haad #define DM_DEV_DEPS_V1 _IOWR(DM_IOCTL, DM_DEV_DEPS_CMD_V1, struct dm_ioctl)
96 1.1 haad #define DM_DEV_STATUS_V1 _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD_V1, struct dm_ioctl)
97 1.1 haad
98 1.1 haad #define DM_TARGET_STATUS_V1 _IOWR(DM_IOCTL, DM_TARGET_STATUS_CMD_V1, struct dm_ioctl)
99 1.1 haad #define DM_TARGET_WAIT_V1 _IOWR(DM_IOCTL, DM_TARGET_WAIT_CMD_V1, struct dm_ioctl)
100 1.1 haad
101 1.1 haad /* *INDENT-OFF* */
102 1.1 haad static struct cmd_data _cmd_data_v1[] = {
103 1.1 haad { "create", DM_DEV_CREATE_V1, {1, 0, 0} },
104 1.1 haad { "reload", DM_DEV_RELOAD_V1, {1, 0, 0} },
105 1.1 haad { "remove", DM_DEV_REMOVE_V1, {1, 0, 0} },
106 1.1 haad { "remove_all", DM_REMOVE_ALL_V1, {1, 0, 0} },
107 1.1 haad { "suspend", DM_DEV_SUSPEND_V1, {1, 0, 0} },
108 1.1 haad { "resume", DM_DEV_SUSPEND_V1, {1, 0, 0} },
109 1.1 haad { "info", DM_DEV_STATUS_V1, {1, 0, 0} },
110 1.1 haad { "deps", DM_DEV_DEPS_V1, {1, 0, 0} },
111 1.1 haad { "rename", DM_DEV_RENAME_V1, {1, 0, 0} },
112 1.1 haad { "version", DM_VERSION_V1, {1, 0, 0} },
113 1.1 haad { "status", DM_TARGET_STATUS_V1, {1, 0, 0} },
114 1.1 haad { "table", DM_TARGET_STATUS_V1, {1, 0, 0} },
115 1.1 haad { "waitevent", DM_TARGET_WAIT_V1, {1, 0, 0} },
116 1.1 haad { "names", 0, {4, 0, 0} },
117 1.1 haad { "clear", 0, {4, 0, 0} },
118 1.1 haad { "mknodes", 0, {4, 0, 0} },
119 1.1 haad { "versions", 0, {4, 1, 0} },
120 1.1 haad { "message", 0, {4, 2, 0} },
121 1.1 haad { "setgeometry",0, {4, 6, 0} },
122 1.1 haad };
123 1.1 haad /* *INDENT-ON* */
124 1.1 haad
125 1.1 haad #endif
126