1<?xml version="1.0" encoding="UTF-8"?> 2<!-- 3 Copyright 2009 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--> 26 27<!-- 28 Topology description DTD 29 30 Most attributes are string values (or an individual string from a 31 restricted set), but attributes with a specific type requirement are 32 noted in the comment describing the element. 33--> 34 35<!-- 36 XInclude support 37 38 Topologies may be composed via the xi:include tag. 39 libtopo(3LIB) interfaces enforce that all composed topologies be of the 40 same scheme. 41--> 42 43<!ELEMENT xi:include 44 (xi:fallback) > 45 46<!ATTLIST xi:include 47 href CDATA #REQUIRED 48 parse (xml|text) "xml" 49 encoding CDATA #IMPLIED 50 xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 51 > 52 53<!ELEMENT xi:fallback 54 ANY 55 > 56<!ATTLIST xi:fallback 57 xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 58 > 59 60<!-- Properties and property groups --> 61 62<!-- 63 propval 64 65 This element is for a singly valued property within a property group. 66 67 Its attributes are 68 69 name The name of this property. 70 71 type The data type for this property. 72 73 value The value for this property. Must match type 74 restriction of type attribute. 75--> 76 77<!ELEMENT propval EMPTY > 78 79<!ATTLIST propval 80 name CDATA #REQUIRED 81 type ( int32 | uint32 | int64 | uint64 | 82 string | fmri ) #REQUIRED 83 value CDATA #REQUIRED > 84 85<!-- 86 propgroup 87 88 This element is for a set of related properties on a topo node 89 It contains an optional stability element, as well as 90 zero or more property-containing elements. 91 92 Its attributes are 93 94 name The name of this property group. 95 name-stability Stability level of the property group name 96 data-stability Stability level of the property names and 97 content 98 version Version of the propery group definition 99 100--> 101 102<!ELEMENT propgroup 103 ( propval*, propmethod* ) > 104 105<!ATTLIST propgroup 106 name CDATA #REQUIRED 107 version CDATA #REQUIRED 108 name-stability ( Private | Standard | Stable | Evolving | Unstable | 109 External | Obsolete ) #REQUIRED 110 data-stability ( Private | Standard | Stable | Evolving | Unstable | 111 External | Obsolete ) #REQUIRED > 112 113<!-- 114 set 115 This element is for associating ranges, nodes or property groups 116 according to a set type. 117 118 Its attributes are 119 120 type The type of this property group set. 'product' is the 121 only set type currently supported. 122 setlist The list of set types. 123 124--> 125 126<!ELEMENT set 127 ( range*, fac-enum?, propgroup*, facility*, set* ) > 128 129<!ATTLIST set 130 type ( product ) #REQUIRED 131 setlist CDATA #REQUIRED > 132 133<!-- 134 propmap 135 This element is for specifying an additional topo map file for 136 properties assigned to a given range. 137 138 Its attributes are 139 140 name Name of map file 141--> 142 143<!ELEMENT propmap EMPTY > 144 145<!ATTLIST propmap 146 name CDATA #REQUIRED > 147 148<!-- Methods --> 149 150<!-- 151 argval 152 153 A propmethod argument. It has two attributes: 154 155 name The name of the argument. 156 type The data type of the argument. 157 value The value of the arg 158--> 159 160<!ELEMENT argval EMPTY> 161 162<!ATTLIST argval 163 name CDATA #REQUIRED 164 type CDATA #REQUIRED 165 value CDATA #REQUIRED > 166 167<!-- 168 propmethod 169 170 This element is for properties that can only be determined dynamically 171 from a plugin. 172 173 Its attributes are 174 175 name Name of the method 176 version Version of the method API 177 propname Name of the property to create 178 proptype Type of the property to create 179 mutable optional: default is false (0) 180 nonvolatile optional: default is false (0) 181--> 182 183<!ELEMENT propmethod 184 ( argval* ) > 185 186<!ATTLIST propmethod 187 name CDATA #REQUIRED 188 version CDATA #REQUIRED 189 propname CDATA #REQUIRED 190 proptype CDATA #REQUIRED 191 mutable (0|1) "0" 192 nonvolatile (0|1) "0" > 193 194<!-- 195 enum-method 196 197 This element describes the enumeration method used to 198 populate a composition of topo nodes for a given range of topology 199 nodes. 200 201 Its attributes are 202 203 name Name of the module exporting an enumeration method. 204 205 version Version of the libtopo API 206 207--> 208 209<!ELEMENT enum-method EMPTY > 210 211<!ATTLIST enum-method 212 name CDATA #REQUIRED 213 version CDATA #REQUIRED > 214 215<!-- 216 node 217 218 This element identifies a topology node instance. 219 220 Its attributes are 221 222 instance The instance number of the node 223 224--> 225 226<!ELEMENT node 227 ( fac-enum?, facility*, propgroup*, set*, enum-method*, dependents? ) > 228 229<!ATTLIST node 230 instance CDATA #REQUIRED > 231 232<!-- 233 dependents 234 235 Ranges may have a number of "dependent" ranges, linked to 236 the original range hierarchically as children or as a list, siblings. 237 238 Its attribute is: 239 grouping children | siblings 240--> 241 242<!ELEMENT dependents 243 (( range | xi:include )*, set*) > 244 245<!ATTLIST dependents 246 grouping ( children | siblings ) #REQUIRED > 247 248<!-- 249 range 250 251 This element identifies a range of possible topology nodes. 252 253 Its attributes are 254 255 name The common name of all the possible topo nodes 256 257 min The smallest allowed instance number for an 258 actual topo node. 259 260 max The largest allowed instance number for an 261 actual topo node. 262--> 263 264<!ELEMENT range 265 ( enum-method?, propmap?, fac-enum?, facility*, node*, propgroup*, set*, 266 dependents* ) > 267 268<!ATTLIST range 269 name CDATA #REQUIRED 270 min CDATA #REQUIRED 271 max CDATA #REQUIRED > 272 273<!-- 274 facility 275 276 This element identifies a single facility node instance 277 278 Its attributes are 279 280 name The name of the facility node 281 282 type The type of facility node: either "sensor" or "indicator" 283 284 provider The name of the facility provider module that 285 implements the methods for this node or range 286--> 287 288<!ELEMENT facility 289 ( propgroup* ) > 290 291<!ATTLIST facility 292 name CDATA #REQUIRED 293 type (sensor | indicator) #REQUIRED 294 provider CDATA #REQUIRED > 295 296<!-- 297 fac-enum 298 299 This element identifies a facility provider module that 300 implements a facility enumeration method for the enclosing 301 node or range. 302 303 Its attributes are 304 305 provider The name of the facility provider module that 306 implements the facility enumerator method for 307 the parent node or range 308--> 309 310<!ELEMENT fac-enum EMPTY > 311 312<!ATTLIST fac-enum provider CDATA #REQUIRED > 313 314<!-- 315 topology 316 317 This is the root-level for the scheme-specific topology 318 319 Its attributes are: 320 name topology name 321 scheme ( hc | dev ) 322--> 323 324<!ELEMENT topology 325 ((range* | xi:include*), set*)> 326 327<!ATTLIST topology 328 name CDATA #REQUIRED 329 scheme (hc | dev) #REQUIRED > 330