1 1.1 haad /* $NetBSD: libdm-compat.h,v 1.1.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