Home | History | Annotate | Line # | Download | only in ioctl
      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