Home | History | Annotate | Download | only in common
      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