1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 Copyright 2009 Sun Microsystems, Inc. All rights reserved.
4 Use is subject to license terms.
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.
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.
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]
28 Topology description DTD
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.
38 Topologies may be composed via the xi:include tag.
39 libtopo interfaces enforce that all composed topologies be of the
48 parse (xml|text)
"xml"
49 encoding CDATA #IMPLIED
50 xmlns:xi CDATA #FIXED
"http://www.w3.org/2001/XInclude"
57 xmlns:xi CDATA #FIXED
"http://www.w3.org/2001/XInclude"
60 <!-- Properties and property groups -->
65 This element is for a singly valued property within a property group.
69 name The name of this property.
71 type The data type for this property.
73 value The value for this property. Must match type
74 restriction of type attribute.
76 This is optional for array types
80 <!ELEMENT propval (propitem*)
>
84 type ( int32 | uint32 | int64 | uint64 |
85 string | fmri | int32_array | uint32_array |
86 int64_array | uint64_array | string_array |
87 fmri_array ) #REQUIRED
92 This element is an optional child element of propval and is used to
93 specify the values for array elements
97 value The value for this property. Must match type
98 restriction of type attribute.
102 <!ELEMENT propitem EMPTY
>
105 value CDATA #REQUIRED
>
111 This element is for a set of related properties on a topo node
112 It contains an optional stability element, as well as
113 zero or more property-containing elements.
117 name The name of this property group.
118 name-stability Stability level of the property group name
119 data-stability Stability level of the property names and
121 version Version of the propery group definition
126 ( propval*, propmethod* )
>
130 version CDATA #REQUIRED
131 name-stability ( Private | Standard | Stable | Evolving | Unstable |
132 External | Obsolete ) #REQUIRED
133 data-stability ( Private | Standard | Stable | Evolving | Unstable |
134 External | Obsolete ) #REQUIRED
>
138 This element is for associating ranges, nodes or property groups
139 according to a set type.
143 type The type of this property group set. 'product' is the
144 only set type currently supported.
145 setlist The list of set types.
150 ( range*, fac-enum?, propgroup*, facility*, set* )
>
153 type ( product ) #REQUIRED
154 setlist CDATA #REQUIRED
>
158 This element is for specifying an additional topo map file for
159 properties assigned to a given range.
163 name Name of map file
166 <!ELEMENT propmap EMPTY
>
169 name CDATA #REQUIRED
>
176 A propmethod argument. It has two attributes:
178 name The name of the argument.
179 type The data type of the argument.
180 value The value for this argument. Must match type
181 restriction of type attribute.
183 This attribute is optional for array types
186 <!ELEMENT argval (argitem*)
>
190 type ( int32 | uint32 | int64 | uint64 |
191 string | fmri | int32_array | uint32_array |
192 int64_array | uint64_array | string_array |
193 fmri_array ) #REQUIRED
199 This element is an optional child element of argval and is used to
200 specify the values for array elements
204 value The value for this property. Must match type
205 restriction of type attribute.
209 <!ELEMENT argitem EMPTY
>
212 value CDATA #REQUIRED
>
218 This element is for properties that can only be determined dynamically
223 name Name of the method
224 version Version of the method API
225 propname Name of the property to create
226 proptype Type of the property to create
227 mutable optional: default is false (0)
228 nonvolatile optional: default is false (0)
236 version CDATA #REQUIRED
237 propname CDATA #REQUIRED
238 proptype CDATA #REQUIRED
240 nonvolatile (
0|
1)
"0" >
245 This element describes the enumeration method used to
246 populate a composition of topo nodes for a given range of topology
251 name Name of the module exporting an enumeration method.
253 version Version of the libtopo API
257 <!ELEMENT enum-method EMPTY
>
259 <!ATTLIST enum-method
261 version CDATA #REQUIRED
>
266 This element identifies a topology node instance.
270 instance The instance number of the node
275 ( fac-enum?, facility*, propgroup*, set*, enum-method*, dependents? )
>
278 instance CDATA #REQUIRED
>
283 Ranges may have a number of "dependent" ranges, linked to
284 the original range hierarchically as children or as a list, siblings.
287 grouping children | siblings
291 (( range | xi:include )*, set*)
>
294 grouping ( children | siblings ) #REQUIRED
>
299 This element identifies a range of possible topology nodes.
303 name The common name of all the possible topo nodes
305 min The smallest allowed instance number for an
308 max The largest allowed instance number for an
313 ( enum-method?, propmap?, fac-enum?, facility*, node*, propgroup*, set*,
319 max CDATA #REQUIRED
>
324 This element identifies a single facility node instance
328 name The name of the facility node
330 type The type of facility node: either "sensor" or "indicator"
332 provider The name of the facility provider module that
333 implements the methods for this node or range
341 type (sensor | indicator) #REQUIRED
342 provider CDATA #REQUIRED
>
347 This element identifies a facility provider module that
348 implements a facility enumeration method for the enclosing
353 provider The name of the facility provider module that
354 implements the facility enumerator method for
355 the parent node or range
358 <!ELEMENT fac-enum EMPTY
>
360 <!ATTLIST fac-enum provider CDATA #REQUIRED
>
365 This is the root-level for the scheme-specific topology
373 ((range* | xi:include*), set*)
>
377 scheme (hc | dev) #REQUIRED
>