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