1<?xml version="1.0" encoding="UTF-8"?> 2<!-- 3 Copyright 2008 Sun Microsystems, Inc. All rights reserved. 4 Use is subject to license terms. 5 6 CDDL HEADER START 7 8 The contents of this file are subject to the terms of the 9 Common Development and Distribution License (the "License"). 10 You may not use this file except in compliance with the License. 11 12 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 13 or http://www.opensolaris.org/os/licensing. 14 See the License for the specific language governing permissions 15 and limitations under the License. 16 17 When distributing Covered Code, include this CDDL HEADER in each 18 file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19 If applicable, add the following below this CDDL HEADER, with the 20 fields enclosed by brackets "[]" replaced with your own identifying 21 information: Portions Copyright [yyyy] [name of copyright owner] 22 23 CDDL HEADER END 24 25 ident "%Z%%M% %I% %E% SMI" 26--> 27 28<!-- 29 Topology description DTD 30 31 Most attributes are string values (or an individual string from a 32 restricted set), but attributes with a specific type requirement are 33 noted in the comment describing the element. 34--> 35 36<!-- 37 XInclude support 38 39 Topologies may be composed via the xi:include tag. 40 libtopo(3LIB) interfaces enforce that all composed topologies be of the 41 same scheme. 42--> 43 44<!ELEMENT xi:include 45 (xi:fallback) > 46 47<!ATTLIST xi:include 48 href CDATA #REQUIRED 49 parse (xml|text) "xml" 50 encoding CDATA #IMPLIED 51 xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 52 > 53 54<!ELEMENT xi:fallback 55 ANY 56 > 57<!ATTLIST xi:fallback 58 xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 59 > 60 61<!-- Properties and property groups --> 62 63<!-- 64 propval 65 66 This element is for a singly valued property within a property group. 67 68 Its attributes are 69 70 name The name of this property. 71 72 type The data type for this property. 73 74 value The value for this property. Must match type 75 restriction of type attribute. 76--> 77 78<!ELEMENT propval EMPTY > 79 80<!ATTLIST propval 81 name CDATA #REQUIRED 82 type ( int32 | uint32 | int64 | uint64 | 83 string | fmri ) #REQUIRED 84 value CDATA #REQUIRED > 85 86<!-- 87 propgroup 88 89 This element is for a set of related properties on a topo node 90 It contains an optional stability element, as well as 91 zero or more property-containing elements. 92 93 Its attributes are 94 95 name The name of this property group. 96 name-stability Stability level of the property group name 97 data-stability Stability level of the property names and 98 content 99 version Version of the propery group definition 100 101--> 102 103<!ELEMENT propgroup 104 ( propval*, propmethod* ) > 105 106<!ATTLIST propgroup 107 name CDATA #REQUIRED 108 version CDATA #REQUIRED 109 name-stability ( Private | Standard | Stable | Evolving | Unstable | 110 External | Obsolete ) #REQUIRED 111 data-stability ( Private | Standard | Stable | Evolving | Unstable | 112 External | Obsolete ) #REQUIRED > 113 114<!-- 115 set 116 This element is for associating ranges, nodes or property groups 117 according to a set type. 118 119 Its attributes are 120 121 type The type of this property group set. 'product' is the 122 only set type currently supported. 123 setlist The list of set types. 124 125--> 126 127<!ELEMENT set 128 ( range*, propgroup* ) > 129 130<!ATTLIST set 131 type ( product ) #REQUIRED 132 setlist CDATA #REQUIRED > 133 134<!-- 135 propmap 136 This element is for specifying an additional topo map file for 137 properties assigned to a given range. 138 139 Its attributes are 140 141 name Name of map file 142--> 143 144<!ELEMENT propmap EMPTY > 145 146<!ATTLIST propmap 147 name CDATA #REQUIRED > 148 149<!-- Methods --> 150 151<!-- 152 argval 153 154 A propmethod argument. It has two attributes: 155 156 name The name of the argument. 157 type The data type of the argument. 158 value The value of the arg 159--> 160 161<!ELEMENT argval EMPTY> 162 163<!ATTLIST argval 164 name CDATA #REQUIRED 165 type CDATA #REQUIRED 166 value CDATA #REQUIRED > 167 168<!-- 169 propmethod 170 171 This element is for properties that can only be determined dynamically 172 from a plugin. 173 174 Its attributes are 175 176 name Name of the method 177 version Version of the method API 178 propname Name of the property to create 179 proptype Type of the property to create 180--> 181 182<!ELEMENT propmethod 183 ( argval* ) > 184 185<!ATTLIST propmethod 186 name CDATA #REQUIRED 187 version CDATA #REQUIRED 188 propname CDATA #REQUIRED 189 proptype CDATA #REQUIRED> 190 191<!-- 192 enum-method 193 194 This element describes the enumeration method used to 195 populate a composition of topo nodes for a given range of topology 196 nodes. 197 198 Its attributes are 199 200 name Name of the module exporting an enumeration method. 201 202 version Version of the libtopo API 203 204--> 205 206<!ELEMENT enum-method EMPTY > 207 208<!ATTLIST enum-method 209 name CDATA #REQUIRED 210 version CDATA #REQUIRED > 211 212<!-- 213 node 214 215 This element identifies a topology node instance. 216 217 Its attributes are 218 219 instance The instance number of the node 220 221--> 222 223<!ELEMENT node 224 ( propgroup*, dependents*, set*, enum-method* ) > 225 226<!ATTLIST node 227 instance CDATA #REQUIRED > 228 229<!-- 230 dependents 231 232 Ranges may have a number of "dependent" ranges, linked to 233 the original range hierarchically as children or as a list, siblings. 234 235 Its attribute is: 236 grouping children | siblings 237--> 238 239<!ELEMENT dependents 240 (( range | xi:include )*, set*) > 241 242<!ATTLIST dependents 243 grouping ( children | siblings ) #REQUIRED > 244 245<!-- 246 range 247 248 This element identifies a range of possible topology nodes. 249 250 Its attributes are 251 252 name The common name of all the possible topo nodes 253 254 min The smallest allowed instance number for an 255 actual topo node. 256 257 max The largest allowed instance number for an 258 actual topo node. 259--> 260 261<!ELEMENT range 262 ( enum-method?, propmap?, node*, propgroup*, set*, dependents* ) > 263 264<!ATTLIST range 265 name CDATA #REQUIRED 266 min CDATA #REQUIRED 267 max CDATA #REQUIRED > 268 269<!-- 270 topology 271 272 This is the root-level for the scheme-specific topology 273 274 Its attributes are: 275 name topology name 276 scheme ( hc | dev ) 277--> 278 279<!ELEMENT topology 280 ((range* | xi:include*), set*)> 281 282<!ATTLIST topology 283 name CDATA #REQUIRED 284 scheme (hc | dev) #REQUIRED > 285