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<!ELEMENT propmethod 182 ( argval* ) > 183 184<!ATTLIST propmethod 185 name CDATA #REQUIRED 186 version CDATA #REQUIRED 187 propname CDATA #REQUIRED 188 proptype CDATA #REQUIRED> 189<!-- 190 enum-method 191 192 This element describes the enumeration method used to 193 populate a composition of topo nodes for a given range of topology 194 nodes. 195 196 Its attributes are 197 198 name Name of the module exporting an enumeration method. 199 200 version Version of the libtopo API 201 202--> 203 204<!ELEMENT enum-method EMPTY > 205 206<!ATTLIST enum-method 207 name CDATA #REQUIRED 208 version CDATA #REQUIRED > 209 210<!-- 211 node 212 213 This element identifies a topology node instance. 214 215 Its attributes are 216 217 instance The instance number of the node 218 219--> 220 221<!ELEMENT node 222 ( propgroup*, dependents*, set*, enum-method* ) > 223 224<!ATTLIST node 225 instance CDATA #REQUIRED > 226 227<!-- 228 dependents 229 230 Ranges may have a number of "dependent" ranges, linked to 231 the original range hierarchically as children or as a list, siblings. 232 233 Its attribute is: 234 grouping children | siblings 235--> 236 237<!ELEMENT dependents 238 (( range | xi:include )+, set) > 239 240<!ATTLIST dependents 241 grouping ( children | siblings ) "children" #REQUIRED > 242 243<!-- 244 range 245 246 This element identifies a range of possible topology nodes. 247 248 Its attributes are 249 250 name The common name of all the possible topo nodes 251 252 min The smallest allowed instance number for an 253 actual topo node. 254 255 max The largest allowed instance number for an 256 actual topo node. 257--> 258 259<!ELEMENT range 260 ( enum-method?, propmap?, node*, propgroup*, dependents*, 261 set? ) > 262 263<!ATTLIST range 264 name CDATA #REQUIRED 265 min CDATA #REQUIRED 266 max CDATA #REQUIRED > 267 268<!-- 269 topology 270 271 This is the root-level for the scheme-specific topology 272 273 Its attributes are: 274 name topology name 275 scheme ( hc | dev ) 276--> 277 278<!ELEMENT topology 279 ((range* | xi:include*), set)> 280 281<!ATTLIST topology 282 name CDATA #REQUIRED 283 scheme (hc | dev) #REQUIRED > 284