--- old/usr/src/uts/common/avs/ns/dsw/dsw.h	Fri Jul 27 15:35:53 2018
+++ /dev/null	Fri Jul 27 15:07:21 2018
@@ -1,485 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef	_DSW_H
-#define	_DSW_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Miscellaneous defines
- */
-
-#define	DSW_BITS	8	/* # of bits in a byte */
-#define	DSW_SIZE	64	/* fba's in a DSW chunk */
-
-
-/*
- * Ioctl definitions
- */
-
-#define	_D_(x)			(('D'<<16)|('W'<<8)|(x))
-
-#define	DSWIOC_ENABLE		_D_(1)	/* Configure DSW pair */
-#define	DSWIOC_RESUME		_D_(2)	/* Resume a DSW pair */
-#define	DSWIOC_SUSPEND		_D_(3)	/* Suspend a DSW pair */
-#define	DSWIOC_COPY		_D_(4)	/* Copy DSW volume over its pair */
-#define	DSWIOC_BITMAP		_D_(5)	/* Get bitmap */
-#define	DSWIOC_STAT		_D_(6)	/* Get state of shadow */
-#define	DSWIOC_DISABLE		_D_(7)	/* Deconfigure DSW pair */
-#define	DSWIOC_SHUTDOWN		_D_(8)	/* Suspend all DSW pairs */
-#define	DSWIOC_ABORT		_D_(9)	/* Abort Copy of DSW pair */
-#define	DSWIOC_VERSION		_D_(10)	/* DataShadow version */
-#define	DSWIOC_RESET		_D_(11)	/* Reset DataShadow set */
-#define	DSWIOC_OFFLINE		_D_(12)	/* Offline volumes */
-#define	DSWIOC_WAIT		_D_(13)	/* Wait for copy to complete */
-#define	DSWIOC_LIST		_D_(14)	/* List current kernel shadow groups */
-#define	DSWIOC_ACOPY		_D_(15)	/* Copy DSW volumes over their pairs */
-#define	DSWIOC_EXPORT		_D_(16)	/* Export the shadow volume */
-#define	DSWIOC_IMPORT		_D_(17)	/* Import shadow volume */
-#define	DSWIOC_JOIN		_D_(18)	/* Rejoin previously exported shadow */
-#define	DSWIOC_COPYP		_D_(19)	/* Set and get copy parameters */
-#define	DSWIOC_OCREAT		_D_(20)	/* Create overflow volume */
-#define	DSWIOC_OATTACH		_D_(21)	/* Attach overflow volume */
-#define	DSWIOC_ODETACH		_D_(22)	/* Detach overflow volume */
-#define	DSWIOC_OLIST		_D_(23)	/* List overflow volumes */
-#define	DSWIOC_OSTAT		_D_(24)	/* Stat overflow volume */
-#define	DSWIOC_SBITSSET		_D_(25)	/* Get # of bits set in shadow bitmap */
-#define	DSWIOC_CBITSSET		_D_(26)	/* Get # of bits set in copy bitmap */
-#define	DSWIOC_LISTLEN		_D_(27)	/* length of DSWIOC_LIST data */
-#define	DSWIOC_OLISTLEN		_D_(28)	/* length of DSWIOC_OLIST data */
-#define	DSWIOC_SEGMENT		_D_(29) /* Get segemented bitmaps */
-#define	DSWIOC_MOVEGRP		_D_(30)	/* Move set from one group to another */
-#define	DSWIOC_CLIST		_D_(31) /* get list of resource groups */
-#define	DSWIOC_GLIST		_D_(32)	/* get list of groups */
-#define	DSWIOC_CHANGETAG	_D_(33)	/* change the cluster tag of a set */
-#define	DSWIOC_OSTAT2		_D_(34) /* Stat overflow volume enhanced */
-
-/*
- * Config and status flags
- */
-
-#define	DSW_GOLDEN	0x0001		/* the set is independent */
-
-#define	DSW_COPYINGP	0x0100		/* Copy in progress */
-#define	DSW_COPYINGM	0x0200		/* Copying master to shadow */
-#define	DSW_COPYINGS	0x0400		/* Copying shadow to master */
-#define	DSW_COPYING	0x0600		/* Copying, may be in progress */
-#define	DSW_COPY_FLAGS	0x0700		/* Copy flags */
-#define	DSW_COPYINGX	0x0800		/* Copy exit requested */
-#define	DSW_OFFLINE	0xf000		/* An underlying volume offline */
-#define	DSW_BMPOFFLINE	0x1000		/* Bitmap volume offline */
-#define	DSW_SHDOFFLINE	0x2000		/* Shadow volume offline */
-#define	DSW_MSTOFFLINE	0x4000		/* Master volume offline */
-#define	DSW_OVROFFLINE	0x8000		/* Overflow volume offline */
-#define	DSW_TREEMAP	0x10000		/* Shadow volume accessed by an index */
-#define	DSW_OVERFLOW	0x20000		/* Shadow volume has overflowed */
-#define	DSW_SHDEXPORT	0x40000		/* Shadow volume has been exported */
-#define	DSW_SHDIMPORT	0x80000		/* Shadow volume has been imported */
-#define	DSW_VOVERFLOW	0x100000	/* Shadow volume using overflow vol */
-#define	DSW_HANGING	0x200000	/* Hanging master structure  */
-#define	DSW_CFGOFFLINE	0x400000	/* config db is offline */
-#define	DSW_OVRHDRDRTY	0x800000	/* Overflow header dirty */
-#define	DSW_RESIZED	0x1000000	/* mst_size != shd_size */
-#define	DSW_FRECLAIM	0x2000000	/* force the reclaim of an ovr vol */
-
-/*
- * used for SNMP trap only.
- * These flags help distinguish between enable and resume,
- * suspend and disable.
- * Note that DSW_HANGING is set for both suspend and disable
- */
-#define	DSW_SNMP_CLR		0	/* no flag is set	*/
-#define	DSW_SNMP_DISABLE	1	/* Set is disabled	*/
-#define	DSW_SNMP_SUSPEND	2	/* Set is suspended	*/
-#define	DSW_SNMP_ENABLE		3	/* Set is enabled	*/
-#define	DSW_SNMP_RESUME		4	/* Set is resumed	*/
-#define	DSW_SNMP_OVER_ATTACH	5	/* overflow attached	*/
-#define	DSW_SNMP_OVER_DETACH	6	/* overflow detached	*/
-#define	DSW_SNMP_UPDATE		7	/* update operation	*/
-#define	DSW_SNMP_COPIED		8	/* copy operation	*/
-
-	/* Overflow volume flags */
-#define	IIO_OFFLINE	0x0001		/* Volume is offline */
-#define	IIO_HDR_WRTN	0x0002		/* Header written */
-#define	IIO_CNTR_INVLD	0x0004		/* Overflow counters invalid */
-#define	IIO_VOL_UPDATE	0x0008		/* Performing group update */
-
-#define	DSW_NAMELEN	64		/* NSC_MAXPATH - don't change without */
-					/* amending header version number */
-
-#define	DSWDEV		"/dev/ii"
-#define	II_IMPORTED_SHADOW "<imported_shadow>"
-
-/*
- * Configuration parameter defines
- * ii_bitmap, ii_throttle_unit, ii_throttle_delay
- */
-#define	II_KMEM		0	/* Load/store on resume/suspend, in memory */
-#define	II_WTHRU	1	/* Read/write bitmap thru to bitmap volume */
-#define	II_FWC		2	/* Read/write bitmap to FWC, else WTHRU */
-
-#define	MIN_THROTTLE_UNIT	100	/* Min. number of units to transfer */
-#define	MAX_THROTTLE_UNIT	60000	/* Max. number of units to transfer */
-#define	MIN_THROTTLE_DELAY	2	/* Min. delay between unit transfer */
-#define	MAX_THROTTLE_DELAY	10000	/* Max. delay between unit transfer */
-
-/*
- * DSW user config structure
- */
-
-typedef struct dsw_config_s {
-	spcs_s_info_t status;
-	char master_vol[DSW_NAMELEN];
-	char shadow_vol[DSW_NAMELEN];
-	char bitmap_vol[DSW_NAMELEN];
-	char cluster_tag[DSW_NAMELEN];
-	char group_name[DSW_NAMELEN];
-	int flag;
-} dsw_config_t;
-
-/*
- * DSW segmented bitmap I/O structure
- */
-typedef struct dsw_segment_s {
-	spcs_s_info_t status;
-	char shadow_vol[DSW_NAMELEN];
-	unsigned seg_number;		/* 32KB Segment number to start at */
-	unsigned char   *shd_bitmap;		/* pointer to shadow bitmap */
-	int	shd_size;			/* size of shadow bitmap */
-	unsigned char   *cpy_bitmap;		/* pointer to copy bitmap */
-	int	cpy_size;			/* size of copy bitmap */
-	unsigned char	*idx_bitmap;		/* pointer to index table */
-	int	idx_size;			/* size of index table */
-} dsw_segment_t;
-
-/*
- * DSW user bitmap structure
- */
-
-typedef struct dsw_bitmap_s {
-	spcs_s_info_t status;
-	char shadow_vol[DSW_NAMELEN];
-	unsigned char	*shd_bitmap;		/* pointer to shadow bitmap */
-	uint64_t shd_size;			/* size of shadow bitmap */
-	uint64_t copy_size;			/* size of copy bitmap */
-	unsigned char	*copy_bitmap;		/* pointer to copy bitmap */
-} dsw_bitmap_t;
-
-
-/*
- * DSW general ioctl structure
- */
-
-typedef struct dsw_ioctl_s {
-	spcs_s_info_t status;
-	char shadow_vol[DSW_NAMELEN];
-	int flags;
-	pid_t pid;
-} dsw_ioctl_t;
-
-
-/*
- * DSW general atomic ioctl structure operating on several Image sets
- */
-
-typedef struct dsw_aioctl_s {
-	spcs_s_info_t status;
-	int flags;
-	int count;
-	pid_t pid;
-	char shadow_vol[DSW_NAMELEN];	/* start of list of image sets */
-} dsw_aioctl_t;
-
-
-/*
- * DSW stat ioctl structure
- */
-
-typedef struct dsw_stat_s {
-	spcs_s_info_t status;
-	char shadow_vol[DSW_NAMELEN];
-	int stat;
-	uint64_t size;
-	char overflow_vol[DSW_NAMELEN];
-	uint64_t shdsize;
-	uint64_t shdused;
-	char group_name[DSW_NAMELEN];
-	char cluster_tag[DSW_NAMELEN];
-	uint64_t mtime;
-} dsw_stat_t;
-
-
-/*
- * DSW version ioctl structure
- */
-
-typedef struct dsw_version_s {
-	spcs_s_info_t status;
-	int major;			/* Major release number */
-	int minor;			/* Minor release number */
-	int micro;			/* Micro release number */
-	int baseline;			/* Baseline revision number */
-} dsw_version_t;
-
-/*
- * DSW get bits set in bitmap structure
- */
-
-typedef struct dsw_bitsset_s {
-	spcs_s_info_t status;
-	char	shadow_vol[DSW_NAMELEN];
-	uint64_t tot_size;		/* total number of bits in map */
-	uint64_t tot_set;		/* number of bitmap bits set */
-} dsw_bitsset_t;
-
-
-/*
- * DSW list ioctl structure
- */
-
-typedef struct dsw_list_s {
-	spcs_s_info_t status;
-	int list_size;			/* number of elements in list */
-	int list_used;			/* number of elements returned */
-	dsw_config_t *list;
-} dsw_list_t;
-
-/*
- * DSW copy parameter structure
- */
-
-typedef struct dsw_copyp_s {
-	spcs_s_info_t status;
-	char shadow_vol[DSW_NAMELEN];
-	int copy_unit;
-	int copy_delay;
-} dsw_copyp_t;
-
-/*
- * DSW ostat ioctl structure
- */
-
-typedef struct dsw_ostat_s {
-	spcs_s_info_t status;
-	char overflow_vol[DSW_NAMELEN];
-	int drefcnt;
-	uint64_t used;
-	uint64_t unused;
-	uint64_t nchunks;
-	int crefcnt;
-	int flags;
-	int hversion;
-	int hmagic;
-} dsw_ostat_t;
-
-/*
- * DSW move group structure
- */
-
-typedef struct dsw_movegrp_s {
-	spcs_s_info_t status;
-	char shadow_vol[DSW_NAMELEN];
-	char new_group[DSW_NAMELEN];
-} dsw_movegrp_t;
-
-/*
- * II_PIT_PROPS structure
- */
-typedef struct pit_props_s {
-	int iirc;
-	int mstid;
-	int shdid;
-	int bmpid;
-	int ovrid;
-	char group[DSW_NAMELEN];
-	char cluster[DSW_NAMELEN];
-	int  has_overflow;
-	int  flags;
-	uint64_t  size;
-	int64_t  shdchks;
-	int64_t  copybits;
-	int64_t  shdbits;
-} pit_props_t;
-
-/*
- * II_PIT_UPDATE structure
- */
-typedef struct pit_update_s {
-	int iirc;
-	char direction;
-} pit_update_t;
-
-#ifdef _KERNEL
-/*
- * 32 bit versions of ioctl structures
- */
-
-typedef struct dsw_config32_s {
-	spcs_s_info32_t status;
-	char master_vol[DSW_NAMELEN];
-	char shadow_vol[DSW_NAMELEN];
-	char bitmap_vol[DSW_NAMELEN];
-	char cluster_tag[DSW_NAMELEN];
-	char group_name[DSW_NAMELEN];
-	int flag;
-} dsw_config32_t;
-
-/*
- * DSW segmented bitmap I/O structure
- */
-typedef struct dsw_segment32_s {
-	spcs_s_info32_t status;
-	char shadow_vol[DSW_NAMELEN];
-	uint32_t seg_number;
-	uint32_t shd_bitmap;
-	int	 shd_size;
-	uint32_t cpy_bitmap;
-	int	 cpy_size;
-	uint32_t idx_bitmap;
-	int	 idx_size;
-} dsw_segment32_t;
-
-/*
- * DSW user bitmap structure
- */
-
-typedef struct dsw_bitmap32_s {
-	spcs_s_info32_t status;
-	char shadow_vol[DSW_NAMELEN];
-	uint32_t shd_bitmap;		/* 32 bit pointer value */
-	uint64_t shd_size;
-	uint64_t copy_size;
-	uint32_t copy_bitmap;		/* 32 bit pointer value */
-} dsw_bitmap32_t;
-
-typedef struct dsw_ioctl32_s {
-	spcs_s_info32_t status;
-	char shadow_vol[DSW_NAMELEN];
-	int flags;
-	pid_t pid;
-} dsw_ioctl32_t;
-
-typedef struct dsw_stat32_s {
-	spcs_s_info32_t status;
-	char shadow_vol[DSW_NAMELEN];
-	int stat;
-	uint64_t size;
-	char overflow_vol[DSW_NAMELEN];
-	uint64_t shdsize;
-	uint64_t shdused;
-	char group_name[DSW_NAMELEN];
-	char cluster_tag[DSW_NAMELEN];
-	uint64_t mtime;
-} dsw_stat32_t;
-
-typedef struct dsw_version32_s {
-	spcs_s_info32_t status;
-	int major;			/* Major release number */
-	int minor;			/* Minor release number */
-	int micro;			/* Micro release number */
-	int baseline;			/* Baseline revision number */
-} dsw_version32_t;
-
-typedef struct dsw_bitsset32_s {
-	spcs_s_info32_t status;
-	char	shadow_vol[DSW_NAMELEN];
-	uint64_t	tot_size;	/* total number of bits in map */
-	uint64_t	tot_set;	/* number of bitmap bits set */
-} dsw_bitsset32_t;
-
-typedef struct dsw_list32_s {
-	spcs_s_info32_t status;
-	int list_size;
-	int list_used;
-	uint32_t list;
-} dsw_list32_t;
-
-typedef struct dsw_aioctl32_s {
-	spcs_s_info32_t status;
-	int flags;
-	int count;
-	pid_t pid;
-	char shadow_vol[DSW_NAMELEN];	/* start of list of image sets */
-} dsw_aioctl32_t;
-
-typedef struct dsw_copyp32_s {
-	spcs_s_info32_t status;
-	char shadow_vol[DSW_NAMELEN];
-	int copy_unit;
-	int copy_delay;
-} dsw_copyp32_t;
-
-typedef struct dsw_ostat32_s {
-	spcs_s_info32_t status;
-	char overflow_vol[DSW_NAMELEN];
-	int drefcnt;
-	uint64_t used;
-	uint64_t unused;
-	uint64_t nchunks;
-	int crefcnt;
-	int flags;
-	int hversion;
-	int hmagic;
-} dsw_ostat32_t;
-
-/*
- * DSW move group structure
- */
-
-typedef struct dsw_movegrp32_s {
-	spcs_s_info32_t status;
-	char shadow_vol[DSW_NAMELEN];
-	char new_group[DSW_NAMELEN];
-} dsw_movegrp32_t;
-
-#endif	/* _KERNEL */
-
-/* dsw_copy dsw_ioctl_t flag bits */
-#define	CV_BMP_ONLY	0x00000001	/* copy only chunks flagged by bitmap */
-#define	CV_SHD2MST	0x00000002	/* copy shadow to master */
-#define	CV_LOCK_PID	0x00000004	/* On copy/update, lock PIT by PID */
-#define	CV_CLR_BMP	0x00000010	/* clear bits in bit map during copy */
-#define	CV_IS_CLUSTER	0x00000020	/* struct refers to cluster */
-#define	CV_IS_GROUP	0x00000040	/* struct refers to group (cpy/upd) */
-#define	CV_SIBLING	0x00010000	/* internal copy_on_write flag */
-
-/* nsc_control commands */
-
-#define	II_CONTROL(x)	('I' << 24 | 'I' << 16 | (x))	/* 0x49490000 */
-
-#define	II_PIT_COPY	II_CONTROL(1)	/* Perform an II Copy */
-#define	II_PIT_UPDATE	II_CONTROL(2)	/* Perform an II Update */
-#define	II_PIT_ABORT	II_CONTROL(3)	/* Perform an II Abort */
-#define	II_PIT_WAIT	II_CONTROL(4)	/* Perform an II Wait */
-#define	II_PIT_PROPS	II_CONTROL(5)	/* Perform an II Properties */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _DSW_H */
