/*
* 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
* 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_DEV_H
#define _DSW_DEV_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* Definitions for kstats
*/
/*
* Bitmap macros
*/
/*
* Shadow types.
*/
/*
* Miscellaneous defines
*/
/*
* defines for _ii_nsc_io and _ii_write, used by kstats
*/
#define KS_NA 0
/*
* global kstats
*/
typedef struct _iigkstat_s {
/* static */
/* dynamic */
} iigkstat_t;
extern iigkstat_t iigkstat;
/*
* set-specific kstats
*/
typedef struct _ii_kstat_set_s {
extern ii_kstat_set_t ii_kstat_set;
/* Basic types */
#ifdef II_MULTIMULTI_TERABYTE
#else
#endif
/*
* OV_HEADER_VERSION
* 0 = original OV header version
* 1 = flags support
*/
/* Overflow disk volume header */
typedef struct _ii_doverflow_s {
/* Overflow volume in core structure */
typedef struct _ii_overflow_s {
/*
* logging of kstat_io
*/
#ifdef DISABLE_KSTATS
#else
}
if (II_SUCCESS(rc)) { \
} \
}
}
if (II_SUCCESS(rc)) { \
} \
}
#endif
} \
}
/*
* All kstat_io associated with a set. NOTE: only one mutex for all
* point back to the statmutex
*/
typedef struct _ii_kstat_info_s {
/*
* II device info structure
*/
typedef struct _ii_info_dev_s {
typedef struct _ii_info_s {
/* master */
} _ii_info_t;
/*
* Cluster and group linked lists
*/
typedef struct _ii_lstinfo_s {
typedef struct _ii_lsthead_s {
/*
* Flag set and clear macros and function.
*/
/* Reserve and release macros */
/* also used by ii_volume() volume identification, hence NONE & OVR */
/* are there multiple shadows of ip's master volume? */
typedef struct _ii_bmp_ops_s {
int, int *);
(ip, c, n)
/*
* State flags
*/
/*
* DSW file descriptor structure
*/
typedef struct ii_fd_s {
} ii_fd_t;
/*
* II buffer header
*/
typedef struct ii_buf_s {
} ii_buf_t;
#endif /* _KERNEL || _KMEMUSER */
/*
* Valid magic numbers in the bitmap volume header
*/
/*
* II_HEADER_VERSION
* 1 = original II header version
* 2 = Compact Dependent Shadows (DSW_TREEMAP)
* 3 = Persistance of throttle parameters
* 4 = add cluster & group information
* 5 = add time string to hold last modify time
*/
/*
* DSW bitmap volume header structure
*/
typedef struct ii_header_s {
/* II_HEADER_VERSION 2 */
/* II_HEADER_VERSION 3 */
/* II_HEADER_VERSION 4 */
/* II_HEADER_VERSION 5 */
} ii_header_t;
/*
* Overflow volume defines.
*/
#define II_2OVERFLOW(n) (-(n))
/* -tive node id's are in overflow volume */
#ifdef _SunOS_5_6
#else
#ifdef II_MULTIMULTI_TERABYTE
#else
#endif /* II_MULTIMULTI_TERABYTE */
#endif
#ifdef __cplusplus
}
#endif
#endif /* _DSW_DEV_H */