xref: /titanic_44/usr/src/lib/fm/topo/maps/common/topology.dtd.1 (revision 88045cff0aae4ed8823cd0989168e8f56927f83e)
10eb822a1Scindi<?xml version="1.0" encoding="UTF-8"?>
20eb822a1Scindi<!--
3e5dcf7beSRobert Johnston Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
40eb822a1Scindi Use is subject to license terms.
50eb822a1Scindi
60eb822a1Scindi CDDL HEADER START
70eb822a1Scindi
80eb822a1Scindi The contents of this file are subject to the terms of the
90eb822a1Scindi Common Development and Distribution License (the "License").
100eb822a1Scindi You may not use this file except in compliance with the License.
110eb822a1Scindi
120eb822a1Scindi You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
130eb822a1Scindi or http://www.opensolaris.org/os/licensing.
140eb822a1Scindi See the License for the specific language governing permissions
150eb822a1Scindi and limitations under the License.
160eb822a1Scindi
170eb822a1Scindi When distributing Covered Code, include this CDDL HEADER in each
180eb822a1Scindi file and include the License file at usr/src/OPENSOLARIS.LICENSE.
190eb822a1Scindi If applicable, add the following below this CDDL HEADER, with the
200eb822a1Scindi fields enclosed by brackets "[]" replaced with your own identifying
210eb822a1Scindi information: Portions Copyright [yyyy] [name of copyright owner]
220eb822a1Scindi
230eb822a1Scindi CDDL HEADER END
240eb822a1Scindi
250eb822a1Scindi-->
260eb822a1Scindi
270eb822a1Scindi<!--
280eb822a1Scindi  Topology description DTD
290eb822a1Scindi
300eb822a1Scindi    Most attributes are string values (or an individual string from a
310eb822a1Scindi    restricted set), but attributes with a specific type requirement are
320eb822a1Scindi    noted in the comment describing the element.
330eb822a1Scindi-->
340eb822a1Scindi
350eb822a1Scindi<!--
360eb822a1Scindi  XInclude support
370eb822a1Scindi
380eb822a1Scindi    Topologies may be composed via the xi:include tag.
39*88045cffSRobert Johnston    libtopo interfaces enforce that all composed topologies be of the
400eb822a1Scindi    same scheme.
410eb822a1Scindi-->
420eb822a1Scindi
430eb822a1Scindi<!ELEMENT xi:include
440eb822a1Scindi	(xi:fallback) >
450eb822a1Scindi
460eb822a1Scindi<!ATTLIST xi:include
470eb822a1Scindi  href CDATA #REQUIRED
480eb822a1Scindi  parse (xml|text) "xml"
490eb822a1Scindi  encoding CDATA #IMPLIED
500eb822a1Scindi  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
510eb822a1Scindi  >
520eb822a1Scindi
530eb822a1Scindi<!ELEMENT xi:fallback
540eb822a1Scindi  ANY
550eb822a1Scindi  >
560eb822a1Scindi<!ATTLIST xi:fallback
570eb822a1Scindi  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
580eb822a1Scindi  >
590eb822a1Scindi
600eb822a1Scindi<!-- Properties and property groups -->
610eb822a1Scindi
620eb822a1Scindi<!--
630eb822a1Scindi  propval
640eb822a1Scindi
654557a2a1Srobj 	This element is for a singly valued property within a property group.
660eb822a1Scindi
670eb822a1Scindi	Its attributes are
680eb822a1Scindi
690eb822a1Scindi		name	The name of this property.
700eb822a1Scindi
710eb822a1Scindi		type	The data type for this property.
720eb822a1Scindi
730eb822a1Scindi		value	The value for this property.  Must match type
740eb822a1Scindi			restriction of type attribute.
75*88045cffSRobert Johnston
76*88045cffSRobert Johnston			This is optional for array types
77*88045cffSRobert Johnston
780eb822a1Scindi-->
790eb822a1Scindi
80*88045cffSRobert Johnston<!ELEMENT propval (propitem*) >
810eb822a1Scindi
820eb822a1Scindi<!ATTLIST propval
830eb822a1Scindi	name		CDATA #REQUIRED
840eb822a1Scindi	type		( int32 | uint32 | int64 | uint64 |
85*88045cffSRobert Johnston			  string | fmri | int32_array | uint32_array |
86*88045cffSRobert Johnston			  int64_array | uint64_array | string_array |
87*88045cffSRobert Johnston			  fmri_array ) #REQUIRED
88*88045cffSRobert Johnston	value		CDATA "" >
89*88045cffSRobert Johnston<!--
90*88045cffSRobert Johnston  propitem
91*88045cffSRobert Johnston
92*88045cffSRobert Johnston 	This element is an optional child element of propval and is used to
93*88045cffSRobert Johnston	specify the values for array elements
94*88045cffSRobert Johnston
95*88045cffSRobert Johnston	Its attributes are
96*88045cffSRobert Johnston
97*88045cffSRobert Johnston		value	The value for this property.  Must match type
98*88045cffSRobert Johnston			restriction of type attribute.
99*88045cffSRobert Johnston
100*88045cffSRobert Johnston-->
101*88045cffSRobert Johnston
102*88045cffSRobert Johnston<!ELEMENT propitem EMPTY >
103*88045cffSRobert Johnston
104*88045cffSRobert Johnston<!ATTLIST propitem
105940d71d2Seschrock	value		CDATA #REQUIRED >
1060eb822a1Scindi
107*88045cffSRobert Johnston
1080eb822a1Scindi<!--
1090eb822a1Scindi  propgroup
1100eb822a1Scindi
1110eb822a1Scindi	This element is for a set of related properties on a topo node
1120eb822a1Scindi	It contains an optional stability element, as well as
1130eb822a1Scindi	zero or more property-containing elements.
1140eb822a1Scindi
1150eb822a1Scindi	Its attributes are
1160eb822a1Scindi
1170eb822a1Scindi		name		The name of this property group.
1180eb822a1Scindi		name-stability	Stability level of the property group name
1194557a2a1Srobj		data-stability	Stability level of the property names and
1204557a2a1Srobj				content
1210eb822a1Scindi		version		Version of the propery group definition
1220eb822a1Scindi
1230eb822a1Scindi-->
1240eb822a1Scindi
1250eb822a1Scindi<!ELEMENT propgroup
1264557a2a1Srobj	( propval*, propmethod* ) >
1270eb822a1Scindi
1280eb822a1Scindi<!ATTLIST propgroup
1290eb822a1Scindi	name		CDATA #REQUIRED
1300eb822a1Scindi	version		CDATA #REQUIRED
1310eb822a1Scindi	name-stability	( Private | Standard | Stable | Evolving | Unstable |
1320eb822a1Scindi                        External | Obsolete ) #REQUIRED
1330eb822a1Scindi	data-stability	( Private | Standard | Stable | Evolving | Unstable |
1340eb822a1Scindi                        External | Obsolete ) #REQUIRED >
1350eb822a1Scindi
1364557a2a1Srobj<!--
1372eeaed14Srobj  set
1382eeaed14Srobj	This element is for associating ranges, nodes or property groups
1392eeaed14Srobj	according to a set type.
1404557a2a1Srobj
1414557a2a1Srobj	Its attributes are
1424557a2a1Srobj
1434557a2a1Srobj		type	The type of this property group set.  'product' is the
1444557a2a1Srobj			only set type currently supported.
1452eeaed14Srobj		setlist	The list of set types.
1464557a2a1Srobj
1474557a2a1Srobj-->
1484557a2a1Srobj
1492eeaed14Srobj<!ELEMENT set
150d91236feSeschrock	 ( range*, fac-enum?, propgroup*, facility*, set* ) >
1514557a2a1Srobj
1522eeaed14Srobj<!ATTLIST set
1534557a2a1Srobj	type	( product ) #REQUIRED
1542eeaed14Srobj	setlist	CDATA #REQUIRED >
1554557a2a1Srobj
1564557a2a1Srobj<!--
1574557a2a1Srobj  propmap
1584557a2a1Srobj	This element is for specifying an additional topo map file for
1594557a2a1Srobj	properties assigned to a given range.
1604557a2a1Srobj
1614557a2a1Srobj	Its attributes are
1624557a2a1Srobj
1634557a2a1Srobj		name		Name of map file
1644557a2a1Srobj-->
1654557a2a1Srobj
1664557a2a1Srobj<!ELEMENT propmap EMPTY >
1674557a2a1Srobj
1684557a2a1Srobj<!ATTLIST propmap
1694557a2a1Srobj	name		CDATA #REQUIRED >
1704557a2a1Srobj
1710eb822a1Scindi<!-- Methods -->
1720eb822a1Scindi
1730eb822a1Scindi<!--
1744557a2a1Srobj  argval
1754557a2a1Srobj
1764557a2a1Srobj	A propmethod argument. It has two attributes:
1774557a2a1Srobj
1784557a2a1Srobj		name    The name of the argument.
1794557a2a1Srobj		type    The data type of the argument.
180*88045cffSRobert Johnston		value	The value for this argument.  Must match type
181*88045cffSRobert Johnston			restriction of type attribute.
182*88045cffSRobert Johnston
183*88045cffSRobert Johnston			This attribute is optional for array types
1844557a2a1Srobj-->
1854557a2a1Srobj
186*88045cffSRobert Johnston<!ELEMENT argval (argitem*) >
1874557a2a1Srobj
1884557a2a1Srobj<!ATTLIST argval
1894557a2a1Srobj        name            CDATA #REQUIRED
190*88045cffSRobert Johnston	type		( int32 | uint32 | int64 | uint64 |
191*88045cffSRobert Johnston			  string | fmri | int32_array | uint32_array |
192*88045cffSRobert Johnston			  int64_array | uint64_array | string_array |
193*88045cffSRobert Johnston			  fmri_array ) #REQUIRED
194*88045cffSRobert Johnston        value           CDATA "">
195*88045cffSRobert Johnston
196*88045cffSRobert Johnston<!--
197*88045cffSRobert Johnston  argitem
198*88045cffSRobert Johnston
199*88045cffSRobert Johnston 	This element is an optional child element of argval and is used to
200*88045cffSRobert Johnston	specify the values for array elements
201*88045cffSRobert Johnston
202*88045cffSRobert Johnston	Its attributes are
203*88045cffSRobert Johnston
204*88045cffSRobert Johnston		value	The value for this property.  Must match type
205*88045cffSRobert Johnston			restriction of type attribute.
206*88045cffSRobert Johnston
207*88045cffSRobert Johnston-->
208*88045cffSRobert Johnston
209*88045cffSRobert Johnston<!ELEMENT argitem EMPTY >
210*88045cffSRobert Johnston
211*88045cffSRobert Johnston<!ATTLIST argitem
2124557a2a1Srobj	value		CDATA #REQUIRED >
2134557a2a1Srobj
214*88045cffSRobert Johnston
2154557a2a1Srobj<!--
2164557a2a1Srobj   propmethod
2174557a2a1Srobj
2184557a2a1Srobj	This element is for properties that can only be determined dynamically
2194557a2a1Srobj	from a plugin.
2204557a2a1Srobj
2214557a2a1Srobj	Its attributes are
2224557a2a1Srobj
2234557a2a1Srobj      		name		Name of the method
2244557a2a1Srobj      		version		Version of the method API
2254557a2a1Srobj      		propname	Name of the property to create
2264557a2a1Srobj		proptype	Type of the property to create
227825ba0f2Srobj		mutable         optional: default is false (0)
228e5dcf7beSRobert Johnston		nonvolatile     optional: default is false (0)
229940d71d2Seschrock-->
2304557a2a1Srobj
2314557a2a1Srobj<!ELEMENT propmethod
2324557a2a1Srobj	( argval* ) >
2334557a2a1Srobj
2344557a2a1Srobj<!ATTLIST propmethod
2354557a2a1Srobj	name		CDATA #REQUIRED
2364557a2a1Srobj	version		CDATA #REQUIRED
2374557a2a1Srobj	propname	CDATA #REQUIRED
238825ba0f2Srobj	proptype	CDATA #REQUIRED
239e5dcf7beSRobert Johnston	mutable		(0|1) "0"
240e5dcf7beSRobert Johnston	nonvolatile	(0|1) "0" >
241940d71d2Seschrock
2424557a2a1Srobj<!--
2430eb822a1Scindi  enum-method
2440eb822a1Scindi
2450eb822a1Scindi	This element describes the enumeration method used to
2464557a2a1Srobj	populate a composition of topo nodes for a given range of topology
2474557a2a1Srobj	nodes.
2480eb822a1Scindi
2490eb822a1Scindi	Its attributes are
2500eb822a1Scindi
2514557a2a1Srobj		name	Name of the module exporting an enumeration method.
2520eb822a1Scindi
2534557a2a1Srobj		version Version of the libtopo API
2540eb822a1Scindi
2550eb822a1Scindi-->
2560eb822a1Scindi
2570eb822a1Scindi<!ELEMENT enum-method EMPTY >
2580eb822a1Scindi
2590eb822a1Scindi<!ATTLIST enum-method
2600eb822a1Scindi	name		CDATA #REQUIRED
2610eb822a1Scindi	version		CDATA #REQUIRED >
2620eb822a1Scindi
2630eb822a1Scindi<!--
2640eb822a1Scindi  node
2650eb822a1Scindi
2664557a2a1Srobj	This element identifies a topology node instance.
2670eb822a1Scindi
2680eb822a1Scindi	Its attributes are
2690eb822a1Scindi
2704557a2a1Srobj		instance The instance number of the node
2710eb822a1Scindi
2720eb822a1Scindi-->
2730eb822a1Scindi
2740eb822a1Scindi<!ELEMENT node
275825ba0f2Srobj	( fac-enum?, facility*, propgroup*, set*, enum-method*, dependents? ) >
2760eb822a1Scindi
2770eb822a1Scindi<!ATTLIST node
2784557a2a1Srobj	instance	CDATA #REQUIRED >
2790eb822a1Scindi
2800eb822a1Scindi<!--
2810eb822a1Scindi  dependents
2820eb822a1Scindi
2830eb822a1Scindi	Ranges may have a number of "dependent" ranges, linked to
2844557a2a1Srobj	the original range hierarchically as children or as a list, siblings.
2850eb822a1Scindi
2860eb822a1Scindi	Its attribute is:
2874557a2a1Srobj		grouping	children | siblings
2880eb822a1Scindi-->
2890eb822a1Scindi
2900eb822a1Scindi<!ELEMENT dependents
291940d71d2Seschrock	(( range | xi:include )*, set*) >
2920eb822a1Scindi
2930eb822a1Scindi<!ATTLIST dependents
294940d71d2Seschrock	grouping ( children | siblings ) #REQUIRED >
2950eb822a1Scindi
2960eb822a1Scindi<!--
2970eb822a1Scindi  range
2980eb822a1Scindi
2990eb822a1Scindi    This element identifies a range of possible topology nodes.
3000eb822a1Scindi
3010eb822a1Scindi    Its attributes are
3020eb822a1Scindi
3030eb822a1Scindi	name	The common name of all the possible topo nodes
3040eb822a1Scindi
3050eb822a1Scindi	min	The smallest allowed instance number for an
3060eb822a1Scindi		actual topo node.
3070eb822a1Scindi
3080eb822a1Scindi	max	The largest allowed instance number for an
3090eb822a1Scindi		actual topo node.
3100eb822a1Scindi-->
3110eb822a1Scindi
3120eb822a1Scindi<!ELEMENT range
313825ba0f2Srobj	( enum-method?, propmap?, fac-enum?, facility*, node*, propgroup*, set*,
314825ba0f2Srobj	    dependents* ) >
3150eb822a1Scindi
3160eb822a1Scindi<!ATTLIST range
3170eb822a1Scindi	name		CDATA #REQUIRED
3180eb822a1Scindi	min		CDATA #REQUIRED
3190eb822a1Scindi	max		CDATA #REQUIRED >
3200eb822a1Scindi
3210eb822a1Scindi<!--
322825ba0f2Srobj  facility
323825ba0f2Srobj
324825ba0f2Srobj    This element identifies a single facility node instance
325825ba0f2Srobj
326825ba0f2Srobj    Its attributes are
327825ba0f2Srobj
328825ba0f2Srobj	name	The name of the facility node
329825ba0f2Srobj
330825ba0f2Srobj	type	The type of facility node: either "sensor" or "indicator"
331825ba0f2Srobj
332825ba0f2Srobj	provider	The name of the facility provider module that
333825ba0f2Srobj	                implements the methods for this node or range
334825ba0f2Srobj-->
335825ba0f2Srobj
336825ba0f2Srobj<!ELEMENT facility
337825ba0f2Srobj	( propgroup* ) >
338825ba0f2Srobj
339825ba0f2Srobj<!ATTLIST facility
340825ba0f2Srobj	name		CDATA #REQUIRED
341825ba0f2Srobj	type		(sensor | indicator) #REQUIRED
342825ba0f2Srobj	provider	CDATA #REQUIRED >
343825ba0f2Srobj
344825ba0f2Srobj<!--
345825ba0f2Srobj  fac-enum
346825ba0f2Srobj
347825ba0f2Srobj    This element identifies a facility provider module that
348825ba0f2Srobj    implements a facility enumeration method for the enclosing
349825ba0f2Srobj    node or range.
350825ba0f2Srobj
351825ba0f2Srobj    Its attributes are
352825ba0f2Srobj
353825ba0f2Srobj	provider	The name of the facility provider module that
354825ba0f2Srobj	                implements the facility enumerator method for
355825ba0f2Srobj			the parent node or range
356825ba0f2Srobj-->
357825ba0f2Srobj
358825ba0f2Srobj<!ELEMENT fac-enum EMPTY >
359825ba0f2Srobj
360825ba0f2Srobj<!ATTLIST fac-enum provider CDATA #REQUIRED >
361825ba0f2Srobj
362825ba0f2Srobj<!--
3630eb822a1Scindi  topology
3640eb822a1Scindi
3650eb822a1Scindi	This is the root-level for the scheme-specific topology
3660eb822a1Scindi
3670eb822a1Scindi	Its attributes are:
3680eb822a1Scindi		name	topology name
3694557a2a1Srobj		scheme 	( hc | dev  )
3700eb822a1Scindi-->
3710eb822a1Scindi
3720eb822a1Scindi<!ELEMENT topology
373940d71d2Seschrock	((range* | xi:include*), set*)>
3740eb822a1Scindi
3750eb822a1Scindi<!ATTLIST topology
3760eb822a1Scindi	name	CDATA #REQUIRED
3770eb822a1Scindi	scheme (hc | dev) #REQUIRED >
378