2003-01-22 00:27:36 +03:00
/*
2004-03-30 23:08:57 +04:00
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
2007-08-21 20:26:07 +04:00
* Copyright ( C ) 2004 - 2006 Red Hat , Inc . All rights reserved .
2003-01-22 00:27:36 +03:00
*
2004-03-30 23:08:57 +04:00
* This file is part of the device - mapper userspace tools .
*
* This copyrighted material is made available to anyone wishing to use ,
* modify , copy , or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License v .2 .1 .
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program ; if not , write to the Free Software Foundation ,
* Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
2003-01-22 00:27:36 +03:00
*/
# ifndef _LINUX_LIBDM_COMPAT_H
# define _LINUX_LIBDM_COMPAT_H
2004-07-01 19:14:29 +04:00
# include "kdev_t.h"
2003-01-22 00:27:36 +03:00
# include <inttypes.h>
# include <linux/dm-ioctl.h>
# include <sys/ioctl.h>
struct dm_task ;
struct dm_info ;
/*
* Old versions of structures for backwards compatibility .
*/
struct dm_ioctl_v1 {
uint32_t version [ 3 ] ; /* in/out */
uint32_t data_size ; /* total size of data passed in
* including this struct */
uint32_t data_start ; /* offset to start of data
* relative to start of this struct */
2003-03-28 21:58:59 +03:00
int32_t target_count ; /* in/out */
int32_t open_count ; /* out */
2003-01-22 00:27:36 +03:00
uint32_t flags ; /* in/out */
__kernel_dev_t dev ; /* in/out */
char name [ DM_NAME_LEN ] ; /* device name */
char uuid [ DM_UUID_LEN ] ; /* unique identifier for
* the block device */
} ;
struct dm_target_spec_v1 {
int32_t status ; /* used when reading from kernel only */
uint64_t sector_start ;
uint32_t length ;
uint32_t next ;
char target_type [ DM_MAX_TYPE_NAME ] ;
} ;
struct dm_target_deps_v1 {
uint32_t count ;
__kernel_dev_t dev [ 0 ] ; /* out */
} ;
2003-07-02 01:20:58 +04:00
enum {
/* Top level cmds */
DM_VERSION_CMD_V1 = 0 ,
DM_REMOVE_ALL_CMD_V1 ,
/* device level cmds */
DM_DEV_CREATE_CMD_V1 ,
DM_DEV_REMOVE_CMD_V1 ,
DM_DEV_RELOAD_CMD_V1 ,
DM_DEV_RENAME_CMD_V1 ,
DM_DEV_SUSPEND_CMD_V1 ,
DM_DEV_DEPS_CMD_V1 ,
DM_DEV_STATUS_CMD_V1 ,
/* target level cmds */
DM_TARGET_STATUS_CMD_V1 ,
DM_TARGET_WAIT_CMD_V1 ,
} ;
# define DM_VERSION_V1 _IOWR(DM_IOCTL, DM_VERSION_CMD_V1, struct dm_ioctl)
# define DM_REMOVE_ALL_V1 _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD_V1, struct dm_ioctl)
# define DM_DEV_CREATE_V1 _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD_V1, struct dm_ioctl)
# define DM_DEV_REMOVE_V1 _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD_V1, struct dm_ioctl)
# define DM_DEV_RELOAD_V1 _IOWR(DM_IOCTL, DM_DEV_RELOAD_CMD_V1, struct dm_ioctl)
# define DM_DEV_SUSPEND_V1 _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD_V1, struct dm_ioctl)
# define DM_DEV_RENAME_V1 _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD_V1, struct dm_ioctl)
# define DM_DEV_DEPS_V1 _IOWR(DM_IOCTL, DM_DEV_DEPS_CMD_V1, struct dm_ioctl)
# define DM_DEV_STATUS_V1 _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD_V1, struct dm_ioctl)
# define DM_TARGET_STATUS_V1 _IOWR(DM_IOCTL, DM_TARGET_STATUS_CMD_V1, struct dm_ioctl)
# define DM_TARGET_WAIT_V1 _IOWR(DM_IOCTL, DM_TARGET_WAIT_CMD_V1, struct dm_ioctl)
2003-01-22 00:27:36 +03:00
/* *INDENT-OFF* */
static struct cmd_data _cmd_data_v1 [ ] = {
2004-01-23 17:37:47 +03:00
{ " create " , DM_DEV_CREATE_V1 , { 1 , 0 , 0 } } ,
{ " reload " , DM_DEV_RELOAD_V1 , { 1 , 0 , 0 } } ,
{ " remove " , DM_DEV_REMOVE_V1 , { 1 , 0 , 0 } } ,
{ " remove_all " , DM_REMOVE_ALL_V1 , { 1 , 0 , 0 } } ,
{ " suspend " , DM_DEV_SUSPEND_V1 , { 1 , 0 , 0 } } ,
{ " resume " , DM_DEV_SUSPEND_V1 , { 1 , 0 , 0 } } ,
{ " info " , DM_DEV_STATUS_V1 , { 1 , 0 , 0 } } ,
{ " deps " , DM_DEV_DEPS_V1 , { 1 , 0 , 0 } } ,
{ " rename " , DM_DEV_RENAME_V1 , { 1 , 0 , 0 } } ,
{ " version " , DM_VERSION_V1 , { 1 , 0 , 0 } } ,
{ " status " , DM_TARGET_STATUS_V1 , { 1 , 0 , 0 } } ,
{ " table " , DM_TARGET_STATUS_V1 , { 1 , 0 , 0 } } ,
{ " waitevent " , DM_TARGET_WAIT_V1 , { 1 , 0 , 0 } } ,
{ " names " , 0 , { 4 , 0 , 0 } } ,
{ " clear " , 0 , { 4 , 0 , 0 } } ,
{ " mknodes " , 0 , { 4 , 0 , 0 } } ,
{ " versions " , 0 , { 4 , 1 , 0 } } ,
2004-06-09 00:34:40 +04:00
{ " message " , 0 , { 4 , 2 , 0 } } ,
2006-02-21 02:55:58 +03:00
{ " setgeometry " , 0 , { 4 , 6 , 0 } } ,
2003-01-22 00:27:36 +03:00
} ;
/* *INDENT-ON* */
# endif