1*0Sstevel@tonic-gate<?xml version="1.0" encoding="utf-8" ?>
2*0Sstevel@tonic-gate
3*0Sstevel@tonic-gate<!--
4*0Sstevel@tonic-gate    CDDL HEADER START
5*0Sstevel@tonic-gate
6*0Sstevel@tonic-gate    The contents of this file are subject to the terms of the
7*0Sstevel@tonic-gate    Common Development and Distribution License, Version 1.0 only
8*0Sstevel@tonic-gate    (the "License").  You may not use this file except in compliance
9*0Sstevel@tonic-gate    with the License.
10*0Sstevel@tonic-gate
11*0Sstevel@tonic-gate    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12*0Sstevel@tonic-gate    or http://www.opensolaris.org/os/licensing.
13*0Sstevel@tonic-gate    See the License for the specific language governing permissions
14*0Sstevel@tonic-gate    and limitations under the License.
15*0Sstevel@tonic-gate
16*0Sstevel@tonic-gate    When distributing Covered Code, include this CDDL HEADER in each
17*0Sstevel@tonic-gate    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18*0Sstevel@tonic-gate    If applicable, add the following below this CDDL HEADER, with the
19*0Sstevel@tonic-gate    fields enclosed by brackets "[]" replaced with your own identifying
20*0Sstevel@tonic-gate    information: Portions Copyright [yyyy] [name of copyright owner]
21*0Sstevel@tonic-gate
22*0Sstevel@tonic-gate    CDDL HEADER END
23*0Sstevel@tonic-gate
24*0Sstevel@tonic-gate   * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
25*0Sstevel@tonic-gate   * Use is subject to license terms.
26*0Sstevel@tonic-gate   *
27*0Sstevel@tonic-gate   * ident	"%Z%%M%	%I%	%E% SMI"
28*0Sstevel@tonic-gate   *
29*0Sstevel@tonic-gate   * Describes a storage configuration used by metassist(1M).
30*0Sstevel@tonic-gate   *
31*0Sstevel@tonic-gate   * See volume-config(4) for a detailed description of the syntax.
32*0Sstevel@tonic-gate   -->
33*0Sstevel@tonic-gate<!ELEMENT volume-config (diskset,disk*,slice*,hsp*,(concat|stripe)*,mirror*)>
34*0Sstevel@tonic-gate
35*0Sstevel@tonic-gate<!-- The existing disk set to use -->
36*0Sstevel@tonic-gate<!ELEMENT diskset EMPTY>
37*0Sstevel@tonic-gate<!ATTLIST diskset name CDATA #REQUIRED>
38*0Sstevel@tonic-gate
39*0Sstevel@tonic-gate<!--
40*0Sstevel@tonic-gate   *****************************************************************
41*0Sstevel@tonic-gate   *
42*0Sstevel@tonic-gate   * Disk definition
43*0Sstevel@tonic-gate   *
44*0Sstevel@tonic-gate   *****************************************************************
45*0Sstevel@tonic-gate   -->
46*0Sstevel@tonic-gate
47*0Sstevel@tonic-gate<!-- Describes a disk that should be added to the disk set -->
48*0Sstevel@tonic-gate<!ELEMENT disk EMPTY>
49*0Sstevel@tonic-gate
50*0Sstevel@tonic-gate<!-- The full name of the disk -->
51*0Sstevel@tonic-gate<!ATTLIST disk name CDATA #REQUIRED>
52*0Sstevel@tonic-gate
53*0Sstevel@tonic-gate<!--
54*0Sstevel@tonic-gate   *****************************************************************
55*0Sstevel@tonic-gate   *
56*0Sstevel@tonic-gate   * Slice/soft partition definitions
57*0Sstevel@tonic-gate   *
58*0Sstevel@tonic-gate   *****************************************************************
59*0Sstevel@tonic-gate   -->
60*0Sstevel@tonic-gate
61*0Sstevel@tonic-gate<!--
62*0Sstevel@tonic-gate   * Describes a newly-defined or existing slice.
63*0Sstevel@tonic-gate   *
64*0Sstevel@tonic-gate   * If existing, only the name is required.
65*0Sstevel@tonic-gate   *
66*0Sstevel@tonic-gate   * If newly-defined, the start sector and size are also required.
67*0Sstevel@tonic-gate   -->
68*0Sstevel@tonic-gate<!ELEMENT slice EMPTY>
69*0Sstevel@tonic-gate
70*0Sstevel@tonic-gate<!-- The full name of the slice -->
71*0Sstevel@tonic-gate<!ATTLIST slice name CDATA #REQUIRED>
72*0Sstevel@tonic-gate
73*0Sstevel@tonic-gate<!-- The starting sector for this slice -->
74*0Sstevel@tonic-gate<!ATTLIST slice startsector CDATA #IMPLIED>
75*0Sstevel@tonic-gate
76*0Sstevel@tonic-gate<!--
77*0Sstevel@tonic-gate   * The size of this slice in blocks or sectors.
78*0Sstevel@tonic-gate   -->
79*0Sstevel@tonic-gate<!ATTLIST slice sizeinblocks CDATA #IMPLIED>
80*0Sstevel@tonic-gate
81*0Sstevel@tonic-gate
82*0Sstevel@tonic-gate<!--
83*0Sstevel@tonic-gate   *****************************************************************
84*0Sstevel@tonic-gate   *
85*0Sstevel@tonic-gate   * HSP definition
86*0Sstevel@tonic-gate   *
87*0Sstevel@tonic-gate   *****************************************************************
88*0Sstevel@tonic-gate   -->
89*0Sstevel@tonic-gate
90*0Sstevel@tonic-gate<!--
91*0Sstevel@tonic-gate   * Describes a new or existing HSP
92*0Sstevel@tonic-gate   *
93*0Sstevel@tonic-gate   * The slices defined within will be added to this HSP.
94*0Sstevel@tonic-gate   -->
95*0Sstevel@tonic-gate<!ELEMENT hsp (slice*)>
96*0Sstevel@tonic-gate<!ATTLIST hsp name CDATA #REQUIRED>
97*0Sstevel@tonic-gate
98*0Sstevel@tonic-gate
99*0Sstevel@tonic-gate<!--
100*0Sstevel@tonic-gate   *****************************************************************
101*0Sstevel@tonic-gate   *
102*0Sstevel@tonic-gate   * Concat definition
103*0Sstevel@tonic-gate   *
104*0Sstevel@tonic-gate   *****************************************************************
105*0Sstevel@tonic-gate   -->
106*0Sstevel@tonic-gate
107*0Sstevel@tonic-gate<!--
108*0Sstevel@tonic-gate   * Describes a new or existing concat
109*0Sstevel@tonic-gate   *
110*0Sstevel@tonic-gate   * If existing, only the name is required.
111*0Sstevel@tonic-gate   *
112*0Sstevel@tonic-gate   * If new, the underlying slices and soft partitions are also
113*0Sstevel@tonic-gate   * required.  The HSP definition is optional.
114*0Sstevel@tonic-gate   -->
115*0Sstevel@tonic-gate<!ELEMENT concat (slice*,hsp?)>
116*0Sstevel@tonic-gate<!ATTLIST concat name CDATA #REQUIRED>
117*0Sstevel@tonic-gate
118*0Sstevel@tonic-gate<!--
119*0Sstevel@tonic-gate   *****************************************************************
120*0Sstevel@tonic-gate   *
121*0Sstevel@tonic-gate   * Stripe definition
122*0Sstevel@tonic-gate   *
123*0Sstevel@tonic-gate   *****************************************************************
124*0Sstevel@tonic-gate   -->
125*0Sstevel@tonic-gate
126*0Sstevel@tonic-gate<!--
127*0Sstevel@tonic-gate   * Describes a new or existing stripe
128*0Sstevel@tonic-gate   *
129*0Sstevel@tonic-gate   * If existing, only the name is required.
130*0Sstevel@tonic-gate   *
131*0Sstevel@tonic-gate   * If new, the underlying slices and soft partitions are also
132*0Sstevel@tonic-gate   * required.  The interlace and HSP definitions are optional.
133*0Sstevel@tonic-gate   -->
134*0Sstevel@tonic-gate<!ELEMENT stripe (slice*,hsp?)>
135*0Sstevel@tonic-gate<!ATTLIST stripe name CDATA #REQUIRED>
136*0Sstevel@tonic-gate
137*0Sstevel@tonic-gate<!--
138*0Sstevel@tonic-gate   * The interlace of this stripe, in the format <value><units>,
139*0Sstevel@tonic-gate   * where <units> is "BLOCKS", "KB", or "MB", and <value> is the
140*0Sstevel@tonic-gate   * multiplier of the units.
141*0Sstevel@tonic-gate   -->
142*0Sstevel@tonic-gate<!ATTLIST stripe interlace CDATA #IMPLIED>
143*0Sstevel@tonic-gate
144*0Sstevel@tonic-gate
145*0Sstevel@tonic-gate<!--
146*0Sstevel@tonic-gate   *****************************************************************
147*0Sstevel@tonic-gate   *
148*0Sstevel@tonic-gate   * Mirror definition
149*0Sstevel@tonic-gate   *
150*0Sstevel@tonic-gate   *****************************************************************
151*0Sstevel@tonic-gate   -->
152*0Sstevel@tonic-gate
153*0Sstevel@tonic-gate<!--
154*0Sstevel@tonic-gate   * Describes a new mirror
155*0Sstevel@tonic-gate   *
156*0Sstevel@tonic-gate   * The name of the mirror, and the underlying submirrors are
157*0Sstevel@tonic-gate   * required.  The remaining attributes are optional.
158*0Sstevel@tonic-gate   -->
159*0Sstevel@tonic-gate<!ELEMENT mirror ((concat|stripe)+)>
160*0Sstevel@tonic-gate<!ATTLIST mirror name CDATA #REQUIRED>
161*0Sstevel@tonic-gate<!ATTLIST mirror read (ROUNDROBIN|GEOMETRIC|FIRST) #IMPLIED>
162*0Sstevel@tonic-gate<!ATTLIST mirror write (PARALLEL|SERIAL) #IMPLIED>
163*0Sstevel@tonic-gate<!ATTLIST mirror passnum CDATA #IMPLIED>
164