13062Scindi<?xml version="1.0" encoding="UTF-8"?> 23062Scindi<!-- 38526SRobert.Johnston@Sun.COM Copyright 2009 Sun Microsystems, Inc. All rights reserved. 43062Scindi Use is subject to license terms. 53062Scindi 63062Scindi CDDL HEADER START 73062Scindi 83062Scindi The contents of this file are subject to the terms of the 93062Scindi Common Development and Distribution License (the "License"). 103062Scindi You may not use this file except in compliance with the License. 113062Scindi 123062Scindi You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 133062Scindi or http://www.opensolaris.org/os/licensing. 143062Scindi See the License for the specific language governing permissions 153062Scindi and limitations under the License. 163062Scindi 173062Scindi When distributing Covered Code, include this CDDL HEADER in each 183062Scindi file and include the License file at usr/src/OPENSOLARIS.LICENSE. 193062Scindi If applicable, add the following below this CDDL HEADER, with the 203062Scindi fields enclosed by brackets "[]" replaced with your own identifying 213062Scindi information: Portions Copyright [yyyy] [name of copyright owner] 223062Scindi 233062Scindi CDDL HEADER END 243062Scindi 253062Scindi--> 263062Scindi 273062Scindi<!-- 283062Scindi Topology description DTD 293062Scindi 303062Scindi Most attributes are string values (or an individual string from a 313062Scindi restricted set), but attributes with a specific type requirement are 323062Scindi noted in the comment describing the element. 333062Scindi--> 343062Scindi 353062Scindi<!-- 363062Scindi XInclude support 373062Scindi 383062Scindi Topologies may be composed via the xi:include tag. 39*10234SRobert.Johnston@Sun.COM libtopo interfaces enforce that all composed topologies be of the 403062Scindi same scheme. 413062Scindi--> 423062Scindi 433062Scindi<!ELEMENT xi:include 443062Scindi (xi:fallback) > 453062Scindi 463062Scindi<!ATTLIST xi:include 473062Scindi href CDATA #REQUIRED 483062Scindi parse (xml|text) "xml" 493062Scindi encoding CDATA #IMPLIED 503062Scindi xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 513062Scindi > 523062Scindi 533062Scindi<!ELEMENT xi:fallback 543062Scindi ANY 553062Scindi > 563062Scindi<!ATTLIST xi:fallback 573062Scindi xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 583062Scindi > 593062Scindi 603062Scindi<!-- Properties and property groups --> 613062Scindi 623062Scindi<!-- 635068Srobj propval 643062Scindi 655068Srobj This element is for a singly valued property within a property group. 663062Scindi 675068Srobj Its attributes are 683062Scindi 695068Srobj name The name of this property. 703062Scindi 715068Srobj type The data type for this property. 72*10234SRobert.Johnston@Sun.COM 735068Srobj value The value for this property. Must match type 745068Srobj restriction of type attribute. 75*10234SRobert.Johnston@Sun.COM 76*10234SRobert.Johnston@Sun.COM This is optional for array types 77*10234SRobert.Johnston@Sun.COM 783062Scindi--> 793062Scindi 80*10234SRobert.Johnston@Sun.COM<!ELEMENT propval (propitem*) > 813062Scindi 823062Scindi<!ATTLIST propval 833062Scindi name CDATA #REQUIRED 843062Scindi type ( int32 | uint32 | int64 | uint64 | 85*10234SRobert.Johnston@Sun.COM string | fmri | int32_array | uint32_array | 86*10234SRobert.Johnston@Sun.COM int64_array | uint64_array | string_array | 87*10234SRobert.Johnston@Sun.COM fmri_array ) #REQUIRED 88*10234SRobert.Johnston@Sun.COM value CDATA "" > 89*10234SRobert.Johnston@Sun.COM<!-- 90*10234SRobert.Johnston@Sun.COM propitem 91*10234SRobert.Johnston@Sun.COM 92*10234SRobert.Johnston@Sun.COM This element is an optional child element of propval and is used to 93*10234SRobert.Johnston@Sun.COM specify the values for array elements 94*10234SRobert.Johnston@Sun.COM 95*10234SRobert.Johnston@Sun.COM Its attributes are 96*10234SRobert.Johnston@Sun.COM 97*10234SRobert.Johnston@Sun.COM value The value for this property. Must match type 98*10234SRobert.Johnston@Sun.COM restriction of type attribute. 99*10234SRobert.Johnston@Sun.COM 100*10234SRobert.Johnston@Sun.COM--> 101*10234SRobert.Johnston@Sun.COM 102*10234SRobert.Johnston@Sun.COM<!ELEMENT propitem EMPTY > 103*10234SRobert.Johnston@Sun.COM 104*10234SRobert.Johnston@Sun.COM<!ATTLIST propitem 1056869Seschrock value CDATA #REQUIRED > 1063062Scindi 107*10234SRobert.Johnston@Sun.COM 1083062Scindi<!-- 1093062Scindi propgroup 1103062Scindi 1115068Srobj This element is for a set of related properties on a topo node 1125068Srobj It contains an optional stability element, as well as 1135068Srobj zero or more property-containing elements. 1145068Srobj 1155068Srobj Its attributes are 1163062Scindi 1175068Srobj name The name of this property group. 1185068Srobj name-stability Stability level of the property group name 1195068Srobj data-stability Stability level of the property names and 1205068Srobj content 1215068Srobj version Version of the propery group definition 1223062Scindi 1233062Scindi--> 1243062Scindi 1253062Scindi<!ELEMENT propgroup 1265068Srobj ( propval*, propmethod* ) > 1273062Scindi 1283062Scindi<!ATTLIST propgroup 1293062Scindi name CDATA #REQUIRED 1303062Scindi version CDATA #REQUIRED 1313062Scindi name-stability ( Private | Standard | Stable | Evolving | Unstable | 1323062Scindi External | Obsolete ) #REQUIRED 1333062Scindi data-stability ( Private | Standard | Stable | Evolving | Unstable | 1343062Scindi External | Obsolete ) #REQUIRED > 1353062Scindi 1365068Srobj<!-- 1376070Srobj set 1386070Srobj This element is for associating ranges, nodes or property groups 1396070Srobj according to a set type. 1405068Srobj 1415068Srobj Its attributes are 1425068Srobj 1435068Srobj type The type of this property group set. 'product' is the 1445068Srobj only set type currently supported. 1456070Srobj setlist The list of set types. 1465068Srobj 1475068Srobj--> 1485068Srobj 1496070Srobj<!ELEMENT set 1507269Seschrock ( range*, fac-enum?, propgroup*, facility*, set* ) > 1515068Srobj 1526070Srobj<!ATTLIST set 1535068Srobj type ( product ) #REQUIRED 1546070Srobj setlist CDATA #REQUIRED > 1555068Srobj 1565068Srobj<!-- 1575068Srobj propmap 1585068Srobj This element is for specifying an additional topo map file for 1595068Srobj properties assigned to a given range. 1605068Srobj 1615068Srobj Its attributes are 1625068Srobj 1635068Srobj name Name of map file 1645068Srobj--> 1655068Srobj 1665068Srobj<!ELEMENT propmap EMPTY > 1675068Srobj 1685068Srobj<!ATTLIST propmap 1695068Srobj name CDATA #REQUIRED > 1705068Srobj 1713062Scindi<!-- Methods --> 1723062Scindi 1733062Scindi<!-- 1745068Srobj argval 1755068Srobj 1765068Srobj A propmethod argument. It has two attributes: 1775068Srobj 1785068Srobj name The name of the argument. 1795068Srobj type The data type of the argument. 180*10234SRobert.Johnston@Sun.COM value The value for this argument. Must match type 181*10234SRobert.Johnston@Sun.COM restriction of type attribute. 182*10234SRobert.Johnston@Sun.COM 183*10234SRobert.Johnston@Sun.COM This attribute is optional for array types 1845068Srobj--> 1855068Srobj 186*10234SRobert.Johnston@Sun.COM<!ELEMENT argval (argitem*) > 1875068Srobj 1885068Srobj<!ATTLIST argval 1895068Srobj name CDATA #REQUIRED 190*10234SRobert.Johnston@Sun.COM type ( int32 | uint32 | int64 | uint64 | 191*10234SRobert.Johnston@Sun.COM string | fmri | int32_array | uint32_array | 192*10234SRobert.Johnston@Sun.COM int64_array | uint64_array | string_array | 193*10234SRobert.Johnston@Sun.COM fmri_array ) #REQUIRED 194*10234SRobert.Johnston@Sun.COM value CDATA ""> 195*10234SRobert.Johnston@Sun.COM 196*10234SRobert.Johnston@Sun.COM<!-- 197*10234SRobert.Johnston@Sun.COM argitem 198*10234SRobert.Johnston@Sun.COM 199*10234SRobert.Johnston@Sun.COM This element is an optional child element of argval and is used to 200*10234SRobert.Johnston@Sun.COM specify the values for array elements 201*10234SRobert.Johnston@Sun.COM 202*10234SRobert.Johnston@Sun.COM Its attributes are 203*10234SRobert.Johnston@Sun.COM 204*10234SRobert.Johnston@Sun.COM value The value for this property. Must match type 205*10234SRobert.Johnston@Sun.COM restriction of type attribute. 206*10234SRobert.Johnston@Sun.COM 207*10234SRobert.Johnston@Sun.COM--> 208*10234SRobert.Johnston@Sun.COM 209*10234SRobert.Johnston@Sun.COM<!ELEMENT argitem EMPTY > 210*10234SRobert.Johnston@Sun.COM 211*10234SRobert.Johnston@Sun.COM<!ATTLIST argitem 212*10234SRobert.Johnston@Sun.COM value CDATA #REQUIRED > 213*10234SRobert.Johnston@Sun.COM 2145068Srobj 2155068Srobj<!-- 2165068Srobj propmethod 2175068Srobj 2185068Srobj This element is for properties that can only be determined dynamically 2195068Srobj from a plugin. 2205068Srobj 2215068Srobj Its attributes are 2225068Srobj 2235068Srobj name Name of the method 2245068Srobj version Version of the method API 2255068Srobj propname Name of the property to create 2265068Srobj proptype Type of the property to create 2277243Srobj mutable optional: default is false (0) 2288526SRobert.Johnston@Sun.COM nonvolatile optional: default is false (0) 2296869Seschrock--> 2305068Srobj 2315068Srobj<!ELEMENT propmethod 2325068Srobj ( argval* ) > 2335068Srobj 2345068Srobj<!ATTLIST propmethod 2355068Srobj name CDATA #REQUIRED 2365068Srobj version CDATA #REQUIRED 2375068Srobj propname CDATA #REQUIRED 2387243Srobj proptype CDATA #REQUIRED 2398526SRobert.Johnston@Sun.COM mutable (0|1) "0" 2408526SRobert.Johnston@Sun.COM nonvolatile (0|1) "0" > 2416869Seschrock 2425068Srobj<!-- 2433062Scindi enum-method 2443062Scindi 2455068Srobj This element describes the enumeration method used to 2465068Srobj populate a composition of topo nodes for a given range of topology 2475068Srobj nodes. 2483062Scindi 2495068Srobj Its attributes are 2503062Scindi 2515068Srobj name Name of the module exporting an enumeration method. 2523062Scindi 2535068Srobj version Version of the libtopo API 2543062Scindi 2553062Scindi--> 2563062Scindi 2573062Scindi<!ELEMENT enum-method EMPTY > 2583062Scindi 2593062Scindi<!ATTLIST enum-method 2603062Scindi name CDATA #REQUIRED 2613062Scindi version CDATA #REQUIRED > 2623062Scindi 2633062Scindi<!-- 2643062Scindi node 2653062Scindi 2665068Srobj This element identifies a topology node instance. 2673062Scindi 2685068Srobj Its attributes are 2693062Scindi 2705068Srobj instance The instance number of the node 2713062Scindi 2723062Scindi--> 2733062Scindi 2743062Scindi<!ELEMENT node 2757243Srobj ( fac-enum?, facility*, propgroup*, set*, enum-method*, dependents? ) > 2763062Scindi 2773062Scindi<!ATTLIST node 2785068Srobj instance CDATA #REQUIRED > 2793062Scindi 2803062Scindi<!-- 2813062Scindi dependents 2823062Scindi 2833062Scindi Ranges may have a number of "dependent" ranges, linked to 2845068Srobj the original range hierarchically as children or as a list, siblings. 2853062Scindi 2863062Scindi Its attribute is: 2875068Srobj grouping children | siblings 2883062Scindi--> 2893062Scindi 2903062Scindi<!ELEMENT dependents 2916869Seschrock (( range | xi:include )*, set*) > 2923062Scindi 2933062Scindi<!ATTLIST dependents 2946869Seschrock grouping ( children | siblings ) #REQUIRED > 2953062Scindi 2963062Scindi<!-- 2973062Scindi range 2983062Scindi 2993062Scindi This element identifies a range of possible topology nodes. 3003062Scindi 3013062Scindi Its attributes are 3023062Scindi 3033062Scindi name The common name of all the possible topo nodes 3043062Scindi 3053062Scindi min The smallest allowed instance number for an 3063062Scindi actual topo node. 3073062Scindi 3083062Scindi max The largest allowed instance number for an 3093062Scindi actual topo node. 3103062Scindi--> 3113062Scindi 3123062Scindi<!ELEMENT range 3137243Srobj ( enum-method?, propmap?, fac-enum?, facility*, node*, propgroup*, set*, 3147243Srobj dependents* ) > 3153062Scindi 3163062Scindi<!ATTLIST range 3173062Scindi name CDATA #REQUIRED 3183062Scindi min CDATA #REQUIRED 3193062Scindi max CDATA #REQUIRED > 3203062Scindi 3213062Scindi<!-- 3227243Srobj facility 3237243Srobj 3247243Srobj This element identifies a single facility node instance 3257243Srobj 3267243Srobj Its attributes are 3277243Srobj 3287243Srobj name The name of the facility node 3297243Srobj 3307243Srobj type The type of facility node: either "sensor" or "indicator" 3317243Srobj 3327243Srobj provider The name of the facility provider module that 3337243Srobj implements the methods for this node or range 3347243Srobj--> 3357243Srobj 3367243Srobj<!ELEMENT facility 3377243Srobj ( propgroup* ) > 3387243Srobj 3397243Srobj<!ATTLIST facility 3407243Srobj name CDATA #REQUIRED 3417243Srobj type (sensor | indicator) #REQUIRED 3427243Srobj provider CDATA #REQUIRED > 3437243Srobj 3447243Srobj<!-- 3457243Srobj fac-enum 3467243Srobj 3477243Srobj This element identifies a facility provider module that 3487243Srobj implements a facility enumeration method for the enclosing 3497243Srobj node or range. 3507243Srobj 3517243Srobj Its attributes are 3527243Srobj 3537243Srobj provider The name of the facility provider module that 3547243Srobj implements the facility enumerator method for 3557243Srobj the parent node or range 3567243Srobj--> 3577243Srobj 3587243Srobj<!ELEMENT fac-enum EMPTY > 3597243Srobj 3607243Srobj<!ATTLIST fac-enum provider CDATA #REQUIRED > 3617243Srobj 3627243Srobj<!-- 3633062Scindi topology 3643062Scindi 3653062Scindi This is the root-level for the scheme-specific topology 3663062Scindi 3673062Scindi Its attributes are: 3683062Scindi name topology name 3695068Srobj scheme ( hc | dev ) 3703062Scindi--> 3713062Scindi 3723062Scindi<!ELEMENT topology 3736869Seschrock ((range* | xi:include*), set*)> 3743062Scindi 3753062Scindi<!ATTLIST topology 3763062Scindi name CDATA #REQUIRED 3773062Scindi scheme (hc | dev) #REQUIRED > 378