1 1414 cindi <?xml version="1.0" encoding="UTF-8"?> 2 1414 cindi <!-- 3 8526 Robert Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4 1414 cindi Use is subject to license terms. 5 1414 cindi 6 1414 cindi CDDL HEADER START 7 1414 cindi 8 1414 cindi The contents of this file are subject to the terms of the 9 3062 cindi Common Development and Distribution License (the "License"). 10 3062 cindi You may not use this file except in compliance with the License. 11 1414 cindi 12 1414 cindi You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 13 1414 cindi or http://www.opensolaris.org/os/licensing. 14 1414 cindi See the License for the specific language governing permissions 15 1414 cindi and limitations under the License. 16 1414 cindi 17 1414 cindi When distributing Covered Code, include this CDDL HEADER in each 18 1414 cindi file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19 1414 cindi If applicable, add the following below this CDDL HEADER, with the 20 1414 cindi fields enclosed by brackets "[]" replaced with your own identifying 21 1414 cindi information: Portions Copyright [yyyy] [name of copyright owner] 22 1414 cindi 23 1414 cindi CDDL HEADER END 24 1414 cindi 25 1414 cindi --> 26 1414 cindi 27 1414 cindi <!-- 28 1414 cindi Topology description DTD 29 1414 cindi 30 1414 cindi Most attributes are string values (or an individual string from a 31 1414 cindi restricted set), but attributes with a specific type requirement are 32 1414 cindi noted in the comment describing the element. 33 1414 cindi --> 34 1414 cindi 35 1414 cindi <!-- 36 1414 cindi XInclude support 37 1414 cindi 38 1414 cindi Topologies may be composed via the xi:include tag. 39 10234 Robert libtopo interfaces enforce that all composed topologies be of the 40 1414 cindi same scheme. 41 1414 cindi --> 42 1414 cindi 43 1414 cindi <!ELEMENT xi:include 44 1414 cindi (xi:fallback) > 45 1414 cindi 46 1414 cindi <!ATTLIST xi:include 47 1414 cindi href CDATA #REQUIRED 48 1414 cindi parse (xml|text) "xml" 49 1414 cindi encoding CDATA #IMPLIED 50 1414 cindi xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 51 1414 cindi > 52 1414 cindi 53 1414 cindi <!ELEMENT xi:fallback 54 1414 cindi ANY 55 1414 cindi > 56 1414 cindi <!ATTLIST xi:fallback 57 1414 cindi xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 58 1414 cindi > 59 1414 cindi 60 1414 cindi <!-- Properties and property groups --> 61 1414 cindi 62 1414 cindi <!-- 63 5068 robj propval 64 1414 cindi 65 5068 robj This element is for a singly valued property within a property group. 66 1414 cindi 67 5068 robj Its attributes are 68 1414 cindi 69 5068 robj name The name of this property. 70 1414 cindi 71 5068 robj type The data type for this property. 72 10234 Robert 73 5068 robj value The value for this property. Must match type 74 5068 robj restriction of type attribute. 75 10234 Robert 76 10234 Robert This is optional for array types 77 10234 Robert 78 1414 cindi --> 79 1414 cindi 80 10234 Robert <!ELEMENT propval (propitem*) > 81 1414 cindi 82 1414 cindi <!ATTLIST propval 83 1414 cindi name CDATA #REQUIRED 84 1414 cindi type ( int32 | uint32 | int64 | uint64 | 85 10234 Robert string | fmri | int32_array | uint32_array | 86 10234 Robert int64_array | uint64_array | string_array | 87 10234 Robert fmri_array ) #REQUIRED 88 10234 Robert value CDATA "" > 89 10234 Robert <!-- 90 10234 Robert propitem 91 10234 Robert 92 10234 Robert This element is an optional child element of propval and is used to 93 10234 Robert specify the values for array elements 94 10234 Robert 95 10234 Robert Its attributes are 96 10234 Robert 97 10234 Robert value The value for this property. Must match type 98 10234 Robert restriction of type attribute. 99 10234 Robert 100 10234 Robert --> 101 10234 Robert 102 10234 Robert <!ELEMENT propitem EMPTY > 103 10234 Robert 104 10234 Robert <!ATTLIST propitem 105 6869 eschrock value CDATA #REQUIRED > 106 10234 Robert 107 1414 cindi 108 1414 cindi <!-- 109 1414 cindi propgroup 110 1414 cindi 111 5068 robj This element is for a set of related properties on a topo node 112 5068 robj It contains an optional stability element, as well as 113 5068 robj zero or more property-containing elements. 114 1414 cindi 115 5068 robj Its attributes are 116 1414 cindi 117 5068 robj name The name of this property group. 118 5068 robj name-stability Stability level of the property group name 119 5068 robj data-stability Stability level of the property names and 120 5068 robj content 121 5068 robj version Version of the propery group definition 122 1414 cindi 123 1414 cindi --> 124 1414 cindi 125 1414 cindi <!ELEMENT propgroup 126 5068 robj ( propval*, propmethod* ) > 127 1414 cindi 128 1414 cindi <!ATTLIST propgroup 129 3062 cindi name CDATA #REQUIRED 130 3062 cindi version CDATA #REQUIRED 131 3062 cindi name-stability ( Private | Standard | Stable | Evolving | Unstable | 132 3062 cindi External | Obsolete ) #REQUIRED 133 3062 cindi data-stability ( Private | Standard | Stable | Evolving | Unstable | 134 3062 cindi External | Obsolete ) #REQUIRED > 135 1414 cindi 136 5068 robj <!-- 137 6070 robj set 138 6070 robj This element is for associating ranges, nodes or property groups 139 6070 robj according to a set type. 140 5068 robj 141 5068 robj Its attributes are 142 5068 robj 143 5068 robj type The type of this property group set. 'product' is the 144 5068 robj only set type currently supported. 145 6070 robj setlist The list of set types. 146 5068 robj 147 5068 robj --> 148 5068 robj 149 6070 robj <!ELEMENT set 150 7269 eschrock ( range*, fac-enum?, propgroup*, facility*, set* ) > 151 5068 robj 152 6070 robj <!ATTLIST set 153 5068 robj type ( product ) #REQUIRED 154 6070 robj setlist CDATA #REQUIRED > 155 5068 robj 156 5068 robj <!-- 157 5068 robj propmap 158 5068 robj This element is for specifying an additional topo map file for 159 5068 robj properties assigned to a given range. 160 5068 robj 161 5068 robj Its attributes are 162 5068 robj 163 5068 robj name Name of map file 164 5068 robj --> 165 5068 robj 166 5068 robj <!ELEMENT propmap EMPTY > 167 5068 robj 168 5068 robj <!ATTLIST propmap 169 5068 robj name CDATA #REQUIRED > 170 5068 robj 171 1414 cindi <!-- Methods --> 172 1414 cindi 173 1414 cindi <!-- 174 5068 robj argval 175 5068 robj 176 5068 robj A propmethod argument. It has two attributes: 177 5068 robj 178 5068 robj name The name of the argument. 179 5068 robj type The data type of the argument. 180 10234 Robert value The value for this argument. Must match type 181 10234 Robert restriction of type attribute. 182 10234 Robert 183 10234 Robert This attribute is optional for array types 184 5068 robj --> 185 5068 robj 186 10234 Robert <!ELEMENT argval (argitem*) > 187 5068 robj 188 5068 robj <!ATTLIST argval 189 5068 robj name CDATA #REQUIRED 190 10234 Robert type ( int32 | uint32 | int64 | uint64 | 191 10234 Robert string | fmri | int32_array | uint32_array | 192 10234 Robert int64_array | uint64_array | string_array | 193 10234 Robert fmri_array ) #REQUIRED 194 10234 Robert value CDATA ""> 195 10234 Robert 196 10234 Robert <!-- 197 10234 Robert argitem 198 10234 Robert 199 10234 Robert This element is an optional child element of argval and is used to 200 10234 Robert specify the values for array elements 201 10234 Robert 202 10234 Robert Its attributes are 203 10234 Robert 204 10234 Robert value The value for this property. Must match type 205 10234 Robert restriction of type attribute. 206 10234 Robert 207 10234 Robert --> 208 10234 Robert 209 10234 Robert <!ELEMENT argitem EMPTY > 210 10234 Robert 211 10234 Robert <!ATTLIST argitem 212 10234 Robert value CDATA #REQUIRED > 213 10234 Robert 214 5068 robj 215 5068 robj <!-- 216 5068 robj propmethod 217 5068 robj 218 5068 robj This element is for properties that can only be determined dynamically 219 5068 robj from a plugin. 220 5068 robj 221 5068 robj Its attributes are 222 5068 robj 223 5068 robj name Name of the method 224 5068 robj version Version of the method API 225 5068 robj propname Name of the property to create 226 5068 robj proptype Type of the property to create 227 7243 robj mutable optional: default is false (0) 228 8526 Robert nonvolatile optional: default is false (0) 229 6869 eschrock --> 230 5068 robj 231 5068 robj <!ELEMENT propmethod 232 5068 robj ( argval* ) > 233 5068 robj 234 5068 robj <!ATTLIST propmethod 235 5068 robj name CDATA #REQUIRED 236 5068 robj version CDATA #REQUIRED 237 5068 robj propname CDATA #REQUIRED 238 7243 robj proptype CDATA #REQUIRED 239 8526 Robert mutable (0|1) "0" 240 8526 Robert nonvolatile (0|1) "0" > 241 6869 eschrock 242 5068 robj <!-- 243 1414 cindi enum-method 244 1414 cindi 245 5068 robj This element describes the enumeration method used to 246 5068 robj populate a composition of topo nodes for a given range of topology 247 5068 robj nodes. 248 1414 cindi 249 5068 robj Its attributes are 250 1414 cindi 251 5068 robj name Name of the module exporting an enumeration method. 252 1414 cindi 253 5068 robj version Version of the libtopo API 254 1414 cindi 255 1414 cindi --> 256 1414 cindi 257 3062 cindi <!ELEMENT enum-method EMPTY > 258 1414 cindi 259 1414 cindi <!ATTLIST enum-method 260 1414 cindi name CDATA #REQUIRED 261 1414 cindi version CDATA #REQUIRED > 262 1414 cindi 263 1414 cindi <!-- 264 1414 cindi node 265 1414 cindi 266 5068 robj This element identifies a topology node instance. 267 1414 cindi 268 5068 robj Its attributes are 269 1414 cindi 270 5068 robj instance The instance number of the node 271 1414 cindi 272 1414 cindi --> 273 1414 cindi 274 1414 cindi <!ELEMENT node 275 7243 robj ( fac-enum?, facility*, propgroup*, set*, enum-method*, dependents? ) > 276 1414 cindi 277 1414 cindi <!ATTLIST node 278 5068 robj instance CDATA #REQUIRED > 279 1414 cindi 280 1414 cindi <!-- 281 1414 cindi dependents 282 1414 cindi 283 1414 cindi Ranges may have a number of "dependent" ranges, linked to 284 5068 robj the original range hierarchically as children or as a list, siblings. 285 1414 cindi 286 1414 cindi Its attribute is: 287 5068 robj grouping children | siblings 288 1414 cindi --> 289 1414 cindi 290 1414 cindi <!ELEMENT dependents 291 6869 eschrock (( range | xi:include )*, set*) > 292 1414 cindi 293 1414 cindi <!ATTLIST dependents 294 6869 eschrock grouping ( children | siblings ) #REQUIRED > 295 1414 cindi 296 1414 cindi <!-- 297 1414 cindi range 298 1414 cindi 299 1414 cindi This element identifies a range of possible topology nodes. 300 1414 cindi 301 1414 cindi Its attributes are 302 1414 cindi 303 1414 cindi name The common name of all the possible topo nodes 304 1414 cindi 305 1414 cindi min The smallest allowed instance number for an 306 1414 cindi actual topo node. 307 1414 cindi 308 1414 cindi max The largest allowed instance number for an 309 1414 cindi actual topo node. 310 1414 cindi --> 311 1414 cindi 312 1414 cindi <!ELEMENT range 313 7243 robj ( enum-method?, propmap?, fac-enum?, facility*, node*, propgroup*, set*, 314 7243 robj dependents* ) > 315 1414 cindi 316 1414 cindi <!ATTLIST range 317 1414 cindi name CDATA #REQUIRED 318 1414 cindi min CDATA #REQUIRED 319 1414 cindi max CDATA #REQUIRED > 320 7243 robj 321 7243 robj <!-- 322 7243 robj facility 323 7243 robj 324 7243 robj This element identifies a single facility node instance 325 7243 robj 326 7243 robj Its attributes are 327 7243 robj 328 7243 robj name The name of the facility node 329 7243 robj 330 7243 robj type The type of facility node: either "sensor" or "indicator" 331 7243 robj 332 7243 robj provider The name of the facility provider module that 333 7243 robj implements the methods for this node or range 334 7243 robj --> 335 7243 robj 336 7243 robj <!ELEMENT facility 337 7243 robj ( propgroup* ) > 338 7243 robj 339 7243 robj <!ATTLIST facility 340 7243 robj name CDATA #REQUIRED 341 7243 robj type (sensor | indicator) #REQUIRED 342 7243 robj provider CDATA #REQUIRED > 343 7243 robj 344 7243 robj <!-- 345 7243 robj fac-enum 346 7243 robj 347 7243 robj This element identifies a facility provider module that 348 7243 robj implements a facility enumeration method for the enclosing 349 7243 robj node or range. 350 7243 robj 351 7243 robj Its attributes are 352 7243 robj 353 7243 robj provider The name of the facility provider module that 354 7243 robj implements the facility enumerator method for 355 7243 robj the parent node or range 356 7243 robj --> 357 7243 robj 358 7243 robj <!ELEMENT fac-enum EMPTY > 359 7243 robj 360 7243 robj <!ATTLIST fac-enum provider CDATA #REQUIRED > 361 1414 cindi 362 1414 cindi <!-- 363 1414 cindi topology 364 1414 cindi 365 1414 cindi This is the root-level for the scheme-specific topology 366 1414 cindi 367 1414 cindi Its attributes are: 368 1414 cindi name topology name 369 5068 robj scheme ( hc | dev ) 370 1414 cindi --> 371 1414 cindi 372 1414 cindi <!ELEMENT topology 373 6869 eschrock ((range* | xi:include*), set*)> 374 1414 cindi 375 1414 cindi <!ATTLIST topology 376 1414 cindi name CDATA #REQUIRED 377 1414 cindi scheme (hc | dev) #REQUIRED > 378