(file) Return to CIM_Device26.mof CVS log (file) (dir) Up to [Pegasus] / pegasus / Schemas / CIM26

    1 karl  1.2 // ===================================================================
    2           // Title:       Device MOF Specification 2.6
    3           // Filename:    CIM_Device26.mof
    4           // Version:     2.6.0
    5           // Status:      Final
    6           // Date:        06/04/2002
    7           // ===================================================================
    8           // Copyright 1998-2002 Distributed Management Task Force, Inc. (DMTF).
    9           // All rights reserved.  
   10           // DMTF is a not-for-profit association of industry members dedicated 
   11           // to promoting enterprise and systems management and interoperability. 
   12           // DMTF specifications and documents may be reproduced for uses
   13           // consistent with this purpose by members and non-members, 
   14           // provided that correct attribution is given. 
   15           // As DMTF specifications may be revised from time to time, 
   16           // the particular version and release date should always be noted.
   17           //
   18           // Implementation of certain elements of this standard or proposed 
   19           // standard may be subject to third party patent rights, including 
   20           // provisional patent rights (herein "patent rights"). DMTF makes 
   21           // no representations to users of the standard as to the existence 
   22 karl  1.2 // of such rights, and is not responsible to recognize, disclose, or
   23           // identify any or all such third party patent right, owners or 
   24           // claimants, nor for any incomplete or inaccurate identification or 
   25           // disclosure of such rights, owners or claimants. DMTF shall have no 
   26           // liability to any party, in any manner or circumstance, under any 
   27           // legal theory whatsoever, for failure to recognize, disclose, or 
   28           // identify any such third party patent rights, or for such party’s
   29           // reliance on the standard or incorporation thereof in its product, 
   30           // protocols or testing procedures. DMTF shall have no liability to 
   31           // any party implementing such standard, whether such implementation 
   32           // is foreseeable or not, nor to any patent owner or claimant, and shall 
   33           // have no liability or responsibility for costs or losses incurred if 
   34           // a standard is withdrawn or modified after publication, and shall be
   35           // indemnified and held harmless by any party implementing the 
   36           // standard from any and all claims of infringement by a patent owner 
   37           // for such implementations.
   38           //
   39           // For information about patents held by third-parties which have 
   40           // notified the DMTF that, in their opinion, such patent may relate to 
   41           // or impact implementations of DMTF standards, visit 
   42           // http://www.dmtf.org/about/policies/disclosures.php.
   43 karl  1.2 // ===================================================================
   44           // Description: The Device Model extend the management concepts 
   45           //              of a Logical Device.  This includes the concepts of
   46           //              Controllers, Memory, Modems, Ports, Printers, 
   47           //              Processors, Sensors, Storage, Power supplies, fans,
   48           //              USB, User Devices (Keyboard, Monitor, etc), and Storage
   49           //              Devices.  In addition, the Device Model includes the 
   50           //              modeling concepts for Record Logs, System Resources,
   51           //              and Redundancy.
   52           //
   53           //              The object classes below are listed in an order that
   54           //              avoids forward references. Required objects, defined 
   55           //              by other working groups, are omitted.
   56           // ==================================================================
   57           // Date:  04/14/1998 - Version 2.0
   58           //        06/23/1998 - V2.0 Errata
   59           //      - CR222 References to the "Resource" component in 
   60           //          CIM_ComputerSystemResource association and its
   61           //          subclasses incorrect - Should be PartComponent
   62           //      - CR225 Antecedent reference should be CIM_CurrentSensor
   63           //          in the AssociatedSupplyCurrentSensor relationship
   64 karl  1.2 //      - CR226 Add ArrayType("Indexed") and update descriptions
   65           //          for CIM_NetworkAdapter.NetworkAddresses and its
   66           //          overrides
   67           //      - CR227 UninterruptablePowerSupply should be 
   68           //          Uninterruptible
   69           //      - CR235 Format for specifying propagated value uses
   70           //          period, not colon
   71           // Date: 09/29/1998 - Version 2.1
   72           //      - CR236 Add ModelCorrespondence qualifier to properties
   73           //          of CIM_MonitorResolution 
   74           //      - CR243 Add AutoSense and MaxSpeed properties to 
   75           //          CIM_NetworkAdapter
   76           //      - CR244a Extend the enumeration of CIM_Processor.Family, 
   77           //          Add a new Processor property, OtherFamilyDescription
   78           //      - CR245 Add CIM_AllocatedDMA association
   79           //      - CR254 Add CIM_DeviceErrorCounts object and related
   80           //          association, CIM_ErrorCountersForDevice
   81           //      - CR259 Add DesiredSpeed property and SetSpeed method 
   82           //          to CIM_Fan
   83           //      - CR261a Add two properties to CIM_Battery, ExpectedLife
   84           //          and MaxRechargeTime
   85 karl  1.2 //      - CR265 Address "cleaning" related to a CIM_Media
   86           //          AccessDevice
   87           //      - CR266 Add CIM_AlarmDevice and association
   88           //      - CR274 Remove repetition of the Values array from 
   89           //          property Descriptions
   90           //      - CR275 Update DMI Master.MIF mappings
   91           //      - CR288a Add AssociatedProcessorMemory relationship
   92           //      - CR292 Add ModelCorrespondence to 'linked' properties
   93           //      - CR294 Remove key-qualifier from 'StartingAddress' in
   94           //          CIM_BIOSLoadedInNV
   95           // Date: 10/14/1998 - Version 2.1.1
   96           //      - Missed CR271a, Add Stepping property to CIM_Processor
   97           // Date: 06/11/1999 - Version 2.2
   98           //      - CR297 Add Sparc processors to the enum, Processor.Family
   99           //      - CR308a Create DeviceIdentity relationship
  100           //      - CR316 Add OrderIndex to BasedOn
  101           //      - CR318c Add processors to the enum, Processor.Family
  102           //      - CR325 Load balancing (Add LoadBalancedGroup boolean to
  103           //          ExtraCapacityGroup, Create new NetworkAdapter
  104           //          RedundancyComponent and NetworkVirtualAdapter 
  105           //          associations)
  106 karl  1.2 //      - CR326 Add properties, LoadedOnDevice and UpgradeableOn
  107           //          Device to DeviceSoftware
  108           //      - CR327b Update the PCIController class and add new 
  109           //          subclasses, PCIDevice and PCIBridge
  110           //      - CR328 New MappingStrings, Descriptions and properties in 
  111           //          SCSIController and SCSIInterface
  112           //      - CR329a Add to the MediaAccessDevice Capabilities array,
  113           //          (enum) / Also, add a MediaIsLocked property and 
  114           //          LockMedia method / Create subclass, DVDDevice
  115           //      - CR330a Add properties and methods to AlarmDevice
  116           //      - CR331 Create IDE, PCMCIA and InfraredController 
  117           //          subclasses of Controller / Add to the enum for 
  118           //          Controller.ProtocolSupported
  119           //      - CR332 Add PartitionType and PartitionSubtype properties
  120           //          to DiskPartition / Update class Description
  121           //      - CR333a Extensions to and clarifications of StorageExtent
  122           //      - CR334 Clarify the StorageRedundancyGroup.TypeOfAlgorithm
  123           //          enum and add properties to the class / Create an
  124           //          ExtentRedundancyComponent association
  125           //      - CR335a Updates to the Printer object
  126           //      - CR336 New Printer-related classes and associations
  127 karl  1.2 //      - CR341 Create new Modem classes, properties and 
  128           //          associations
  129           //      - CR342 Create OOBAlert and WakeUpServices and 
  130           //          associations to NetworkAdapter 
  131           //      - CR343 Create new NetworkAdapter classes, properties 
  132           //          and associations
  133           //      - CR344 Changes to POTSModem and movement of some 
  134           //          properties up to CIM_Modem
  135           //      - CR345b Changes to Sensor and its subclasses
  136           //      - CR346 Add WatchDog object
  137           //      - CR347 Add a UniqueID property to Processor
  138           //      - CR348 Create AGPVideoController and AGPSoftware
  139           //          Feature classes
  140           //      - CR351 Add TimeOfDeviceReset to ControlledBy
  141           //      - CR355a Use Values-ValueMap qualifiers in DeviceError
  142           //          Counts.ResetCounter and AlarmDevice.SetUrgency / 
  143           //          Update the method descriptions indicating that 
  144           //          Values-ValueMap qualifiers can be defined for 
  145           //          return codes
  146           //      - CR356a Keys on all associations either explicitly or
  147           //          via inheritance
  148 karl  1.2 //      - CR357 Remove company references
  149           //      - CR360 Add VendorID to ConnectionBasedModem
  150           //      - CR366 Clarify the Description for ResidesOnExtent
  151           //      - CR372 Create LogicalPort and PortOnDevice 
  152           //      - CR373 Define the USB Model
  153           //      - CR375 Update descriptions and enumerations / Add new
  154           //          classes - SuppliesPower, VideoControllerResolution,
  155           //          VideoSetting / Create new properties - IRQ.Hardware,
  156           //          Security in MediaAccessDevice, ParallelController and
  157           //          SerialController, VideoController.CurrentNumberOf
  158           //          Colors, ScreenHeight and Width in DesktopMonitor, 
  159           //          NetworkAdapter.FullDuplex, Processor.CPUStatus,
  160           //          MemoryMappedIO.MappedResource and 3 'storage is 
  161           //          writeable' properties in NonVolatileStorage
  162           //      - CR377 Add "video processor" to Processor.Family
  163           //      - CR379a Update the DMI MappingStrings
  164           //      - CR380a Define the Fibre Channel Adapter and Port models
  165           //      - CR381 Update MediaAccessDevice's enumerations and add new
  166           //          properties - LastCleaned, MaxAccessTime, 
  167           //          UncompressedDataRate, LoadTime, UnloadTime / Create
  168           //          MediaPresent.FixedMedia / Update StorageExtent's 
  169 karl  1.2 //          enumerations and add a SequentialAccess property /
  170           //          Create TapeDrive.MaxRewindTime
  171           //      - CR382 Create a DiskGroup class and its supporting
  172           //          associations
  173           //      - CR384 Update Processor.UpgradeMethod / Create an
  174           //          ESCONController
  175           //      - CR393a Define the Tape Library Device Model
  176           //      - CR394 Update Descriptions / Add VolumeSet.VolumeStatus
  177           //          and properties to VolumeSetBasedOnPSExtent (from
  178           //          CR333a)
  179           //      - CR399 Remove SubmitsRequest from CR336
  180           //      - CR405 Add Counter and Gauge qualifiers as appropriate
  181           //      - CR406 Update PartitionSubtype enumeration from CR332
  182           //      - CR407 Add DoorAccessToPhysicalElement and Changer.
  183           //          AuditInProgress
  184           //      - CR408 Update the Description for StorageExtent.
  185           //          ConsumableBlocks (from CR333a)
  186           //      - CR410 Updates to the Fibre Channel Model submitted in
  187           //          CR380a
  188           //      - CR414 Add "Mouse-Optical Sensor" to PointingDevice.
  189           //          PointingType
  190 karl  1.2 //      - CR415 Remove OrderOfQueue from QueueForPrintService
  191           //          (added in CR336)
  192           //      - CR417a Add "N/A" to CacheMemory.Level
  193           //      - CR418a Add to the enum for CacheMemory.Read and Write
  194           //          Policy / Update Descriptions related to Storage
  195           //          Volume (from CR333a) / Change the association,
  196           //          LogicalDiskBasedOnSoftwareVolume (CR333a) to 
  197           //          LogicalDiskBasedOnVolume
  198           //      - CR420 Miscellaneous syntax and semantic issues
  199           //      - CR421 Defer including some properties of Unimodem from
  200           //          CR341
  201           // Date: 07/06/1999 - Version 2.2.1
  202           //      - CR422 Cut & paste errors (Remove Association qualifier 
  203           //          from LabelReader, MediaAccess and PickerStatInfo; 
  204           //          Add Association qualifier to CIM_VideoSetting)
  205           //      - CR423 Locale should be specified as en_US
  206           //      - CR424 Add CIM_ to the class name for PCIDevice and 
  207           //          PCIBridge / Add Overrides to xxxInDiskGroup 
  208           //          aggregations / Update the Descriptions for Cache
  209           //          Memory Read and WritePolicy
  210           //      - CR425 Update the DMI MappingStrings using the June
  211 karl  1.2 //          release of the master.mif
  212           // Date: 07/27/1999 - Version 2.2.2
  213           //      - CR428 Remove underscores from two properties of 
  214           //          PCIDevice 
  215           // Date: 02/18/2000 - Version 2.3
  216           //      - CR429 Modify Description of UserDataStripeDepth in 
  217           //          CIM_ProtectedSpaceExtent
  218           //      - CR431 Update MappingStrings
  219           //      - CR432 Create subclasses of MemoryMappedIO
  220           //      - CR433 Add new properties and enums from Master.MIF and new 
  221           //          ModelCorrespondences 
  222           //      - CR436 Add a place holder for SSA Controller
  223           //      - CR438 Change Intel Processor types to meet Intel legal reqmts
  224           //          in CIM_Processor.Family
  225           //      - CR445e Modify the SpareGroup class to add a Failover method
  226           //      - CR449 Add Itanium processors to CIM_Processor.Family
  227           //      - CR452a Updates to FibrePort
  228           //      - CR457 Miscellaneous StorageExtent and MediaAccessDevice 
  229           //          clarifications
  230           //      - CR460a Add Counter, OctetString and Gauge qualifiers
  231           //      - CR461 Subclass from CIM_ManagedElement StorageError
  232 karl  1.2 //      - CR463b Define the necessary classes and associations to 
  233           //          support Message Logs
  234           //      - CR471 Recommended qualifier for 
  235           //          CIM_NumericSensor.CurrentReading
  236           //      - CR474 Add Processor types to CIM_Processor.Family
  237           //      - CR475 Add Processor types to CIM_Processor.Family
  238           //  Date: 06/09/2000 - Version 2.4
  239           //      - CR479 Miscellaneous Device Model Additions to the Storage 
  240           //          and StorageLibrary Classes
  241           //          1. Add a new property, CellLocation, to the PickerElement 
  242           //             class. 
  243           //          2. Add to the enumeration for LabelReader.SupportedFormats.
  244           //          3. Add a new property, Extendable, to TapePartition
  245           //          4. Add a new property, Direction, to BOTH LimitedAccessPort 
  246           //             and InterLibraryPort
  247           //          5. Add six new properties to MediaAccessDevice.
  248           //          6. Define a new association, AssociatedLabelReader
  249           //          7. Update the subclassing of PickerLabelReader and 
  250           //             AccessLabelReader to use the association defined in #6.
  251           //          8. Update the description for LimitedAccessPort.
  252           //      - CR486 Further updates to the Storage and Storage Library 
  253 karl  1.2 //          Models
  254           //          1. Add seek and recovered R/W stats to the class, 
  255           //             MediaAccessStatInfo
  256           //          2. Due to the changes in #1, must update the ResetCounters 
  257           //             method in MediaAccessStatInfo.
  258           //          3. Create a new superclass of TapePartition, DiskPartition,
  259           //             and MediaPartition
  260           //          4. Change the subclassing of TapePartition and DiskPartition
  261           //             from CIM_StorageExtent to CIM_MediaPartition.
  262           //          5. Remove the Bootable boolean from DiskPartition since it 
  263           //             is now  found in the MediaPartition superclass.
  264           //      - CR494 Add to the enumerations in CIM_CacheMemory.Associativity
  265           //  Date: 07/14/00 - Version 2.4
  266           //      - CR513a Move Extendable Boolean up to the MediaPartition 
  267           //          superclass
  268           //      - CR519  ERRATA CIM 2.3: correct ValueMap syntax errors in 
  269           //          CIM_Processor.Family
  270           //  Date: 12/01/2000 Version 2.5
  271           //      - CR527 Add AMD Duron  processors to CIM_Processor.Family
  272           //      - CR528 Add Socket 423 and Socket A (Socket 462) enumerations 
  273           //          to CIM_Processor.UpgradeMethod
  274 karl  1.2 //      - CR530 Modify the enumerations in CIM_Processor.Family  
  275           //      - CR531 Add Transmeta Crusoe  processors's names in 
  276           //          CIM_Processor.Family
  277           //      - CR534 Update MappingStrings Qualifiers to stay in sync with 
  278           //          updates to the MASTER.MIF.
  279           //      - CR535 Add "Service Processor" to CIM_Watchdog.MonitoredEntity
  280           //          and CIM_Watchdog.MonitoredEntityOnLastExpiration 
  281           //          enumeration.
  282           //  Date: 05/23/2001 - Version 2.5 Final
  283           //      - Reordered classes to match Visio
  284           //      - CR606 Add the Aggregate qualifier where missing:
  285           //          PrintJobFile, NetworkAdapterRedundancyComponent
  286           //  Date: 05/23/2001 - Version 2.6
  287           //      - CR584 Add PresenceHeartbeatCapable and EnablePresenceHeartbeat
  288           //          properties to CIM_OOBAlertService
  289           //      - CR590 Fix comma placement in the mapping string for
  290           //          StorageExtent.BlockSize
  291           //      - CR601 Add a enumeration value to the CIM_Processor.Family
  292           //          property
  293           //      - CR602 Add a pragma to include the new IB class definition
  294           //          found in CIM_Device26_Add.mof
  295 karl  1.2 //  Date: 03/10/2002 - Version 2.6 Final
  296           //      - CR733 Specify "IN (false)" for all out only parameters.
  297           //      - CR746 Add the version qualifier to all classes.
  298           //      - CR828 ERRATA Update Processor.Family enumeration to match
  299           //          the enumeration in Application model for the 
  300           //          ArchitectureCheck.ArchitectureType property.
  301           //      - Fixed lines that exceeded 72 characters. 
  302           // ===================================================================
  303           
  304           // ===================================================================
  305           // Generic Pragmas
  306           // ===================================================================
  307           #pragma locale ("en_US")
  308           
  309           // ===================================================================
  310           //    UML Page 1 - Logical Device
  311           // ===================================================================
  312           // ===================================================================
  313           // DeviceConnection
  314           // ===================================================================
  315           [Association,
  316 karl  1.2  Version ("2.6.0"), Description (
  317              "The DeviceConnection relationship indicates that two or more "
  318              "Device are connected together.") ] 
  319           class CIM_DeviceConnection : CIM_Dependency {
  320              
  321              [Override ("Antecedent"),
  322               Description ("A LogicalDevice.") ]
  323              CIM_LogicalDevice REF Antecedent;
  324              
  325              [Override ("Dependent"),
  326               Description (
  327                  "A second LogicalDevice connected to the Antecedent Device.") ]
  328              CIM_LogicalDevice REF Dependent;
  329              
  330              [Description (
  331                  "When several bus and/or connection speeds are possible, the "
  332                  "NegotiatedSpeed property defines the one in use between the "
  333                  "Devices.  Speed is specified in bits per second.  If "
  334                  "connection or bus speeds are not negotiated, or if this "
  335                  "information is not available/important to Device management, "
  336                  "the property should be set to 0."), 
  337 karl  1.2     Units ("Bits per Second"),
  338               MappingStrings {"MIF.DMTF|Bus Port Association|001.2"} ]
  339              uint64 NegotiatedSpeed;
  340              
  341              [Description (
  342                  "When several bus and/or connection data widths are possible, "
  343                  "the NegotiatedDataWidth property defines the one in use "
  344                  "between the Devices.  Data width is specified in bits.  If "
  345                  "data width is not negotiated, or if this information is not "
  346                  "available/important to Device management, the property should "
  347                  "be set to 0."),
  348               Units ("Bits"),
  349               MappingStrings {"MIF.DMTF|Bus Port Association|001.3"} ]
  350              uint32 NegotiatedDataWidth;
  351           };
  352           
  353           
  354           // ===================================================================
  355           // DeviceIdentity
  356           // ===================================================================
  357           [Association,
  358 karl  1.2  Version ("2.6.0"), Description (
  359              "CIM_DeviceIdentity indicates that two LogicalDevices "
  360              "represent different aspects of the same underlying entity. "
  361              "This association refines the CIM_LogicalIdentity superclass "
  362              "by restricting it to the Device level and defining its use in "
  363              "well understood scenarios. One of these scenarios is to "
  364              "represent that a Device is both a 'bus' entity and a "
  365              "'functional' entity. For example, a Device could be both a PCI "
  366              "Device (or a USB Device), as well as a CIM_Keyboard. The other "
  367              "scenario is where a Device plays multiple functional roles "
  368              "that can not be distinguished by their hardware realization "
  369              "alone. For example, a Fibre Channel adapter might have aspects "
  370              "of both a NetworkAdapter and a SCSIController.") ]
  371           class CIM_DeviceIdentity: CIM_LogicalIdentity {
  372              [Override ("SystemElement"), 
  373               Description (
  374                  "SystemElement represents one aspect of the Device.") ]
  375              CIM_LogicalDevice ref SystemElement;
  376              [Override ("SameElement"), 
  377               Description (
  378                  "SameElement represents an alternate aspect of "
  379 karl  1.2        "the System entity.") ]
  380              CIM_LogicalDevice ref SameElement;
  381           };
  382           
  383           
  384           // ===================================================================
  385           // DeviceServiceImplementation
  386           // ===================================================================
  387           [Association, Version ("2.6.0"), Description (
  388              "An association between a Service and how it is implemented. "
  389              "The cardinality of this association is many-to-many. "
  390              "A Service may be provided by more than one Logical"
  391              "Device, operating in conjunction.  And, any Device may "
  392              "provide more than one Service.  When multiple Devices are "
  393              "associated with a single Service, it is assumed that these "
  394              "elements operate in conjunction to provide the Service.  If "
  395              "different implementations of a Service exist, each of these "
  396              "implementations would result in individual instantiations "
  397              "of the Service object.  These individual instantiations "
  398              "would then have associations to the unique implementations.") ]
  399           class CIM_DeviceServiceImplementation : CIM_Dependency {
  400 karl  1.2 
  401              [Override ("Antecedent"),
  402               Description ("The LogicalDevice.") ]
  403              CIM_LogicalDevice REF Antecedent;
  404              
  405              [Override ("Dependent"),
  406               Description ("The Service implemented using the LogicalDevice.") ]
  407              CIM_Service REF Dependent;
  408           };
  409           
  410           
  411           // ===================================================================
  412           // DeviceSAPImplementation
  413           // ===================================================================
  414              [Association, Version ("2.6.0"), Description (
  415                "An association between a ServiceAccessPoint and how "
  416                "it is implemented. The cardinality of this association "
  417                "is many-to-many.  A SAP may be provided by more "
  418                "than one LogicalDevice, operating in conjunction.  And, any "
  419                "Device may provide more than one ServiceAccessPoint. "
  420                "When many LogicalDevices are associated with a single "
  421 karl  1.2      "SAP, it is assumed that these elements operate in "
  422                "conjunction to provide the AccessPoint.  If different "
  423                "implementations of a SAP exist, each of these implementations "
  424                "would result in individual instantiations of the "
  425                "ServiceAccessPoint object.  These individual instantiations "
  426                "would then have associations to the unique implementations.") ]
  427           class CIM_DeviceSAPImplementation : CIM_Dependency {
  428                 [Override ("Antecedent"),
  429                  Description ("The LogicalDevice.") ]
  430              CIM_LogicalDevice REF Antecedent;
  431                 [Override ("Dependent"),
  432                  Description (
  433                   "The ServiceAccessPoint implemented using the LogicalDevice.") ]
  434              CIM_ServiceAccessPoint REF Dependent;
  435           };
  436           
  437           
  438           // ===================================================================
  439           //    UML Page 2 - Cooling, Power, & Battery
  440           // ===================================================================
  441           // ===================================================================
  442 karl  1.2 // CoolingDevice
  443           // ===================================================================
  444           [Version ("2.6.0"), Description (
  445              "Capabilities and management of CoolingDevices.") ] 
  446           class CIM_CoolingDevice : CIM_LogicalDevice {
  447           
  448              [Description (
  449                  "ActiveCooling is a boolean indicating that the Cooling"
  450                  "Device provides active (as opposed to passive) cooling.") ]
  451              boolean ActiveCooling;
  452           };
  453           
  454           
  455           // ===================================================================
  456           // Refrigeration
  457           // ===================================================================
  458           [Version ("2.6.0"), Description (
  459              "Capabilities and management of a Refrigeration CoolingDevice.") ] 
  460           class CIM_Refrigeration : CIM_CoolingDevice {
  461           };
  462           
  463 karl  1.2 
  464           // ===================================================================
  465           // HeatPipe
  466           // ===================================================================
  467           [Version ("2.6.0"), Description (
  468              "Capabilities and management of a HeatPipe CoolingDevice.") ] 
  469           class CIM_HeatPipe : CIM_CoolingDevice {
  470           };
  471           
  472           
  473           // ===================================================================
  474           // Fan
  475           // ===================================================================
  476           [Version ("2.6.0"), Description (
  477              "Capabilities and management of a Fan CoolingDevice.") ] 
  478           class CIM_Fan : CIM_CoolingDevice {
  479              
  480              [Description (
  481                  "Indication of whether the fan supports variable speeds.") ]
  482              boolean VariableSpeed;
  483           
  484 karl  1.2    [Description (
  485                  "DesiredSpeed is the currently requested fan speed, " 
  486                  "defined in Revolutions per Minute, when a variable speed fan "
  487                  "is supported (VariableSpeed boolean = TRUE). The current " 
  488                  "speed is determined via a sensor (CIM_Tachometer) that is "
  489                  "associated with the Fan using the CIM_AssociatedSensor "
  490                  "relationship."), 
  491               Units ("Revolutions per Minute") ]
  492              uint64 DesiredSpeed;
  493           
  494              [Description (
  495                  "Requests that the Fan speed be set to the " 
  496                  "value specified in the method's input parameter. The return " 
  497                  "value should be 0 if the request was successfully executed, " 
  498                  "1 if the request is not supported and some other value if an " 
  499                  "error occurred. In a subclass, the set of possible "
  500                  "return codes could be specified, using a ValueMap qualifier "
  501                  "on the method. The strings to which the ValueMap contents "
  502                  "are 'translated' may also be specified in the "
  503                  "subclass as a Values array qualifier.") ]
  504              uint32 SetSpeed (
  505 karl  1.2 
  506                  [IN] uint64 DesiredSpeed);
  507           };
  508           
  509           
  510           // ===================================================================
  511           // AssociatedCooling
  512           // ===================================================================
  513           [Association, Version ("2.6.0"), Description (
  514              "Many Devices, such as processors or power supplies, require "
  515              "their own cooling devices.  This association indicates where "
  516              "fans or other CoolingDevices are specific to a Device, "
  517              "versus providing enclosure or cabinet cooling.") ] 
  518           class CIM_AssociatedCooling : CIM_Dependency {
  519           
  520              [Override ("Antecedent"),
  521               Description ("The CoolingDevice.") ]
  522              CIM_CoolingDevice REF Antecedent;
  523           
  524              [Override ("Dependent"),
  525               Description ("The LogicalDevice being cooled.") ]
  526 karl  1.2    CIM_LogicalDevice REF Dependent;
  527           };
  528           
  529           
  530           // ===================================================================
  531           // Battery
  532           // ===================================================================
  533           [Version ("2.6.0"), Description (
  534              "Capabilities and management of the Battery LogicalDevice. "
  535              "This class applies to both batteries in Laptop Systems and "
  536              "other internal/external batteries, such as used in, "
  537              "or as UPSs.") ] 
  538           class CIM_Battery : CIM_LogicalDevice  {
  539           
  540              [Description (
  541                  "Description of the Battery's charge status. Values such "
  542                  "as \"Fully Charged\" (value=3) or \"Partially Charged\" "
  543                  "(11) can be specified. The value, 10, is "
  544                  "not valid in the CIM Schema since in DMI it represents "
  545                  "that no battery is installed. In this case, this object "
  546                  "should not be instantiated."),
  547 karl  1.2     ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
  548                  "11"},
  549               Values {"Other", "Unknown", "Fully Charged",  
  550                  "Low", "Critical", "Charging", "Charging and High", 
  551                  "Charging and Low", "Charging and Critical", "Undefined", 
  552                  "Partially Charged"},
  553               MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
  554              uint16 BatteryStatus;
  555           
  556              [Description (
  557                  "TimeOnBattery indicates the elapsed time in seconds "
  558                  "since the ComputerSystem, UPS, ... last switched to "
  559                  "battery power, or the time since the System or UPS "
  560                  "was last restarted, whichever is less. Zero shall "
  561                  "be returned if the Battery is 'on line'."), 
  562               Units ("Seconds") ]
  563              uint32 TimeOnBattery;
  564           
  565              [Description (
  566                  "EstimatedRunTime is an estimate in minutes of the "
  567                  "time to battery charge depletion under the present "
  568 karl  1.2        "load conditions if the utility power is off, or lost "
  569                  "and remains off, or a Laptop is disconnected from a "
  570                  "power source."),
  571               Units ("Minutes"),
  572               MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
  573              uint32 EstimatedRunTime;
  574           
  575              [Gauge, Description (
  576                  "An estimate of the percentage of full charge remaining."),
  577               Units ("Percent") ] 
  578              uint16 EstimatedChargeRemaining;
  579           
  580              [Description (
  581                  "An enumeration that describes the Battery's chemistry."),
  582               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
  583               Values {"Other", "Unknown", "Lead Acid", "Nickel Cadmium", 
  584                  "Nickel Metal Hydride", "Lithium-ion", "Zinc air", 
  585                  "Lithium Polymer"},
  586               MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
  587              uint16 Chemistry;
  588           
  589 karl  1.2    [Description (
  590                  "The design capacity of the battery in mWatt-hours. "
  591                  "If this property is not supported, enter 0."),
  592               Units ("MilliWattHours"),
  593               MappingStrings {"MIF.DMTF|Portable Battery|003"} ]  
  594              uint32 DesignCapacity;
  595           
  596              [Description (
  597                  "The full charge capacity of the battery in mWatt-hours. "
  598                  "Comparison of this value to the Battery DesignCapacity "
  599                  "determines when the Battery requires replacement.  A "
  600                  "Battery's end of life is typically when the FullCharge"
  601                  "Capacity falls below 80% of the DesignCapacity. "
  602                  "If this property is not supported, enter 0."),
  603               Units ("MilliWattHours"),
  604               MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
  605              uint32 FullChargeCapacity;
  606           
  607              [Description (
  608                  "The design voltage of the battery in mVolts. If "
  609                  "this attribute is not supported, enter 0."),
  610 karl  1.2     Units ("MilliVolts"),
  611               MappingStrings {"MIF.DMTF|Portable Battery|003"} ]   
  612              uint64 DesignVoltage;
  613           
  614              [MaxLen (64), Description (
  615                  "The Smart Battery Data Specification version number "
  616                  "supported by this Battery. If the Battery does not "
  617                  "support this function, the value should be left blank."),
  618               MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
  619              string SmartBatteryVersion;
  620           
  621              [Description (
  622                  "The remaining time to charge the battery fully in minutes "
  623                  "at the current charging rate and usage."),
  624               Units ("Minutes"),
  625               MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
  626              uint32 TimeToFullCharge;
  627               [Description (
  628                  "Indicates the Battery's expected lifetime in minutes, " 
  629                  "assuming that the Battery is fully charged. This property "
  630                  "represents the total expected life of the Battery, not its "
  631 karl  1.2        "current remaining life, which is indicated by the "
  632                  "EstimatedRunTime property. "), 
  633               Units ("Minutes") ]
  634              uint32 ExpectedLife;
  635           
  636              [Description (
  637                  "MaxRechargeTime indicates the maximum time, in minutes, " 
  638                  "to fully charge the Battery. This property represents the "
  639                  "time to recharge a fully depleted Battery, not the current "
  640                  "remaining charging time, which is indicated in the "
  641                  "TimeToFullCharge property. "), 
  642               Units ("Minutes") ]
  643              uint32 MaxRechargeTime;  
  644           };
  645           
  646           
  647           // ===================================================================
  648           // AssociatedBattery
  649           // ===================================================================
  650           [Association, Version ("2.6.0"), Description (
  651              "A LogicalDevice may use or require one or more Batteries. This "
  652 karl  1.2    "relationship is described by the AssociatedBattery dependency. "
  653              "It is also possible to model the individual Batteries that "
  654              "comprise a UPS, using this association.") ] 
  655           class CIM_AssociatedBattery : CIM_Dependency   {
  656           
  657              [Override ("Antecedent"),
  658               Description ("The Battery.") ]
  659              CIM_Battery REF Antecedent;
  660           
  661              [Override ("Dependent"),
  662               Description (
  663                  "The LogicalDevice needing or associated with the Battery.") ]
  664              CIM_LogicalDevice REF Dependent;
  665           };
  666           
  667           
  668           // ===================================================================
  669           // PowerSupply
  670           // ===================================================================
  671           [Version ("2.6.0"), Description (
  672              "Capabilities and management of the PowerSupply LogicalDevice.") ] 
  673 karl  1.2 class CIM_PowerSupply : CIM_LogicalDevice   {
  674           
  675              [Description (
  676                  "Boolean indicating that the PowerSupply is a switching "
  677                  "(vs linear) supply.") ]
  678              boolean IsSwitchingSupply;
  679           
  680              [Description (
  681                  "The low voltage of Input Voltage Range 1 for this Power"
  682                  "Supply, in millivolts. A value of 0 denotes 'unknown'."),
  683               Units ("MilliVolts"),
  684               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  685              uint32 Range1InputVoltageLow;
  686           
  687              [Description (
  688                  "The high voltage of Input Voltage Range 1 for this Power"
  689                  "Supply, in millivolts. A value of 0 denotes 'unknown'."),
  690               Units ("MilliVolts"),
  691               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  692              uint32 Range1InputVoltageHigh;
  693           
  694 karl  1.2    [Description (
  695                  "The frequency (in Hertz) at the low end of this Power"
  696                  "Supply's Input Frequency Range 1. A value of zero "
  697                  "implies DC."),
  698               Units ("Hertz"),
  699               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  700              uint32 Range1InputFrequencyLow;
  701           
  702              [Description (
  703                  "The frequency (in Hertz) at the high end of this Power"
  704                  "Supply's Input Frequency Range 1. A value of zero "
  705                  "implies DC."),
  706               Units ("Hertz"),
  707               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  708              uint32 Range1InputFrequencyHigh;
  709           
  710              [Description (
  711                  "The low voltage of Input Voltage Range 2 for this Power"
  712                  "Supply, in millivolts. A value of 0 denotes 'unknown'."),
  713               Units ("MilliVolts"), 
  714               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  715 karl  1.2    uint32 Range2InputVoltageLow;
  716           
  717              [Description (
  718                  "The high voltage of Input Voltage Range 2 for this Power"
  719                  "Supply, in millivolts. A value of 0 denotes 'unknown'."),
  720               Units ("MilliVolts"), 
  721               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  722              uint32 Range2InputVoltageHigh;
  723           
  724              [Description (
  725                  "The frequency (in Hertz) at the low end of this Power"
  726                  "Supply's Input Frequency Range 2. A value of zero "
  727                  "implies DC."),
  728               Units ("Hertz"),
  729               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  730              uint32 Range2InputFrequencyLow;
  731           
  732              [Description (
  733                  "The frequency (in Hertz) at the high end of this Power"
  734                  "Supply's Input Frequency Range 2. A value of zero "
  735                  "implies DC."),
  736 karl  1.2     Units ("Hertz"),
  737               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  738              uint32 Range2InputFrequencyHigh;
  739           
  740              [Description (
  741                  "ActiveInputVoltage indicates which input voltage range is "
  742                  "currently in use. Range 1, 2 or both can be specified "
  743                  "using the values 3, 4 or 5, respectively. If the Supply "
  744                  "is not currently drawing power, the value 6 (\"Neither\") "
  745                  "can be specified. This information is necessary in the "
  746                  "case of a UPS, a subclass of PowerSupply."),
  747               ValueMap {"1", "2", "3", "4", "5", "6"},
  748               Values {"Other", "Unknown", "Range 1", "Range 2", "Both",
  749                  "Neither"},
  750               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  751              uint16 ActiveInputVoltage;
  752           
  753              [Description (
  754                  "TypeOfRangeSwitching describes the kind of input voltage "
  755                  "range switching implemented in this PowerSupply. For "
  756                  "example, autoswitching can be specified (value=4)."),
  757 karl  1.2     ValueMap {"1", "2", "3", "4", "5", "6"},
  758               Values {"Other", "Unknown", "Manual", "Autoswitch",
  759                  "Wide Range", "Not Applicable"},
  760               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  761              uint16 TypeOfRangeSwitching;
  762           
  763              [Description (
  764                  "Represents the total output power of the PowerSupply in "
  765                  "milliWatts. 0 denotes 'unknown'."),
  766               Units ("MilliWatts"),
  767               MappingStrings {"MIF.DMTF|Power Supply|004"} ]
  768              uint32 TotalOutputPower;
  769           };
  770           
  771           
  772           // ===================================================================
  773           // SuppliesPower 
  774           // ===================================================================
  775           [Association, Version ("2.6.0"), Description (
  776              "The SuppliesPower relationship indicates that a Device is in "
  777              "the power domain of the referenced PowerSupply or UPS. "
  778 karl  1.2    "It indicates which Device(s) are dependent on the PowerSupply, "
  779              "and hence, which Devices are affected if the Supply is lost.") ]
  780           class CIM_SuppliesPower : CIM_Dependency {
  781           
  782              [Override ("Antecedent"), 
  783               Description ("The Supply providing power.") ]
  784              CIM_PowerSupply REF Antecedent;
  785           
  786              [Override ("Dependent"), 
  787               Description (
  788                  "A LogicalDevice in the power domain of the Supply.") ]
  789              CIM_LogicalDevice REF Dependent;
  790           };
  791           
  792           
  793           // ===================================================================
  794           // UninterruptiblePowerSupply
  795           // ===================================================================
  796           [Version ("2.6.0"), Description (
  797              "Capabilities and management of an UninterruptiblePowerSupply. "
  798              "The properties of the UPS Device indicate when incoming power "
  799 karl  1.2    "is trimmed or boosted, and the aggregated information of the "
  800              "batteries, generators, etc. that comprise the Device.  These "
  801              "individual components (for example, multiple batteries) can "
  802              "also be independently modeled and associated with the UPS.") ] 
  803           class CIM_UninterruptiblePowerSupply : CIM_PowerSupply {
  804           
  805              [Override ("Range1InputVoltageLow"), Description (
  806                  "If the voltage (in millivolts) drops below the value "
  807                  "specified by Range1InputVoltageLow, the UPS will compensate "
  808                  "by boosting the voltage using its power source(s).  A value "
  809                  "of 0 indicates that the voltage at which boosting occurs "
  810                  "is 'unknown'."), 
  811               Units ("MilliVolts") ]
  812              uint32 Range1InputVoltageLow;
  813           
  814              [Override ("Range1InputVoltageHigh"), Description (
  815                  "If the voltage (in millivolts) rises above the value "
  816                  "specified by Range1InputVoltageHigh, the UPS will compensate "
  817                  "by trimming the voltage.  A value of 0 indicates that the "
  818                  "voltage at which trimming occurs is 'unknown'."),
  819               Units ("MilliVolts") ]
  820 karl  1.2    uint32 Range1InputVoltageHigh;
  821           
  822              [Override ("Range2InputVoltageLow"), Description (
  823                  "If the voltage (in millivolts) drops below the value "
  824                  "specified by Range2InputVoltageLow, the UPS will compensate "
  825                  "by boosting the voltage using its power source(s).  A value "
  826                  "of 0 indicates that the voltage at which boosting occurs "
  827                  "is 'unknown'."), 
  828               Units ("MilliVolts") ]
  829              uint32 Range2InputVoltageLow;
  830           
  831              [Override ("Range2InputVoltageHigh"), Description (
  832                  "If the voltage (in millivolts) rises above the value "
  833                  "specified by Range2InputVoltageHigh, the UPS will compensate "
  834                  "by trimming the voltage.  A value of 0 indicates that the "
  835                  "voltage at which trimming occurs is 'unknown'."),
  836               Units ("MilliVolts") ]
  837              uint32 Range2InputVoltageHigh;
  838           
  839              [Description (
  840                  "The indication of the capacity remaining in the UPS' "
  841 karl  1.2        "batteries, generator, ...  A value of \"Normal\" (2) "
  842                  "indicates that the remaining estimated minutes of run-time "
  843                  "is greater than the UPS' defined 'low power' state "
  844                  "(typically two minutes). A value of \"Low\" (3) indicates "
  845                  "that the remaining estimated minutes of run-time is less "
  846                  "than or equal to the UPS' defined 'low power' state.  A "
  847                  "value of \"Depleted\" (4) indicates that the "
  848                  "UPS will be unable to sustain the present load when and if "
  849                  "the utility power is lost (including the possibility that "
  850                  "the utility power is currently absent)."), 
  851               ValueMap {"1", "2", "3", "4"}, 
  852               Values {"Unknown", "Normal", "Low", "Depleted"},
  853               MappingStrings {"MIF.DMTF|UPS Battery|001.1"} ]
  854              uint16 RemainingCapacityStatus;
  855           
  856              [Description (
  857                  "TimeOnBackup indicates the elapsed time in seconds "
  858                  "since the UPS last switched to battery power, generator, ...  "
  859                  "Or, the time since the UPS was last restarted, whichever is "
  860                  "less. Zero shall be returned if the UPS is 'on line'."), 
  861               Units ("Seconds"),
  862 karl  1.2     MappingStrings {"MIF.DMTF|UPS Battery|001.2"} ]
  863              uint32 TimeOnBackup;
  864           
  865              [Description (
  866                  "EstimatedRunTime is an estimate in minutes of the time to "
  867                  "battery, generator, ... depletion under the present load "
  868                  "conditions if the utility power is off, or lost and remains "
  869                  "off."),
  870               Units ("Minutes"),
  871               MappingStrings {"MIF.DMTF|UPS Battery|001.3"} ]
  872              uint32 EstimatedRunTime;
  873           
  874              [Gauge, Description (
  875                  "An estimate of the percentage of full charge remaining for "
  876                  "a UPS (that uses battery technology)."),
  877               Units ("Percent"),
  878               MappingStrings {"MIF.DMTF|UPS Battery|001.4"} ] 
  879              uint16 EstimatedChargeRemaining;
  880           };
  881           
  882           
  883 karl  1.2 // ===================================================================
  884           //    UML Page 3 - User Devices
  885           // ===================================================================
  886           // ===================================================================
  887           // UserDevice
  888           // ===================================================================
  889           [Abstract, Version ("2.6.0"), Description (
  890              "UserDevices are LogicalDevices that allow a ComputerSystem's "
  891              "users to input, view or hear data.  It is a superclass from "
  892              "which other classes, such as Keyboard or DesktopMonitor, "
  893              "descend.") ] 
  894           class CIM_UserDevice : CIM_LogicalDevice {
  895           
  896              [Description (
  897                  "An indication of whether the Device is locked, preventing "
  898                  "user input or output.") ]
  899              boolean IsLocked;
  900           };
  901           
  902           
  903           // ===================================================================
  904 karl  1.2 // PointingDevice
  905           // ===================================================================
  906           [Version ("2.6.0"), Description (
  907              "PointingDevice represents those Devices used to 'point' to "
  908              "regions of a Display.") ] 
  909           class CIM_PointingDevice : CIM_UserDevice {
  910           
  911              [Description ("The type of the pointing device."),
  912               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9"},
  913               Values {"Other", "Unknown", "Mouse", "Track Ball", "Track Point",
  914                  "Glide Point", "Touch Pad", "Touch Screen", 
  915                  "Mouse - Optical Sensor"}, 
  916               MappingStrings {"MIF.DMTF|Pointing Device|003"} ]
  917              uint16 PointingType;
  918           
  919              [Description (
  920                  "Number of buttons. If the PointingDevice has no buttons, "
  921                  "enter 0."),
  922               MappingStrings {"MIF.DMTF|Pointing Device|003"} ]
  923              uint8 NumberOfButtons;
  924           
  925 karl  1.2    [Description (
  926                  "Integer indicating whether the PointingDevice is configured "
  927                  "for right (value=2) or left handed operation (value=3). "
  928                  "Also, the values, \"Unknown\" (0) and \"Not Applicable\" (1), "
  929                  "can be defined."),
  930               ValueMap {"0", "1", "2", "3"},
  931               Values {"Unknown", "Not Applicable", "Right Handed Operation",
  932                  "Left Handed Operation"} ]
  933              uint16 Handedness;
  934           
  935              [Description (
  936                  "Tracking resolution of the PointingDevice in Counts per "
  937                  "Inch."),
  938               Units ("Counts per Inch") ]
  939              uint32 Resolution;
  940           };
  941           
  942           
  943           // ===================================================================
  944           // Keyboard
  945           // ===================================================================
  946 karl  1.2 [Version ("2.6.0"), Description (
  947              "Capabilities and management of the Keyboard LogicalDevice.") ] 
  948           class CIM_Keyboard : CIM_UserDevice {
  949           
  950              [Description ("Number of function keys on the Keyboard.") ]
  951              uint16 NumberOfFunctionKeys;
  952           
  953              [Description (
  954                  "A free-form string indicating the format and layout of the "
  955                  "Keyboard."),
  956               MappingStrings {"MIF.DMTF|Keyboard|004"} ]
  957              string Layout;
  958           
  959              [Description (
  960                  "An integer indicating whether a hardware-level password is "
  961                  "enabled at the keyboard (value=4), preventing local input. "
  962                  "Other values are:  \"Disabled\" (3), \"Not Implemented\" (5), "
  963                  "\"Other\" (1) and \"Unknown\" (2)."),
  964               ValueMap {"1", "2", "3", "4", "5"},
  965               Values {"Other", "Unknown", "Disabled", "Enabled", 
  966                  "Not Implemented"},
  967 karl  1.2     MappingStrings {"MIF.DMTF|System Hardware Security|001.2"} ]
  968              uint16 Password;
  969           };
  970           
  971           
  972           // ===================================================================
  973           // Display
  974           // ===================================================================
  975           [Abstract, Version ("2.6.0"), Description (
  976              "Display is a superclass for grouping the miscellaneous display "
  977              "devices that exist.") ] 
  978           class CIM_Display : CIM_UserDevice {
  979           };
  980           
  981           
  982           // ===================================================================
  983           // DesktopMonitor
  984           // ===================================================================
  985           [Version ("2.6.0"), Description (
  986              "Capabilities and management of the DesktopMonitor (CRT) "
  987              "LogicalDevice.") ] 
  988 karl  1.2 class CIM_DesktopMonitor : CIM_Display {
  989           
  990              [Description (
  991                  "The type of DesktopMonitor or CRT. For example, "
  992                  "multiscan color or monochrome monitors (values 2 or 3, "
  993                  "respectively) can be indicated in this property."),
  994               ValueMap {"0", "1", "2", "3", "4", "5"},
  995               Values {"Unknown", "Other", "Multiscan Color", 
  996                  "Multiscan Monochrome", "Fixed Frequency Color",
  997                  "Fixed Frequency Monochrome"} ]
  998              uint16 DisplayType;
  999           
 1000              [Description (
 1001                  "Monitor's bandwidth in MHertz. If unknown, enter 0."),
 1002               Units ("MegaHertz") ]
 1003              uint32 Bandwidth;
 1004           
 1005              [Description (
 1006                  "The logical height of the Display in screen coordinates.") ]
 1007              uint32 ScreenHeight;
 1008           
 1009 karl  1.2    [Description ( 
 1010                  "The logical width of the Display in screen coordinates.") ]
 1011              uint32 ScreenWidth;
 1012           };
 1013           
 1014           
 1015           // ===================================================================
 1016           // FlatPanel
 1017           // ===================================================================
 1018           [Version ("2.6.0"), Description (
 1019              "Capabilities and management of the FlatPanel LogicalDevice.") ] 
 1020           class CIM_FlatPanel : CIM_Display  {
 1021           
 1022              [Description ("FlatPanel's horizontal resolution in Pixels."),
 1023               Units ("Pixels") ]
 1024              uint32 HorizontalResolution;
 1025           
 1026              [Description ("FlatPanel's vertical resolution in Pixels."),
 1027               Units ("Pixels") ]
 1028              uint32 VerticalResolution;
 1029           
 1030 karl  1.2    [Description (
 1031                  "A FlatPanel's scan mode indicating either single "
 1032                  "(value=2) or dual scan (3)."),
 1033               ValueMap {"0", "1", "2", "3"},
 1034               Values {"Unknown", "Other", "Single Scan", "Dual Scan"} ]
 1035              uint16 ScanMode;
 1036           
 1037              [Description (
 1038                  "An integer enumeration describing the type of flat panel "
 1039                  "display."),
 1040               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
 1041               Values {"Unknown", "Other", "Passive Matrix LCD", 
 1042                  "Active Matrix LCD", "Cholesteric LCD",
 1043                  "Field Emission Display", 
 1044                  "Electro Luminescent Display", "Gas Plasma", "LED"} ]
 1045              uint16 DisplayType;
 1046           
 1047              [Description (
 1048                  "A description of the display illumination type. For example, "
 1049                  "backlit (value=2) or reflective (4) can be specified."),
 1050               ValueMap {"0", "1", "2", "3", "4"},
 1051 karl  1.2     Values {"Unknown", "Other", "Backlit", "Edgelit", "Reflective"} ]
 1052              uint16 LightSource;
 1053           
 1054              [Description (
 1055                  "Boolean indicating whether the FlatPanel supports color "
 1056                  "display.") ]
 1057              boolean SupportsColor;
 1058           };
 1059           
 1060           
 1061           // ===================================================================
 1062           // Scanner
 1063           // ===================================================================
 1064           [Version ("2.6.0"), Description (
 1065              "Capabilities and management of the Scanner LogicalDevice.") ] 
 1066           class CIM_Scanner : CIM_LogicalDevice {
 1067           };
 1068           
 1069           
 1070           // ===================================================================
 1071           // Door
 1072 karl  1.2 // ===================================================================
 1073           [Version ("2.6.0"), Description (
 1074              "A Door is the abstraction of hardware providing access to "
 1075              "the internal componentry of a System. When a Door is 'opened', "
 1076              "typically all accessible, moving components are stopped or "
 1077              "suspended to prevent physical harm.") ]
 1078           class CIM_Door : CIM_LogicalDevice {
 1079           
 1080              [Description (
 1081                  "Boolean indicating the 'open' (TRUE) or 'closed' (FALSE) "
 1082                  "status of the Door.") ]
 1083              boolean Open;
 1084           
 1085              [Description (
 1086                  "Boolean indicating that the Door is 'locked' (TRUE) or "
 1087                  "'unlocked' (FALSE). When the Door is locked, access to the "
 1088                  "componentry is prevented, without the use of a physical "
 1089                  "key or the issuance of a software unlock command.") ]
 1090              boolean Locked;
 1091           
 1092              [Description (
 1093 karl  1.2        "When a Door is 'Open', all accessible, moving componentry "
 1094                  "and Device operation are typically stopped. The Timeout "
 1095                  "property provides a mechanism to event on a Door left open "
 1096                  "for a period of time (in seconds) exceeding the property's "
 1097                  "value."), 
 1098               Units ("Seconds") ]
 1099              uint32 Timeout;
 1100           
 1101              [Description (
 1102                  "Date and time that the Door was last opened.") ]
 1103              datetime LastOpened;
 1104           
 1105              [Description (
 1106                  "The Capabilities of the Door. For example, information on "
 1107                  "whether the Door is \"Host System Lockable\" (value=2) and/or "
 1108                  "whether a key is available (value=3) are specified in this "
 1109                  "property. The value 4, \"All Drives Dismounted Before "
 1110                  "Access\", pertains to a Door on a StorageLibrary or set of "
 1111                  "drive bays. If specified for the Door, it means that it can "
 1112                  "not be opened unless all Media are first unloaded from the "
 1113                  "accessible MediaAccessDevices."), 
 1114 karl  1.2     ValueMap {"0", "1", "2", "3", "4"},
 1115               Values {"Unknown", "Other", "Host System Lockable", 
 1116                  "Physical Key", "All Drives Dismounted Before Access"} ]
 1117              uint16 Capabilities[];
 1118           };
 1119           
 1120           
 1121           // ===================================================================
 1122           // DoorAccessToPhysicalElement 
 1123           // ===================================================================
 1124           [Association, Version ("2.6.0"), Description (
 1125              "Doors provide access to PhysicalElements for hot swap, repair "
 1126              "and similar activities. The entities accessed through a Door "
 1127              "are indicated in this relationship.") ]
 1128           class CIM_DoorAccessToPhysicalElement : CIM_Dependency {
 1129           
 1130              [Override ("Antecedent"), 
 1131               Description ("The Door that provides access.") ]
 1132              CIM_Door REF Antecedent;
 1133           
 1134              [Override ("Dependent"), 
 1135 karl  1.2     Description ("The PhysicalElement that is accessed.") ]
 1136              CIM_PhysicalElement REF Dependent;
 1137           };
 1138           
 1139           
 1140           // ===================================================================
 1141           // DoorAccessToDevice 
 1142           // ===================================================================
 1143           [Association, Version ("2.6.0"), Description (
 1144              "Doors provide access to PhysicalElements for hot swap, repair "
 1145              "and similar activities. In turn, PhysicalElements 'Realize' "
 1146              "LogicalDevices. Since it may not be possible to define all the "
 1147              "PhysicalElements that exist, and optimizing the retrieval of "
 1148              "Devices 'behind' the Door may be desirable, the DoorAccessTo"
 1149              "Device association provides a shortcut mechanism for defining "
 1150              "the LogicalDevices ('hardware') accessed through a Door.") ]
 1151           class CIM_DoorAccessToDevice : CIM_Dependency {
 1152           
 1153              [Override ("Antecedent"), 
 1154               Description ("The Door that provides access.") ]
 1155              CIM_Door REF Antecedent;
 1156 karl  1.2 
 1157              [Override ("Dependent"), 
 1158               Description ("The LogicalDevice that is accessed.") ]
 1159              CIM_LogicalDevice REF Dependent;
 1160           };
 1161           
 1162           
 1163           // ===================================================================
 1164           //    UML Page 4 - Processors, Sensors, & Alarm
 1165           // ===================================================================
 1166           // ===================================================================
 1167           // Sensor
 1168           // ===================================================================
 1169           [Abstract, Version ("2.6.0"), Description (
 1170              "A Sensor is a hardware device capable of measuring the "
 1171              "characteristics of some physical property - for example, the "
 1172              "temperature or voltage characteristics of a UnitaryComputer"
 1173              "System.") ] 
 1174           class CIM_Sensor : CIM_LogicalDevice {
 1175           
 1176              [Description (
 1177 karl  1.2        "The Type of the Sensor, e.g. Voltage or Temperature Sensor. "
 1178                  "If the type is set to \"Other\", then the OtherSensorType"
 1179                  "Description can be used to further identify the type, or if "
 1180                  "the Sensor has numeric readings, then the type of the Sensor "
 1181                  "can be implicitly determined by the Units. A description of "
 1182                  "the different Sensor types is as follows: A Temperature Sensor "
 1183                  "measures the environmental temperature. Voltage and Current "
 1184                  "Sensors measure electrical voltage and current readings.  A "
 1185                  "Tachometer measures speed/revolutions of a Device. For example,"
 1186                  " a Fan Device can have an associated Tachometer which measures "
 1187                  "its speed. A Counter is a general purpose Sensor that measures "
 1188                  "some numerical property of a Device. A Counter value can be "
 1189                  "cleared, but it never decreases. A Switch Sensor has states "
 1190                  "like Open/Close, On/Off, or Up/Down. A Lock has states of "
 1191                  "Locked/Unlocked. Humidity, Smoke Detection and Air Flow Sensors"
 1192                  " measure the equivalent environmental characteristics. A "
 1193                  "Presence Sensor detects the presence of a PhysicalElement."), 
 1194               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 1195                  "10", "11", "12"},
 1196               Values {"Unknown", "Other", "Temperature", "Voltage", "Current", 
 1197                  "Tachometer", "Counter", "Switch", "Lock", "Humidity", 
 1198 karl  1.2        "Smoke Detection", "Presence", "Air Flow"},
 1199               ModelCorrespondence {"CIM_Sensor.OtherSensorTypeDescription"} ]
 1200              uint16 SensorType;
 1201           
 1202              [MaxLen (128), Description (
 1203                  "A string describing the Sensor type - used when the SensorType "
 1204                  "property is set to \"Other\"."), 
 1205               ModelCorrespondence {"CIM_Sensor.SensorType"} ]
 1206              string OtherSensorTypeDescription;
 1207           
 1208              [MaxLen (128), Description (
 1209                  "PossibleStates enumerates the string outputs of the Sensor. "
 1210                  "For example, a \"Switch\" Sensor may output the states \"On\", "
 1211                  "or \"Off\". Another implementation of the Switch may output "
 1212                  "the states \"Open\", and \"Close\". Another example is a "
 1213                  "NumericSensor supporting thresholds. This Sensor can report "
 1214                  "the states like \"Normal\", \"Upper Fatal\", "
 1215                  "\"Lower Non-Critical\", etc. A NumericSensor that does not "
 1216                  "publish readings and thresholds, but stores this data "
 1217                  "internally, can still report its states.") ]
 1218              string PossibleStates[];
 1219 karl  1.2 
 1220              [MaxLen (128), Description (
 1221                  "The current state indicated by the Sensor. This is always "
 1222                  "one of the \"PossibleStates\".") ]
 1223              string CurrentState;
 1224           
 1225              [Description (
 1226                  "The polling interval that the Sensor hardware or the "
 1227                  "instrumentation uses to determine the current state of the "
 1228                  "Sensor."), 
 1229               Units ("NanoSeconds") ]
 1230              uint64 PollingInterval;
 1231           };
 1232           
 1233           
 1234           // ===================================================================
 1235           // AssociatedSensor
 1236           // ===================================================================
 1237           [Association, Version ("2.6.0"), Description (
 1238              "Many Devices include Sensors or have Sensors installed "
 1239              "nearby, in order to measure critical input and output "
 1240 karl  1.2    "properties.  This association indicates that relationship.") ] 
 1241           class CIM_AssociatedSensor : CIM_Dependency {
 1242           
 1243              [Override ("Antecedent"), 
 1244               Description ("The Sensor.") ]
 1245              CIM_Sensor REF Antecedent;
 1246           
 1247              [Override ("Dependent"), Description (
 1248                  "The LogicalDevice for which information is measured by "
 1249                  "the Sensor.") ]
 1250              CIM_LogicalDevice REF Dependent;
 1251           };
 1252           
 1253           
 1254           // ===================================================================
 1255           // BinarySensor
 1256           // ===================================================================
 1257           [Version ("2.6.0"), Description (
 1258              "A BinarySensor provides a boolean output. Given the addition "
 1259              "of the CurrentState and PossibleStates properties to Sensor, "
 1260              "the BinarySensor subclass is no longer necessary, but is "
 1261 karl  1.2    "retained for backward compatibility. A BinarySensor can be "
 1262              "created by instantiating a Sensor with two PossibleStates.") ]
 1263           class CIM_BinarySensor : CIM_Sensor {
 1264           
 1265              [Description ("The current value indicated by the Sensor.") ]
 1266              boolean CurrentReading;
 1267           
 1268              [Description (
 1269                  "ExpectedReading indicates the 'normal' value for the Sensor.") ]
 1270              boolean ExpectedReading;
 1271           
 1272              [MaxLen (64), Description (
 1273                  "InterpretationOfTrue is a string indicating what a 'True' "
 1274                  "value from the BinarySensor means.  This information could "
 1275                  "be displayed to a user.") ]
 1276              string InterpretationOfTrue;
 1277           
 1278              [MaxLen (64), Description (
 1279                  "InterpretationOfFalse is a string indicating what a 'False' "
 1280                  "value from the BinarySensor means.  This information could "
 1281                  "be displayed to a user.") ]
 1282 karl  1.2    string InterpretationOfFalse;
 1283           };
 1284           
 1285           
 1286           // ===================================================================
 1287           // MultiStateSensor
 1288           // ===================================================================
 1289           [Version ("2.6.0"), Description (
 1290              "A Multi-StateSensor is a multi-member set of Sensors.") ] 
 1291           class CIM_MultiStateSensor : CIM_Sensor {
 1292           };
 1293           
 1294           
 1295           // ===================================================================
 1296           // CollectionOfSensors
 1297           // ===================================================================
 1298           [Association, Aggregation, Version ("2.6.0"), Description (
 1299              "The CollectionOfSensors association indicates the "
 1300              "Sensors that make up a MultiStateSensor.") ] 
 1301           class CIM_CollectionOfSensors : CIM_Component {
 1302           
 1303 karl  1.2    [Override ("GroupComponent"), Aggregate, Max (1),
 1304               Description ("The MultiStateSensor.") ]
 1305              CIM_MultiStateSensor REF GroupComponent;
 1306           
 1307              [Override ("PartComponent"), Min (2),
 1308               Description (
 1309                  "A Sensor that is part of the MultiStateSensor.") ]
 1310              CIM_Sensor REF PartComponent;
 1311           };
 1312           
 1313           
 1314           // ===================================================================
 1315           // NumericSensor
 1316           // ===================================================================
 1317           [Version ("2.6.0"), Description (
 1318              "A Numeric Sensor is capable of returning numeric readings "
 1319              "and optionally supports thresholds settings.") ] 
 1320           class CIM_NumericSensor : CIM_Sensor {
 1321           
 1322              [Description (
 1323                  "The base unit of the values returned by this Sensor. All "
 1324 karl  1.2        "the values returned by this Sensor are represented in the units"
 1325                  " obtained by (BaseUnits * 10 raised to the power of the Unit"
 1326                  "Modifier). For example, if BaseUnits is Volts and the Unit"
 1327                  "Modifier is -6, then the units of the values returned are "
 1328                  "MicroVolts. However, if the RateUnits property is set to a "
 1329                  "value other than \"None\", then the units are further qualified"
 1330                  " as rate units. In the above example, if RateUnits is set to "
 1331                  "\"Per Second\", then the values returned by the Sensor "
 1332                  "are in MicroVolts/Second. The units apply to all numeric "
 1333                  "properties of the Sensor, unless explicitly overridden by the "
 1334                  "Units qualifier."), 
 1335               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 1336                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 1337                  "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", 
 1338                  "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", 
 1339                  "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", 
 1340                  "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", 
 1341                  "61", "62", "63", "64", "65"}, 
 1342               Values {"Unknown", "Other", "Degrees C", "Degrees F", "Degrees K", 
 1343                  "Volts", "Amps", "Watts", "Joules", "Coulombs", "VA", "Nits", 
 1344                  "Lumens", "Lux", "Candelas", "kPa", "PSI", "Newtons", "CFM", 
 1345 karl  1.2        "RPM", "Hertz", "Seconds", "Minutes", "Hours", "Days", "Weeks", 
 1346                  "Mils", "Inches", "Feet", "Cubic Inches", "Cubic Feet", 
 1347                  "Meters", "Cubic Centimeters", "Cubic Meters", "Liters", 
 1348                  "Fluid Ounces", "Radians", "Steradians", "Revolutions", 
 1349                  "Cycles", "Gravities", "Ounces", "Pounds", "Foot-Pounds", 
 1350                  "Ounce-Inches", "Gauss", "Gilberts", "Henries", "Farads", 
 1351                  "Ohms", "Siemens", "Moles", "Becquerels", 
 1352                  "PPM (parts/million)", "Decibels", "DbA", "DbC", 
 1353                  "Grays", "Sieverts", "Color Temperature Degrees K", "Bits", 
 1354                  "Bytes", "Words (data)", "DoubleWords", "QuadWords", 
 1355                  "Percentage"},
 1356               ModelCorrespondence {"CIM_NumericSensor.UnitModifier", 
 1357                  "CIM_NumericSensor.RateUnits"} ]
 1358              uint16 BaseUnits;
 1359           
 1360              [Description (
 1361                  "The unit multiplier for the values returned by this Sensor. "
 1362                  "All the values returned by this Sensor are represented in the "
 1363                  "units obtained by (BaseUnits * 10 raised to the power of the "
 1364                  "UnitModifier). For example, if BaseUnits is Volts and the Unit"
 1365                  "Modifier is -6, then the units of the values returned are Micro"
 1366 karl  1.2        "Volts. However, if the RateUnits property is set to a value "
 1367                  "other than \"None\", then the units are further qualified as "
 1368                  "rate units. In the above example, if RateUnits is set to "
 1369                  "\"Per Second\", then the values returned by the Sensor are in "
 1370                  "MicroVolts/Second. The units apply to all numeric properties "
 1371                  "of the Sensor, unless explicitly overridden by the Units "
 1372                  "qualifier."),
 1373               ModelCorrespondence {"CIM_NumericSensor.BaseUnits", 
 1374                  "CIM_NumericSensor.RateUnits"} ]
 1375              sint32 UnitModifier;
 1376           
 1377              [Description (
 1378                  "Specifies if the units returned by this Sensor are rate units. "
 1379                  "All the values returned by this Sensor are represented in the "
 1380                  "units obtained by (BaseUnits * 10 raised to the power of the "
 1381                  "UnitModifier). This is true unless this property (RateUnits) "
 1382                  "has a value different than \"None\". For example, if BaseUnits "
 1383                  "is Volts and the UnitModifier is -6, then the units of the "
 1384                  "values returned are MicroVolts. But, if the RateUnits property "
 1385                  "is set to a value other than \"None\", then the units are "
 1386                  "further qualified as rate units. In the above example, if "
 1387 karl  1.2        "RateUnits is set to \"Per Second\", then the values returned "
 1388                  "by the Sensor are in MicroVolts/Second. The units apply to "
 1389                  "all numeric properties of the Sensor, unless explicitly "
 1390                  "overridden by the Units qualifier. Any implementation of "
 1391                  "CurrentReading should be qualified with either a Counter or a "
 1392                  "Gauge qualifier, depending on the characteristics of the "
 1393                  "sensor being modeled."), 
 1394               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"},  
 1395               Values {"None", "Per MicroSecond", "Per MilliSecond", "Per Second",
 1396                  "Per Minute", "Per Hour", "Per Day", "Per Week", "Per Month", 
 1397                  "Per Year"},
 1398               ModelCorrespondence {"CIM_NumericSensor.UnitModifier", 
 1399                  "CIM_NumericSensor.BaseUnits"} ]
 1400              uint16 RateUnits;
 1401           
 1402              [Description ("The current value indicated by the Sensor.") ]
 1403              sint32 CurrentReading;
 1404           
 1405              [Description (
 1406                  "NominalReading indicates the 'normal' or expected value "
 1407                  "for the NumericSensor.") ]
 1408 karl  1.2    sint32 NominalReading;
 1409           
 1410              [Description (
 1411                  "NormalMax provides guidance for the user as to the "
 1412                  "normal maximum range for the NumericSensor.") ]
 1413              sint32 NormalMax;
 1414           
 1415              [Description (
 1416                  "NormalMin provides guidance for the user as to the "
 1417                  "normal minimum range for the NumericSensor.") ]
 1418              sint32 NormalMin;
 1419           
 1420              [Description (
 1421                  "MaxReadable indicates the largest value of the measured "
 1422                  "property that can be read by the NumericSensor.") ]     
 1423              sint32 MaxReadable;
 1424           
 1425              [Description (
 1426                  "MinReadable indicates the smallest value of the measured "
 1427                  "property that can be read by the NumericSensor.") ]     
 1428              sint32 MinReadable;
 1429 karl  1.2 
 1430              [Description (
 1431                  "Resolution indicates the ability of the Sensor to resolve "
 1432                  "differences in the measured property.  This value may vary "
 1433                  "depending on whether the Device is linear over its dynamic "
 1434                  "range.") ]
 1435              uint32 Resolution;
 1436           
 1437              [Description (
 1438                  "Indicates the tolerance of the Sensor for the measured "
 1439                  "property. Tolerance, along with Resolution and Accuracy, "
 1440                  "is used to calculate the actual value of the measured "
 1441                  "physical property.  Tolerance may vary depending on "
 1442                  "whether the Device is linear over its dynamic range.") ]
 1443              sint32 Tolerance;
 1444           
 1445              [Description (
 1446                  "Indicates the accuracy of the Sensor for the measured "
 1447                  "property. Its value is recorded as plus/minus hundredths "
 1448                  "of a percent. Accuracy, along with Resolution and Tolerance, "
 1449                  "is used to calculate the actual value of the measured "
 1450 karl  1.2        "physical property. Accuracy may vary depending on whether "
 1451                  "the Device is linear over its dynamic range."), 
 1452               Units ("Hundredths of Percent") ]
 1453              sint32 Accuracy;
 1454           
 1455              [Description (
 1456                  "Indicates that the Sensor is linear over its dynamic range.") ] 
 1457              boolean IsLinear;
 1458           
 1459              [Description (
 1460                  "Indicates the margin built around the thresholds. This margin "
 1461                  "prevents unnecessary state changes when the Sensor reading may "
 1462                  "fluctuate very close to its thresholds. This could be due to "
 1463                  "the Sensor's tolerance/accuracy/resolution or due to "
 1464                  "environmental factors. Once a threshold is crossed, the state "
 1465                  "of the Sensor should change. However, the state should not "
 1466                  "fluctuate between the old and new states unless the Sensor's "
 1467                  "change in the reading exceeds the hysteresis value.") ]
 1468              uint32 Hysteresis;
 1469           
 1470              [Description (
 1471 karl  1.2        "The Sensor's threshold values specify the ranges (min and max "
 1472                  "values) for determining whether the Sensor is operating under "
 1473                  "Normal, NonCritical, Critical or Fatal conditions. If Current"
 1474                  "Reading is between LowerThresholdNonCritical and UpperThreshold"
 1475                  "NonCritical, then the Sensor is reporting a normal value. "
 1476                  "If CurrentReading is between LowerThresholdNonCritical and "
 1477                  "LowerThresholdCritical, then the CurrentState is "
 1478                  "NonCritical.") ]
 1479              sint32 LowerThresholdNonCritical;
 1480           
 1481              [Description (
 1482                  "The Sensor's threshold values specify the ranges (min and max "
 1483                  "values) for determining whether the Sensor is operating under "
 1484                  "Normal, NonCritical, Critical or Fatal conditions. If the "
 1485                  "CurrentReading is between LowerThresholdNonCritical and "
 1486                  "UpperThresholdNonCritical, then the Sensor is reporting a "
 1487                  "normal value. If the CurrentReading is between UpperThreshold"
 1488                  "NonCritical and UpperThresholdCritical, then the CurrentState "
 1489                  "is NonCritical.") ]
 1490              sint32 UpperThresholdNonCritical;
 1491           
 1492 karl  1.2    [Description (
 1493                  "The Sensor's threshold values specify the ranges (min and max "
 1494                  "values) for determining whether the Sensor is operating under "
 1495                  "Normal, NonCritical, Critical or Fatal conditions. If the "
 1496                  "CurrentReading is between LowerThresholdCritical and Lower"
 1497                  "ThresholdFatal, then the CurrentState is Critical.") ]
 1498              sint32 LowerThresholdCritical;
 1499           
 1500              [Description (
 1501                  "The Sensor's threshold values specify the ranges (min and max "
 1502                  "values) for determining whether the Sensor is operating under "
 1503                  "Normal, NonCritical, Critical or Fatal conditions. If the "
 1504                  "CurrentReading is between UpperThresholdCritical and Upper"
 1505                  "ThresholdFatal, then the CurrentState is Critical.") ]
 1506              sint32 UpperThresholdCritical;
 1507           
 1508              [Description (
 1509                  "The Sensor's threshold values specify the ranges (min and max "
 1510                  "values) for determining whether the Sensor is operating under "
 1511                  "Normal, NonCritical, Critical or Fatal conditions. If the "
 1512                  "CurrentReading is below LowerThresholdFatal, then the Current"
 1513 karl  1.2        "State is Fatal.") ]
 1514              sint32 LowerThresholdFatal;
 1515           
 1516                [Description (
 1517                  "The Sensor's threshold values specify the ranges (min and max "
 1518                  "values) for determining whether the Sensor is operating under "
 1519                  "Normal, NonCritical, Critical or Fatal conditions. If the "
 1520                  "CurrentReading is above UpperThresholdFatal, then the Current"
 1521                  "State is Fatal.") ]
 1522              sint32 UpperThresholdFatal;
 1523           
 1524              [Description (
 1525                  "An array representing the thresholds supported by this "
 1526                  "Sensor."), 
 1527               ValueMap {"0", "1", "2", "3", "4", "5"},  
 1528               Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
 1529                  "LowerThresholdCritical", "UpperThresholdCritical", 
 1530                  "LowerThresholdFatal", "UpperThresholdFatal"} ]
 1531              uint16 SupportedThresholds[];
 1532           
 1533              [Description (
 1534 karl  1.2        "An array representing the thresholds that are currently "
 1535                  "enabled for this Sensor."), 
 1536               ValueMap {"0", "1", "2", "3", "4", "5"},  
 1537               Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
 1538                  "LowerThresholdCritical", "UpperThresholdCritical", 
 1539                  "LowerThresholdFatal", "UpperThresholdFatal"} ]
 1540              uint16 EnabledThresholds[];
 1541           
 1542              [Description (
 1543                  "An array representing the writable thresholds supported by "
 1544                  "Sensor."), 
 1545               ValueMap {"0", "1", "2", "3", "4", "5"},  
 1546               Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
 1547                  "LowerThresholdCritical", "UpperThresholdCritical", 
 1548                  "LowerThresholdFatal", "UpperThresholdFatal"} ]
 1549              uint16 SettableThresholds[];
 1550           
 1551              [Description (
 1552                  "This method resets the values of the thresholds to hardware "
 1553                  "defaults. This method returns 0 if successful, 1 if "
 1554                  "unsupported and any other value if an error occurred. "
 1555 karl  1.2        "In a subclass, the set of possible return codes could be "
 1556                  "specified, using a ValueMap qualifier on the method. The "
 1557                  "strings to which the ValueMap contents are 'translated' "
 1558                  "may also be specified in the subclass as a Values "
 1559                  "array qualifier.") ]
 1560              uint32 RestoreDefaultThresholds();
 1561           
 1562              [Description (
 1563                  "For a non-linear Sensor, the resolution, accuracy, tolerance "
 1564                  "and hysteresis vary as the current reading moves. This method "
 1565                  "can be used to get these factors for a given reading. It "
 1566                  "returns 0 if successful, 1 if unsupported, and any other "
 1567                  "value if an error occurred. In a subclass, the set of "
 1568                  "possible return codes could be specified, using a ValueMap "
 1569                  "qualifier on the method. The strings to which the ValueMap "
 1570                  "contents are 'translated' may also be specified in the "
 1571                  "subclass as a Values array qualifier.") ]
 1572              uint32 GetNonLinearFactors(
 1573           
 1574                  [IN]sint32 SensorReading, 
 1575           
 1576 karl  1.2        [IN (false), OUT]sint32 Accuracy, 
 1577           
 1578                  [IN (false), OUT]uint32 Resolution, 
 1579           
 1580                  [IN (false), OUT]sint32 Tolerance, 
 1581           
 1582                  [IN (false), OUT]uint32 Hysteresis);
 1583           };
 1584           
 1585           
 1586           // ===================================================================
 1587           // DiscreteSensor
 1588           // ===================================================================
 1589           [Version ("2.6.0"), Description (
 1590              "A DiscreteSensor has a set of legal string values, "
 1591              "that it can report.  These values are enumerated in the "
 1592              "Sensor's PossibleValues property.  A DiscreteSensor will "
 1593              "always have a 'current reading' that corresponds to one of "
 1594              "the enumerated values. \n"
 1595              "Given the addition of the CurrentState and PossibleStates "
 1596              "properties to Sensor, the DiscreteSensor subclass is no longer "
 1597 karl  1.2    "necessary, but is retained for backward compatibility. "
 1598              "Information in the CurrentReading and PossibleValues properties "
 1599              "will typically have the same values and semantics as for the "
 1600              "CurrentState and PossibleStates properties, inherited from "
 1601              "Sensor.") ]
 1602           class CIM_DiscreteSensor : CIM_Sensor {
 1603           
 1604              [MaxLen (64), Description (
 1605                  "The current value indicated by the Sensor.") ]
 1606              string CurrentReading;
 1607           
 1608              [MaxLen (64), Description (
 1609                  "PossibleValues enumerates the string outputs that can be "
 1610                  "reported by the DiscreteSensor.") ]
 1611              string PossibleValues[];
 1612           
 1613              [MaxLen (64), Description (
 1614                  "AcceptableValues details which of the PossibleValues strings "
 1615                  "are considered 'acceptable' (ie, 'not an error').") ]
 1616              string AcceptableValues[];
 1617           };
 1618 karl  1.2 
 1619           
 1620           // ===================================================================
 1621           // TemperatureSensor
 1622           // ===================================================================
 1623           [Version ("2.6.0"), Description (
 1624              "This class exists for backward compatibility to earlier "
 1625              "CIM Schema definitions. With additions to Sensor and Numeric"
 1626              "Sensor in V2.2, it is no longer necessary. A TempertatureSensor "
 1627              "can be defined by setting the SensorType property, inherited "
 1628              "from Sensor, to 2 (\"Temperature\"). Other properties of this "
 1629              "class are hard-coded to constant values to correspond to "
 1630              "definitions in the Sensor hierarchy.") ] 
 1631           class CIM_TemperatureSensor : CIM_NumericSensor   {
 1632           
 1633              [Override("SensorType") ]
 1634              uint16 SensorType = 2;
 1635           
 1636              [Override("BaseUnits") ]
 1637              uint16 BaseUnits = 2;
 1638           
 1639 karl  1.2    [Override("UnitModifier") ]
 1640              sint32 UnitModifier = -1;
 1641           
 1642              [Override("RateUnits") ]
 1643              uint16 RateUnits = 0;
 1644           
 1645           // Override is used to define the MappingString qualifier 
 1646              [Override ("CurrentReading"),
 1647               MappingStrings {"MIF.DMTF|Temperature Probe|002.5"} ]
 1648              sint32 CurrentReading;
 1649           
 1650              [Override ("NominalReading"),
 1651               MappingStrings {"MIF.DMTF|Temperature Probe|002.6"} ]
 1652              sint32 NominalReading;
 1653           
 1654              [Override ("NormalMax"),
 1655               MappingStrings {"MIF.DMTF|Temperature Probe|002.7"} ]
 1656              sint32 NormalMax;
 1657           
 1658              [Override ("NormalMin"),
 1659               MappingStrings {"MIF.DMTF|Temperature Probe|002.8"} ]
 1660 karl  1.2    sint32 NormalMin;
 1661           
 1662              [Override ("MaxReadable"),
 1663               MappingStrings {"MIF.DMTF|Temperature Probe|002.9"} ]     
 1664              sint32 MaxReadable;
 1665           
 1666              [Override ("MinReadable"),
 1667               MappingStrings {"MIF.DMTF|Temperature Probe|002.10"} ]     
 1668              sint32 MinReadable;
 1669           
 1670              [Override ("Resolution"),
 1671               Units ("Hundredths of Degrees C"),
 1672               MappingStrings {"MIF.DMTF|Temperature Probe|002.17"} ]
 1673              uint32 Resolution;
 1674           
 1675              [Override ("Tolerance"),
 1676               MappingStrings {"MIF.DMTF|Temperature Probe|002.18"} ]
 1677              sint32 Tolerance;
 1678           
 1679              [Override ("Accuracy"),
 1680               MappingStrings {"MIF.DMTF|Temperature Probe|002.19"} ]
 1681 karl  1.2    sint32 Accuracy;
 1682           
 1683              [Override ("LowerThresholdNonCritical"),
 1684               MappingStrings {"MIF.DMTF|Temperature Probe|002.11"} ]
 1685              sint32 LowerThresholdNonCritical;
 1686           
 1687              [Override ("UpperThresholdNonCritical"),
 1688               MappingStrings {"MIF.DMTF|Temperature Probe|002.12"} ]
 1689              sint32 UpperThresholdNonCritical;
 1690           
 1691              [Override ("LowerThresholdCritical"),
 1692               MappingStrings {"MIF.DMTF|Temperature Probe|002.13"} ]
 1693              sint32 LowerThresholdCritical;
 1694           
 1695              [Override ("UpperThresholdCritical"),
 1696               MappingStrings {"MIF.DMTF|Temperature Probe|002.14"} ]
 1697              sint32 UpperThresholdCritical;
 1698           
 1699              [Override ("LowerThresholdFatal"),
 1700               MappingStrings {"MIF.DMTF|Temperature Probe|002.15"} ]
 1701              sint32 LowerThresholdFatal;
 1702 karl  1.2 
 1703              [Override ("UpperThresholdFatal"),
 1704               MappingStrings {"MIF.DMTF|Temperature Probe|002.16"} ]
 1705              sint32 UpperThresholdFatal;
 1706           };
 1707           
 1708           
 1709           // ===================================================================
 1710           // CurrentSensor
 1711           // ===================================================================
 1712           [Version ("2.6.0"), Description (
 1713              "This class exists for backward compatibility to earlier "
 1714              "CIM Schema definitions. With additions to Sensor and Numeric"
 1715              "Sensor in V2.2, it is no longer necessary. A CurrentSensor can "
 1716              "be defined by setting the SensorType property, inherited from "
 1717              "Sensor, to 4 (\"Current\"). Other properties of this class are "
 1718              "hard-coded to constant values to correspond to definitions in "
 1719              "the Sensor hierarchy.") ] 
 1720           class CIM_CurrentSensor : CIM_NumericSensor   {
 1721           
 1722              [Override("SensorType") ]
 1723 karl  1.2    uint16 SensorType = 4;
 1724           
 1725              [Override("BaseUnits") ]
 1726              uint16 BaseUnits = 6;
 1727           
 1728              [Override("UnitModifier") ]
 1729              sint32 UnitModifier = -3;
 1730           
 1731              [Override("RateUnits") ]
 1732              uint16 RateUnits = 0;
 1733           
 1734           // Override is used to define the MappingString qualifier 
 1735              [Override ("CurrentReading"),
 1736               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.5"} ]
 1737              sint32 CurrentReading;
 1738           
 1739              [Override ("NominalReading"),
 1740               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.6"} ]
 1741              sint32 NominalReading;
 1742           
 1743              [Override ("NormalMax"),
 1744 karl  1.2     MappingStrings {"MIF.DMTF|Electrical Current Probe|001.7"} ]
 1745              sint32 NormalMax;
 1746           
 1747              [Override ("NormalMin"),
 1748               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.8"} ]
 1749              sint32 NormalMin;
 1750           
 1751              [Override ("MaxReadable"),
 1752               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.9"} ]     
 1753              sint32 MaxReadable;
 1754           
 1755              [Override ("MinReadable"),
 1756               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.10"} ]     
 1757              sint32 MinReadable;
 1758           
 1759              [Override ("Resolution"), 
 1760               Units ("Tenths of MilliAmps"),
 1761               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.17"} ]
 1762              uint32 Resolution;
 1763           
 1764              [Override ("Tolerance"),
 1765 karl  1.2     MappingStrings {"MIF.DMTF|Electrical Current Probe|001.18"} ]
 1766              sint32 Tolerance;
 1767           
 1768              [Override ("Accuracy"), 
 1769               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.19"} ]
 1770              sint32 Accuracy;
 1771           
 1772              [Override ("LowerThresholdNonCritical"),
 1773               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.11"} ]
 1774              sint32 LowerThresholdNonCritical;
 1775           
 1776              [Override ("UpperThresholdNonCritical"),
 1777               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.12"} ]
 1778              sint32 UpperThresholdNonCritical;
 1779           
 1780              [Override ("LowerThresholdCritical"),
 1781               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.13"} ]
 1782              sint32 LowerThresholdCritical;
 1783           
 1784              [Override ("UpperThresholdCritical"),
 1785               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.14"} ]
 1786 karl  1.2    sint32 UpperThresholdCritical;
 1787           
 1788              [Override ("LowerThresholdFatal"),
 1789               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.15"} ]
 1790              sint32 LowerThresholdFatal;
 1791           
 1792              [Override ("UpperThresholdFatal"),
 1793               MappingStrings {"MIF.DMTF|Electrical Current Probe|001.16"} ]
 1794              sint32 UpperThresholdFatal;
 1795           };
 1796           
 1797           
 1798           // ===================================================================
 1799           // VoltageSensor
 1800           // ===================================================================
 1801           [Version ("2.6.0"), Description (
 1802              "This class exists for backward compatibility to earlier "
 1803              "CIM Schema definitions. With additions to Sensor and Numeric"
 1804              "Sensor in V2.2, it is no longer necessary. A VoltageSensor can "
 1805              "be defined by setting the SensorType property, inherited from "
 1806              "Sensor, to 3 (\"Voltage\"). Other properties of this class are "
 1807 karl  1.2    "hard-coded to constant values to correspond to definitions in "
 1808              "the Sensor hierarchy.") ] 
 1809           class CIM_VoltageSensor : CIM_NumericSensor   {
 1810           
 1811              [Override("SensorType") ]
 1812              uint16 SensorType = 3;
 1813           
 1814              [Override("BaseUnits") ]
 1815              uint16 BaseUnits = 5;
 1816           
 1817              [Override("UnitModifier") ]
 1818              sint32 UnitModifier = -3;
 1819           
 1820              [Override("RateUnits") ]
 1821              uint16 RateUnits = 0;
 1822           
 1823           // Override is used to define the MappingString qualifier 
 1824              [Override ("CurrentReading"),
 1825               MappingStrings {"MIF.DMTF|Voltage Probe|001.5"} ]
 1826              sint32 CurrentReading;
 1827           
 1828 karl  1.2    [Override ("NominalReading"),
 1829               MappingStrings {"MIF.DMTF|Voltage Probe|001.6"} ]
 1830              sint32 NominalReading;
 1831           
 1832              [Override ("NormalMax"),
 1833               MappingStrings {"MIF.DMTF|Voltage Probe|001.7"} ]
 1834              sint32 NormalMax;
 1835           
 1836              [Override ("NormalMin"),
 1837               MappingStrings {"MIF.DMTF|Voltage Probe|001.8"} ]
 1838              sint32 NormalMin;
 1839           
 1840              [Override ("MaxReadable"),
 1841               MappingStrings {"MIF.DMTF|Voltage Probe|001.9"} ]     
 1842              sint32 MaxReadable;
 1843           
 1844              [Override ("MinReadable"),
 1845               MappingStrings {"MIF.DMTF|Voltage Probe|001.10"} ]     
 1846              sint32 MinReadable;
 1847           
 1848              [Override ("Resolution"), 
 1849 karl  1.2     Units ("Tenths of MilliVolts"),
 1850               MappingStrings {"MIF.DMTF|Voltage Probe|001.17"} ]
 1851              uint32 Resolution;
 1852           
 1853              [Override ("Tolerance"),
 1854               MappingStrings {"MIF.DMTF|Voltage Probe|001.18"} ]
 1855              sint32 Tolerance;
 1856           
 1857              [Override ("Accuracy"),
 1858               MappingStrings {"MIF.DMTF|Voltage Probe|001.19"} ]
 1859              sint32 Accuracy;
 1860           
 1861              [Override ("LowerThresholdNonCritical"),
 1862               MappingStrings {"MIF.DMTF|Voltage Probe|001.11"} ]
 1863              sint32 LowerThresholdNonCritical;
 1864           
 1865              [Override ("UpperThresholdNonCritical"),
 1866               MappingStrings {"MIF.DMTF|Voltage Probe|001.12"} ]
 1867              sint32 UpperThresholdNonCritical;
 1868           
 1869              [Override ("LowerThresholdCritical"),
 1870 karl  1.2     MappingStrings {"MIF.DMTF|Voltage Probe|001.13"} ]
 1871              sint32 LowerThresholdCritical;
 1872           
 1873              [Override ("UpperThresholdCritical"),
 1874               MappingStrings {"MIF.DMTF|Voltage Probe|001.14"} ]
 1875              sint32 UpperThresholdCritical;
 1876           
 1877              [Override ("LowerThresholdFatal"),
 1878               MappingStrings {"MIF.DMTF|Voltage Probe|001.15"} ]
 1879              sint32 LowerThresholdFatal;
 1880           
 1881              [Override ("UpperThresholdFatal"),
 1882               MappingStrings {"MIF.DMTF|Voltage Probe|001.16"} ]
 1883              sint32 UpperThresholdFatal;
 1884           };
 1885           
 1886           
 1887           // ===================================================================
 1888           // Tachometer
 1889           // ===================================================================
 1890           [Version ("2.6.0"), Description (
 1891 karl  1.2    "This class exists for backward compatibility to earlier "
 1892              "CIM Schema definitions. With additions to Sensor and Numeric"
 1893              "Sensor in V2.2, it is no longer necessary. A Tachometer can "
 1894              "be defined by setting the SensorType property. inherited from "
 1895              "Sensor, to 5 (\"Tachometer\"). Other properties of this class "
 1896              "are hard-coded to constant values to correspond to definitions "
 1897              "in the Sensor hierarchy.") ] 
 1898           class CIM_Tachometer : CIM_NumericSensor   {
 1899           
 1900              [Override("SensorType") ]
 1901              uint16 SensorType = 5;
 1902           
 1903              [Override("BaseUnits") ]
 1904              uint16 BaseUnits = 38;
 1905           
 1906              [Override("UnitModifier") ]
 1907              sint32 UnitModifier = 1;
 1908           
 1909              [Override("RateUnits") ]
 1910              uint16 RateUnits = 4;
 1911           
 1912 karl  1.2    [Override ("Resolution"), 
 1913               Units ("Tenths of Revolutions per Minute") ]
 1914              uint32 Resolution;
 1915           };
 1916           
 1917           
 1918           // ===================================================================
 1919           // AssociatedSupplyVoltageSensor
 1920           // ===================================================================
 1921           [Association, Version ("2.6.0"), Description (
 1922              "A PowerSupply may have an associated VoltageSensor, monitoring "
 1923              "its input voltage. This is described by this association.") ]
 1924           class CIM_AssociatedSupplyVoltageSensor : CIM_AssociatedSensor {
 1925           
 1926              [Override ("Antecedent"),
 1927               Description ("The VoltageSensor.") ]
 1928              CIM_VoltageSensor REF Antecedent;
 1929           
 1930              [Override ("Dependent"),
 1931               Description (
 1932                  "The PowerSupply associated with the VoltageSensor.") ]
 1933 karl  1.2    CIM_PowerSupply REF Dependent;
 1934           
 1935              [Description (
 1936                  "Indicates the PowerSupply's input voltage range measured "
 1937                  "by the associated sensor. Range 1, 2 or both can be specified "
 1938                  "using the values 2, 3 or 4, respectively."),
 1939               ValueMap {"0", "1", "2", "3", "4"},  
 1940               Values {"Unknown", "Other", "Range 1", "Range 2", 
 1941                  "Both Range 1 and 2"} ]
 1942              uint16 MonitoringRange;
 1943           };
 1944           
 1945           
 1946           // ===================================================================
 1947           // AssociatedSupplyCurrentSensor
 1948           // ===================================================================
 1949           [Association, Version ("2.6.0"), Description (
 1950              "A PowerSupply may have an associated CurrentSensor, monitoring "
 1951              "its input frequency. This is described by this association.") ]
 1952           class CIM_AssociatedSupplyCurrentSensor : CIM_AssociatedSensor {
 1953           
 1954 karl  1.2    [Override ("Antecedent"),
 1955               Description ("The CurrentSensor.") ]
 1956              CIM_CurrentSensor REF Antecedent;
 1957           
 1958              [Override ("Dependent"),
 1959               Description (
 1960                  "The PowerSupply associated with the CurrentSensor.") ]
 1961              CIM_PowerSupply REF Dependent;
 1962           
 1963              [Description (
 1964                  "Indicates the PowerSupply's input frequency range measured "
 1965                  "by the associated sensor. Range 1, 2 or both can be specified "
 1966                  "using the values 2, 3 or 4, respectively."),
 1967               ValueMap {"0", "1", "2", "3", "4"},  
 1968               Values {"Unknown", "Other", "Range 1", "Range 2", 
 1969                  "Both Range 1 and 2"} ]
 1970              uint16 MonitoringRange;
 1971           };
 1972           
 1973           
 1974           // ===================================================================
 1975 karl  1.2 // WatchDog
 1976           // ===================================================================
 1977           [Version ("2.6.0"), Description (
 1978              "CIM_Watchdog is a timer implemented in system hardware. It "
 1979              "allows the hardware to monitor the state of the Operating"
 1980              "System, BIOS or a software component installed on the "
 1981              "System. If the monitored component fails to re-arm the timer "
 1982              "before its expiration, the hardware assumes that the System is "
 1983              "in a critical state, and could reset the ComputerSystem. This "
 1984              "feature can also be used as an application watchdog timer for "
 1985              "a mission-critical application. In this case, the application "
 1986              "would assume responsibility for re-arming the timer before "
 1987              "expiration.") ]
 1988           class CIM_Watchdog : CIM_LogicalDevice {
 1989           
 1990              [Description (
 1991                  "The entity that is currently being monitored by the WatchDog. "
 1992                  "This property is used to identify the module that is "
 1993                  "responsible for re-arming the watchdog at periodic intervals."),
 1994               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
 1995               Values {"Unknown", "Other", "Operating System", 
 1996 karl  1.2        "Operating System Boot Process", 
 1997                  "Operating System Shutdown Process", 
 1998                  "Firmware Boot Process", "BIOS Boot Process", "Application", 
 1999                  "Service Processor"} ]
 2000              uint16 MonitoredEntity;
 2001           
 2002              [MaxLen (256), Description (
 2003                  "A string describing more textual information about the "
 2004                  "monitored entity ") ]
 2005              string MonitoredEntityDescription;
 2006           
 2007              [Description (
 2008                  "The timeout interval used by the watchdog, in MicroSeconds."), 
 2009               Units ("MicroSeconds") ]
 2010              uint32 TimeoutInterval;
 2011           
 2012              [Description (
 2013                  "Resolution of the timer. For example, if this value is 100, "
 2014                  "then the timer can expire anytime between (TimeoutInterval-"
 2015                  "100) microseconds or (TimeoutInterval+100) microseconds."),
 2016               Units ("MicroSeconds") ]
 2017 karl  1.2    uint32 TimerResolution;
 2018           
 2019              [Description ("The time of the last timer expiry.") ]
 2020              datetime TimeOfLastExpiration; 
 2021           
 2022              [Description (
 2023                  "Monitored entity at the time of last timer expiry."), 
 2024               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
 2025               Values {"Unknown", "Other", "Operating System", 
 2026                  "Operating System Boot Process", 
 2027                  "Operating System Shutdown Process", 
 2028                  "Firmware Boot Process", "BIOS Boot Process", "Application", 
 2029                  "Service Processor"} ]
 2030              uint16 MonitoredEntityOnLastExpiration;
 2031           
 2032              [Description (
 2033                  "The action that should happen upon the expiry of the "
 2034                  "watchdog."), 
 2035               ValueMap {"0", "1", "2", "3", "4", "5"},
 2036               Values {"None - Status Only", "System Reset", "System Power Off", 
 2037                  "System Power Off, then On", 
 2038 karl  1.2        "Generate System NonMaskableInterrupt (NMI)", 
 2039                  "Generate System Management Interrupt (SMI)"} ]
 2040              uint16 ActionOnExpiration;
 2041           
 2042              [Description (
 2043                  "A method to re-arm the timer. This method is only used if "
 2044                  "the MonitoredEntity is \"Application\". It returns 0 if "
 2045                  "successful, 1 if unsupported, and any other value if an "
 2046                  "error occurred. In a subclass, the set of possible return "
 2047                  "codes could be specified, using a ValueMap qualifier on "
 2048                  "the method. The strings to which the ValueMap contents are "
 2049                  "'translated' may also be specified in the subclass as a "
 2050                  "Values array qualifier.") ]
 2051              uint32 KeepAlive();
 2052           };
 2053           
 2054           
 2055           // ===================================================================
 2056           // Processor
 2057           // ===================================================================
 2058           [Version ("2.6.0"), Description (
 2059 karl  1.2    "Capabilities and management of the Processor LogicalDevice.") ] 
 2060           class CIM_Processor : CIM_LogicalDevice {
 2061           
 2062              [Description (
 2063                  "A free form string describing the role of the Processor - "
 2064                  "for example, \"Central Processor\" or \"Math Processor\".") ] 
 2065              string Role;
 2066           
 2067              [Description (
 2068                  "The Processor family type. For example, values include "
 2069                  "\"Pentium(R) processor with MMX(TM) technology\" (14) "
 2070                  "and \"68040\" (96)."), 
 2071               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 2072                  "11", "12", "13", "14", "15", "16", "17", "18", "19", 
 2073                  "24", "25", "26", "27", "28", "29", "30", 
 2074                  "31", "32", "33", "34", "35", "36", "37", "38", "39", 
 2075                  "48", "49", "50", "51", "52", "53", "54", "55", 
 2076                  "64", "65", "66", "67", "68", "69", 
 2077                  "80", "81", "82", "83", "84", "85", "86", "87", "88", 
 2078                  "96", "97", "98", "99", "100", "101", 
 2079                  "112", "120", "121", "128", "130", 
 2080 karl  1.2        "144", "145", "146", "147", "148", "149", "150", 
 2081                  "160", "176", "177", "178", "179", 
 2082                  "180", "181", "190", "200", "201", "202", 
 2083                  "250", "251", "260", "261", "280", "281", 
 2084                  "300", "301", "302", "320", "350", "500"}, 
 2085               Values {"Other", "Unknown", "8086", "80286", "80386", "80486", 
 2086                  "8087", "80287", "80387", "80487", 
 2087                  // 11 
 2088                  "Pentium(R) brand", "Pentium(R) Pro", "Pentium(R) II", 
 2089                  "Pentium(R) processor with MMX(TM) technology", 
 2090                  "Celeron(TM)", "Pentium(R) II Xeon(TM)", 
 2091                  "Pentium(R) III", "M1 Family", "M2 Family", 
 2092                  //24 
 2093                  "K5 Family", "K6 Family", "K6-2", "K6-3", 
 2094                  "AMD Athlon(TM) Processor Family", 
 2095                  "AMD(R) Duron(TM) Processor", "AMD29000 Family", 
 2096                  //31 
 2097                  "K6-2+", "Power PC Family", "Power PC 601", 
 2098                  "Power PC 603", "Power PC 603+", "Power PC 604", 
 2099                  "Power PC 620", "Power PC X704", "Power PC 750", 
 2100                  // 48 
 2101 karl  1.2        "Alpha Family", "Alpha 21064", "Alpha 21066", 
 2102                  "Alpha 21164", "Alpha 21164PC", "Alpha 21164a", 
 2103                  "Alpha 21264", "Alpha 21364", 
 2104                  // 64 
 2105                  "MIPS Family", "MIPS R4000", "MIPS R4200", 
 2106                  "MIPS R4400", "MIPS R4600", "MIPS R10000", 
 2107                  // 80 
 2108                  "SPARC Family", "SuperSPARC","microSPARC II", 
 2109                  "microSPARC IIep", "UltraSPARC", "UltraSPARC II", 
 2110                  "UltraSPARC IIi", "UltraSPARC III", "UltraSPARC IIIi", 
 2111                  // 96 
 2112                  "68040", "68xxx Family", "68000", 
 2113                  "68010", "68020", "68030", 
 2114                  // 112 
 2115                  "Hobbit Family", 
 2116                  "Crusoe(TM) TM5000 Family", "Crusoe(TM) TM3000 Family", 
 2117                  "Weitek", "Itanium(TM) Processor", 
 2118                  // 144 
 2119                  "PA-RISC Family", "PA-RISC 8500", "PA-RISC 8000", 
 2120                  "PA-RISC 7300LC", "PA-RISC 7200", "PA-RISC 7100LC", 
 2121                  "PA-RISC 7100", 
 2122 karl  1.2        // 160 
 2123                  "V30 Family", "Pentium(R) III Xeon(TM)", 
 2124                  "Pentium(R) III Processor with Intel(R) SpeedStep(TM) Technology",
 2125                  "Pentium(R) 4", "Intel(R) Xeon(TM)", 
 2126                  // 180 
 2127                  "AS400 Family", "Intel(R) Xeon(TM) processor MP", 
 2128                  // 190 
 2129                  "K7", 
 2130                  // 200 
 2131                  "IBM390 Family", "G4", "G5", 
 2132                  // 250 
 2133                  "i860", "i960", "SH-3", "SH-4", "ARM", "StrongARM", 
 2134                  // 300 
 2135                  "6x86", "MediaGX", "MII", "WinChip", "DSP", 
 2136                  "Video Processor"},
 2137               MappingStrings {"MIF.DMTF|Processor|013"},
 2138               ModelCorrespondence {"CIM_Processor.OtherFamilyDescription"} ]
 2139              uint16 Family;
 2140           
 2141              [MaxLen (64), Description (
 2142                  "A string describing the Processor Family type - used when "
 2143 karl  1.2        "the Family property is set to 1 (\"Other\"). This string "
 2144                  "should be set to NULL when the Family property is any "
 2145                  "value other than 1."),
 2146               ModelCorrespondence {"CIM_Processor.Family"} ]
 2147              string OtherFamilyDescription;
 2148           
 2149              [Description (
 2150                  "CPU socket information including data on how this "
 2151                  "Processor can be upgraded (if upgrades are supported). "
 2152                  "This property is an integer enumeration."),
 2153               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", 
 2154                  "10", "11", "12", "13", "14"}, 
 2155               Values {"Other", "Unknown", "Daughter Board", "ZIF Socket",
 2156                  "Replacement/Piggy Back", "None", "LIF Socket", "Slot 1",
 2157                  "Slot 2", "370 Pin Socket", "Slot A", "Slot M", 
 2158                  "Socket 423", "Socket A (Socket 462)"}, 
 2159               MappingStrings {"MIF.DMTF|Processor|013"} ]
 2160              uint16 UpgradeMethod;
 2161           
 2162              [Description ("The maximum speed (in MHz) of this Processor."),
 2163               Units ("MegaHertz"),
 2164 karl  1.2     MappingStrings {"MIF.DMTF|Processor|013"} ]
 2165              uint32 MaxClockSpeed;
 2166           
 2167              [Description ("The current speed (in MHz) of this Processor."),
 2168               Units ("MegaHertz"),
 2169               MappingStrings {"MIF.DMTF|Processor|013"} ]
 2170              uint32 CurrentClockSpeed;
 2171           
 2172              [Description ("Processor data width in bits."),
 2173               Units ("Bits") ]
 2174              uint16 DataWidth; 
 2175           
 2176              [Description ("Processor address width in bits."),
 2177               Units ("Bits") ]
 2178              uint16 AddressWidth;
 2179           
 2180              [Gauge, Description (
 2181                  "Loading of this Processor, averaged over the last minute, "
 2182                  "in Percent."),
 2183               Units ("Percent"),
 2184               MappingStrings {"MIB.IETF|HOST-RESOURCES-MIB.hrProcessorLoad"} ]
 2185 karl  1.2    uint16 LoadPercentage;
 2186           
 2187              [Description (
 2188                  "Stepping is a free-form string indicating the revision " 
 2189                  "level of the Processor within the Processor.Family."), 
 2190               ModelCorrespondence {"CIM_Processor.Family"} ]
 2191              string Stepping;
 2192           
 2193              [Description (
 2194                  "A globally unique identifier for the Processor. This "
 2195                  "identifier may only be unique within a Processor Family.") ]
 2196              string UniqueID;
 2197           
 2198              [Description (
 2199                  "The CPUStatus property indicates the current status of "
 2200                  "the Processor. For example, it may be disabled by the user "
 2201                  "via BIOS (value=2), or disabled due to a POST error (value="
 2202                  "3). Information in this property can be obtained from SMBIOS, "
 2203                  "the Type 4 structure, the Status attribute."), 
 2204               ValueMap {"0", "1", "2", "3", "4", "7"}, 
 2205               Values {"Unknown", "CPU Enabled", 
 2206 karl  1.2        "CPU Disabled by User via BIOS Setup", 
 2207                  "CPU Disabled By BIOS (POST Error)", "CPU Is Idle", "Other"} ]
 2208              uint16 CPUStatus;
 2209           };
 2210           
 2211           
 2212           // ====================================================================
 2213           // AlarmDevice 
 2214           // ===================================================================
 2215           [Version ("2.6.0"), Description (
 2216              "An AlarmDevice is a type of Device that emits audible or " 
 2217              "visible indications related to a problem situation. ") ]
 2218           class CIM_AlarmDevice : CIM_LogicalDevice {
 2219           
 2220              [Description ("Boolean indicating that the Alarm is audible. ") ]
 2221              boolean AudibleAlarm;
 2222           
 2223              [Description ("Boolean indicating that the Alarm is visible. ") ]
 2224              boolean VisibleAlarm;
 2225           
 2226              [Description (
 2227 karl  1.2        "Boolean indicating that the Alarm causes motion of the "
 2228                  "Device.") ]
 2229              boolean MotionAlarm;
 2230           
 2231              [Description (
 2232                  "Urgency is an enumerated value that indicates the relative " 
 2233                  "frequency at which the Alarm flashes, vibrates and/or emits "
 2234                  "audible tones."),
 2235               ValueMap {"0", "1", "2", "3", "4", "5", "6"},
 2236               Values {"Unknown", "Other", "Not Supported", "Informational", 
 2237                  "Non-Critical", "Critical", "Unrecoverable"} ]
 2238              uint16 Urgency;
 2239           
 2240              [Description ("The current state of the alarm."),
 2241               ValueMap {"0", "1", "2", "3"},
 2242               Values {"Unknown", "Off", "Steady", "Alternating"} ]
 2243              uint16 AlarmState;
 2244           
 2245              [Description (
 2246                  "True indicates that the audio of an AlarmState indicator "
 2247                  "has been disabled (i.e. muted). A disabled state here "
 2248 karl  1.2        "does not imply that the AlarmState is off.") ]
 2249              boolean AudioIndicatorIsDisabled;
 2250           
 2251              [Description (
 2252                  "True indicates that the visual of an AlarmState indicator "
 2253                  "has been disabled (i.e. dimmed). A disabled state here "
 2254                  "does not imply that the AlarmState is off.") ]
 2255              boolean VisualIndicatorIsDisabled;
 2256           
 2257              [Description (
 2258                  "True indicates that the motion of an AlarmState indicator "
 2259                  "has been disabled (i.e. stopped). A disabled state here "
 2260                  "does not imply that the AlarmState is off.") ]
 2261              boolean MotionIndicatorIsDisabled;
 2262           
 2263              [Description (
 2264                  "SetAlarmState is a method for defining the current state "
 2265                  "of the Alarm. Its input parameter, RequestedAlarmState, is "
 2266                  "specified using the Values list of AlarmDevice's AlarmState "
 2267                  "property. SetAlarmState returns 0 if the request is "
 2268                  "successfully implemented, 1 if the specified RequestedAlarm"
 2269 karl  1.2        "State is not supported, and some other value if any other "
 2270                  "error occurred. In a subclass, the set of possible return "
 2271                  "codes should be specified using a ValueMap qualifier on the "
 2272                  "method. The strings to which the ValueMap contents are "
 2273                  "'translated' should be specified as a Values array "
 2274                  "qualifier.") ]
 2275              uint32 SetAlarmState (
 2276           
 2277                  [IN, ValueMap {"0", "1", "2", "3"},
 2278                   Values {"Unknown", "Off", "Steady", "Alternating"} ] 
 2279                 uint16 RequestedAlarmState);
 2280           
 2281              [Description (
 2282                  "SetAlarmIndicator is a method for enabling or disabling the "
 2283                  "indicator of the AlarmState function, without changing the "
 2284                  "current AlarmState. It has 3 input parameters, Audio"
 2285                  "Indicator, VisualIndicator and MotionIndicator. For all of "
 2286                  "the input parameters, a value of 0 indicates no change to "
 2287                  "the AlarmState indicator, 1 indicates Disable, and 2 "
 2288                  "indicates Enable. The method returns 0 if the request is "
 2289                  "successfully implemented, 1 if the specified request is not "
 2290 karl  1.2        "supported, and some other value if any other error occurred. "
 2291                  "In a subclass, the set of possible return codes should be "
 2292                  "specified using a ValueMap qualifier on the method. The "
 2293                  "strings to which the ValueMap contents are 'translated' "
 2294                  "should be specified as a Values array qualifier.") ]
 2295              uint32 SetAlarmIndicator (
 2296           
 2297                  [IN, ValueMap {"0", "1", "2"},
 2298                   Values {"No Change", "Disable", "Enable"} ] 
 2299                 uint16 AudioIndicator, 
 2300           
 2301                  [IN, ValueMap {"0", "1", "2"},
 2302                   Values {"No Change", "Disable", "Enable"} ] 
 2303                 uint16 VisualIndicator, 
 2304           
 2305                  [IN, ValueMap {"0", "1", "2"},
 2306                   Values {"No Change", "Disable", "Enable"} ] 
 2307                 uint16 MotionIndicator);
 2308           
 2309              [Description (
 2310                  "SetUrgency is a method for defining the desired urgency " 
 2311 karl  1.2        "level for the Alarm. Its input parameter, RequestedUrgency, "
 2312                  "is specified using the Values list of AlarmDevice's Urgency "
 2313                  "property. SetUrgency returns 0 if the request is successfully "
 2314                  "implemented, 1 if the specified Urgency level is not "
 2315                  "supported, and some other value if any other error occurred. "
 2316                  "In a subclass, the set of possible return codes should be "
 2317                  "specified using a ValueMap qualifier on the method. The "
 2318                  "strings to which the ValueMap contents are 'translated' "
 2319                  "should be specified as a Values array qualifier.") ]
 2320              uint32 SetUrgency (
 2321           
 2322                  [IN, ValueMap {"1", "3", "4", "5", "6"}, 
 2323                   Values {"Other", "Informational", "Non-Critical", "Critical", 
 2324                           "Unrecoverable"} ] 
 2325                  uint16 RequestedUrgency);
 2326           };
 2327           
 2328           
 2329           // ===================================================================
 2330           // AssociatedAlarm 
 2331           // ===================================================================
 2332 karl  1.2 [Association, Version ("2.6.0"), Description (
 2333              "LogicalDevices may have one or more AlarmDevices " 
 2334              "associated with them, in order to indicate problem situations. "
 2335              "This relationship is indicated by the AssociatedAlarm "
 2336              "dependency. ") ]
 2337           class CIM_AssociatedAlarm : CIM_Dependency {
 2338           
 2339              [Override ("Antecedent"), 
 2340               Description ("The AlarmDevice. ") ] 
 2341              CIM_AlarmDevice REF Antecedent;
 2342           
 2343              [Override ("Dependent"), 
 2344               Description ("The LogicalDevice that is alarmed. ") ]
 2345              CIM_LogicalDevice REF Dependent;
 2346           };
 2347           
 2348           
 2349           // ===================================================================
 2350           // ComputerSystemProcessor
 2351           // ===================================================================
 2352           [Association, Aggregation, Version ("2.6.0"), Description (
 2353 karl  1.2    "Association indicating the processor(s) of a Unitary"
 2354              "ComputerSystem. At least one processor is required. Note "
 2355              "that this relationship inherits from the SystemDevice "
 2356              "association, and therefore, the System Processor is weak to "
 2357              "the aggregating UnitaryComputerSystem.") ] 
 2358           class CIM_ComputerSystemProcessor : CIM_SystemDevice {   
 2359           
 2360              [Override ("GroupComponent"), Aggregate,
 2361               Description ("The UnitaryComputerSystem.") ]
 2362              CIM_UnitaryComputerSystem REF GroupComponent;
 2363           
 2364              [Override ("PartComponent"),
 2365               Description (
 2366                  "The Processor which is part of the UnitaryComputerSystem.") ]
 2367              CIM_Processor REF PartComponent;
 2368           };
 2369           
 2370           
 2371           
 2372           // ===================================================================
 2373           //    UML Page 5- Resources, Software Elements, and Software Features
 2374 karl  1.2 // ===================================================================
 2375           // ===================================================================
 2376           // SystemResource
 2377           // ===================================================================
 2378           [Abstract,
 2379            Version ("2.6.0"), Description (
 2380              "An entity managed by BIOS and/or an OperatingSystem which is "
 2381              "available for use by software and/or LogicalDevices. Examples "
 2382              "of Resources in the x86 environment are IRQs, DMA channels and "
 2383              "memory mapped I/O.") ] 
 2384           class CIM_SystemResource : CIM_LogicalElement {
 2385           
 2386              [Description (
 2387                  "Boolean indicating whether the Resource can be shared.") ]
 2388              boolean Shareable;
 2389           };
 2390           
 2391           
 2392           // ===================================================================
 2393           // IRQ
 2394           // ===================================================================
 2395 karl  1.2 [Version ("2.6.0"), Description (
 2396              "Personal computer architecture IRQ.") ] 
 2397           class CIM_IRQ : CIM_SystemResource {
 2398           
 2399              [Propagated("CIM_ComputerSystem.CreationClassName"),
 2400               Key, MaxLen (256),
 2401               Description ("The scoping ComputerSystem's CreationClassName.") ]
 2402              string CSCreationClassName;
 2403           
 2404              [Propagated("CIM_ComputerSystem.Name"),
 2405               Key, MaxLen (256),
 2406               Description ("The scoping ComputerSystem's Name.") ]
 2407              string CSName;
 2408           
 2409              [Key, MaxLen (256),
 2410               Description (
 2411                  "CreationClassName indicates the name of the class or "
 2412                  "the subclass used in the creation of an instance. When "
 2413                  "used with the other key properties of this class, this "
 2414                  "property allows all instances of this class and its "
 2415                  "subclasses to be uniquely identified.") ]
 2416 karl  1.2    string CreationClassName;
 2417           
 2418              [Key, 
 2419               Description ("A part of the object's key value, IRQ Number."), 
 2420               MappingStrings {"MIF.DMTF|IRQ|002.1"} ]
 2421              uint32 IRQNumber;
 2422           
 2423              [Description ("Availability of the IRQ."),
 2424               ValueMap {"1", "2", "3", "4", "5"},
 2425               Values {"Other", "Unknown", "Available", 
 2426                  "In Use/Not Available", 
 2427                  "In Use and Available/Shareable"},
 2428               MappingStrings {"MIF.DMTF|IRQ|002.2"} ]
 2429              uint16 Availability;
 2430           
 2431              [Description (
 2432                  "IRQ trigger type indicating whether edge (value=4) "
 2433                  "or level triggered (value=3) interrupts occur. Also, "
 2434                  "\"Other\" (1) and \"Unknown\" (2) may be defined."),
 2435               ValueMap {"1", "2", "3", "4"},
 2436               Values {"Other", "Unknown", "Level", "Edge"},
 2437 karl  1.2     MappingStrings {"MIF.DMTF|IRQ|002.3", 
 2438                  "MIF.DMTF|System Resource IRQ Info|001.2"} ]
 2439              uint16 TriggerType;
 2440           
 2441              [Description (
 2442                  "IRQ trigger level indicating whether the interrupt is "
 2443                  "triggered by the hardware signal going high (value=4) "
 2444                  "or low (value=3).  Also, \"Other\" (1) and "
 2445                  "\"Unknown\" (2) may be defined."),
 2446               ValueMap {"1", "2", "3", "4"},
 2447               Values {"Other", "Unknown", "Active Low", "Active High"},
 2448               MappingStrings {"MIF.DMTF|System Resource IRQ Info|001.3"} ]
 2449              uint16 TriggerLevel; 
 2450           
 2451           // Override is used to define the MappingString qualifier 
 2452              [Override ("Shareable"), 
 2453               Description (
 2454                  "Boolean indicating whether the IRQ can be shared."),
 2455               MappingStrings {"MIF.DMTF|IRQ|002.4"} ]
 2456              boolean Shareable;
 2457           
 2458 karl  1.2    [Description (
 2459                  "The Hardware property indicates whether the interrupt "
 2460                  "is hardware or software based. (If TRUE, the interrupt is "
 2461                  "hardware based.) On a personal computer, a hardware IRQ "
 2462                  "is a physical wire to a programmable interrupt "
 2463                  "controller (PIC) chip, through which the CPU can be "
 2464                  "notified of time critical events. Some IRQ lines are "
 2465                  "reserved for standard Devices such as the keyboard, floppy "
 2466                  "disk drives, and the system clock. A software interrupt "
 2467                  "is a programmatic mechanism to allow an application to "
 2468                  "get the attention of the Processor.") ]
 2469              boolean Hardware;
 2470           };
 2471           
 2472           // ===================================================================
 2473           // MemoryMappedIO
 2474           // ===================================================================
 2475           [Version ("2.6.0"), Description (
 2476              "Personal Computer architecture Memory Mapped I/O. This class "
 2477              "addresses both memory and port I/O resources. The property, "
 2478              "MappedResource, defines whether memory or I/O is mapped (and "
 2479 karl  1.2    "for I/O whether the mapping is to a memory or a port space).") ]
 2480           class CIM_MemoryMappedIO : CIM_SystemResource {
 2481           
 2482              [Propagated("CIM_ComputerSystem.CreationClassName"),
 2483               Key, MaxLen (256),
 2484               Description ("The scoping ComputerSystem's CreationClassName.") ]
 2485              string CSCreationClassName;
 2486           
 2487              [Propagated("CIM_ComputerSystem.Name"),
 2488               Key, MaxLen (256),
 2489               Description ("The scoping ComputerSystem's Name.") ]
 2490              string CSName;
 2491           
 2492              [Key, MaxLen (256),
 2493               Description (
 2494                  "CreationClassName indicates the name of the class or "
 2495                  "the subclass used in the creation of an instance. When "
 2496                  "used with the other key properties of this class, this "
 2497                  "property allows all instances of this class and its "
 2498                  "subclasses to be uniquely identified.") ]
 2499              string CreationClassName;
 2500 karl  1.2 
 2501              [Key, Description (
 2502                  "A part of the object's key value, the starting address of "
 2503                  "memory mapped I/O."),
 2504               MappingStrings {"MIF.DMTF|Memory Mapped I/O|001.1"} ]
 2505              uint64 StartingAddress;
 2506           
 2507              [Description ("Ending address of memory mapped I/O."),
 2508               MappingStrings {"MIF.DMTF|Memory Mapped I/O|001.2"} ]
 2509              uint64 EndingAddress;
 2510           
 2511              [Description (
 2512                  "Type of memory mapped I/O. MappedResource defines whether "
 2513                  "memory or I/O is mapped, and for I/O, whether the mapping "
 2514                  "is to a memory or a port space."), 
 2515               ValueMap {"0", "1", "2", "3"}, 
 2516               Values {"Other", "Mapped Memory", "I/O Mapped to Memory Space", 
 2517                  "I/O Mapped to Port Space"} ]
 2518              uint16 MappedResource;
 2519           };
 2520           
 2521 karl  1.2 
 2522           // ===================================================================
 2523           // MemoryResource
 2524           // ===================================================================
 2525           [Version ("2.6.0"), Description (
 2526              "Since the MemoryMappedIO class applies to memory AND port "
 2527              "resources, there is the potential for key conflict. For example, "
 2528              "both a memory resource and a port resource may be located at "
 2529              "address 0. Since StartingAddress is the distinguishing key of "
 2530              "MemoryMappedIO, two instances would be created with the same key. "
 2531              "This is prevented by defining memory and port resource subclasses "
 2532              "of MemoryMappedIO, and allowing the CreationClassName key property "
 2533              "to distinguish between them and force uniqueness in their keys.") ]
 2534           class CIM_MemoryResource : CIM_MemoryMappedIO {
 2535           };
 2536           
 2537           
 2538           // ===================================================================
 2539           // PortResource
 2540           // ===================================================================
 2541           [Version ("2.6.0"), Description (
 2542 karl  1.2    "Since the MemoryMappedIO class applies to memory AND port "
 2543              "resources, there is the potential for key conflict. For example, "
 2544              "both a memory resource and a port resource may be located at "
 2545              "address 0. Since StartingAddress is the distinguishing key of "
 2546              "MemoryMappedIO, two instances would be created with the same key. "
 2547              "This is prevented by defining memory and port resource subclasses "
 2548              "of MemoryMappedIO, and allowing the CreationClassName key property "
 2549              "to distinguish between them and force uniqueness in their keys.") ]
 2550           class CIM_PortResource : CIM_MemoryMappedIO {
 2551           };
 2552           
 2553           
 2554           // ===================================================================
 2555           // DMA
 2556           // ===================================================================
 2557           [Version ("2.6.0"), Description (
 2558              "Personal computer architecture DMA.") ] 
 2559           class CIM_DMA : CIM_SystemResource {
 2560           
 2561              [Propagated("CIM_ComputerSystem.CreationClassName"),
 2562               Key, MaxLen (256),
 2563 karl  1.2     Description ("The scoping ComputerSystem's CreationClassName.") ]
 2564              string CSCreationClassName;
 2565           
 2566              [Propagated("CIM_ComputerSystem.Name"),
 2567               Key, MaxLen (256),
 2568               Description ("The scoping ComputerSystem's Name.") ]
 2569              string CSName;
 2570           
 2571              [Key, MaxLen (256),
 2572               Description (
 2573                  "CreationClassName indicates the name of the class or "
 2574                  "the subclass used in the creation of an instance. When "
 2575                  "used with the other key properties of this class, this "
 2576                  "property allows all instances of this class and its "
 2577                  "subclasses to be uniquely identified.") ]
 2578              string CreationClassName;
 2579           
 2580              [Key, Description (
 2581                  "A part of the object's key value, the DMA Channel number."),
 2582               MappingStrings {"MIF.DMTF|DMA|001.1"} ]
 2583              uint32 DMAChannel;
 2584 karl  1.2 
 2585              [Description ("Availability of the DMA."),
 2586               ValueMap {"1", "2", "3", "4", "5"},
 2587               Values {"Other", "Unknown", "Available", 
 2588                  "In Use/Not Available", 
 2589                  "In Use and Available/Shareable"},
 2590               MappingStrings {"MIF.DMTF|DMA|001.2"} ]
 2591              uint16 Availability;
 2592           
 2593              [Description (
 2594                  "Indication that the DMA Channel supports burst mode."),
 2595               MappingStrings {"MIF.DMTF|DMA|001.3"} ]
 2596              boolean BurstMode; 
 2597           
 2598              [Description (
 2599                  "An array indicating all the transfer widths (in bits) "
 2600                  "supported by this DMA Channel. Permissible values "
 2601                  "are 8, 16, 32, 64 or 128 bits.  If unknown, enter 0."),
 2602               Units ("Bits"),
 2603               ValueMap {"0", "8", "16", "32", "64", "128"},
 2604               MappingStrings {"MIF.DMTF|System Resource DMA Info|001.2"} ]
 2605 karl  1.2    uint16 TransferWidths[];
 2606           
 2607              [Description (
 2608                  "An integer indicating the DMA Channel address size in "
 2609                  "bits. Permissible values are 8, 16, 32 or 64 bits. "
 2610                  "If unknown, enter 0."),
 2611               Units ("Bits"),
 2612               ValueMap {"0", "8", "16", "32", "64"}, 
 2613               MappingStrings {"MIF.DMTF|System Resource DMA Info|001.3"} ]
 2614              uint16 AddressSize; 
 2615           
 2616              [Description (
 2617                  "The maximum number of bytes that can be transferred by this "
 2618                  "DMA Channel. If unknown, enter 0."),
 2619               Units ("Bytes"),
 2620               MappingStrings {"MIF.DMTF|System Resource DMA Info|001.4"} ]
 2621              uint32 MaxTransferSize;
 2622           
 2623              [Description (
 2624                  "Indicates whether DMA may execute in 'count by byte' mode "
 2625                  "(value=4) or not (value=3).  Also, \"Other\" (1) and "
 2626 karl  1.2        "\"Unknown\" (2) may be defined."),
 2627               ValueMap {"1", "2", "3", "4"},
 2628               Values {"Other", "Unknown", 
 2629                  "Not execute in 'count by byte' mode", 
 2630                  "Execute in 'count by byte' mode"},
 2631               MappingStrings {"MIF.DMTF|System Resource DMA Info|001.7"} ]
 2632              uint16 ByteMode;
 2633           
 2634              [Description (
 2635                  "Indicates whether DMA may execute in 'count by word' mode "
 2636                  "(value=4) or not (value=3).  Also, \"Other\" (1) and "
 2637                  "\"Unknown\" (2) may be defined."),
 2638               ValueMap {"1", "2", "3", "4"},
 2639               Values {"Other", "Unknown", 
 2640                  "Not execute in 'count by word' mode",
 2641                  "Execute in 'count by word' mode"},
 2642               MappingStrings {"MIF.DMTF|System Resource DMA Info|001.8"} ]
 2643              uint16 WordMode;
 2644           
 2645              [Description (
 2646                  "DMA channel timing.  For example, \"Type A\" (value "
 2647 karl  1.2        "=4) or \"Type F\" (6) could be specified."),
 2648               ValueMap {"1", "2", "3", "4", "5", "6"},
 2649               Values {"Other", "Unknown", "ISA Compatible", "Type A",
 2650                  "Type B", "Type F"},
 2651               MappingStrings {"MIF.DMTF|System Resource DMA Info|001.9"} ]
 2652              uint16 ChannelTiming;
 2653           
 2654              [Description (
 2655                  "Indicates whether C type (burst) timing is supported "
 2656                  "(value=5) or not (value=4). Also, \"Other\" (1), "
 2657                  "\"Unknown\" (2) and \"ISA Compatible\" (3) are defined."),
 2658               ValueMap {"1", "2", "3", "4", "5"},
 2659               Values {"Other", "Unknown", "ISA Compatible", "Not Supported",
 2660                  "Supported"},
 2661               MappingStrings {"MIF.DMTF|System Resource DMA Info|001.10"} ]
 2662              uint16 TypeCTiming;
 2663           };
 2664           
 2665           
 2666           // ===================================================================
 2667           // ComputerSystemResource
 2668 karl  1.2 // ===================================================================
 2669           [Association, Aggregation,
 2670            Version ("2.6.0"), Description (
 2671              "An association between a ComputerSystem and the System"
 2672              "Resources available on it.") ]
 2673           class CIM_ComputerSystemResource : CIM_SystemComponent {
 2674           
 2675              [Override ("GroupComponent"), Aggregate,
 2676               Min (1), Max (1), Description ("The ComputerSystem.") ]
 2677              CIM_ComputerSystem REF GroupComponent;
 2678           
 2679              [Override ("PartComponent"),
 2680               Description ("A SystemResource of the ComputerSystem.") ]
 2681              CIM_SystemResource REF PartComponent;
 2682           };
 2683           
 2684           
 2685           // ===================================================================
 2686           // ComputerSystemIRQ
 2687           // ===================================================================
 2688           [Association, Aggregation,
 2689 karl  1.2  Version ("2.6.0"), Description (
 2690              "An association between a ComputerSystem and the IRQs "
 2691              "available on it.") ]
 2692           class CIM_ComputerSystemIRQ : CIM_ComputerSystemResource {
 2693           
 2694              [Override ("PartComponent"), Weak,
 2695               Description ("An IRQ of the ComputerSystem.") ]
 2696              CIM_IRQ REF PartComponent;
 2697           };
 2698           
 2699           // ===================================================================
 2700           // ComputerSystemMappedIO
 2701           // ===================================================================
 2702           [Association, Aggregation,
 2703            Version ("2.6.0"), Description (
 2704              "An association between a ComputerSystem and the Memory Mapped "
 2705              "I/O ports available on it.") ]
 2706           class CIM_ComputerSystemMappedIO : CIM_ComputerSystemResource {
 2707           
 2708              [Override ("PartComponent"), Weak,
 2709               Description (
 2710 karl  1.2        "A memory mapped I/O port of the ComputerSystem.") ]
 2711              CIM_MemoryMappedIO REF PartComponent;
 2712           };
 2713           
 2714           
 2715           // ===================================================================
 2716           // ComputerSystemDMA
 2717           // ===================================================================
 2718           [Association, Aggregation,
 2719            Version ("2.6.0"), Description (
 2720              "An association between a ComputerSystem and the DMA channels "
 2721              "available on it.") ]
 2722           class CIM_ComputerSystemDMA : CIM_ComputerSystemResource {
 2723           
 2724              [Override ("PartComponent"), Weak,
 2725               Description ("A DMA channel of the ComputerSystem.") ]
 2726              CIM_DMA REF PartComponent;
 2727           };
 2728           
 2729           
 2730           // ===================================================================
 2731 karl  1.2 // AllocatedResource
 2732           // ===================================================================
 2733           [Association, Version ("2.6.0"), Description (
 2734              "An association between LogicalDevices and SystemResources, "
 2735              "indicating that the Resource is assigned to the Device.") ]
 2736           class CIM_AllocatedResource : CIM_Dependency {
 2737           
 2738              [Override ("Antecedent"),
 2739               Description ("The Resource.") ]
 2740              CIM_SystemResource REF Antecedent;
 2741           
 2742              [Override ("Dependent"),
 2743               Description (
 2744                  "The LogicalDevice to which the Resource is assigned.") ]
 2745              CIM_LogicalDevice REF Dependent;
 2746           };
 2747           
 2748           
 2749           // ===================================================================
 2750           // AllocatedDMA
 2751           // =================================================================== 
 2752 karl  1.2 [Association, Version ("2.6.0"), Description ( 
 2753              "An association between a LogicalDevice and a DMA System" 
 2754              "Resource indicating that the DMA Channel is assigned to the "
 2755              "Device.") ]
 2756           class CIM_AllocatedDMA : CIM_AllocatedResource { 
 2757           
 2758              [Override ("Antecedent"), 
 2759               Description ("The DMA Channel.") ] 
 2760              CIM_DMA REF Antecedent; 
 2761           
 2762              [Description ( 
 2763                  "Boolean indicating whether the LogicalDevice can act as a " 
 2764                  "bus master on the DMA Channel."),
 2765               MappingStrings {"MIF.DMTF|System Resource DMA Info|001.6"} ] 
 2766              boolean BusMaster;
 2767           };
 2768           
 2769           // ===================================================================
 2770           // VideoBIOSFeature
 2771           // ===================================================================
 2772           [Version ("2.6.0"), Description (
 2773 karl  1.2    "VideoBIOSFeature represents the capabilities of the low-level "
 2774              "software that is used to bring up, configure and use a "
 2775              "ComputerSystem's VideoController and Display.") ] 
 2776           class CIM_VideoBIOSFeature : CIM_SoftwareFeature {
 2777           
 2778              [Description (
 2779                  "An array of integers that specify the features supported by "
 2780                  "the VideoBIOS. For example, one could indicate support for "
 2781                  "VESA power management (value=6) or video BIOS shadowing (8). "
 2782                  "The value, 3, is not valid in the CIM Schema since in DMI it "
 2783                  "represents that no BIOS Features are supported.  In this "
 2784                  "case, the object should not be instantiated."),
 2785               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9"},
 2786               Values {"Other", "Unknown", "Undefined", "Standard Video BIOS",
 2787                  "VESA BIOS Extensions Supported", 
 2788                  "VESA Power Management Supported", 
 2789                  "VESA Display Data Channel Supported", 
 2790                  "Video BIOS Shadowing Allowed", "Video BIOS Upgradeable"},
 2791               ArrayType ("Indexed"), 
 2792               MappingStrings {"MIF.DMTF|Video BIOS Characteristic|001.3"},
 2793               ModelCorrespondence {
 2794 karl  1.2        "CIM_VideoBIOSFeature.CharacteristicDescriptions"} ]
 2795              uint16 Characteristics[];
 2796           
 2797              [Description (
 2798                  "An array of free-form strings providing more detailed "
 2799                  "explanations for any of the VideoBIOS features indicated in "
 2800                  "the Characteristics array. Note, each entry of this array "
 2801                  "is related to the entry in the Characteristics array that "
 2802                  "is located at the same index."),
 2803               ArrayType ("Indexed"),
 2804               MappingStrings {"MIF.DMTF|Video BIOS Characteristic|001.4"},
 2805               ModelCorrespondence {"CIM_VideoBIOSFeature.Characteristics"} ]
 2806              string CharacteristicDescriptions[];
 2807           };
 2808           
 2809           
 2810           // ===================================================================
 2811           // VideoBIOSElement
 2812           // ===================================================================
 2813           [Version ("2.6.0"), Description (
 2814              "VideoBIOSElement represents the low-level software that is "
 2815 karl  1.2    "loaded into non-volatile storage and used to bring up, "
 2816              "configure and access a ComputerSystem's VideoController and "
 2817              "Display.") ] 
 2818           class CIM_VideoBIOSElement : CIM_SoftwareElement {
 2819           
 2820              [Override ("Version"),
 2821               MappingStrings {"MIF.DMTF|Video BIOS|001.3"} ]
 2822              string Version;
 2823           
 2824              [Override ("Manufacturer"),
 2825               MappingStrings {"MIF.DMTF|Video BIOS|001.2"} ]
 2826              string Manufacturer; 
 2827           
 2828              [Description (
 2829                  "If true, indicates that the Video BIOS is shadowed."),
 2830               MappingStrings {"MIF.DMTF|Video BIOS|001.5"} ]
 2831              boolean IsShadowed;
 2832           
 2833              [Description (
 2834                  "Date that this BIOS was released."),
 2835               MappingStrings {"MIF.DMTF|Video BIOS|001.4"} ]
 2836 karl  1.2    datetime ReleaseDate;
 2837           };
 2838           
 2839           
 2840           // ===================================================================
 2841           // VideoBIOSFeatureVideoBIOSElements
 2842           // ===================================================================
 2843           [Association, Aggregation, Version ("2.6.0"), Description (
 2844              "A link between VideoBIOSFeature and its aggregated "
 2845              "VideoBIOSElements.") ] 
 2846           class CIM_VideoBIOSFeatureVideoBIOSElements : 
 2847            CIM_SoftwareFeatureSoftwareElements {
 2848           
 2849              [Override ("GroupComponent"), Aggregate,
 2850               Description ("The VideoBIOSFeature.") ]
 2851              CIM_VideoBIOSFeature REF GroupComponent;
 2852           
 2853              [Override ("PartComponent"),
 2854               Description (
 2855                  "The VideoBIOSElement that implements the capabilities "
 2856                  "described by VideoBIOSFeature.") ]
 2857 karl  1.2    CIM_VideoBIOSElement REF PartComponent;
 2858           };
 2859           
 2860           
 2861           // ===================================================================
 2862           // DeviceSoftware
 2863           // ===================================================================
 2864           [Association, Version ("2.6.0"), Description (
 2865              "The DeviceSoftware relationship identifies any software that "
 2866              "is associated with a Device - such as drivers, configuration "
 2867              "or application software, or firmware.") ] 
 2868           class CIM_DeviceSoftware : CIM_Dependency {
 2869           
 2870              [Override ("Antecedent"),
 2871               Description ("The SoftwareElement.") ]
 2872              CIM_SoftwareElement REF Antecedent;
 2873           
 2874              [Override ("Dependent"),
 2875               Description (
 2876                  "The LogicalDevice that requires or uses the software.") ]
 2877              CIM_LogicalDevice REF Dependent;
 2878 karl  1.2 
 2879              [Description (
 2880                  "An enumerated integer to indicate the role this software "
 2881                  "plays in regards to its associated Device. For example, this "
 2882                  "software could be instrumentation (value=5) or firmware (6)."),
 2883               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
 2884               Values {"Unknown", "Other", "Driver", "Configuration Software", 
 2885                  "Application Software", "Instrumentation", "Firmware",
 2886                  "BIOS", "Boot ROM"},
 2887               ModelCorrespondence {"CIM_DeviceSoftware.PurposeDescription"},
 2888               MappingStrings {"MIF.DMTF|SubComponent Software|001.2"} ]
 2889              uint16 Purpose;
 2890           
 2891              [Description (
 2892                  "A free-form string to provide more information for "
 2893                  "the Purpose property, e.g. \"Application Software\"."),
 2894               ModelCorrespondence {"CIM_DeviceSoftware.Purpose"} ] 
 2895              string PurposeDescription;
 2896           
 2897              [Description (
 2898                  "Boolean indicating that the software is 'burned into' or "
 2899 karl  1.2        "otherwise located on the hardware of the LogicalDevice.") ]
 2900              boolean LoadedOnDevice; 
 2901           
 2902              [Description (
 2903                  "Boolean indicating whether the software is upgradeable, "
 2904                  "when it is LoadedOnDevice. Software that is loaded as "
 2905                  "part of the OperatingSystem is typically changeable and "
 2906                  "upgradeable. However, when DeviceSoftware is burned into "
 2907                  "EEPROM or a chip that Realizes the LogicalDevice, then "
 2908                  "it may not be upgradeable. This property indicates the "
 2909                  "ability to update and upgrade DeviceSoftware.") ]
 2910              boolean UpgradeableOnDevice;
 2911           };
 2912           
 2913           
 2914           // ===================================================================
 2915           // AGPSoftwareFeature
 2916           // ===================================================================
 2917           [Version ("2.6.0"), Description (
 2918              "AGPSoftwareFeature adds two attributes to SoftwareFeature "
 2919              "to represent the capabilities of an AGP device driver. An "
 2920 karl  1.2    "instance of this class would be associated with the "
 2921              "Driver's SoftwareElement using the SoftwareFeatureSoftware"
 2922              "Elements relationship. The driver's SoftwareElement is "
 2923              "associated with the AGPVideoController via the Device"
 2924              "Software relationship.") ]
 2925           class CIM_AGPSoftwareFeature : CIM_SoftwareFeature {
 2926           
 2927              [Description (
 2928                  "An array of integers indicating various capabilities and "
 2929                  "characteristics of the AGPVideoController."), 
 2930               ArrayType ("Indexed"), 
 2931               ValueMap {"0", "1", "2", "3", "4", "5", "6"},
 2932               Values {"Unknown", "Other", "OS support", 
 2933                  "Hardware Acceleration", "Hardware Blit", 
 2934                  "OpenGL Support", "Cache Coherency"}, 
 2935               ModelCorrespondence {
 2936                  "CIM_AGPSoftwareFeature.CharacteristicDescriptions"} ]
 2937              uint16 Characteristics[];
 2938           
 2939              [Description (
 2940                  "An array of free-form strings providing more detailed "
 2941 karl  1.2        "explanations for any of the features indicated in the "
 2942                  "Characteristics array. Each entry in this array is "
 2943                  "related to the Characteristics array entry located at "
 2944                  "the same index."), 
 2945               ArrayType ("Indexed"), 
 2946               ModelCorrespondence {"CIM_AGPSoftwareFeature.Characteristics"} ]
 2947              string CharacteristicDescriptions[];
 2948           };
 2949           
 2950           // ===================================================================
 2951           //    UML Page 6 - Statistics
 2952           // ===================================================================
 2953           // ==================================================================
 2954           // DeviceErrorCounts
 2955           // ==================================================================
 2956           [Version ("2.6.0"), Description (
 2957              "DeviceErrorCounts is a statistical class containing error-" 
 2958              "related counters for a LogicalDevice. The types of errors " 
 2959              "are as defined by CCITT (Rec X.733) and ISO (IEC 10164-4).") ]
 2960           class CIM_DeviceErrorCounts : CIM_StatisticalInformation {
 2961           
 2962 karl  1.2    [Propagated ("CIM_LogicalDevice.SystemCreationClassName"), 
 2963               Key, MaxLen (256),
 2964               Description ("The scoping System's CreationClassName. ") ]
 2965              string SystemCreationClassName; 
 2966           
 2967              [Propagated ("CIM_LogicalDevice.SystemName"), 
 2968               Key, MaxLen (256),
 2969               Description ("The scoping System's Name. ") ]
 2970              string SystemName; 
 2971           
 2972              [Propagated ("CIM_LogicalDevice.CreationClassName"), 
 2973               Key, MaxLen (256),
 2974               Description ("The scoping Device's CreationClassName. ") ]
 2975              string DeviceCreationClassName; 
 2976           
 2977              [Propagated ("CIM_LogicalDevice.DeviceID"), 
 2978               Key, MaxLen (64),
 2979               Description ("The scoping Device's ID. ") ]
 2980              string DeviceID; 
 2981           
 2982              [Override ("Name"), 
 2983 karl  1.2     Key, MaxLen (256), 
 2984               Description (
 2985                  "The inherited Name serves as part of the key for the " 
 2986                  "DeviceErrorCounts instance. The object is scoped by " 
 2987                  "the LogicalDevice to which the statistics apply. ") ] 
 2988              string Name; 
 2989           
 2990              [Description ("Count of the indeterminate errors. "),
 2991               Counter ] 
 2992              uint64 IndeterminateErrorCount; 
 2993           
 2994              [Description ("Count of the critical errors. "), 
 2995               MappingStrings {"MIF.DMTF|Operational State|006"}, 
 2996               Counter ] 
 2997              uint64 CriticalErrorCount; 
 2998           
 2999              [Description ("Count of the major errors. "), 
 3000               MappingStrings {"MIF.DMTF|Operational State|006"}, 
 3001               Counter ] 
 3002              uint64 MajorErrorCount; 
 3003           
 3004 karl  1.2    [Description ("Count of the minor errors. "), 
 3005               Counter ] 
 3006              uint64 MinorErrorCount; 
 3007           
 3008              [Description ("Count of the warnings. "), 
 3009               MappingStrings {"MIF.DMTF|Operational State|006"}, 
 3010               Counter ] 
 3011              uint64 WarningCount; 
 3012           
 3013              [Description (
 3014                  "Method to reset the error and warning counters. The method " 
 3015                  "takes one parameter as input - an integer indicating which "
 3016                  "counter to reset. For this input parameter, 0 indicates all, "
 3017                  "1 indicates a reset of the indeterminate error counter, "
 3018                  "2 the critical error counter, 3 the major error counter, "
 3019                  "4 the minor error counter and 5 the warning counter. The "
 3020                  "method returns 0 if successful, 1 if not supported, and any " 
 3021                  "other value if an error occurred. A method is specified so "
 3022                  "that the LogicalDevice's instrumentation, which tabulates "
 3023                  "the errors and warnings, can also reset its internal "
 3024                  "processing and counters. \n"
 3025 karl  1.2        "In a subclass, the set of possible return codes could be "
 3026                  "specified, using a ValueMap qualifier on the method. The "
 3027                  "strings to which the ValueMap contents are 'translated' "
 3028                  "may also be specified in the subclass as a Values "
 3029                  "array qualifier.") ]
 3030              uint32 ResetCounter (
 3031           
 3032                  [IN, ValueMap {"0", "1", "2", "3", "4", "5"},
 3033                   Values {"All", "Indeterminate Error Counter", 
 3034                      "Critical Error Counter", "Major Error Counter", 
 3035                      "Minor Error Counter", "Warning Counter"} ] 
 3036                  uint16 SelectedCounter);
 3037           };
 3038           
 3039           
 3040           // ==================================================================
 3041           // ErrorCountersForDevice
 3042           // ================================================================== 
 3043           [Association, Version ("2.6.0"), Description (
 3044              "ErrorCountersForDevice relates the DeviceErrorCounts class "
 3045              "to the LogicalDevice to which it applies. ") ]
 3046 karl  1.2 class CIM_ErrorCountersForDevice : CIM_Statistics { 
 3047           
 3048              [Override ("Stats"), Weak,
 3049               Description (
 3050                  "The statistical object - in this case, the error counter "
 3051                  "class.") ]
 3052              CIM_DeviceErrorCounts REF Stats; 
 3053           
 3054               [Override ("Element"), Min (1), Max (1),
 3055                Description ("The Device to which the error counters apply. ") ]
 3056              CIM_LogicalDevice REF Element;
 3057           };
 3058           
 3059           
 3060           // ==================================================================
 3061           // FCAdapterEventCounters 
 3062           // ==================================================================
 3063           [Version ("2.6.0"), Description (
 3064              "Error and event counters specific to a Fibre Channel Adapter.") ]
 3065           class CIM_FCAdapterEventCounters : CIM_DeviceStatisticalInformation {
 3066           
 3067 karl  1.2    [Description ("The number of Abort sequence frames received."), 
 3068               Counter ]
 3069              uint64 ABTSFramesReceived;
 3070           
 3071              [Description ("The number of Abort sequence frames sent."), 
 3072               Counter ]
 3073              uint64 ABTSFramesSent;
 3074           
 3075              [Description ("The number of frames busied by the Fabric."), 
 3076               Counter ]
 3077              uint64 FBSYsReceived;
 3078           
 3079              [Description (
 3080                  "The number of frames busied by the receiving Node."),
 3081               Counter ]
 3082              uint64 PBSYsReceived;
 3083           
 3084              [Description (
 3085                  "The number of frames busied by the Adapter itself."),
 3086               Counter ]
 3087              uint64 PBSYsSent;
 3088 karl  1.2 
 3089              [Description ("The number of frames rejected by the Fabric."), 
 3090               Counter ]
 3091              uint64 FRJTsReceived;
 3092           
 3093              [Description (
 3094                  "The number of frames rejected by the receiving Node."),
 3095               Counter ]
 3096              uint64 PRJTsReceived;
 3097           
 3098              [Description (
 3099                  "The number of frames rejected by the Adapter itself."),
 3100               Counter ]
 3101              uint64 PRJTsSent;
 3102           
 3103              [Description (
 3104                  "The number of PRLI frames sent where the response was "
 3105                  "LS_RJT."), 
 3106               Counter ]
 3107              uint64 PRLIsRejected;
 3108           
 3109 karl  1.2    [Description (
 3110                  "The number of PRLO frames sent where the response was "
 3111                  "LS_RJT."), 
 3112               Counter ]
 3113              uint64 PRLOsRejected;
 3114           
 3115              [Description (
 3116                  "The number of Abort sequence frames sent where the response "
 3117                  "was BA_RJT."), 
 3118               Counter ]
 3119              uint64 ABTSFramesRejected;
 3120           
 3121               [Description (
 3122                 "Method to reset the Adapter event counters. The method " 
 3123                 "takes one parameter as input - an integer indicating which "
 3124                 "counter to reset. For this input parameter, 0 indicates all, "
 3125                 "1 through 11 indicate a reset of the individual counters. "
 3126                 "The method returns 0 if successful, 1 if not supported, and " 
 3127                 "any other value if an error occurred. A method is specified "
 3128                 "so that the Device's instrumentation, which tabulates "
 3129                 "the errors and warnings, can also reset its internal "
 3130 karl  1.2       "processing and counters. \n"
 3131                 "In a subclass, the set of possible return codes could be "
 3132                 "specified, using a ValueMap qualifier on the method. The "
 3133                 "strings to which the ValueMap contents are 'translated' "
 3134                 "may also be specified in the subclass as a Values "
 3135                 "array qualifier.") ]
 3136              uint32 ResetCounter (
 3137           
 3138                 [IN, ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", 
 3139                      "9", "10", "11"},
 3140                  Values {"All", "ABTSFramesReceived", "ABTSFramesSent", 
 3141                      "FBSYReceived", "PBSYReceived", "PBSYSent", "FRJTReceived", 
 3142                      "PRJTReceived", "PRJTSent", "PRLIRejected", "PRLORejected", 
 3143                      "ABTSFramesRejected"} ]
 3144                 uint16 SelectedCounter);
 3145           };
 3146           
 3147           
 3148           // ==================================================================
 3149           // FibrePortEventCounters
 3150           // ==================================================================
 3151 karl  1.2 [Version ("2.6.0"), Description (
 3152              "Error and event counters specific to a Fibre Channel Port "
 3153              "(connection point).") ]
 3154           class CIM_FibrePortEventCounters : CIM_DeviceStatisticalInformation {
 3155           
 3156              [Description ("The number of login frames received."), 
 3157               Counter ]
 3158              uint64 PLOGIsReceived;
 3159           
 3160              [Description ("The number of login frames sent."), 
 3161               Counter ]
 3162              uint64 PLOGIsSent;
 3163           
 3164              [Description (
 3165                  "Number of frames received containing 'EOF Abort'."), 
 3166               Counter ]
 3167              uint64 EOFAbortsReceived;
 3168           
 3169              [Description (
 3170                  "Number of frames transmitted containing 'EOF Abort'."), 
 3171               Counter ]
 3172 karl  1.2    uint64 EOFAbortsTransmitted;
 3173           
 3174              [Description (
 3175                  "The number of logouts received from various targets."), 
 3176               Counter ]
 3177              uint64 PLOGOsReceived;
 3178           
 3179              [Description ("The number of logout frames sent."), 
 3180               Counter ]
 3181              uint64 PLOGOsSent;
 3182           
 3183              [Description (
 3184                  "The number of PLOGI frames sent where the response was "
 3185                  "LS_RJT."), 
 3186               Counter ]
 3187              uint64 PLOGIsRejected;
 3188           
 3189              [Description (
 3190                  "The number of PLOGO frames sent where the response was "
 3191                  "LS_RJT."), 
 3192               Counter ]
 3193 karl  1.2    uint64 PLOGOsRejected;
 3194            
 3195              [Description (
 3196                 "Method to reset the Port event counters. The method " 
 3197                 "takes one parameter as input - an integer indicating which "
 3198                 "counter to reset. For this input parameter, 0 indicates all, "
 3199                 "1 through 8 indicate a reset of the individual counters. "
 3200                 "The method returns 0 if successful, 1 if not supported, and " 
 3201                 "any other value if an error occurred. A method is specified "
 3202                 "so that the Device's instrumentation, which tabulates "
 3203                 "the errors and warnings, can also reset its internal "
 3204                 "processing and counters. \n"
 3205                 "In a subclass, the set of possible return codes could be "
 3206                 "specified, using a ValueMap qualifier on the method. The "
 3207                 "strings to which the ValueMap contents are 'translated' "
 3208                 "may also be specified in the subclass as a Values "
 3209                 "array qualifier.") ]
 3210              uint32 ResetCounter (
 3211           
 3212                 [IN, ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
 3213                  Values {"All", "PLOGIsReceived", "PLOGIsSent", 
 3214 karl  1.2            "EOFAbortsReceived", "EOFAbortsTransmitted", 
 3215                      "PLOGOsReceived", "PLOGOsSent", "PLOGIsRejected", 
 3216                      "PLOGOsRejected"} ] 
 3217                 uint16 SelectedCounter);
 3218           };
 3219           
 3220           
 3221           // ===================================================================
 3222           // LabelReaderStatInfo
 3223           // ===================================================================
 3224           [Version ("2.6.0"), Description (
 3225              "Statistics for a LabelReader, related to read successes, "
 3226              "failures and retries.") ]
 3227           class CIM_LabelReaderStatInfo : CIM_DeviceStatisticalInformation {
 3228           
 3229              [Description (
 3230                  "The number of successful physical label scans."), 
 3231               Counter ]
 3232              uint64 ScanSuccesses;
 3233           
 3234              [Description ("The number of failed physical label scans."), 
 3235 karl  1.2     Counter ]
 3236              uint64 ScanFailures;
 3237           
 3238              [Description ("The number of retried physical label scans."), 
 3239               Counter ]
 3240              uint64 ScanRetries;
 3241           
 3242              [Description (
 3243                  "Method to reset the statistical counters. The method " 
 3244                  "takes one parameter as input - an integer indicating which "
 3245                  "counter to reset. For this input parameter, 0 indicates all, "
 3246                  "1 resets the \"Scan Successes\" counter, 2 resets the "
 3247                  "\"Scan Failures\" counter, and 3 resets the \"Scan Retries\" "
 3248                  "counter. The method returns 0 if successful, 1 if not "
 3249                  "supported, and any other value if an error occurred. A method "
 3250                  "is specified so that the Device's instrumentation can also "
 3251                  "reset its internal processing and counters. \n"
 3252                  "In a subclass, the set of possible return codes should be "
 3253                  "specified in a ValueMap qualifier on the method. The strings "
 3254                  "to which the ValueMap contents are 'translated' can be "
 3255                  "specified as a Values array qualifier.") ]
 3256 karl  1.2    uint32 ResetCounter (
 3257           
 3258                  [IN, ValueMap {"0", "1", "2", "3"},
 3259                   Values {"All", "Scan Successes", "Scan Failures", 
 3260                       "Scan Retries"} ] 
 3261                  uint16 SelectedCounter);
 3262           };
 3263           
 3264           
 3265           // ===================================================================
 3266           // MediaAccessStatInfo
 3267           // ===================================================================
 3268           [Version ("2.6.0"), Description (
 3269              "Statistics related to reading and writing at a specific "
 3270              "MediaAccessDevice, or for a specific StorageExtent. Although "
 3271              "the same class is used to represent this data, at the instance "
 3272              "level the object holds information for the MediaAccessDevice "
 3273              "(independent of the StorageExtent), OR for the Extent "
 3274              "(independent of its AccessDevice).") ]
 3275           class CIM_MediaAccessStatInfo : CIM_DeviceStatisticalInformation {
 3276           
 3277 karl  1.2    [Description ("The number of attempted read operations."), 
 3278               Counter ]
 3279              uint64 ReadOperations;
 3280           
 3281              [Description ("The number of unrecoverable read operations."), 
 3282               Counter ]
 3283              uint64 UnrecoverableReadOperations;
 3284           
 3285              [Description ("The number of attempted write operations."), 
 3286               Counter ]
 3287              uint64 WriteOperations;
 3288           
 3289              [Description ("The number of unrecoverable write operations."), 
 3290               Counter ]
 3291              uint64 UnrecoverableWriteOperations;
 3292           
 3293              [Description ("The number of recovered read operations."), 
 3294               Counter ]
 3295              uint64 RecoveredReadOperations;
 3296           
 3297              [Description ("The number of recovered write operations."), 
 3298 karl  1.2     Counter ]
 3299              uint64 RecoveredWriteOperations;
 3300           
 3301              [Description ("The number of recovered seek operations."), 
 3302               Counter ]
 3303              uint64 RecoveredSeekOperations;
 3304           
 3305              [Description ("The number of unrecoverable seek operations."), 
 3306               Counter ]
 3307              uint64 UnrecoverableSeekOperations;
 3308           
 3309              [Description (
 3310                  "Method to reset the statistical counters. The method takes one "
 3311                  "parameter as input - an integer indicating which counter to "
 3312                  "reset. For this input parameter, 0 indicates all, 1-2 and 5 "
 3313                  "reset the 'read operation'-related counters, 3-4 and 6 reset "
 3314                  "the 'write operation'-related counters, and 7-8 reset the "
 3315                  "seek-related counters. The method returns 0 if "
 3316                  "successful, 1 if not supported, and any other value if an "
 3317                  "error occurred. A method is specified so that the Device's "
 3318                  "instrumentation can also reset its internal processing and "
 3319 karl  1.2        "counters. \n"
 3320                  "In a subclass, the set of possible return codes should be "
 3321                  "specified in a ValueMap qualifier on the method. The strings "
 3322                  "to which the ValueMap contents are 'translated' can be "
 3323                  "specified as a Values array qualifier.") ]
 3324              uint32 ResetCounter (
 3325           
 3326                  [IN, ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
 3327                   Values {"All", "Read Operations", 
 3328                       "Unrecoverable Read Operations", "Write Operations", 
 3329                       "Unrecoverable Write Operations", 
 3330                       "Recovered Read Operations", 
 3331                       "Recovered Write Operations", "Recovered Seeks", 
 3332                       "Unrecoverable Seeks"} ] 
 3333                  uint16 SelectedCounter);
 3334           };
 3335           
 3336           
 3337           // ===================================================================
 3338           // PickerStatInfo
 3339           // ===================================================================
 3340 karl  1.2 [Version ("2.6.0"), Description (
 3341              "Statistics for a PickerElement, related to pick/put successes, "
 3342              "retries and failures.") ]
 3343           class CIM_PickerStatInfo : CIM_DeviceStatisticalInformation {
 3344           
 3345              [Description ("The number of successful picks."), 
 3346               Counter ]
 3347              uint64 PickSuccesses;
 3348           
 3349              [Description ("The number of failed picks."), 
 3350               Counter ]
 3351              uint64 PickFailures;
 3352           
 3353              [Description ("The number of retried picks."), 
 3354               Counter ]
 3355              uint64 PickRetries;
 3356           
 3357              [Description ("The number of successful puts."), 
 3358               Counter ]
 3359              uint64 PutSuccesses;
 3360           
 3361 karl  1.2    [Description ("The number of failed puts."), 
 3362               Counter ]
 3363              uint64 PutFailures;
 3364           
 3365              [Description ("The number of retried puts."), 
 3366               Counter ]
 3367              uint64 PutRetries;
 3368           
 3369              [Description (
 3370                  "Method to reset the statistical counters. The method takes one "
 3371                  "parameter as input - an integer indicating which counter to "
 3372                  "reset. For this input parameter, 0 indicates all, 1-3 reset "
 3373                  "the 'pick'-related counters, and 4-6 reset the 'put'-related "
 3374                  "counters. The method returns 0 if successful, 1 if not "
 3375                  "supported, and any other value if an error occurred. A "
 3376                  "method is specified so that the Device's instrumentation can "
 3377                  "also reset its internal pocessing and counters. \n"
 3378                  "In a subclass, the set of possible return codes should be "
 3379                  "specified in a ValueMap qualifier on the method. The strings "
 3380                  "to which the ValueMap contents are 'translated' can be "
 3381                  "specified as a Values array qualifier.") ]
 3382 karl  1.2    uint32 ResetCounter (
 3383           
 3384                  [IN, ValueMap {"0", "1", "2", "3", "4", "5", "6"},
 3385                   Values {"All", "Pick Successes", "Pick Failures", 
 3386                       "Pick Retries", "Put Successes", "Put Failures", 
 3387                       "Put Retries"} ]
 3388                  uint16 SelectedCounter);
 3389           };
 3390           
 3391           
 3392           // ===================================================================
 3393           //    UML Page 7 - Controllers
 3394           // ===================================================================
 3395           // ===================================================================
 3396           // Controller
 3397           // ===================================================================
 3398           [Abstract, Version ("2.6.0"), Description (
 3399              "Controller is a superclass for grouping the miscellaneous "
 3400              "control-related Devices that exist. Examples of Controllers "
 3401              "are SCSIControllers, USBControllers, SerialControllers, ... "
 3402              "The Controller class is an abstraction for Devices with a "
 3403 karl  1.2    "single protocol stack, which exist primarily for communication "
 3404              "to, and control or reset of downstream (ControlledBy) Devices.") ] 
 3405           class CIM_Controller : CIM_LogicalDevice {
 3406           
 3407              [Description ("Time of last reset of the Controller.") ]
 3408              datetime TimeOfLastReset;
 3409           
 3410              [Description (
 3411                  "The protocol used by the Controller to access 'controlled' "
 3412                  "Devices."),
 3413               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 3414                  "11", "12", "13", "14", "15", "16", "17", "18", "19",
 3415                  "20", "21", "22", "23", "24", "25", "26", "27", "28",
 3416                  "29", "30", "31", "32", "33", "34", "35", "36", "37",
 3417                  "38", "39", "40", "41", "42", "43", "44", "45", "46", 
 3418                  "47"},
 3419               Values {"Other", "Unknown", "EISA", "ISA", "PCI", "ATA/ATAPI",
 3420                  "Flexible Diskette", "1496", "SCSI Parallel Interface",
 3421                  "SCSI Fibre Channel Protocol", "SCSI Serial Bus Protocol",
 3422                  "SCSI Serial Bus Protocol-2 (1394)", 
 3423                  "SCSI Serial Storage Architecture", "VESA", "PCMCIA",        
 3424 karl  1.2        "Universal Serial Bus", "Parallel Protocol", "ESCON",
 3425                  "Diagnostic", "I2C", "Power", "HIPPI", "MultiBus", "VME",
 3426                  "IPI", "IEEE-488", "RS232", "IEEE 802.3 10BASE5",
 3427                  "IEEE 802.3 10BASE2", "IEEE 802.3 1BASE5",
 3428                  "IEEE 802.3 10BROAD36", "IEEE 802.3 100BASEVG",
 3429                  "IEEE 802.5 Token-Ring", "ANSI X3T9.5 FDDI", "MCA", 
 3430                  "ESDI", "IDE", "CMD", "ST506", "DSSI", "QIC2", 
 3431                  "Enhanced ATA/IDE", "AGP", "TWIRP (two-way infrared)", 
 3432                  "FIR (fast infrared)", "SIR (serial infrared)", 
 3433                  "IrBus"}, 
 3434               MappingStrings {"MIF.DMTF|Bus Port|003",
 3435                  "MIF.DMTF|Disks|003.3"},
 3436               ModelCorrespondence {"CIM_Controller.ProtocolDescription"} ]
 3437              uint16 ProtocolSupported;
 3438           
 3439              [Description (
 3440                  "Maximum number of directly addressable entities supported "
 3441                  "by this Controller.  A value of 0 should be used if the "
 3442                  "number is unknown or unlimited."),
 3443               MappingStrings {"MIF.DMTF|Bus Port|003"} ]
 3444              uint32 MaxNumberControlled;  
 3445 karl  1.2 
 3446              [Description (
 3447                  "A free form string providing more information related "
 3448                  "to the ProtocolSupported by the Controller."),
 3449               ModelCorrespondence {"CIM_Controller.ProtocolSupported"},
 3450               MappingStrings {"MIF.DMTF|Bus Port|003"} ]
 3451               string ProtocolDescription;
 3452           };
 3453           
 3454           
 3455           // ===================================================================
 3456           // ControlledBy
 3457           // ===================================================================
 3458           [Association, Version ("2.6.0"), Description (
 3459              "The ControlledBy relationship indicates which Devices are "
 3460              "commanded by or accessed through the Controller LogicalDevice.") ] 
 3461           class CIM_ControlledBy : CIM_DeviceConnection {
 3462           
 3463              [Override ("Antecedent"),
 3464               Description ("The Controller.") ]
 3465              CIM_Controller REF Antecedent;
 3466 karl  1.2 
 3467              [Override ("Dependent"),
 3468               Description ("The controlled Device.") ]
 3469              CIM_LogicalDevice REF Dependent;
 3470           
 3471              [Description (
 3472                  "The State property indicates whether the Controller is "
 3473                  "actively commanding or accessing the Device (value=1) or "
 3474                  "not (value=2).  Also, the value, \"Unknown\" (0), can be "
 3475                  "defined. This information is necessary when a LogicalDevice "
 3476                  "can be commanded by, or accessed through, multiple "
 3477                  "Controllers."),
 3478               ValueMap {"0", "1", "2"},
 3479               Values {"Unknown", "Active", "Inactive"} ]
 3480              uint16 AccessState;
 3481           
 3482              [Description (
 3483                  "The time that the downstream Device was last reset by "
 3484                  "the Controller.") ]
 3485              datetime TimeOfDeviceReset;
 3486           
 3487 karl  1.2    [Description (
 3488                  "Number of hard resets issued by the Controller. A hard reset "
 3489                  "returns the Device to its initialization or 'boot-up' state. "
 3490                  "All internal Device state information and data are lost."), 
 3491               Counter ]
 3492              uint32 NumberOfHardResets;
 3493           
 3494              [Description (
 3495                  "Number of soft resets issued by the Controller. A soft "
 3496                  "reset does not completely clear current Device state and/or "
 3497                  "data. Exact semantics are dependent on the Device, and on "
 3498                  "the protocols and mechanisms used to communicate to it."), 
 3499               Counter ]
 3500              uint32 NumberOfSoftResets;
 3501           };
 3502           
 3503           
 3504           // ===================================================================
 3505           // SerialController
 3506           // ===================================================================
 3507           [Version ("2.6.0"), Description (
 3508 karl  1.2    "Capabilities and management of the SerialController.") ]
 3509           class CIM_SerialController : CIM_Controller {
 3510           
 3511              [Description (
 3512                  "The Capabilities property defines chip level compatibility "
 3513                  "for the SerialController.  Therefore, this property describes "
 3514                  "the buffering and other capabilities of the SerialController, "
 3515                  "that may be inherent in the chip hardware. The property is "
 3516                  "an enumerated integer."),
 3517               ArrayType ("Indexed"),
 3518               ValueMap {"1", "2", "3", "4", "5", "6", "160", "161"},      
 3519               Values {"Other", "Unknown", "XT/AT Compatible", 
 3520                  "16450 Compatible", "16550 Compatible", 
 3521                  "16550A Compatible", "8251 Compatible",
 3522                  "8251FIFO Compatible"},
 3523               MappingStrings {"MIF.DMTF|Serial Ports|004.7"},
 3524               ModelCorrespondence {
 3525                  "CIM_SerialController.CapabilityDescriptions"} ]
 3526              uint16 Capabilities[];
 3527           
 3528              [Description (
 3529 karl  1.2        "An array of free-form strings providing more detailed "
 3530                  "explanations for any of the SerialController features "
 3531                  "indicated in the Capabilities array. Note, each entry of "
 3532                  "this array is related to the entry in the Capabilities "
 3533                  "array that is located at the same index."),
 3534               ArrayType ("Indexed"),
 3535               ModelCorrespondence {"CIM_SerialController.Capabilities"} ]
 3536              string CapabilityDescriptions[];
 3537           
 3538              [Description (
 3539                  "Maximum baud rate in Bits per Second supported by the "
 3540                  "SerialController."),
 3541               Units ("Bits per Second"),
 3542               MappingStrings {"MIF.DMTF|Serial Ports|004.6"} ]
 3543              uint32 MaxBaudRate; 
 3544           
 3545              [Description (
 3546                  "An enumeration indicating the operational security for the "
 3547                  "Controller. For example, information that the Device's "
 3548                  "external interface is locked out (value=4) or \"Boot "
 3549                  "Bypass\" (value=6) can be described using this property."), 
 3550 karl  1.2     ValueMap {"1", "2", "3", "4", "5", "6"}, 
 3551               Values {"Other", "Unknown", "None", 
 3552                  "External Interface Locked Out", 
 3553                  "External Interface Enabled", "Boot Bypass"}, 
 3554               MappingStrings {"MIF.DMTF|Serial Ports|004.9"} ]
 3555              uint16 Security;
 3556           };
 3557           
 3558           
 3559           // ===================================================================
 3560           // SerialInterface
 3561           // ===================================================================
 3562           [Association, Version ("2.6.0"), Description (
 3563              "SerialInterface is a ControlledBy relationship indicating "
 3564              "which Devices are accessed through the SerialController and "
 3565              "the characteristics of this access.") ] 
 3566           class CIM_SerialInterface : CIM_ControlledBy {
 3567           
 3568              [Override ("Antecedent"),  Description (
 3569                  "The SerialController.") ]
 3570              CIM_SerialController REF Antecedent;  
 3571 karl  1.2 
 3572              [Override ("NegotiatedDataWidth"), Description (
 3573                  "For the SerialInterface, NegotiatedDataWidth is the number "
 3574                  "of data bits to be transmitted, without stop bits or parity."),
 3575               Units ("Bits") ]
 3576              uint32 NegotiatedDataWidth;
 3577           
 3578              [Description ("Number of stop bits to be transmitted."),
 3579               Units ("Bits") ]     
 3580              uint16 NumberOfStopBits;
 3581           
 3582              [Description (
 3583                  "Information on the parity setting for transmitted data. "
 3584                  "No parity (value=1), even (2) or odd (3) can be specified."),
 3585               ValueMap {"0", "1", "2", "3"},
 3586               Values {"Unknown", "None", "Even", "Odd"} ]
 3587              uint16 ParityInfo;
 3588           
 3589              [Description (
 3590                  "An integer enumeration indicating the flow control "
 3591                  "(Xon-Xoff and/or RTS/CTS) for transmitted data."),
 3592 karl  1.2     ValueMap {"0", "1", "2", "3", "4", "5"},
 3593               Values {"Unknown", "Not Supported", "None", "XonXoff", 
 3594                  "RTS/CTS", "Both XonXoff and RTS/CTS"} ]
 3595              uint16 FlowControlInfo;
 3596           };
 3597           
 3598           
 3599           // ===================================================================
 3600           // SCSIController
 3601           // ===================================================================
 3602           [Version ("2.6.0"), Description (
 3603              "Capabilities and management of the SCSIController.") ] 
 3604           class CIM_SCSIController : CIM_Controller   {
 3605           
 3606              [Description (
 3607                  "An integer enumeration indicating whether or not the "
 3608                  "SCSIController provides redundancy or protection against "
 3609                  "device failures."),
 3610               ValueMap {"1", "2", "3", "4", "5", "6"},
 3611               Values {"Other", "Unknown", "Unprotected", "Protected", 
 3612                  "Protected through SCC (SCSI-3 Controller Command)",
 3613 karl  1.2        "Protected through SCC-2 (SCSI-3 Controller Command)"},
 3614               MappingStrings {"MIF.DMTF|Storage Controller|001.3"} ]
 3615              uint16 ProtectionManagement;
 3616           
 3617              [Description (
 3618                  "Maximum data width (in bits) supported by the SCSI"
 3619                  "Controller."),
 3620               Units ("Bits"), 
 3621               MappingStrings {"MIF.DMTF|Bus Port|003"} ]
 3622              uint32 MaxDataWidth;
 3623           
 3624              [Description (
 3625                  "Maximum transfer rate (in Bits per Second) supported by the "
 3626                  "SCSIController."),
 3627               Units ("Bits per Second"), 
 3628               MappingStrings {"MIF.DMTF|Bus Port|003"} ]
 3629              uint64 MaxTransferRate;
 3630           
 3631              [Description (
 3632                  "Number of SCSIController timeouts that have occurred since "
 3633                  "the TimeOfLastReset."), 
 3634 karl  1.2     Counter ]  
 3635              uint32 ControllerTimeouts;
 3636           
 3637              [Description (
 3638                  "Signal capabilities that can be supported by the SCSI"
 3639                  "Controller. For example, the Controller may support "
 3640                  "\"Single Ended\" and \"Differential\". In this case, the "
 3641                  "values 3 and 4 would be written to the Signal"
 3642                  "Capabilities array."), 
 3643               ValueMap {"1", "2", "3", "4", "5", "6"}, 
 3644               Values {"Other", "Unknown", "Single Ended", "Differential", 
 3645                  "Low Voltage Differential", "Optical"}, 
 3646               ModelCorrespondence {"CIM_SCSIInterface.SCSISignal"} ]
 3647              uint16 SignalCapabilities[];
 3648           };
 3649           
 3650           
 3651           // ===================================================================
 3652           // SCSIInterface
 3653           // ===================================================================
 3654           [Association, Version ("2.6.0"), Description (
 3655 karl  1.2    "SCSIInterface is a ControlledBy relationship indicating "
 3656              "which Devices are accessed through a SCSIController and "
 3657              "the characteristics of this access.") ] 
 3658           class CIM_SCSIInterface : CIM_ControlledBy {
 3659           
 3660              [Override ("Antecedent"),
 3661               Description ("The SCSIController.") ]
 3662              CIM_SCSIController REF Antecedent;  
 3663           
 3664              [Description (
 3665                  "Number of SCSI timeouts that have occurred since last hard "
 3666                  "or soft reset related to the controlled Device. The time of "
 3667                  "last reset is indicated in the TimeOfDeviceReset property, "
 3668                  "inherited from the ControlledBy association."), 
 3669               Counter ]
 3670              uint32 SCSITimeouts;
 3671           
 3672              [Description (
 3673                  "Number of SCSI retries that have occurred since last hard "
 3674                  "or soft reset related to the controlled Device. The time of "
 3675                  "last reset is indicated in the TimeOfDeviceReset property, "
 3676 karl  1.2        "inherited from the ControlledBy association."), 
 3677               Counter,
 3678               MappingStrings {"MIF.DMTF|Mass Storage Statistics|001.18"} ]
 3679              uint32 SCSIRetries;
 3680           
 3681              [Description ("The SCSI Initiator ID."), 
 3682               MappingStrings {"MIF.DMTF|Bus Port|003"} ]
 3683              uint32 InitiatorId;
 3684           
 3685              [Description ("The SCSI Target ID."), 
 3686               MappingStrings {"MIF.DMTF|Bus Port|003"} ]
 3687              uint32 TargetId;
 3688           
 3689              [Description ("The SCSI Target LUN."), 
 3690               MappingStrings {"MIF.DMTF|Storage Devices|001.4"} ]
 3691              uint64 TargetLUN;
 3692           
 3693              [Description (
 3694                  "SCSIReservation indicates the type of SCSI reservation "
 3695                  "that currently exists between the source and destination."), 
 3696               ValueMap {"0", "1", "2", "3"},
 3697 karl  1.2     Values {"Unknown", "None", "Simple", "Persistent"} ]
 3698              uint16 SCSIReservation;
 3699           
 3700              [Description (
 3701                  "The SCSI signal characteristics being used for this "
 3702                  "connection. The value listed here must also be listed in "
 3703                  "the SCSIController's SignalCapabilities field."), 
 3704               ValueMap {"1", "2", "3", "4", "5", "6"}, 
 3705               Values {"Other", "Unknown", "Single Ended", "Differential", 
 3706                  "Low Voltage Differential", "Optical"}, 
 3707               MappingStrings {"MIF.DMTF|Bus Port|003"}, 
 3708               ModelCorrespondence {"CIM_SCSIController.SignalCapabilities"} ]
 3709              uint16 SCSISignal;
 3710           
 3711              [Description (
 3712                  "Maximum number of Command Descriptor Blocks (CDBs) that "
 3713                  "can be supported by the target. This data can not be "
 3714                  "obtained under all circumstances.") ]
 3715              uint32 MaxQueueDepth;
 3716           
 3717              [Description (
 3718 karl  1.2        "The maximum number of concurrent Command Descriptor Blocks "
 3719                  "(CDBs) that the initiator will send to the target. This "
 3720                  "value should never be greater than MaxQueueDepth.") ]
 3721              uint32 QueueDepthLimit;
 3722           };
 3723           
 3724           
 3725           // ===================================================================
 3726           // VideoController
 3727           // ===================================================================
 3728           [Version ("2.6.0"), Description (
 3729              "Capabilities and management of the VideoController.") ]
 3730           class CIM_VideoController : CIM_Controller   {
 3731           
 3732           // Override is used to define the MappingString qualifier 
 3733              [Override ("Description"), 
 3734               MappingStrings {"MIF.DMTF|Video|004.18"} ]
 3735              string Description;
 3736           
 3737              [Description (
 3738                  "A free-form string describing the video "
 3739 karl  1.2        "processor/Controller.") ]     
 3740              string VideoProcessor;
 3741           
 3742              [Description (
 3743                  "An integer enumeration indicating the type of video memory."),
 3744               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 3745                  "11", "12", "13"},
 3746               Values {"Other", "Unknown", "VRAM", "DRAM", "SRAM", "WRAM",
 3747                  "EDO RAM", "Burst Synchronous DRAM", 
 3748                  "Pipelined Burst SRAM", "CDRAM", "3DRAM", "SDRAM",
 3749                  "SGRAM"},
 3750               MappingStrings {"MIF.DMTF|Video|004.6"} ]
 3751              uint16 VideoMemoryType;
 3752           
 3753              [Description (
 3754                  "Number of video pages supported given the current resolutions "
 3755                  "and available memory.") ]  
 3756              uint32 NumberOfVideoPages;
 3757           
 3758              [Description ("Maximum amount of memory supported in bytes."),
 3759               Units ("Bytes") ]
 3760 karl  1.2    uint32 MaxMemorySupported;
 3761           
 3762              [Description (
 3763                  "An array of integers indicating the graphics and 3D "
 3764                  "capabilities of the VideoController."),
 3765               ValueMap {"0", "1", "2", "3"},
 3766               Values {"Unknown", "Other", "Graphics Accelerator",
 3767                  "3D Accelerator"},
 3768               ModelCorrespondence {
 3769                  "CIM_VideoController.CapabilityDescriptions"} ]
 3770              uint16 AcceleratorCapabilities[];
 3771           
 3772              [Description (
 3773                  "An array of free-form strings providing more detailed "
 3774                  "explanations for any of the video Accelerator features "
 3775                  "indicated in the Capabilities array. Note, each entry "
 3776                  "of this array is related to the entry in the Capabilities "
 3777                  "array that is located at the same index."),
 3778               ArrayType ("Indexed"),
 3779               ModelCorrespondence {
 3780                  "CIM_VideoController.AcceleratorCapabilities"} ]
 3781 karl  1.2    string CapabilityDescriptions[];
 3782           
 3783              [Description ("The number of bits used to display each pixel."), 
 3784               Units ("Bits"),
 3785               MappingStrings {"MIF.DMTF|Video|004.12"} ]
 3786              uint32 CurrentBitsPerPixel;
 3787           
 3788              [Description ("Current number of horizontal pixels."),
 3789               Units ("Pixels"),
 3790               MappingStrings {"MIF.DMTF|Video|004.11"} ]
 3791              uint32 CurrentHorizontalResolution;
 3792           
 3793              [Description ("Current number of vertical pixels."),
 3794               Units ("Pixels"),
 3795               MappingStrings {"MIF.DMTF|Video|004.10"} ]
 3796              uint32 CurrentVerticalResolution;
 3797           
 3798              [Description (
 3799                  "Maximum refresh rate of the VideoController in Hertz."),
 3800               Units ("Hertz"),
 3801               MappingStrings {"MIF.DMTF|Video|004.5"} ]
 3802 karl  1.2    uint32 MaxRefreshRate;
 3803           
 3804              [Description (
 3805                  "Minimum refresh rate of the Video Controller in Hertz."),
 3806               Units ("Hertz"),
 3807               MappingStrings {"MIF.DMTF|Video|004.4"} ]
 3808              uint32 MinRefreshRate;
 3809           
 3810              [Description ("Current refresh rate in Hertz."),
 3811               Units ("Hertz"),
 3812               MappingStrings {"MIF.DMTF|Video|004.15"} ]
 3813              uint32 CurrentRefreshRate;
 3814           
 3815              [Description (
 3816                  "Current scan mode. \"Interlaced\" (value=3) or "
 3817                  "\"Non Interlaced\" (4) can be defined using this property."),
 3818               ValueMap {"1", "2", "3", "4"},
 3819               Values {"Other", "Unknown", "Interlaced", "Non Interlaced"},
 3820               MappingStrings {"MIF.DMTF|Video|004.8"} ]
 3821              uint16 CurrentScanMode;
 3822           
 3823 karl  1.2    [Description (
 3824                  "If in character mode, number of rows for this Video"
 3825                  "Controller. Otherwise, enter 0."),
 3826               MappingStrings {"MIF.DMTF|Video|004.13"} ]
 3827              uint32 CurrentNumberOfRows;
 3828           
 3829              [Description (
 3830                  "If in character mode, number of columns for this "
 3831                  "VideoController. Otherwise, enter 0."),
 3832               MappingStrings {"MIF.DMTF|Video|004.14"} ]
 3833              uint32 CurrentNumberOfColumns;
 3834           
 3835              [Description (
 3836                  "Number of colors supported at the current resolutions.") ]
 3837              uint64 CurrentNumberOfColors;
 3838           }; 
 3839           
 3840           
 3841           // ===================================================================
 3842           // PCVideoController
 3843           // ===================================================================
 3844 karl  1.2 [Version ("2.6.0"), Description (
 3845              "Capabilities and management of a PCVideoController, a subtype "
 3846              "of VideoController.") ] 
 3847           class CIM_PCVideoController : CIM_VideoController   {
 3848           
 3849              [Description (
 3850                  "The video architecture.  For example, VGA (value=5) or "
 3851                  "PC-98 (160) may be specified."),
 3852               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 3853                  "11", "12", "160"},
 3854               Values {"Other", "Unknown", "CGA", "EGA", "VGA", "SVGA", "MDA",
 3855                  "HGC", "MCGA", "8514A", "XGA", "Linear Frame Buffer",
 3856                  "PC-98"},
 3857               MappingStrings {"MIF.DMTF|Video|004.2"} ]
 3858              uint16 VideoArchitecture;
 3859           
 3860              [Description ("Current video mode."),
 3861               MappingStrings {"MIF.DMTF|Video|004.3"} ]
 3862              uint16 VideoMode;
 3863           
 3864              [Description (
 3865 karl  1.2        "Current number of color planes.  If this value is not "
 3866                  "applicable for the current video configuration, enter 0.") ]
 3867              uint16 NumberOfColorPlanes;
 3868           };
 3869           
 3870           
 3871           // ===================================================================
 3872           // AGPVideoController
 3873           // ===================================================================
 3874           [Version ("2.6.0"), Description (
 3875              "Capabilities and management of an AGPVideoController.") ]
 3876           class CIM_AGPVideoController: CIM_VideoController {
 3877           
 3878              [Description (
 3879                  "Capabilities of the AGP Graphics Controller. For example, "
 3880                  "the Device may support multiple monitors, PCI Mastering and "
 3881                  "large memory addresses. In this case, the values 3, 4 and 6 "
 3882                  "would be written to the Capabilities array."), 
 3883               ArrayType("Indexed"), 
 3884               ValueMap {"0", "1", "2", "3", "4", "5", "6"},
 3885               Values {"Unknown", "Other", "PCI Fast Write", 
 3886 karl  1.2             "MultiMonitor Support", "PCI Mastering", 
 3887                       "Second Monochrome Adapter Support", 
 3888                       "Large Memory Address Support"}, 
 3889               ModelCorrespondence {
 3890                  "CIM_AGPVideoController.CapabilityDescriptions"} ]
 3891              uint16 Capabilities[];
 3892           
 3893              [Description (
 3894                  "An array of free form strings providing more detailed "
 3895                  "explanations for any of the entries in the Capabilities "
 3896                  "array. Note, each entry of this array is related to the "
 3897                  "entry in the Capabilities array that is located at the "
 3898                  "same index."), 
 3899               ArrayType("Indexed"), 
 3900               ModelCorrespondence {"CIM_AGPVideoController.Capabilities"} ]
 3901              string CapabilityDescriptions[];
 3902           
 3903              [Description ("Size of the non-local video memory in KB."), 
 3904               Units ("KiloBytes") ]
 3905              uint32 NonlocalVideoMemorySize;
 3906           
 3907 karl  1.2    [Description (
 3908                  "Width of the internal bus in the graphics Controller, in "
 3909                  "bits."), 
 3910               Units ("Bits") ]
 3911              uint32 LocalBusWidth;
 3912           
 3913              [Description (
 3914                  "An integer enumeration indicating the usage model of the "
 3915                  "graphics Controller. Usage model indicates how the Controller "
 3916                  "does manipulations of graphics surfaces, textures, etc. in "
 3917                  "memory. DMA indicates that the graphics Controller brings "
 3918                  "structures from the system memory to its local memory to "
 3919                  "perform needed manipulations or renderings. Execute specifies "
 3920                  "that the graphics Controller can directly access a specified "
 3921                  "region in main memory (called the graphics aperture) using "
 3922                  "GART - Graphics Aperture Remapping Table. It then performs "
 3923                  "manipulations in that range as if that whole graphics aperture "
 3924                  "were part of its local memory. A value of \"Both\" DMA and "
 3925                  "Execute models may also be specified."), 
 3926               ValueMap {"0", "1", "2", "3", "4"},
 3927               Values {"Unknown", "Other", "Execute", "DMA", "Both"} ]
 3928 karl  1.2    uint16 UsageModel;
 3929           
 3930              [Description (
 3931                  "An integer enumeration indicating the data transfer rate of "
 3932                  "the graphics Controller."), 
 3933               ValueMap {"0", "1", "2", "3", "4"},
 3934               Values {"Unknown", "Other", "1X", "2X", "4X"} ]
 3935              uint16 DataTransferRate;
 3936           
 3937              [Description (
 3938                  "An integer enumeration indicating the addressing mode of the "
 3939                  "graphics Controller."), 
 3940               ValueMap {"0", "1", "2", "3"},
 3941               Values {"Unknown", "Other", "Sideband", "Pipeline"} ]
 3942              uint16 AddressingMode;
 3943           
 3944              [Description (
 3945                  "The maximum number of AGP Transaction requests that the master "
 3946                  "(AGP Graphics Controller) is allowed to enqueue into the "
 3947                  "target.") ]
 3948              uint32 MaximumAGPCommandQueuePath;
 3949 karl  1.2 
 3950              [Description (
 3951                  "The number of AGP Transaction that the core logic (chipset) "
 3952                  "can accept into its transaction request queue from the "
 3953                  "Controller.") ]
 3954              uint32 MaxNumberOfPipelinedAGPTransactions;
 3955           
 3956              [Description ("Size of the graphics aperture in KB."), 
 3957               Units ("KiloBytes") ]
 3958              uint32 GraphicsApertureSize;
 3959           
 3960              [Description (
 3961                  "A string containing the AGP specification version to which "
 3962                  "this graphics Controller conforms.") ]
 3963              string AGPSpecificationVersionConformance;
 3964           };
 3965           
 3966           
 3967           // ===================================================================
 3968           // ParallelController
 3969           // ===================================================================
 3970 karl  1.2 [Version ("2.6.0"), Description (
 3971              "Capabilities and management of the ParallelController.") ]
 3972           class CIM_ParallelController : CIM_Controller {
 3973           
 3974              [Description (
 3975                  "Set to true if the ParallelController supports DMA."),
 3976               MappingStrings {"MIF.DMTF|Parallel Ports|003.7"} ]     
 3977              boolean DMASupport;
 3978           
 3979              [Description (
 3980                  "An integer enumeration indicating the capabilities of the "
 3981                  "ParallelController."),
 3982               ArrayType ("Indexed"),
 3983               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
 3984               Values {"Unknown", "Other", "XT/AT Compatible", 
 3985                  "PS/2 Compatible", "ECP", "EPP", "PC-98", 
 3986                  "PC-98-Hireso", "PC-H98"},
 3987               MappingStrings {"MIF.DMTF|Parallel Ports|003.8"},
 3988               ModelCorrespondence {
 3989                  "CIM_ParallelController.CapabilityDescriptions"} ]
 3990              uint16 Capabilities[];
 3991 karl  1.2 
 3992              [Description (
 3993                  "An array of free-form strings providing more detailed "
 3994                  "explanations for any of the ParallelController features "
 3995                  "indicated in the Capabilities array. Note, each entry of "
 3996                  "this array is related to the entry in the Capabilities "
 3997                  "array that is located at the same index."),
 3998               ArrayType ("Indexed"),
 3999               ModelCorrespondence {"CIM_ParallelController.Capabilities"} ]
 4000              string CapabilityDescriptions[];
 4001           
 4002              [Description (
 4003                  "An enumeration indicating the operational security for the "
 4004                  "Controller. For example, information that the Device's "
 4005                  "external interface is locked out (value=4) or \"Boot "
 4006                  "Bypass\" (value=6) can be described using this property."), 
 4007               ValueMap {"1", "2", "3", "4", "5", "6"}, 
 4008               Values {"Other", "Unknown", "None", 
 4009                  "External Interface Locked Out", 
 4010                  "External Interface Enabled", "Boot Bypass"}, 
 4011               MappingStrings {"MIF.DMTF|Parallel Ports|003.10"} ]
 4012 karl  1.2    uint16 Security;
 4013           };
 4014           
 4015           
 4016           // ===================================================================
 4017           // SSAController 
 4018           // ===================================================================
 4019           [Version ("2.6.0"), Description (
 4020              "Capabilities and management of an SSAController (Serial "
 4021              "Storage Architecture).") ]
 4022           class CIM_SSAController : CIM_Controller {
 4023           };
 4024           
 4025           
 4026           // ===================================================================
 4027           // ManagementController
 4028           // ===================================================================
 4029           [Version ("2.6.0"), Description (
 4030              "Capabilities and managment of a ManagementController.  An I2C "
 4031              "microcontroller is a type of ManagementController.") ] 
 4032           class CIM_ManagementController : CIM_Controller {
 4033 karl  1.2 };
 4034           
 4035           
 4036           // ===================================================================
 4037           // IDEController 
 4038           // ===================================================================
 4039           [Version ("2.6.0"), Description (
 4040              "Capabilities and management of an IDEController.") ]
 4041           class CIM_IDEController : CIM_Controller {
 4042           };
 4043           
 4044           
 4045           // ===================================================================
 4046           // InfraredController 
 4047           // ===================================================================
 4048           [Version ("2.6.0"), Description (
 4049              "Capabilities and management of an InfraredController.") ]
 4050           class CIM_InfraredController : CIM_Controller {
 4051           };
 4052           
 4053           
 4054 karl  1.2 // ===================================================================
 4055           // PCIController
 4056           // ===================================================================
 4057           [Version ("2.6.0"), Description (
 4058              "PCIController is a superclass for the PCIBridge and PCIDevice "
 4059              "classes. These classes model adapters and bridges on a PCI "
 4060              "bus. The properties in PCIController and its subclasses are "
 4061              "defined in the various PCI Specifications published by the "
 4062              "PCI SIG.") ]
 4063           class CIM_PCIController : CIM_Controller {
 4064           
 4065              [Description (
 4066                  "Current contents of the register that provides basic "
 4067                  "control over the device's ability to respond "
 4068                  "to, and/or perform PCI accesses.") ]
 4069              uint16 CommandRegister;
 4070           
 4071              [Description (
 4072                  "An array of integers indicating controller capabilities. "
 4073                  "Information such as \"Supports 66MHz\" (value=2) is "
 4074                  "specified in this property. The data in the Capabilities array "
 4075 karl  1.2        "is gathered from the PCI Status Register and the PCI "
 4076                  "Capabilities List as defined in the PCI Specification."),
 4077               ArrayType ("Indexed"), 
 4078               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 4079                  "10", "11", "12"},
 4080               Values {"Unknown", "Other", "Supports 66MHz", 
 4081                  "Supports User Definable Features", 
 4082                  "Supports Fast Back-to-Back Transactions", 
 4083                  "PCI-X Capable", "PCI Power Management Supported", 
 4084                  "Message Signaled Interrupts Supported", 
 4085                  "Parity Error Recovery Capable", 
 4086                  "AGP Supported", "Vital Product Data Supported", 
 4087                  "Provides Slot Identification", "Hot Swap Supported"}, 
 4088               ModelCorrespondence {"CIM_PCIController.CapabilityDescriptions"} ]
 4089              uint16 Capabilities[];
 4090           
 4091              [Description (
 4092                  "An array of free-form strings providing more detailed "
 4093                  "explanations for any of the PCIController features indicated "
 4094                  "in the Capabilities array. Note, each entry of this array "
 4095                  "is related to the entry in the Capabilities array that "
 4096 karl  1.2        "is located at the same index."),
 4097               ArrayType ("Indexed"), 
 4098               ModelCorrespondence {"CIM_PCIController.Capabilities"} ]
 4099              string CapabilityDescriptions[];
 4100           
 4101              [Description (
 4102                  "The slowest device select timing for a target device."), 
 4103               ValueMap {"0", "1", "2", "3", "4", "5"},
 4104               Values {"Unknown", "Other", "Fast", "Medium", "Slow", 
 4105                  "Reserved"} ]
 4106              uint16 DeviceSelectTiming;
 4107           
 4108              [Description (
 4109                  "Register of 8 bits that identifies the basic function of the "
 4110                  "PCI device. This is only the upper byte (offset 0Bh) of the "
 4111                  "3 byte ClassCode field. Note that the property's ValueMap "
 4112                  "array specifies the decimal representation of this "
 4113                  "information."), 
 4114               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 4115                  "10", "11", "12", "13", "14", "15", "16", "17", "18..254", 
 4116                  "255"}, 
 4117 karl  1.2     Values {"Pre 2.0", "Mass Storage", "Network", "Display", 
 4118                  "Multimedia", "Memory", "Bridge", "Simple Communications", 
 4119                  "Base Peripheral", "Input", "Docking Station", "Processor", 
 4120                  "Serial Bus", "Wireless", "Intelligent I/O", 
 4121                  "Satellite Communication", "Encryption/Decryption", 
 4122                  "Data Acquisition and Signal Processing", "PCI Reserved", 
 4123                  "Other"} ]
 4124              uint8 ClassCode;
 4125           
 4126              [Description (
 4127                  "Specifies the system cache line size in doubleword increments "
 4128                  "(e.g., a 486-based system would store the value 04h, "
 4129                  "indicating a cache line size of four doublewords."), 
 4130               Units ("DoubleWords") ]
 4131              uint8 CacheLineSize;
 4132           
 4133              [Description (
 4134                  "Defines the minimum amount of time, in PCI clock cycles, that "
 4135                  "the bus master can retain ownership of the bus."), 
 4136               Units ("PCI clock cycles") ]
 4137              uint8 LatencyTimer;
 4138 karl  1.2 
 4139              [Description (
 4140                  "Defines the PCI interrupt request pin (INTA# to "
 4141                  "INTD#) to which a PCI functional device is connected."), 
 4142               ValueMap {"0", "1", "2", "3", "4", "5"},
 4143               Values {"None", "INTA#", "INTB#", "INTC#", "INTD#", "Unknown"} ]
 4144              uint16 InterruptPin;
 4145           
 4146              [Description (
 4147                  "Doubleword Expansion ROM base memory address."), 
 4148               Units ("DoubleWords") ]
 4149              uint32 ExpansionROMBaseAddress;
 4150           
 4151              [Description (
 4152                  "Reports if the PCI device can perform the self test "
 4153                  "function. Returns bit 7 of the BIST register as a boolean.") ]
 4154              boolean SelfTestEnabled;
 4155           
 4156              [Description (
 4157                  "Method to invoke PCI device self-test. This method sets bit "
 4158                  "6 of the BIST register. The return result is the lower "
 4159 karl  1.2        "four bits of the BIST register where 0 indicates success and "
 4160                  "non-zero is a device dependent failure. Support for this "
 4161                  "method is optional in the PCI Specification.") ]
 4162              uint8 BISTExecution( );
 4163           };
 4164           
 4165           
 4166           // ===================================================================
 4167           // PCIDevice
 4168           // ===================================================================
 4169           [Version ("2.6.0"), Description (
 4170              "Capabilities and management of a PCI device controller "
 4171              "on an adapter card.") ]
 4172           class CIM_PCIDevice : CIM_PCIController {
 4173           
 4174              [Description ("Array of doubleword base memory addresses.") ]
 4175              uint32 BaseAddress[6];
 4176           
 4177              [Description ("Subsystem identifier code.") ]
 4178              uint16 SubsystemID;
 4179           
 4180 karl  1.2    [Description (
 4181                  "Subsystem vendor ID. ID information is reported from a "
 4182                  "PCIDevice via protocol-specific requests. The correct place "
 4183                  "in the CIM Schema for this information is in CIM_Physical"
 4184                  "Element (the Manufacturer property) for hardware, and "
 4185                  "CIM_Product (the Vendor property) if the information is "
 4186                  "related to Product acquisition. This data is also reported "
 4187                  "here since it is part of the standard output from the "
 4188                  "Device, and as an optimization.") ]
 4189              uint16 SubsystemVendorID;
 4190           
 4191              [Description (
 4192                  "Register indiating how long the master would like to "
 4193                  "retain PCI bus ownership whenever it initiates a "
 4194                  "transaction. A zero value indicates no requirement."), 
 4195               Units ("250 nanoseconds") ]
 4196              uint8 MinGrantTime;
 4197           
 4198              [Description (
 4199                  "Register specifying how often the device needs access to "
 4200                  "the PCI bus in 250ns. A zero value indicates no "
 4201 karl  1.2        "requirement."), 
 4202               Units ("250 nanoseconds") ]
 4203              uint8 MaxLatency;
 4204           };
 4205           
 4206           
 4207           // ===================================================================
 4208           // PCIBridge
 4209           // ===================================================================
 4210           [Version ("2.6.0"), Description (
 4211              "Capabilities and management of a PCI controller providing "
 4212              "bridge to bridge capability.") ]
 4213           class CIM_PCIBridge : CIM_PCIController {
 4214           
 4215              [Description ("Array of doubleword base memory addresses.") ]
 4216              uint32 BaseAddress[2];
 4217           
 4218              [Description (
 4219                  "The type of bridge. Except for \"Host\" (value=0), the type "
 4220                  "of bridge is PCI to <value>. For type \"Host\", the device is "
 4221                  "a Host to PCI bridge."), 
 4222 karl  1.2     ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "128"}, 
 4223               Values {"Host", "ISA", "EISA", "Micro Channel", "PCI", 
 4224                  "PCMCIA", "NuBus", "CardBus", "RACEway", "Other"} ]
 4225              uint16 BridgeType;
 4226           
 4227              [Description (
 4228                  "The timeslice for the secondary interface when the bridge "
 4229                  "is acting as an initiator. A zero value indicates no "
 4230                  "requirement."), 
 4231               Units ("PCI clock cycles") ]
 4232              uint8 SecondaryLatencyTimer;
 4233           
 4234              [Description (
 4235                  "The number of the highest numbered bus that exists behind "
 4236                  "the bridge.") ]
 4237              uint8 SubordinateBusNumber;
 4238           
 4239              [Description (
 4240                  "The number of the PCI bus segment to which the secondary "
 4241                  "interface of the bridge is connected.") ]
 4242              uint8 SecondayBusNumber;
 4243 karl  1.2 
 4244              [Description (
 4245                  "The number of the PCI bus segment to which the primary "
 4246                  "interface of the bridge is connected.") ]
 4247              uint8 PrimaryBusNumber;
 4248           
 4249              [Description (
 4250                  "The contents of the Bridge's SecondaryStatusRegister. "
 4251                  "For more information on the contents of this register, refer "
 4252                  "to the PCI-to-PCI Bridge Architecture Specification.") ]
 4253              uint16 SecondaryStatusRegister;
 4254           
 4255              [Description (
 4256                  "The slowest device select timing for a target device on the "
 4257                  "secondary bus."), 
 4258               ValueMap {"0", "1", "2", "3", "4", "5"},
 4259               Values {"Unknown", "Other", "Fast", "Medium", "Slow", 
 4260                  "Reserved"} ]
 4261              uint16 SecondaryBusDeviceSelectTiming;
 4262           
 4263              [Description (
 4264 karl  1.2        "End address of the I/O addresses supported by the bus. The "
 4265                  "upper four bits of this property specify the address bits, "
 4266                  "AD[15::12], of the I/O address. The remaining 12 bits of "
 4267                  "the I/O address are assumed to be all 1's.") ]
 4268              uint8 IOLimit;
 4269           
 4270              [Description (
 4271                  "Base address of I/O addresses supported by the bus. The "
 4272                  "upper four bits of this property specify the address bits, "
 4273                  "AD[15::12], of the I/O address. The remaining 12 bits of "
 4274                  "the I/O address are assumed to be 0.") ]
 4275              uint8 IOBase;
 4276           
 4277              [Description (
 4278                  "End address of the memory supported by the bus. The "
 4279                  "upper twelve bits of this property specify the address bits, "
 4280                  "AD[31::20], of a 32-bit memory address. The remaining 20 "
 4281                  "bits of the address are assumed to be all 1's.") ]
 4282              uint16 MemoryLimit;
 4283           
 4284              [Description (
 4285 karl  1.2        "Base address of the memory supported by the bus. The "
 4286                  "upper twelve bits of this property specify the address bits, "
 4287                  "AD[31::20], of a 32-bit memory address. The remaining 20 "
 4288                  "bits of the address are assumed to be 0.") ]
 4289              uint16 MemoryBase;
 4290           
 4291              [Description (
 4292                  "End address of the memory that can be prefetched by the bus. "
 4293                  "The upper twelve bits of this property specify the address "
 4294                  "bits, AD[31::20], of a 32-bit memory address. The remaining "
 4295                  "20 bits of the address are assumed to be all 1's.") ]
 4296              uint16 PrefetchMemoryLimit;
 4297           
 4298              [Description (
 4299                  "Base address of the memory that can be prefetched by the bus. "
 4300                  "The upper twelve bits of this property specify the address "
 4301                  "bits, AD[31::20], of a 32-bit memory address. The remaining "
 4302                  "20 bits of the address are assumed to be 0.") ]
 4303              uint16 PrefetchMemoryBase;
 4304           
 4305              [Description (
 4306 karl  1.2        "Upper 32 bits of the supported prefetch end address when "
 4307                  "64-bit addressing is used. The lower 32 bits are assumed to "
 4308                  "be all 1's.") ]
 4309              uint32 PrefetchLimitUpper32;
 4310           
 4311              [Description (
 4312                  "Upper 32 bits of the supported prefetch base address when "
 4313                  "64-bit addressing is used. The lower 32 bits are assumed "
 4314                  "to be 0.") ]
 4315              uint32 PrefetchBaseUpper32;
 4316           
 4317              [Description (
 4318                  "Upper 16 bits of the supported I/O end address when 32-bit "
 4319                  "I/O addressing is used. The lower 16 bits are assumed to be "
 4320                  "all 1's.") ]
 4321              uint16 IOLimitUpper16;
 4322           
 4323              [Description (
 4324                  "Upper 16 bits of the supported I/O base address when 32-bit "
 4325                  "I/O addressing is used. The lower 16 bits are assumed to be "
 4326                  "0.") ]
 4327 karl  1.2    uint16 IOBaseUpper16;
 4328           };
 4329           
 4330           
 4331           // ===================================================================
 4332           // PCMCIAController 
 4333           // ===================================================================
 4334           [Version ("2.6.0"), Description (
 4335              "Capabilities and management of a PCMCIAController.") ]
 4336           class CIM_PCMCIAController : CIM_Controller {
 4337           };
 4338           
 4339           
 4340           // ===================================================================
 4341           // ESCONController 
 4342           // ===================================================================
 4343           [Version ("2.6.0"), Description (
 4344              "Capabilities and management of an ESCONController.") ]
 4345           class CIM_ESCONController : CIM_Controller {
 4346           };
 4347           
 4348 karl  1.2 
 4349           // ===================================================================
 4350           // USBController
 4351           // ===================================================================
 4352           [Version ("2.6.0"), Description (
 4353              "Capabilities and managment of a USB Host Controller.") ] 
 4354           class CIM_USBController : CIM_Controller {
 4355           
 4356              [Description (
 4357                  "Indicates the latest USB Version supported by the Controller. "
 4358                  "The property is expressed as a Binary-Coded Decimal (BCD) "
 4359                  "where a decimal point is implied between the 2nd and 3rd "
 4360                  "digits. For example, a value of 0x201 indicates that "
 4361                  "version 2.01 is supported.") ]
 4362              uint16 USBVersion;
 4363           
 4364              [Description (
 4365                  "The type of interface used between the host system software "
 4366                  "and the USBController."), 
 4367               ValueMap {"0", "1", "2", "3"},
 4368               Values {"Unknown", "Other", "UHCI", "OHCI"}, 
 4369 karl  1.2     ModelCorrespondence {"CIM_USBController.ControllerVersion"} ]
 4370              uint16 InterfaceType;
 4371           
 4372              [Description (
 4373                  "Indicates the version of the USB Host Controller register "
 4374                  "set, specific to the InterfaceType. The property is "
 4375                  "expressed as a Binary-Coded Decimal (BCD) value where a "
 4376                  "decimal point is implied between the 2nd and 3rd digits. "
 4377                  "For example, a value of 0x103 indicates that version "
 4378                  "1.03 is supported."), 
 4379               ModelCorrespondence {"CIM_USBController.InterfaceType"} ]
 4380              uint16 ControllerVersion;
 4381           };
 4382           
 4383           // ===================================================================
 4384           //    UML Page 8 - Adapters, Ports, and USB Device
 4385           //
 4386           // ===================================================================
 4387           // ===================================================================
 4388           // LogicalPort 
 4389           // ===================================================================
 4390 karl  1.2 [Version ("2.6.0"), Description (
 4391              "The abstraction of a port or connection point of a Device. "
 4392              "This object should be instantiated when the Port has "
 4393              "independent management characteristics from the Device that "
 4394              "includes it. Examples are a Fibre Channel Port and a USB Port. "
 4395              "This class would not be instantiated for an Ethernet Port which "
 4396              "is not managed independently of the EthernetAdapter.") ]
 4397           class CIM_LogicalPort : CIM_LogicalDevice {
 4398           
 4399              [Description ("The speed of the Port in Bits per Second."), 
 4400               Units ("Bits per Second") ]
 4401              uint64 Speed;
 4402           
 4403              [Description (
 4404                  "The max speed of the Port in Bits per Second."), 
 4405               Units ("Bits per Second") ]
 4406              uint64 MaxSpeed;
 4407           };
 4408           
 4409           
 4410           // ===================================================================
 4411 karl  1.2 // PortOnDevice 
 4412           // ===================================================================
 4413           [Association, Version ("2.6.0"), Description (
 4414              "PortOnDevice associates a Port or connection point with its "
 4415              "Device.") ]
 4416           class CIM_PortOnDevice : CIM_Dependency {
 4417           
 4418              [Override ("Antecedent"), 
 4419               Description ("The Device that includes the Port.") ]
 4420              CIM_LogicalDevice REF Antecedent;
 4421           
 4422              [Override ("Dependent"), 
 4423               Description ("The Port on the Device.") ]
 4424              CIM_LogicalPort REF Dependent;
 4425           };
 4426           
 4427           
 4428           // ===================================================================
 4429           // NetworkAdapter 
 4430           // ===================================================================
 4431           [Abstract, Version ("2.6.0"), Description (
 4432 karl  1.2    "NetworkAdapter is an Abstract class defining general "
 4433              "networking hardware concepts (for example, PermanentAddress or "
 4434              "Speed of operation). NetworkAdapters are Devices with the "
 4435              "ability to support multiple, higher level protocols and provide "
 4436              "the implementation behind the Network Model's ProtocolEndpoint "
 4437              "class. (This information is conveyed using the DeviceSAP"
 4438              "Implementation association, defined in the Core Model.) "
 4439              "NetworkAdapters and their Endpoints represent the potential for "
 4440              "connectivity among peers. \n"
 4441              "The 'potential for connectivity' is very different than the "
 4442              "master-slave/controller-controlled by relationships of CIM_"
 4443              "Controller. Sometimes, however, a single Device is both a kind "
 4444              "of NetworkAdapter and a Controller - for example, when a Fibre"
 4445              "ChannelAdapater is operating as a ComputerSystem's SCSIController. "
 4446              "In this case, there are aspects of the Device that are network "
 4447              "oriented and others that are Controller oriented - and, both the "
 4448              "Controller and Adapter classes should be instantiated. A Device"
 4449              "Identity relationship would also be created to tie together these "
 4450              "differing aspects/abstractions of the Device.") ] 
 4451           class CIM_NetworkAdapter : CIM_LogicalDevice {
 4452           
 4453 karl  1.2    [MaxLen (64), Description (
 4454                  "PermanentAddress defines the network address hardcoded into "
 4455                  "an adapter.  This 'hardcoded' address may be changed via "
 4456                  "firmware upgrade or software configuration. If so, this field "
 4457                  "should be updated when the change is made.  PermanentAddress "
 4458                  "should be left blank if no 'hardcoded' address exists for the "
 4459                  "NetworkAdapter."),
 4460               MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.2"} ]       
 4461              string PermanentAddress;
 4462           
 4463              [MaxLen (64), Description (
 4464                  "An array of strings indicating the network addresses for an "
 4465                  "adapter."),
 4466               ArrayType ("Indexed"),
 4467               MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.3"} ]
 4468              string NetworkAddresses[]; 
 4469           
 4470              [Description (
 4471                  "An estimate of the current bandwidth in Bits per Second. "
 4472                  "For Adapters which vary in bandwidth or for those where "
 4473                  "no accurate estimation can be made, this property should "
 4474 karl  1.2        "contain the nominal bandwidth."),
 4475               Units ("Bits per Second"), 
 4476               MappingStrings {"MIB.IETF|RFC1213-MIB.ifSpeed", 
 4477                  "MIF.DMTF|Network Adapter 802 Port|001.5"} ]
 4478              uint64 Speed;
 4479           
 4480              [Description ( 
 4481                  "The maximum speed, in Bits per Second, for the Network"
 4482                  "Adapter."), 
 4483               Units ("Bits per Second") ] 
 4484               uint64 MaxSpeed;
 4485           
 4486              [Description (
 4487                  "Boolean indicating that the Adapter is operating in "
 4488                  "full duplex mode.") ]
 4489              boolean FullDuplex;
 4490           
 4491              [Description ( 
 4492                  "A boolean indicating whether the NetworkAdapter is capable " 
 4493                  "of automatically determining the speed or other communications "
 4494                  "characteristics of the attached network media.") ] 
 4495 karl  1.2     boolean AutoSense;
 4496           
 4497              [Description (
 4498                  "The total number of octets transmitted, including framing "
 4499                  "characters."),
 4500               Mappingstrings {"MIB.IETF|RFC1213-MIB.ifOutOctets", 
 4501                  "MIF.DMTF|Network Adapter 802 Port|001.7"}, 
 4502               Counter ] 
 4503               uint64 OctetsTransmitted;
 4504           
 4505              [Description (
 4506                  "The total number of octets received, including framing "
 4507                  "characters."),
 4508               Mappingstrings {"MIB.IETF|RFC1213-MIB.ifInOctets",
 4509                  "MIF.DMTF|Network Adapter 802 Port|001.9"}, 
 4510               Counter ] 
 4511               uint64 OctetsReceived;
 4512           };
 4513           
 4514           
 4515           // ===================================================================
 4516 karl  1.2 // EthernetAdapter
 4517           // ===================================================================
 4518           [Version ("2.6.0"), Description (
 4519              "Capabilities and management of an EthernetAdapter.") ]
 4520           class CIM_EthernetAdapter : CIM_NetworkAdapter {
 4521           
 4522              [Override ("NetworkAddresses"), 
 4523               Description (
 4524                  "Ethernet/802.3 MAC addresses formatted as twelve hexadecimal "
 4525                  "digits (e.g. \"010203040506\"), with each pair representing "
 4526                  "one of the six octets of the MAC address in \"canonical\" bit "
 4527                  "order.  (Thus, the Group address bit is found in the low "
 4528                  "order bit of the first character of the string.)"),
 4529               ArrayType ("Indexed") ]
 4530               string NetworkAddresses[];
 4531           
 4532              [Description (
 4533                  "The maximum size of the INFO (non-MAC) field that will be "
 4534                  "received or transmitted."), 
 4535               Mappingstrings {"MIB.IETF|BRIDGE-MIB.dot1dTpPortMaxInfo"} ]
 4536               uint32 MaxDataSize;
 4537 karl  1.2 
 4538              [Description (
 4539                  "Capabilities of the EthernetAdapter. For example, the "
 4540                  "Device may support AlertOnLan, WakeOnLan, Load Balancing "
 4541                  "and/or FailOver. If failover or load balancing "
 4542                  "capabilities are listed, a SpareGroup (failover) or "
 4543                  "ExtraCapacityGroup (load balancing) should also be defined "
 4544                  "to completely describe the capability."), 
 4545               ArrayType ("Indexed"), 
 4546               ValueMap {"0", "1", "2", "3", "4", "5"},  
 4547               Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
 4548                  "FailOver", "LoadBalancing"}, 
 4549               ModelCorrespondence {
 4550                  "CIM_EthernetAdapter.CapabilityDescriptions"} ]
 4551              uint16 Capabilities[];
 4552           
 4553              [Description (
 4554                  "An array of free-form strings providing more detailed "
 4555                  "explanations for any of the EthernetAdapter features "
 4556                  "indicated in the Capabilities array. Note, each entry of "
 4557                  "this array is related to the entry in the Capabilities "
 4558 karl  1.2        "array that is located at the same index."), 
 4559               ArrayType ("Indexed"), 
 4560               ModelCorrespondence {"CIM_EthernetAdapter.Capabilities"} ]
 4561              string CapabilityDescriptions[];
 4562           
 4563              [Description (
 4564                  "Specifies which capabilities are enabled from the list "
 4565                  "of all supported ones, defined in the Capabilities array."), 
 4566               ValueMap {"0", "1", "2", "3", "4", "5"},  
 4567               Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
 4568                  "FailOver", "LoadBalancing"}, 
 4569               ModelCorrespondence {"CIM_EthernetAdapter.Capabilities"} ]
 4570              uint16 EnabledCapabilities[];
 4571           
 4572              [Description (
 4573                  "The number of times there was an invalid data symbol when "
 4574                  "a valid carrier was present. The count is incremented at "
 4575                  "most once per carrier event, even if multiple symbol "
 4576                  "errors occur during the carrier event."), 
 4577               MappingStrings {"MIB.IETF|EtherLike-MIB.dot3StatsSymbolErrors"}, 
 4578               Counter ] 
 4579 karl  1.2    uint32 SymbolErrors;
 4580           
 4581              [Description ("The total number of packets transmitted."), 
 4582               MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.6"}, 
 4583               Counter ] 
 4584              uint64 TotalPacketsTransmitted;
 4585           
 4586              [Description ("The total number of packets received."), 
 4587               MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.8"}, 
 4588               Counter ] 
 4589              uint64 TotalPacketsReceived;
 4590           
 4591              [Description (
 4592                  "A count of frames received on a particular interface "
 4593                  "that are not an integral number of octets in length and do "
 4594                  "not pass the FCS check. The count represented by an "
 4595                  "instance of this object is incremented when the alignment"
 4596                  "Error status is returned by the MAC layer to the LLC (or "
 4597                  "other MAC user). Received frames for which multiple error "
 4598                  "conditions obtain are, according to the conventions of IEEE "
 4599                  "802.3 Layer Management, counted exclusively according to "
 4600 karl  1.2        "the error status presented to the LLC."),
 4601               Mappingstrings {
 4602                  "MIB.IETF|EtherLike-MIB.dot3StatsAlignmentErrors"}, 
 4603               Counter ] 
 4604              uint32 AlignmentErrors;
 4605           
 4606              [Description (
 4607                  "A count of frames received on a particular interface "
 4608                  "that are an integral number of octets in length but do "
 4609                  "not pass the FCS check. The count represented by an "
 4610                  "instance of this object is incremented when the frame"
 4611                  "CheckError status is returned by the MAC layer to the "
 4612                  "LLC (or other MAC user). Received frames for which "
 4613                  "multiple error conditions obtain are, according to the "
 4614                  "conventions of IEEE 802.3 Layer Management, counted "
 4615                  "exclusively according to the error status presented to "
 4616                  "the LLC."),
 4617               Mappingstrings {
 4618                  "MIB.IETF|EtherLike-MIB.dot3StatsFCSErrors"}, 
 4619               Counter ] 
 4620              uint32 FCSErrors;
 4621 karl  1.2 
 4622              [Description (
 4623                  "A count of successfully transmitted frames on a particular "
 4624                  "interface for which transmission is inhibited by exactly "
 4625                  "one collision. A frame that is counted by an instance of "
 4626                  "this object is not counted by the corresponding instance "
 4627                  "of the MultipleCollisionFrames property."),
 4628               Mappingstrings {
 4629                  "MIB.IETF|EtherLike-MIB.dot3StatsSingleCollisionFrames"}, 
 4630               Counter ] 
 4631              uint32 SingleCollisionFrames;
 4632           
 4633              [Description (
 4634                  "A count of successfully transmitted frames on a particular "
 4635                  "interface for which transmission is inhibited by more than "
 4636                  "one collision. A frame that is counted by an instance of "
 4637                  "this object is not counted by the corresponding instance "
 4638                  "of the SingleCollisionFrames property."),
 4639               Mappingstrings {
 4640                  "MIB.IETF|EtherLike-MIB.dot3StatsMultipleCollisionFrames"}, 
 4641               Counter ] 
 4642 karl  1.2    uint32 MultipleCollisionFrames;
 4643           
 4644              [Description (
 4645                  "A count of times that the SQE TEST ERROR message is "
 4646                  "generated by the PLS sublayer for a particular interface. "
 4647                  "The SQE TEST ERROR message is defined in section "
 4648                  "7.2.2.2.4 of ANSI/IEEE 802.3-1985 and its generation is "
 4649                  "described in section 7.2.4.6 of the same document."),
 4650               Mappingstrings {
 4651                  "MIB.IETF|EtherLike-MIB.dot3StatsSQETestErrors"}, 
 4652               Counter ] 
 4653              uint32 SQETestErrors;
 4654           
 4655              [Description (
 4656                  "A count of frames for which the first transmission "
 4657                  "attempt on a particular interface is delayed because the "
 4658                  "medium is busy. The count represented by an instance of "
 4659                  "this object does not include frames involved in collisions."),
 4660               Mappingstrings {
 4661                  "MIB.IETF|EtherLike-MIB.dot3StatsDeferredTransmissions"}, 
 4662               Counter ] 
 4663 karl  1.2    uint32 DeferredTransmissions;
 4664           
 4665              [Description (
 4666                  "The number of times that a collision is detected on a "
 4667                  "particular interface later than 512 bit-times into the "
 4668                  "transmission of a packet. Five hundred and twelve bit-"
 4669                  "times corresponds to 51.2 microseconds on a 10 Mbit/s "
 4670                  "system. A (late) collision included in a count "
 4671                  "represented by an instance of this object is also "
 4672                  "considered as a (generic) collision for purposes of "
 4673                  "other collision-related statistics."),
 4674               Mappingstrings {
 4675                  "MIB.IETF|EtherLike-MIB.dot3StatsLateCollisions"}, 
 4676               Counter ] 
 4677              uint32 LateCollisions;
 4678           
 4679              [Description (
 4680                  "A count of frames for which transmission on a particular "
 4681                  "interface fails due to excessive collisions."),
 4682               Mappingstrings {
 4683                  "MIB.IETF|EtherLike-MIB.dot3StatsExcessiveCollisions"}, 
 4684 karl  1.2     Counter ] 
 4685              uint32 ExcessiveCollisions;
 4686           
 4687              [Description (
 4688                  "A count of frames for which transmission on a particular "
 4689                  "interface fails due to an internal MAC sublayer transmit "
 4690                  "error. A frame is only counted by an instance of this "
 4691                  "object if it is not counted by the corresponding instance "
 4692                  "of either the LateCollisions property, the Excessive"
 4693                  "Collisions property, or the CarrierSenseErrors property. "
 4694                  "The precise meaning of the count represented by an instance "
 4695                  "of this object is implementation-specific.  In particular, "
 4696                  "an instance of this object may represent a count of "
 4697                  "transmission errors on a particular interface that are "
 4698                  "not otherwise counted."),
 4699               Mappingstrings {
 4700                  "MIB.IETF|EtherLike-MIB.dot3StatsInternalMacTransmitErrors"}, 
 4701               Counter ] 
 4702              uint32 InternalMACTransmitErrors;
 4703           
 4704              [Description (
 4705 karl  1.2        "A count of frames for which reception on a particular "
 4706                  "interface fails due to an internal MAC sublayer receive "
 4707                  "error. A frame is only counted by an instance of this "
 4708                  "object if it is not counted by the corresponding instance "
 4709                  "of either the FrameTooLongs property, the AlignmentErrors "
 4710                  "property, or the FCSErrors property. The precise meaning "
 4711                  "of the count represented by an instance of this object is "
 4712                  "implementation-specific.  In particular, an instance of "
 4713                  "this object may represent a count of receive errors on a "
 4714                  "particular interface that are not otherwise counted."),
 4715               Mappingstrings {
 4716                  "MIB.IETF|EtherLike-MIB.dot3StatsInternalMacReceiveErrors"}, 
 4717               Counter ] 
 4718              uint32 InternalMACReceiveErrors;
 4719           
 4720              [Description (
 4721                  "The number of times that the carrier sense condition was "
 4722                  "lost or never asserted when attempting to transmit a frame "
 4723                  "on a particular interface. The count represented by an "
 4724                  "instance of this object is incremented at most once per "
 4725                  "transmission attempt, even if the carrier sense condition "
 4726 karl  1.2        "fluctuates during a transmission attempt."),
 4727               Mappingstrings {
 4728                  "MIB.IETF|EtherLike-MIB.dot3StatsCarrierSenseErrors"}, 
 4729               Counter ] 
 4730              uint32 CarrierSenseErrors;
 4731           
 4732              [Description (
 4733                  "A count of frames received on a particular interface that "
 4734                  "exceed the maximum permitted frame size. The count "
 4735                  "represented by an instance of this object is incremented "
 4736                  "when the FrameTooLong status is returned by the MAC layer "
 4737                  "to the LLC (or other MAC user). Received frames for which "
 4738                  "multiple error conditions obtain are, according to the "
 4739                  "conventions of IEEE 802.3 Layer Management, counted "
 4740                  "exclusively according to the error status presented to "
 4741                  "the LLC."),
 4742               Mappingstrings {
 4743                  "MIB.IETF|EtherLike-MIB.dot3StatsFrameTooLongs"}, 
 4744               Counter ] 
 4745              uint32 FrameTooLongs;
 4746           };
 4747 karl  1.2 
 4748           
 4749           // ===================================================================
 4750           // TokenRingAdapter
 4751           // ===================================================================
 4752           [Version ("2.6.0"), Description (
 4753              "Capabilities and management of a TokenRingAdapter.") ]
 4754           class CIM_TokenRingAdapter : CIM_NetworkAdapter {
 4755           
 4756              [Override ("NetworkAddresses"), Description (
 4757                  "Token Ring/802.5 MAC addresses formatted as twelve "
 4758                  "hexadecimal digits (e.g. \"010203040506\"), with each pair "
 4759                  "representing one of the six octets of the MAC address in "
 4760                  "\"canonical\" bit order.  (Thus, the Group address bit is "
 4761                  "found in the low order bit of the first character of the "
 4762                  "string.)"),
 4763               ArrayType ("Indexed") ]
 4764              string NetworkAddresses[];
 4765           
 4766              [Description (
 4767                  "The maximum size of the INFO (non-MAC) field that will be "
 4768 karl  1.2        "received or transmitted."), 
 4769               Mappingstrings {"MIB.IETF|BRIDGE-MIB.dot1dTpPortMaxInfo"} ]
 4770              uint32 MaxDataSize;
 4771           
 4772              [Description (
 4773                  "Capabilities of the TokenRingAdapter. For example, the Device "
 4774                  "may support AlertOnLan, WakeOnLan, Load Balancing and/or "
 4775                  "Failover. If failover or load balancing capabilities are "
 4776                  "listed, a SpareGroup (failover) or ExtraCapacityGroup (load "
 4777                  "balancing) should also be defined to completely describe the "
 4778                  "capability."), 
 4779               ArrayType ("Indexed"), 
 4780               ValueMap {"0", "1", "2", "3", "4", "5"},  
 4781               Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
 4782                  "FailOver", "LoadBalancing"}, 
 4783               ModelCorrespondence {
 4784                  "CIM_TokenRingAdapter.CapabilityDescriptions"} ]
 4785              uint16 Capabilities[];
 4786           
 4787              [Description (
 4788                  "An array of free-form strings providing more detailed "
 4789 karl  1.2        "explanations for any of the TokenRingAdapter features "
 4790                  "indicated in the Capabilities array. Note, each entry of "
 4791                  "this array is related to the entry in the Capabilities array "
 4792                  "that is located at the same index."), 
 4793               ArrayType ("Indexed"), 
 4794               ModelCorrespondence {"CIM_TokenRingAdapter.Capabilities"} ]
 4795              string CapabilityDescriptions[];
 4796           
 4797              [Description (
 4798                  "Specifies which of the capabilities from the \"Capabilities\" "
 4799                  "property are currently enabled."),
 4800               ValueMap {"0", "1", "2", "3", "4", "5"},  
 4801               Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
 4802                  "FailOver", "LoadBalancing"}, 
 4803               ModelCorrespondence {"CIM_TokenRingAdapter.Capabilities"} ]
 4804              uint16 EnabledCapabilities[];
 4805           
 4806              [Description (
 4807                  "The current status which can be used to diagnose fluctuating "
 4808                  "problems that can occur on token rings, after a station has "
 4809                  "successfully been added to the ring. Before an open is "
 4810 karl  1.2        "completed, this object contains the value indicating "
 4811                  "\"no status\" (131072). (The RingState and RingOpenStatus "
 4812                  "properties are also provided for debugging problems when the "
 4813                  "station can not even enter the ring.) The property's value is "
 4814                  "a sum of values, one for each currently applicable condition. "
 4815                  "The following values are defined for various conditions:\n"
 4816                  "0 = No Problems Detected, 32 = Ring Recovery, "
 4817                  "64 = Single Station, 256 = Remove Received, 512 = Reserved, "
 4818                  "1024 = Auto-Removal Error, 2048 = Lobe Wire Fault, "
 4819                  "4096 = Transmit Beacon, 8192 = Soft Error, 16384 = Hard Error, "
 4820                  "32768 = Signal Loss, 131072 = No Status, Open Not Completed."), 
 4821               MappingStrings {
 4822                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingStatus"} ]
 4823              uint32 RingStatus;
 4824           
 4825              [Description (
 4826                  "The current Device state with respect to entering or leaving "
 4827                  "the ring."), 
 4828               ValueMap {"0", "1", "2", "3", "4", "5"},  
 4829               Values {"Opened", "Closed", "Opening", "Closing", "Open Failure", 
 4830                  "Ring Failure"}, 
 4831 karl  1.2     MappingStrings {
 4832                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingState"} ]
 4833              uint16 RingState;
 4834           
 4835              [Description (
 4836                  "This property indicates the success, or the reason for failure, "
 4837                  "of the station's most recent attempt to enter the ring."), 
 4838               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"},  
 4839               Values {"No Open Attempted", "Bad Parameter", "Lobe Failed", 
 4840                  "Signal Loss", "Insertion Timeout", "Ring Failed", "Beaconing", 
 4841                  "Duplicate MAC", "Request Failed", "Remove Received", 
 4842                  "Last Open Successful"}, 
 4843               MappingStrings {
 4844                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingOpenStatus"} ]
 4845              uint16 RingOpenStatus;
 4846           
 4847              [Description ("The ring's bandwidth."), 
 4848               ValueMap {"0", "1", "2", "3", "4"},  
 4849               Values {"Unknown", "Other", "One Megabit", "Four Megabit", 
 4850                  "Sixteen Megabit"}, 
 4851               MappingStrings {
 4852 karl  1.2        "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingSpeed"} ]
 4853              uint16 RingSpeed;
 4854           
 4855              [Description (
 4856                  "This counter is incremented when a station detects the absence "
 4857                  "of transitions for five half-bit timers (burst-five errors)."), 
 4858               MappingStrings {
 4859                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsBurstErrors"}, 
 4860               Counter ] 
 4861              uint32 BurstErrors;
 4862           
 4863              [Description (
 4864                  "This counter is incremented when a station receives an AMP or "
 4865                  "SMP frame in which A is equal to C is equal to 0, and then "
 4866                  "receives another SMP frame with A equal to C equal to 0 with"
 4867                  "out first receiving an AMP frame. It denotes a station that "
 4868                  "cannot set the AC bits properly."), 
 4869               MappingStrings {
 4870                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsACErrors"}, 
 4871               Counter ] 
 4872              uint32 ACErrors;
 4873 karl  1.2 
 4874              [Description (
 4875                  "This counter is incremented when a station transmits an abort "
 4876                  "delimiter while transmitting data."), 
 4877               MappingStrings {
 4878                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsAbortTransErrors"}, 
 4879               Counter ] 
 4880              uint32 AbortTransErrors;
 4881           
 4882              [Description (
 4883                  "This counter is incremented when a station recognizes an "
 4884                  "internal error."), 
 4885               MappingStrings {
 4886                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsInternalErrors"}, 
 4887               Counter ] 
 4888              uint32 InternalErrors;
 4889           
 4890              [Description (
 4891                  "This counter is incremented when a station is transmitting "
 4892                  "and its TRR timer expires. This denotes a condition where a "
 4893                  "transmitting station in strip mode does not receive the "
 4894 karl  1.2        "trailer of the frame before the TRR timer goes off."), 
 4895               MappingStrings {
 4896                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsLostFrameErrors"}, 
 4897               Counter ] 
 4898              uint32 LostFrameErrors;
 4899           
 4900              [Description (
 4901                  "This counter is incremented when a station recognizes a frame "
 4902                  "addressed to its specific address, but has no available buffer "
 4903                  "space - indicating that the station is congested."), 
 4904               MappingStrings {
 4905                    "MIB.IETF|IEEE 802.5 Token Ring MIB."
 4906                    "dot5StatsReceiveCongestions"},
 4907               Counter ] 
 4908              uint32 ReceiveCongestions;
 4909           
 4910              [Description (
 4911                  "This counter is incremented when a station recognizes a frame "
 4912                  "addressed to its specific address and detects that the FS "
 4913                  "field A bits are set to 1 indicating a possible line hit or "
 4914                  "duplicate address."), 
 4915 karl  1.2     MappingStrings {
 4916                  "MIB.IETF|IEEE 802.5 Token Ring MIB."
 4917                  "dot5StatsFrameCopiedErrors"}, 
 4918               Counter ] 
 4919              uint32 FrameCopiedErrors;
 4920           
 4921              [Description (
 4922                  "This counter is incremented when a station acting as the "
 4923                  "active monitor recognizes an error condition that needs a "
 4924                  "token transmitted."), 
 4925               MappingStrings {
 4926                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsTokenErrors"}, 
 4927               Counter ]
 4928              uint32 TokenErrors;
 4929           
 4930              [Description (
 4931                  "The number of Soft Errors that the Device has detected. It "
 4932                  "directly corresponds to the number of Report Error MAC frames "
 4933                  "that this Device has transmitted. Soft Errors are those which "
 4934                  "are recoverable by the MAC layer protocols."), 
 4935               MappingStrings {
 4936 karl  1.2        "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSoftErrors"}, 
 4937               Counter ]
 4938              uint32 SoftErrors;
 4939           
 4940              [Description (
 4941                  "The number of times this Device has detected an immediately "
 4942                  "recoverable fatal error. It denotes the number of times this "
 4943                  "Device is either transmitting or receiving beacon MAC frames."),
 4944               MappingStrings {
 4945                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsHardErrors"}, 
 4946               Counter ]
 4947              uint32 HardErrors;
 4948           
 4949              [Description (
 4950                  "The number of times this Device has detected the loss of "
 4951                  "signal condition from the ring."), 
 4952               MappingStrings {
 4953                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSignalLoss"}, 
 4954               Counter ]
 4955              uint32 SignalLossCount;
 4956           
 4957 karl  1.2    [Description (
 4958                  "The number of times this Device has transmitted a beacon "
 4959                  "frame."), 
 4960               MappingStrings {
 4961                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsTransmitBeacons"}, 
 4962               Counter ]
 4963              uint32 TransmittedBeacons;
 4964           
 4965              [Description (
 4966                  "The number of Claim Token MAC frames received or transmitted "
 4967                  "after the Device has received a Ring Purge MAC frame. This "
 4968                  "counter signifies the number of times the ring has been purged "
 4969                  "and is being recovered back into a normal operating state."), 
 4970               MappingStrings {
 4971                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsRecoverys"}, 
 4972               Counter ]
 4973              uint32 Recoverys;
 4974           
 4975              [Description (
 4976                  "The number of times the Device has detected an open or short "
 4977                  "circuit in the lobe data path. The adapter will be closed and "
 4978 karl  1.2        "RingState will signify this condition."), 
 4979               MappingStrings {
 4980                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsLobeWires"}, 
 4981               Counter ]
 4982              uint32 LobeWires;
 4983           
 4984              [Description (
 4985                  "The number of times the Device has received a Remove Ring "
 4986                  "Station MAC frame request. When this frame is received, the "
 4987                  "Device will enter the close state and RingState will "
 4988                  "signify this condition."), 
 4989               MappingStrings {
 4990                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsRemoves"}, 
 4991               Counter ]
 4992              uint32 Removes;
 4993           
 4994              [Description (
 4995                  "The number of times the Device has sensed that it is the "
 4996                  "only station on the ring. This will happen if the Device "
 4997                  "is the first one up on a ring, or if there is a hardware "
 4998                  "problem."), 
 4999 karl  1.2     MappingStrings {
 5000                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSingles"}, 
 5001               Counter ]
 5002              uint32 Singles;
 5003           
 5004              [Description (
 5005                  "The number of times the Device has detected that the "
 5006                  "frequency of the incoming signal differs from the expected "
 5007                  "frequency by more than that specified by the IEEE 802.5 "
 5008                  "standard."), 
 5009               MappingStrings {
 5010                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsFreqErrors"}, 
 5011               Counter ]
 5012              uint32 FrequencyErrors;
 5013           };
 5014           
 5015           // ==================================================================
 5016           // FibreChannelAdapter 
 5017           // ==================================================================
 5018           [Version ("2.6.0"), Description (
 5019              "Capabilities and management of a Fibre Channel Adapter.") ]
 5020 karl  1.2 class CIM_FibreChannelAdapter : CIM_NetworkAdapter {
 5021           
 5022              [Description (
 5023                  "The maximum frame size, in bytes, supported by the Adapter."), 
 5024               Units ("Bytes") ]
 5025              uint64 MaxFrameSize;
 5026           
 5027              [Description (
 5028                  "The Fibre Channel Classes of Service that are supported by "
 5029                  "the Adapter, on its Ports. The currently negotiated COS for a "
 5030                  "connection is a property (NegotiatedCOS) on the FibrePort"
 5031                  "ActiveLogin association."), 
 5032               ValueMap {"0", "1", "2", "3", "4", "5", "6"},  
 5033               Values {"Unknown", "1", "2", "3", "4", "6", "F"} ]
 5034              uint16 SupportedCOS[];
 5035           
 5036              [Description (
 5037                  "An array of integers indicating the Fibre Channel FC-4 "
 5038                  "protocols supported by the Adapter. The protocols that are "
 5039                  "active and running are indicated in the CurrentFC4Types "
 5040                  "property. The values used in this array are taken from the "
 5041 karl  1.2        "FC-GS2 (bitmapped) field defined in Table 11 of the standard. "
 5042                  "Also, FC-SB-2 codes are included from the T11 document, "
 5043                  "236V0. If the FC4 Type is \"Vendor Unique\" (value=255), "
 5044                  "then the specific vendor values (in the range, 0xE0 to 0xFF) "
 5045                  "should be listed in the FC4VendorUniqueTypes property."), 
 5046               ValueMap {"0", "1", "4", "5", "8", "9", "17", "18", "19", "21", 
 5047                  "22", "23", "25", "26", "27", "28", "32", "34", "36", 
 5048                  "64", "80", "81", "82", "88", "96", "255"}, 
 5049               Values {"Unknown", "Other", "ISO/IEC 8802 - 2 LLC", 
 5050                  "IP over FC", "SCSI - FCP", "SCSI - GPP", 
 5051                  "IPI - 3 Master", "IPI - 3 Slave", "IPI - 3 Peer", 
 5052                  "CP IPI - 3 Master", "CP IPI - 3 Slave", 
 5053                  "CP IPI - 3 Peer", "SBCCS Channel", 
 5054                  "SBCCS Control Unit", "FC-SB-2 Channel", 
 5055                  "FC-SB-2 Control Unit", 
 5056                  "Fibre Channel Services (FC-GS, FC-GS-2, FC-GS-3)", 
 5057                  "FC-SW", "FC - SNMP", "HIPPI - FP", "BBL Control", 
 5058                  "BBL FDDI Encapsulated LAN PDU", 
 5059                  "BBL 802.3 Encapsulated LAN PDU", "FC - VI", "FC - AV", 
 5060                  "Vendor Unique"}, 
 5061               ModelCorrespondence {
 5062 karl  1.2        "CIM_FibreChannelAdapter.FC4VendorUniqueTypes"} ]
 5063              uint16 FC4TypesSupported[];
 5064           
 5065              [MinValue (240), MaxValue (255), Description (
 5066                  "When the FC4TypesSupported array contains the value 255 "
 5067                  "(\"Vendor Unique\"), then the property, FC4VendorUniqueTypes, "
 5068                  "lists of all the vendor specific protocols supported by the "
 5069                  "Adapter. These values are in the range, 0xE0 to 0xFF.") ]
 5070              uint16 FC4VendorUniqueTypes[];
 5071           
 5072              [Description (
 5073                  "An array of integers indicating the Fibre Channel FC-4 "
 5074                  "protocols currently running on the Adapter. A list of all "
 5075                  "protocols supported by the Adapter is indicated in the "
 5076                  "FC4TypesSupported property. The values used in this array "
 5077                  "are taken from the FC-GS2 (bitmapped) field defined in "
 5078                  "Table 11 of the standard. Also, FC-SB-2 codes are included "
 5079                  "from the T11 document, 236V0. If the FC4 Type is \"Vendor "
 5080                  "Unique\" (value=255), then the specific vendor values "
 5081                  "(in the range, 0xE0 to 0xFF) that are currently running "
 5082                  "should be listed in the CurrentFC4VendorTypes property."), 
 5083 karl  1.2     ValueMap {"0", "1", "4", "5", "8", "9", "17", "18", "19", "21", 
 5084                  "22", "23", "25", "26", "27", "28", "32", "34", "36", 
 5085                  "64", "80", "81", "82", "88", "96", "255"}, 
 5086               Values {"Unknown", "Other", "ISO/IEC 8802 - 2 LLC", 
 5087                  "IP over FC", "SCSI - FCP", "SCSI - GPP", 
 5088                  "IPI - 3 Master", "IPI - 3 Slave", "IPI - 3 Peer", 
 5089                  "CP IPI - 3 Master", "CP IPI - 3 Slave", 
 5090                  "CP IPI - 3 Peer", "SBCCS Channel", 
 5091                  "SBCCS Control Unit", "FC-SB-2 Channel", 
 5092                  "FC-SB-2 Control Unit", 
 5093                  "Fibre Channel Services (FC-GS, FC-GS-2, FC-GS-3)", 
 5094                  "FC-SW", "FC - SNMP", "HIPPI - FP", "BBL Control", 
 5095                  "BBL FDDI Encapsulated LAN PDU", 
 5096                  "BBL 802.3 Encapsulated LAN PDU", "FC - VI", "FC - AV", 
 5097                  "Vendor Unique"}, 
 5098               ModelCorrespondence {
 5099                  "CIM_FibreChannelAdapter.FC4TypesSupported", 
 5100                  "CIM_FibreChannelAdapter.CurrentFC4VendorTypes"} ]
 5101              uint16 CurrentFC4Types[];
 5102           
 5103              [MinValue (240), MaxValue (255), Description (
 5104 karl  1.2        "When the CurrentFC4Types array contains the value 255 "
 5105                  "(\"Vendor Unique\"), then the property, CurrentFC4VendorTypes, "
 5106                  "lists all the vendor specific protocols running on the "
 5107                  "Adapter. These values are in the range, 0xE0 to 0xFF."), 
 5108               ModelCorrespondence {
 5109                  "CIM_FibreChannelAdapter.FC4VendorUniqueTypes"} ]
 5110              uint16 CurrentFC4VendorTypes[];
 5111           
 5112              [Description (
 5113                  "A list of the Capabilities of the Fibre Channel Adapter. "
 5114                  "For example, that the Adapter utilizes the Directory Server, "
 5115                  "or that it generates State Change Notifications can be "
 5116                  "indicated using the values 2 and 12, respectively."), 
 5117               ArrayType ("Indexed"), 
 5118               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 5119                  "10", "11", "12", "13", "14", "15"},  
 5120               Values {"Unknown", "Other", "Utilizes the Directory Server", 
 5121                  "Utilizes the Time Server", 
 5122                  "Utilizes the Management Server", 
 5123                  "Utilizes the Alias Server", 
 5124                  "Utilizes the Security Key Distribution Server", 
 5125 karl  1.2        "Utilizes the Clock Synchronization Server", 
 5126                  "Utilizes the Multicast Server", 
 5127                  "Utilizes QoS Facilitator", 
 5128                  "Utilizes Broadcast Services", 
 5129                  "Supports Fabric Login Server", 
 5130                  "Generates State Change Notifications", 
 5131                  "Registers for State Change Notifications", 
 5132                  "Responds to Read Connection Status", 
 5133                  "Supports Third Party Process Logout"} ]
 5134              uint16 Capabilities[];
 5135           
 5136              [Description (
 5137                  "An array of free-form strings providing more detailed "
 5138                  "explanations for any of the Adapter features indicated in "
 5139                  "the Capabilities array. Note, each entry of this array "
 5140                  "is related to the entry in the Capabilities array that "
 5141                  "is located at the same index."),
 5142               ArrayType ("Indexed"),
 5143               ModelCorrespondence {"CIM_FibreChannelAdapter.Capabilities"} ]
 5144              string CapabilityDescriptions[];
 5145           
 5146 karl  1.2    [Description (
 5147                  "The number of times that a frame was received but no "
 5148                  "buffer was available."), 
 5149               Counter ]
 5150              uint64 ReceiveBufferErrors;
 5151           
 5152              [Description (
 5153                  "The number of times that a frame was received but no "
 5154                  "end-to-end credit was available."), 
 5155               Counter ]
 5156              uint64 ReceiveEndErrors;
 5157           
 5158              [Description (
 5159                  "A 'long' timeout value (in milliseconds) for determining "
 5160                  "when to reinstate a Recovery_Qualifier. The default value "
 5161                  "is 120 seconds (120000 milliseconds). It is typically set "
 5162                  "to the ErrorDetectTimeout value + 2*(fabric delay time)."), 
 5163               Units ("MilliSeconds") ]
 5164              uint64 ResourceAllocationTimeout;
 5165           
 5166              [Description (
 5167 karl  1.2        "A 'short' timeout value (in milliseconds) for determining "
 5168                  "that an error has occurred. The default value is 10 "
 5169                  "seconds (10000 milliseconds)."), 
 5170               Units ("MilliSeconds") ]
 5171              uint64 ErrorDetectTimeout;
 5172           
 5173              [Description (
 5174                  "Number of Class 1 sequences sent since last reset of the "
 5175                  "Device."), 
 5176               Counter ]
 5177              uint64 Class1SequencesSent;
 5178           
 5179              [Description (
 5180                  "Number of Class 2 sequences sent since last reset of the "
 5181                  "Device."),
 5182               Counter ]
 5183              uint64 Class2SequencesSent;
 5184           
 5185              [Description (
 5186                  "Number of Class 3 sequences sent since last reset of the "
 5187                  "Device."),
 5188 karl  1.2     Counter ]
 5189              uint64 Class3SequencesSent;
 5190           
 5191              [Description (
 5192                  "Number of Class 4 sequences sent since last reset of the "
 5193                  "Device."),
 5194               Counter ]
 5195              uint64 Class4SequencesSent;
 5196           
 5197              [Description (
 5198                  "Number of octets received by the Adapter when running "
 5199                  "Class 2 service."),
 5200               Counter ]
 5201              uint64 Class2OctetsReceived;
 5202           
 5203              [Description (
 5204                  "Number of octets transmitted by the Adapter when running "
 5205                  "Class 2 service."),
 5206               Counter ]
 5207              uint64 Class2OctetsTransmitted;
 5208           
 5209 karl  1.2    [Description (
 5210                  "Number of frames received by the Adapter when running "
 5211                  "Class 2 service."), 
 5212               Counter ]
 5213              uint64 Class2FramesReceived;
 5214           
 5215              [Description (
 5216                  "Number of frames transmitted by the Adapter when running "
 5217                  "Class 2 service."),
 5218               Counter ]
 5219              uint64 Class2FramesTransmitted;
 5220           
 5221              [Description (
 5222                  "Number of frames discarded by the Adapter when running "
 5223                  "Class 2 service."),
 5224               Counter ]
 5225              uint64 Class2DiscardFrames;
 5226           
 5227              [Description (
 5228                  "Number of octets received by the Adapter when running "
 5229                  "Class 3 service."),
 5230 karl  1.2     Counter ]
 5231              uint64 Class3OctetsReceived;
 5232           
 5233              [Description (
 5234                  "Number of octets transmitted by the Adapter when running "
 5235                  "Class 3 service."),
 5236               Counter ]
 5237              uint64 Class3OctetsTransmitted;
 5238           
 5239              [Description (
 5240                  "Number of frames received by the Adapter when running "
 5241                  "Class 3 service."), 
 5242               Counter ]
 5243              uint64 Class3FramesReceived;
 5244           
 5245              [Description (
 5246                  "Number of frames transmitted by the Adapter when running "
 5247                  "Class 3 service."),
 5248               Counter ]
 5249              uint64 Class3FramesTransmitted;
 5250           
 5251 karl  1.2    [Description (
 5252                  "Number of frames discarded by the Adapter when running "
 5253                  "Class 3 service."),
 5254               Counter ]
 5255              uint64 Class3DiscardFrames;
 5256           
 5257              [Description (
 5258                  "Number of parity errors detected somewhere in the "
 5259                  "data path."),
 5260               Counter ]
 5261              uint64 ParityErrors;
 5262           
 5263              [Description (
 5264                  "Number of Class 1 or 2 frames that are not ACKed "
 5265                  "within the time indicated by ErrorDetectTimeout."), 
 5266               Counter ]
 5267              uint64 FrameTimeouts;
 5268           
 5269              [Description (
 5270                  "Number of times that the Device has been without a "
 5271                  "buffer credit for a time longer than ErrorDetectTimeout."), 
 5272 karl  1.2     Counter ]
 5273              uint64 BufferCreditErrors;
 5274           
 5275              [Description (
 5276                  "Number of times that the Device has been without an end "
 5277                  "credit for a time longer than ErrorDetectTimeout."), 
 5278               Counter ]
 5279              uint64 EndCreditErrors;
 5280           
 5281              [Description ("Number of frames received out of order."), 
 5282               Counter ]
 5283              uint64 OutOfOrderFramesReceived;
 5284           };
 5285           
 5286           
 5287           // ==================================================================
 5288           // FibrePort 
 5289           // ==================================================================
 5290           [Version ("2.6.0"), Description (
 5291              "Capabilities and management of a Fibre Channel Port Device.") ]
 5292           class CIM_FibrePort : CIM_LogicalPort {
 5293 karl  1.2 
 5294              [Description (
 5295                  "An address value used to identify the source (S_ID) or "
 5296                  "destination (D_ID) of a frame. The FC-SW standard includes a "
 5297                  "table of special address identifier values and their "
 5298                  "meanings. Consult the FC-SW documentation for additional "
 5299                  "information.") ]
 5300              uint32 AddressIdentifier;
 5301           
 5302              [Description (
 5303                  "An array indicating the modes in which the Port can operate. "
 5304                  "PortType values describe the role and behavior of the Fibre "
 5305                  "Channel entity: \"N\" = Node Port, \"NL\" = Node Port "
 5306                  "supporting FC arbitrated loop, \"E\" = Expansion Port "
 5307                  "connecting fabric elements (for example, FC switches), "
 5308                  "\"F\" = Fabric (element) Port, \"FL\" = Fabric (element) "
 5309                  "Port supporting FC arbitrated loop, and \"B\" = Bridge "
 5310                  "Port. PortTypes are defined in the ANSI X3 standards. \n\n"
 5311                  "A particular mode may be listed multiple times in the "
 5312                  "SupportedPortTypes array in order to define that multiple, "
 5313                  "unique version levels are supported. Version information is "
 5314 karl  1.2        "defined in the PortTypeVersions property. Note that each "
 5315                  "entry of the SupportedPortTypes array is related to the entry "
 5316                  "in PortTypeVersions that is located at the same index."), 
 5317               ArrayType ("Indexed"), 
 5318               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},  
 5319               Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", 
 5320                  "FL", "B"}, 
 5321               ModelCorrespondence {"CIM_FibrePort.PortTypeVersions"} ]
 5322              uint16 SupportedPortTypes[];
 5323           
 5324              [Description (
 5325                  "Version information for each of the SupportedPortTypes. A "
 5326                  "particular PortType (mode) may be listed multiple times in "
 5327                  "the SupportedPortTypes array in order to define multiple, "
 5328                  "unique version levels. Note that each entry of this array "
 5329                  "is related to the entry in SupportedPortTypes that is "
 5330                  "located at the same index."), 
 5331               ArrayType ("Indexed"), 
 5332               ModelCorrespondence {"CIM_FibrePort.SupportedPortTypes"} ]
 5333              string PortTypeVersions[];
 5334           
 5335 karl  1.2    [Description (
 5336                  "The specific modes currently enabled for the Port. The "
 5337                  "values are equal to, or a subset of the values in the Supported"
 5338                  "PortTypes array."), 
 5339               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},  
 5340               Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", 
 5341                  "FL", "B"}, 
 5342               ModelCorrespondence {"CIM_FibrePort.SupportedPortTypes", 
 5343                  "CIM_FibrePort.EnabledVersions"} ]
 5344              uint16 EnabledPortTypes[];
 5345           
 5346              [Description (
 5347                  "Version information for each of the EnabledPortTypes. A "
 5348                  "particular PortType (mode) may be listed multiple times in "
 5349                  "the EnabledPortTypes array in order to define multiple, "
 5350                  "unique version levels. Note that each entry of this array "
 5351                  "is related to the entry in EnabledPortTypes that is located "
 5352                  "at the same index."), 
 5353               ArrayType ("Indexed"), 
 5354               ModelCorrespondence {"CIM_FibrePort.EnabledPortTypes"} ]
 5355              string EnabledVersions[];
 5356 karl  1.2 
 5357              [Description (
 5358                  "The specific mode in which the Port is currently running. The "
 5359                  "value is one of the entries in the EnabledPortTypes array. The "
 5360                  "current port type/mode is dependent on the fibre technology. "
 5361                  "For example, in a public loop network, you might indicate a "
 5362                  "port type of \"FL\" (value=6) or \"NL\" (value=2)."), 
 5363               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},  
 5364               Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", 
 5365                  "FL", "B"}, 
 5366               ModelCorrespondence {"CIM_FibrePort.EnabledPortTypes", 
 5367                  "CIM_FibrePort.CurrentVersion"} ]
 5368              uint16 CurrentPortType;
 5369           
 5370              [Description (
 5371                  "Version information for the CurrentPortType that is active."), 
 5372               ModelCorrespondence {"CIM_FibrePort.CurrentPortType"} ]
 5373              string CurrentVersion;
 5374           
 5375              [Description (
 5376                  "One or more address identifiers that may be recognized by "
 5377 karl  1.2        "the Port, in addition to its port-specific identifier. "
 5378                  "Multicast or hunt group addresses that are recognized by "
 5379                  "the Port would be identified in this array.") ]
 5380              uint32 AliasAddresses[];
 5381           
 5382              [Description (
 5383                  "Number of times that signal is lost on the Port since last "
 5384                  "reset of the Device."), 
 5385               Counter ]
 5386              uint64 LossOfSignalCounter;
 5387           
 5388              [Description (
 5389                  "Number of times that synchronization is lost on the Port "
 5390                  "since last reset of the Device. Synchronization is assumed "
 5391                  "lost after a timeout period identified by the Receiver"
 5392                  "TransmitterTimeout property."), 
 5393               Counter ]
 5394              uint64 LossOfSyncCounter;
 5395           
 5396              [Description (
 5397                  "Number of times that the CRC in a frame does not match the "
 5398 karl  1.2        "CRC computed by the receiver."), 
 5399               Counter ]
 5400              uint64 CRCErrors;
 5401           
 5402              [Description (
 5403                  "The number of transmission words that had an 8b10b code "
 5404                  "violation in one or more of its characters, had a "
 5405                  "K28.5 in its second, third or fourth character positions, "
 5406                  "and/or was an ordered set that had an incorrect Beginning "
 5407                  "Running Disparity."), 
 5408               Counter ]
 5409              uint64 InvalidTransmissionWords;
 5410           
 5411              [Description (
 5412                  "The number of frames received that were shorter than 28 "
 5413                  "octets. The value of 28 is calculated based on an "
 5414                  "assumption of 24 header bytes plus 4 CRC bytes. The "
 5415                  "count does not include SOF/EOF bytes which are not data."), 
 5416               Counter ]
 5417              uint64 FramesTooShort;
 5418           
 5419 karl  1.2    [Description (
 5420                  "The number of frames received that were longer than 2140 "
 5421                  "octets. The value of 2140 is calculated based on an "
 5422                  "assumption of 24 header bytes plus 4 CRC bytes and 2112 "
 5423                  "bytes of payload."), 
 5424               Counter ]
 5425              uint64 FramesTooLong;
 5426           
 5427              [Description (
 5428                  "The number of times that a fill word could not be "
 5429                  "inserted, when required. The Elasticity Buffer is defined "
 5430                  "in FC-AL. This event might cause data corruption and may "
 5431                  "indicate a configuration error or a device out of spec."), 
 5432               Counter ]
 5433              uint64 ElasticityBufferUnderruns;
 5434           
 5435              [Description (
 5436                  "The number of times that a fill word could not be deleted, "
 5437                  "when required. The Elasticity Buffer is defined in FC-AL. "
 5438                  "This event might cause data corruption and may indicate a "
 5439                  "configuration error or a device out of spec."), 
 5440 karl  1.2     Counter ]
 5441              uint64 ElasticityBufferOverruns;
 5442           
 5443              [Description (
 5444                  "Timeout value in milliseconds used to determine when "
 5445                  "loss of synchronization has occurred. The typical default "
 5446                  "is 100 msec."), 
 5447               Units ("Milliseconds") ]
 5448              uint64 ReceiverTransmitterTimeout;
 5449           
 5450              [Description (
 5451                  "Indication of whether the Port is currently bypassed "
 5452                  "(value=2) or not (value=1). A value of 3 (\"Forced Insert\") "
 5453                  "describes that the Port is forced active, when it would "
 5454                  "otherwise be \"Bypassed\"."), 
 5455               ValueMap {"0", "1", "2", "3"},  
 5456               Values {"Unknown", "Not Bypassed", "Bypassed", 
 5457                  "Forced Insert"} ]
 5458              uint16 BypassedState;
 5459           
 5460              [Description (
 5461 karl  1.2        "The type of cabling as sensed by the Port. Not all Fibre"
 5462                  "Ports are capable of providing this information. In this "
 5463                  "case, a value of 0, \"Unknown\", will be returned. Also, "
 5464                  "when single or multi-mode fiber cabling can not be "
 5465                  "distinguished, the more general value - 4, \"Fiber-optic\" "
 5466                  "- can be specified."), 
 5467               ValueMap {"0", "1", "2", "3", "4", "5", "6"},  
 5468               Values {"Unknown", "Other", "No Media", "Copper/Twinaxial", 
 5469                  "Fiber-optic", "Fiber Single Mode", "Fiber Multimode"} ] 
 5470              uint16 ConnectedMedia;
 5471           };
 5472           
 5473           
 5474           // ===================================================================
 5475           // FibrePortOnFCAdapter
 5476           // ===================================================================
 5477           [Association, Version ("2.6.0"), Description (
 5478              "FibrePortOnFCAdapter associates a FibrePort with a FibreChannel"
 5479              "Adapter. Cardinalities are defined as Max (1) to indicate the "
 5480              "intent and usage of the model - that an Adapter is synonymous "
 5481              "with its Port (connection point). Where you have a multi-Port "
 5482 karl  1.2    "Adapter and more than one Port may be active at a time, "
 5483              "individual Adapters with individual operating data and "
 5484              "characteristics really exist. If you have multiple connection "
 5485              "points, but they exist only to provide multiple physical form "
 5486              "factors (only one connection may be active at a time), then one "
 5487              "FibreChannelAdapter and one FibrePort (the active one) exist. "
 5488              "On the hardware side, the realizations of these entities "
 5489              "in PhysicalElements may be as a CIM_Card (for example) with "
 5490              "multiple CIM_PhysicalConnectors.") ]
 5491           class CIM_FibrePortOnFCAdapter : CIM_PortOnDevice {
 5492           
 5493              [Override ("Antecedent"), Max (1), 
 5494               Description (
 5495                  "The FibreChannelAdapter that includes the Port.") ]
 5496              CIM_FibreChannelAdapter REF Antecedent;
 5497           
 5498              [Override ("Dependent"), Max (1), 
 5499               Description ("The FibrePort on the Adapter.") ]
 5500              CIM_FibrePort REF Dependent;
 5501           };
 5502           
 5503 karl  1.2 
 5504           // ==================================================================
 5505           // FibrePortActiveLogin
 5506           // ==================================================================
 5507           [Association, Version ("2.6.0"), Description (
 5508              "FibrePortActiveLogin indicates that two FibrePorts are "
 5509              "connected via a login and have negotiated their Class Of "
 5510              "Service, frame size and other link characteristics, as "
 5511              "specified by an instance of this class. \n"
 5512              "The class' key is composed of the login originator's and "
 5513              "responder's keys plus the Class Of Service. This combination "
 5514              "is unique and prevents subclassing FibrePortActiveLogin "
 5515              "from its reasonable superclass, DeviceConnection.") ]
 5516           class CIM_FibrePortActiveLogin  {
 5517           
 5518              [Key, Description ("The originator of the login.") ]
 5519              CIM_FibrePort REF LoginOriginator;
 5520           
 5521              [Key, Description ("The responder to the login.") ]
 5522              CIM_FibrePort REF LoginResponder;
 5523           
 5524 karl  1.2    [Key, Description (
 5525                  "The Fibre Channel Class of Service that is currently running "
 5526                  "between the Ports. Since two Ports can be simultaneously "
 5527                  "connected at different Classes of Service, this property had "
 5528                  "to be part of the object's key and therefore, an instance's "
 5529                  "identity."), 
 5530               ValueMap {"0", "1", "2", "3", "4", "5", "6"},  
 5531               Values {"Unknown", "1", "2", "3", "4", "6", "F"}, 
 5532               ModelCorrespondence {"CIM_FibreChannelAdapter.SupportedCOS"},
 5533               MappingStrings {
 5534                  "MIF.DMTF|Fibre Channel Bus Port Extensions|001.5"} ]
 5535              uint16 NegotiatedCOS;
 5536           
 5537              [Description (
 5538                  "The Fibre Channel frame size, in bytes, that is currently "
 5539                  "negotiated between the two Ports."), 
 5540               Units ("Bytes") ]
 5541              uint64 NegotiatedFrameSize;
 5542           
 5543              [Description (
 5544                  "The speed for communications that is currently negotiated "
 5545 karl  1.2        "between the two Ports. Speed is specified in bits per second. "
 5546                  "If this information is not available, the property should be "
 5547                  "set to 0."), 
 5548               Units ("Bits per Second") ]
 5549              uint64 NegotiatedSpeed;
 5550           
 5551              [Description (
 5552                  "Acknowledgement model negotiated during Port login. For "
 5553                  "example, ACK-1 indicates that each frame should be "
 5554                  "acknowledged."), 
 5555               ValueMap {"0", "1", "2", "3"},  
 5556               Values {"Unknown", "ACK-0", "ACK-1", "ACK-N"},
 5557               MappingStrings {
 5558                  "MIF.DMTF|Fibre Channel Bus Port Extensions|001.6"} ]
 5559              uint16 ACKModel;
 5560           
 5561              [Description (
 5562                  "The buffer-to-buffer model negotiated during Port login. "
 5563                  "Either the model defined by the FC-PH standard is used "
 5564                  "(value=1, \"Regular\"), or an \"Alternate\" model is "
 5565                  "negotiated."), 
 5566 karl  1.2     ValueMap {"0", "1", "2"},  
 5567               Values {"Unknown", "Regular", "Alternate"} ]
 5568              uint16 BufferToBufferModel;
 5569           
 5570              [Description (
 5571                  "OriginatorBufferCredit reflects the buffer credit of the "
 5572                  "Port defined as the LoginOriginator. It is the number of "
 5573                  "frame buffers made available BY the originating Port, TO "
 5574                  "the responder Port. Buffer credits are used in point to "
 5575                  "point connections, when an NL-Local Port is logged into "
 5576                  "another NL-Local Port, and when Nx Ports are logged into "
 5577                  "Fx Ports. In other scenarios, this value is undefined."),
 5578               MappingStrings {
 5579                  "MIF.DMTF|Fibre Channel Bus Port Extensions|001.3"} ]
 5580              uint64 OriginatorBufferCredit;
 5581           
 5582              [Description (
 5583                  "ResponderBufferCredit reflects the buffer credit of the "
 5584                  "Port defined as the LoginResponder. It is the number of "
 5585                  "frame buffers made available BY the responder Port, TO "
 5586                  "the originating Port. Buffer credits are used in point to "
 5587 karl  1.2        "point connections, when an NL-Local Port is logged into "
 5588                  "another NL-Local Port, and when Nx Ports are logged into "
 5589                  "Fx Ports. In other scenarios, this value is undefined."),
 5590               MappingStrings {
 5591                  "MIF.DMTF|Fibre Channel Bus Port Extensions|001.3"} ]
 5592              uint64 ResponderBufferCredit;
 5593           
 5594              [Description (
 5595                  "OriginatorEndCredit reflects the end credit of the Port "
 5596                  "defined as the LoginOriginator. It is the number of frame "
 5597                  "buffers made available BY the originating Port, TO the "
 5598                  "responder Port. End credits are used in point to point "
 5599                  "connections, when an NL-Local Port is logged into another "
 5600                  "NL-Local Port, and when Nx Ports are logged into remote "
 5601                  "Nx Ports. In other scenarios, this value is undefined."),
 5602               MappingStrings {
 5603                  "MIF.DMTF|Fibre Channel Bus Port Extensions|001.2"} ]
 5604              uint64 OriginatorEndCredit;
 5605           
 5606              [Description (
 5607                  "ResponderEndCredit reflects the end credit of the Port "
 5608 karl  1.2        "defined as the LoginResponder. It is the number of frame "
 5609                  "buffers made available BY the responder Port, TO the "
 5610                  "originating Port. End credits are used in point to point "
 5611                  "connections, when an NL-Local Port is logged into another "
 5612                  "NL-Local Port, and when Nx Ports are logged into remote "
 5613                  "Nx Ports. In other scenarios, this value is undefined."),
 5614               MappingStrings {
 5615                  "MIF.DMTF|Fibre Channel Bus Port Extensions|001.2"} ]
 5616              uint64 ResponderEndCredit;
 5617           };
 5618           
 5619           
 5620           // ===================================================================
 5621           // USBDevice
 5622           // ===================================================================
 5623           [Version ("2.6.0"), Description (
 5624              "The management characterisitics of a USB Device. These ") ]
 5625           class CIM_USBDevice: CIM_LogicalDevice {
 5626           
 5627              [Description (
 5628                  "Indicates the latest USB Version supported by the USB Device. "
 5629 karl  1.2        "The property is expressed as a Binary-Coded Decimal (BCD) "
 5630                  "where a decimal point is implied between the 2nd and 3rd "
 5631                  "digits. For example, a value of 0x201 indicates that "
 5632                  "version 2.01 is supported.") ]
 5633              uint16 USBVersion;
 5634           
 5635              [Description ("Indicates the USB class code.") ]
 5636              uint8 ClassCode;
 5637           
 5638              [Description ("Indicates the USB subclass code.") ]
 5639              uint8 SubclassCode;
 5640           
 5641              [Description ("Indicates the USB protocol code.") ]
 5642              uint8 ProtocolCode;
 5643           
 5644              [Description (
 5645                  "Number of device configurations that are defined for the "
 5646                  "Device.") ]
 5647              uint8 NumberOfConfigs;
 5648           
 5649              [Description (
 5650 karl  1.2        "Indicates the configuration currently selected for the "
 5651                  "Device. If this value is zero, the Device is "
 5652                  "unconfigured."), 
 5653               ModelCorrespondence {"CIM_USBDevice.CurrentAlternateSettings"} ]
 5654              uint8 CurrentConfigValue;
 5655           
 5656              [Description (
 5657                  "An array of USB 'alternate settings' for each interface "
 5658                  "in the currently selected configuration (indicated by the "
 5659                  "CurrentConfigValue property). This array has one entry for "
 5660                  "each interface in the configuration. If the property, "
 5661                  "CurrentConfigValue, is zero (indicating the Device is not "
 5662                  "configured), the array is undefined. To understand how "
 5663                  "to parse this octet string, refer to the USB Specification."), 
 5664               ModelCorrespondence {"CIM_USBDevice.CurrentConfigValue"} ]
 5665              uint8 CurrentAlternateSettings[];
 5666           
 5667              [Description (
 5668                  "This method returns the USBDevice Descriptor as specified by "
 5669                  "the input parameters. Each parameter is briefly described here "
 5670                  "with more detail in its Qualifier list. RequestType is an "
 5671 karl  1.2        "input parameter that defines whether the request is for "
 5672                  "standard, class or vendor-specific information, as well as "
 5673                  "specifying the recipient. RequestValue is also an input "
 5674                  "parameter and defines the USB Descriptor Type and Index. "
 5675                  "RequestIndex is an input parameter which describes the "
 5676                  "language used to return a string Descriptor. RequestLength is "
 5677                  "both an input and output parameter. It specifies the length of "
 5678                  "the Descriptor that should be returned (on input) and what is "
 5679                  "actually returned in the Buffer parameter (on output). Buffer "
 5680                  "is an output parameter, containing the Descriptor data. The "
 5681                  "GetDescriptor method returns an integer value of 0 if the USB "
 5682                  "Descriptor is successfully returned, 1 if the request is not "
 5683                  "supported and any other number to indicate an error. \n"
 5684                  "In a subclass, the set of possible return codes could be "
 5685                  "specified, using a ValueMap qualifier on the method. The "
 5686                  "strings to which the ValueMap contents are 'translated' may "
 5687                  "also be specified in the subclass as a Values array "
 5688                  "qualifier.") ]
 5689              uint32 GetDescriptor(
 5690           
 5691                  [IN, Description (
 5692 karl  1.2            "RequestType is bit-mapped and identifies the "
 5693                      "type of Descriptor request and the recipient. The type of "
 5694                      "request may be 'standard', 'class' or 'vendor-specific'. "
 5695                      "The recipient may be 'device', 'interface', 'endpoint' "
 5696                      "or 'other'. Refer to the USB Specification for the "
 5697                      "appropriate values for each bit.") ] 
 5698                  uint8 RequestType, 
 5699           
 5700                  [IN, Description (
 5701                      "RequestValue contains the Descriptor Type in "
 5702                      "the high byte and the Descriptor Index (for example, index "
 5703                      "or offset into the Descriptor array) in the low byte. "
 5704                      "Refer to the USB Specification for more information.") ] 
 5705                  uint16 RequestValue, 
 5706           
 5707                  [IN, Description (
 5708                      "RequestIndex defines the 2 byte Language ID "
 5709                      "code used by the USBDevice when returning string Descriptor "
 5710                      "data. The parameter is typically 0 for non-string "
 5711                      "Descriptors. Refer to the USB Specification for more "
 5712                      "information.") ] 
 5713 karl  1.2        uint16 RequestIndex, 
 5714           
 5715                  [IN, OUT, Description (
 5716                      "On input, RequestLength is the length "
 5717                      "(in octets) of the Descriptor that should be returned. "
 5718                      "If this value is less than the actual length of the "
 5719                      "Descriptor, only the requested length will be returned. "
 5720                      "If it is more than the actual length, the actual length "
 5721                      "is returned. On output, this parameter is the length, "
 5722                      "in octets, of the Buffer being returned. If the requested "
 5723                      "Descriptor does not exist, the contents of this parameter "
 5724                      "are undefined.") ] 
 5725                  uint16 RequestLength, 
 5726           
 5727                  [IN (false), OUT, Description (
 5728                       "Buffer returns the requested Descriptor information. "
 5729                       "If the Descriptor does not exist, "
 5730                       "the contents of the Buffer are undefined.") ] 
 5731                  uint8 Buffer[]); 
 5732           };
 5733           
 5734 karl  1.2 
 5735           // ===================================================================
 5736           // USBHub 
 5737           // ===================================================================
 5738           [Version ("2.6.0"), Description ("USB Hub Device.") ]
 5739           class CIM_USBHub : CIM_USBDevice {
 5740           
 5741              [Description (
 5742                  "Indicates whether power to the Hub Ports is individually or "
 5743                  "gang-switched. If this value is FALSE, power is switched "
 5744                  "individually for each Port. If this value is TRUE, power is "
 5745                  "switched to all Ports on the Hub at once.") ]
 5746              boolean GangSwitched;
 5747           
 5748              [Description (
 5749                  "Number of downstream Ports on the Hub, including those "
 5750                  "embedded in the Hub's silicon. Individual USBPorts are "
 5751                  "associated with the Hub using the USBPortOnHub association.") ]
 5752              uint8 NumberOfPorts;
 5753           };
 5754           
 5755 karl  1.2 
 5756           // ===================================================================
 5757           // USBPort 
 5758           // ===================================================================
 5759           [Version ("2.6.0"), Description ("A Port on a USBHub.") ]
 5760           class CIM_USBPort : CIM_LogicalPort {
 5761           
 5762              [Override ("Speed"), Description (
 5763                  "USB Port Speed in bits per second. This speed is determined "
 5764                  "and set by the attached Device. The 'attached Device' is "
 5765                  "indicated using the USBConnection association. At this time, "
 5766                  "only several Port speeds are valid. These are: 1.5Mbps and "
 5767                  "12Mbps. The value 0 can also be specified to indicate that the "
 5768                  "current speed is 'unknown' or 1 to indicate that the speed is "
 5769                  "'other' than 1.5 or 12Mbps."), 
 5770               ValueMap {"0", "1", "1500000", "12000000"} ]
 5771              uint64 Speed;
 5772           
 5773              [Override ("StatusInfo"), 
 5774               Description ("Indicates whether the Port is currently enabled."), 
 5775               ValueMap {"2", "3", "4"}, 
 5776 karl  1.2     Values {"Unknown", "Enabled", "Disabled"} ]
 5777              uint16 StatusInfo;
 5778           
 5779              [Override ("Availability"), 
 5780               Description ("Indicates whether the Port is currently Powered."), 
 5781               ValueMap {"2", "3", "7"}, 
 5782               Values {"Unknown", "Running/Full Power", "Power Off"} ]
 5783              uint16 Availability;
 5784           
 5785              [Description (
 5786                  "The USB Port's power capability. The current specification "
 5787                  "defines that 1 or 5 loads can be supported (values 2 or 3 "
 5788                  "would be specified, respectively)."), 
 5789               ValueMap {"0", "1", "2", "3"},  
 5790               Values {"Unknown", "Other", "1 Unit Load", "5 Unit Loads"} ]
 5791              uint16 Power;
 5792           
 5793              [Description (
 5794                  "Indicates whether the Port is currently Suspended.") ]
 5795              boolean Suspended;
 5796           
 5797 karl  1.2    [Description (
 5798                  "Indicates whether the Port is disabled due to an "
 5799                  "overcurrent event.") ]
 5800              boolean Overcurrent;
 5801           };
 5802           
 5803           
 5804           // ===================================================================
 5805           // USBPortOnHub
 5806           // ===================================================================
 5807           [Association, Version ("2.6.0"), Description (
 5808              "USBPortOnHub associates a USBPort or connection point with the "
 5809              "USBHub that includes it.") ]
 5810           class CIM_USBPortOnHub : CIM_PortOnDevice {
 5811           
 5812              [Override ("Antecedent"), 
 5813               Min (1), Max (1), 
 5814               Description ("The Hub that includes the USBPort.") ]
 5815              CIM_USBHub REF Antecedent;
 5816           
 5817              [Override ("Dependent"), 
 5818 karl  1.2     Min (1), Description ("The Port on the USBHub.") ]
 5819              CIM_USBPort REF Dependent;
 5820           };
 5821           
 5822           
 5823           // ===================================================================
 5824           // USBControllerHasHub
 5825           // ===================================================================
 5826           [Association, Version ("2.6.0"), Description (
 5827              "USBControllerHasHub defines the Hub(s) that are downstream "
 5828              "of the USBController.") ]
 5829           class CIM_USBControllerHasHub : CIM_ControlledBy {
 5830           
 5831              [Override ("Antecedent"), Min (1), Max (1), 
 5832               Description ("The USBController.") ]
 5833              CIM_USBController REF Antecedent;
 5834           
 5835              [Override ("Dependent"), Min (1), 
 5836               Description (
 5837                  "The USBHub that is associated with the Controller.") ]
 5838              CIM_USBHub REF Dependent;
 5839 karl  1.2 };
 5840           
 5841           
 5842           // ===================================================================
 5843           // USBConnection 
 5844           // ===================================================================
 5845           [Association, Version ("2.6.0"), Description (
 5846              "USBConnection associates a Device with the USBPort to which it "
 5847              "is connected.") ]
 5848           class CIM_USBConnection: CIM_DeviceConnection {
 5849           
 5850              [Override ("Antecedent"), Max (1), 
 5851               Description ("The USBPort.") ]
 5852              CIM_USBPort REF Antecedent;
 5853           
 5854              [Override ("Dependent"), Max (1), 
 5855               Description ("The USBDevice that is connected to the Port.") ]
 5856              CIM_USBDevice REF Dependent;
 5857           };
 5858           
 5859           
 5860 karl  1.2 // ===================================================================
 5861           //    UML Page 9 - Modems
 5862           // ===================================================================
 5863           // ===================================================================
 5864           // Modem 
 5865           // ===================================================================
 5866           [Abstract, Version ("2.6.0"), Description (
 5867              "CIM_Modem is the superclass for grouping the numerous types "
 5868              "of Modems.") ]
 5869           class CIM_Modem : CIM_LogicalDevice {
 5870           };
 5871           
 5872           
 5873           // ===================================================================
 5874           // ConnectionBasedModem 
 5875           // ===================================================================
 5876           [Abstract, Version ("2.6.0"), Description (
 5877              "CIM_ConnectionBasedModem is the superclass for grouping the "
 5878              "numerous types of connection-based Modems. A CableModem is a "
 5879              "type of connection-based Modem.") ]
 5880           class CIM_ConnectionBasedModem : CIM_Modem {
 5881 karl  1.2 
 5882              [Description (
 5883                  "VendorID information is reported via Modem-specific requests. "
 5884                  "For example, for ADSLModem Devices the VendorID is assigned by "
 5885                  "T1E1.4 according to T1.413, Appendix D. The correct place in "
 5886                  "the CIM Schema for this information is in PhysicalElement "
 5887                  "(the Manufacturer property) for hardware and Product (the "
 5888                  "Vendor property) if the information is related to Product "
 5889                  "acquisition. This data is also reported here since it is part "
 5890                  "of the standard output from the Device, and as an "
 5891                  "optimization.") ]
 5892              string VendorID;
 5893           };
 5894           
 5895           
 5896           // ===================================================================
 5897           // DSLModem 
 5898           // ===================================================================
 5899           [Version ("2.6.0"), Description (
 5900              "The DSLModem class represents the superclass for Digital "
 5901              "Subscriber Line (DSL) Devices. Properties "
 5902 karl  1.2    "will be defined in a future release of the model.") ]
 5903           class CIM_DSLModem : CIM_ConnectionBasedModem {
 5904           };
 5905           
 5906           
 5907           // ===================================================================
 5908           // VDSLModem 
 5909           // ===================================================================
 5910           [Version ("2.6.0"), Description (
 5911              "The VDSLmodem class represents Modems of the DSL type = "
 5912              "VDSL, Very high data rate Digital Subscriber Line. Properties "
 5913              "will be defined in a future release of the model.") ]
 5914           class CIM_VDSLModem : CIM_DSLModem {
 5915           };
 5916           
 5917           
 5918           // ===================================================================
 5919           // HDSLModem 
 5920           // ===================================================================
 5921           [Version ("2.6.0"), Description (
 5922              "The HDSLModem class represents Modems of the DSL type = "
 5923 karl  1.2    "HDSL, High data rate Digital Subscribe Line, capable of "
 5924              "delivering T1 or E1 speeds. Properties will be defined in a "
 5925              "future release of the model.") ]
 5926           class CIM_HDSLModem : CIM_DSLModem {
 5927           };
 5928           
 5929           
 5930           // ===================================================================
 5931           // SDSLModem 
 5932           // ===================================================================
 5933           [Version ("2.6.0"), Description (
 5934              "The SDSLModem class represents Modems of the DSL type = "
 5935              "SDSL, Symmetric Digital Subscriber Line. Properties "
 5936              "will be defined in a future release of the model.") ]
 5937           class CIM_SDSLModem : CIM_DSLModem {
 5938           };
 5939           
 5940           
 5941           // ===================================================================
 5942           // ADSLModem 
 5943           // ===================================================================
 5944 karl  1.2 [Version ("2.6.0"), Description (
 5945              "The ADSLModem class represents Modems of the DSL type = ADSL, "
 5946              "Asymmetric Digital Subscriber Line.") ]
 5947           class CIM_ADSLModem : CIM_DSLModem {
 5948           
 5949              [Description (
 5950                  "Noise Margin of this Modem with respect to its received "
 5951                  "signal, in tenths of dB."), 
 5952               Units ("Tenths of Decibels") ]
 5953              uint32 NoiseMargin;
 5954           
 5955              [Gauge, Description (
 5956                  "Measured difference in the total power transmitted by the peer "
 5957                  "Modem and the total power received by this Modem. This is "
 5958                  "measured in tenths of dB."), 
 5959               Units ("Tenths of Decibels") ]
 5960              uint32 LineAttenuation;
 5961           
 5962              [Description (
 5963                  "Status indicates the current state of the connection (line). "
 5964                  "The property holds a bitmap describing the possible "
 5965 karl  1.2        "conditions. For example, \n"
 5966                  "1) No Defect - There no defects on the line; \n"
 5967                  "2) Loss Of Framing - ATUR failure due to not receiving valid "
 5968                  "frame; \n"
 5969                  "4) Loss Of Signal - ATUR failure due to not receiving "
 5970                  "signal; \n"
 5971                  "8) Loss Of Power - ATUR failure due to loss of power; \n"
 5972                  "32) Loss Of Signal Quality - Loss of Signal Quality is "
 5973                  "declared when the NoiseMargin falls below the minimum "
 5974                  "NoiseMargin, or the bit-error-rate exceeds 10^-7."), 
 5975               ValueMap {"1", "2", "4", "8", "32"}, 
 5976               Values {"No Defect", "Loss Of Framing", "Loss Of Signal", 
 5977                  "Loss Of Power", "Loss Of Signal Quality"} ]
 5978              uint32 LineState;
 5979           
 5980              [Gauge, Description (
 5981                  "Measured total output power (in tenths of dB) transmitted by "
 5982                  "this Modem."), 
 5983               Units ("Tenths of Decibels") ]
 5984              uint32 TotalOutputPower;
 5985           
 5986 karl  1.2    [Description (
 5987                  "Indicates the maximum currently attainable data rate for the "
 5988                  "Modem. This value will be equal or greater than the current "
 5989                  "line rate."), 
 5990               Units ("Bits per Second") ]
 5991              uint32 MaxDataRate;
 5992           };
 5993           
 5994           
 5995           // ===================================================================
 5996           // CableModem 
 5997           // ===================================================================
 5998           [Version ("2.6.0"), Description (
 5999              "The CableModem class represents a device for transmission "
 6000              "across a cable infrastructure.") ]
 6001           class CIM_CableModem: CIM_ConnectionBasedModem {
 6002           };
 6003           
 6004           
 6005           // ===================================================================
 6006           // CallBasedModem 
 6007 karl  1.2 // ===================================================================
 6008           [Abstract, Version ("2.6.0"), Description (
 6009              "CIM_CallBasedModem is the superclass for grouping the numerous "
 6010              "types of call-based modems. The POTSModem is a type of call-"
 6011              "based Modem.") ]
 6012           class CIM_CallBasedModem : CIM_Modem {
 6013           
 6014              [Description (
 6015                  "Indicates whether online fallback is enabled, to be negotiated "
 6016                  "by the Modem.") ]
 6017              boolean FallbackEnabled;
 6018           
 6019              [Description (
 6020                  "An array enumerating all the compression protocols supported "
 6021                  "by the Modem."), 
 6022               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"},  
 6023               Values {"Unknown", "Other", "No Compression", "MNP 5", "V.42bis", 
 6024                  "MNP 3", "MNP 4", "V.58", "PEP", "HST"}, 
 6025               ModelCorrespondence {
 6026                  "CIM_CallBasedModem.OtherCompressionDescription"} ]
 6027              uint16 CompressionSupported[];
 6028 karl  1.2 
 6029              [Description (
 6030                  "Description of the compression type when \"Other \" (value=1) "
 6031                  "is defined in the CompressionSupported array. If there are "
 6032                  "multiple \"Other\" types, then combine their descriptions into "
 6033                  "a single string."), 
 6034               ModelCorrespondence {"CIM_CallBasedModem.CompressionSupported"} ]
 6035              string OtherCompressionDescription;
 6036           
 6037              [Description (
 6038                  "Describes the current data compression characteristics of the "
 6039                  "Modem. "),
 6040               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"},  
 6041               Values {"Unknown", "Other", "No Compression", "MNP 5", "V.42bis", 
 6042                  "MNP 3", "MNP 4", "V.58", "PEP", "HST"},
 6043               ModelCorrespondence {"CIM_CallBasedModem.CompressionSupported", 
 6044                  "CIM_CallBasedModem.OtherCompressionInfoDescription"} ]
 6045              uint16 CompressionInfo;
 6046           
 6047              [Description (
 6048                  "Description of the current compression type when \"Other\" "
 6049 karl  1.2        "(value=1) is specified in the CompressionInfo property."), 
 6050               ModelCorrespondence {"CIM_CallBasedModem.CompressionInfo"} ]
 6051              string OtherCompressionInfoDescription;
 6052           
 6053              [Description (
 6054                  "An array enumerating all the modulation protocols supported by "
 6055                  "the Modem. The beginning entries in the Values qualifier array "
 6056                  "are mapped from the CIM_POTSModem ModulationScheme property."),
 6057               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6058                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 6059                  "21", "22", "23", "24", "25", "26", "27", "28", "29"},  
 6060               Values {"Unknown", "Other", "Not Supported", "Bell 103", 
 6061                  "Bell 212A", "V.22bis", "V.32", "V.32bis", "V.terbo", 
 6062                  "V.FC", "V.34", "V.34bis", "V.17 (G3 Fax Call)", "V.21", 
 6063                  "V.22", "V.23 Constant Carrier (1200/75)", 
 6064                  "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
 6065                  "V.26ter", "V.27ter (G3 Fax Call)", 
 6066                  "V.29 HD (G3 Fax Call)", "V.34 HD (G3 Fax Call)", 
 6067                  "V.90 Issue 1 (Asymmetric)", "V.90 Issue 2 (Symmetric)", 
 6068                  "V.58", "X2", "K56FLEX", "V.Fast", "PEP", "HST"}, 
 6069               ModelCorrespondence {
 6070 karl  1.2        "CIM_CallBasedModem.OtherModulationDescription"} ]
 6071              uint16 ModulationSupported[];
 6072           
 6073              [Description (
 6074                  "Description of the current modulation type when \"Other\" "
 6075                  "(value=1) is specified in the ModulationSupported property. "
 6076                  "If there are multiple \"Other\" types, then combine their "
 6077                  "descriptions into a single string."), 
 6078               ModelCorrespondence {"CIM_CallBasedModem.ModulationSupported"} ]
 6079              string OtherModulationDescription;
 6080           
 6081              [Description (
 6082                  "Describes the current modulation scheme of the Modem."),
 6083               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6084                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 6085                  "21", "22", "23", "24", "25", "26", "27", "28", "29"},  
 6086               Values {"Unknown", "Other", "Not Supported", "Bell 103", 
 6087                  "Bell 212A", "V.22bis", "V.32", "V.32bis", "V.terbo", 
 6088                  "V.FC", "V.34", "V.34bis", "V.17 (G3 Fax Call)", "V.21", 
 6089                  "V.22", "V.23 Constant Carrier (1200/75)", 
 6090                  "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
 6091 karl  1.2        "V.26ter", "V.27ter (G3 Fax Call)", 
 6092                  "V.29 HD (G3 Fax Call)", "V.34 HD (G3 Fax Call)", 
 6093                  "V.90 Issue 1 (Asymmetric)", "V.90 Issue 2 (Symmetric)", 
 6094                  "V.58", "X2", "K56FLEX", "V.Fast", "PEP", "HST"}, 
 6095               ModelCorrespondence {"CIM_CallBasedModem.ModulationSupported",
 6096                  "CIM_CallBasedModem.OtherSchemeDescription"} ]
 6097              uint16 ModulationScheme;
 6098           
 6099              [Description (
 6100                  "Description of the current modulation type when \"Other\" "
 6101                  "(value=1) is specified in the ModulationScheme property."), 
 6102               ModelCorrespondence {"CIM_CallBasedModem.ModulationScheme"} ]
 6103              string OtherSchemeDescription;
 6104           
 6105              [Description (
 6106                  "An array enumerating the error control protocols supported "
 6107                  "by the Modem. The beginning entries in the Values qualifier "
 6108                  "array are mapped from the CIM_POTSModem ErrorControlInfo "
 6109                  "property."), 
 6110               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6111                  "11", "12", "13"}, 
 6112 karl  1.2     Values {"Unknown", "Other", "No Error Correction", "MNP 4", 
 6113                  "LAPM", "V.58", "ECP Enhanced Cellular Protocol", 
 6114                  "ETC Enhanced Throughput Cellular", "MNP 1", "MNP 2", 
 6115                  "MNP 3", "MNP10", "PEP", "HST"}, 
 6116               ModelCorrespondence {
 6117                  "CIM_CallBasedModem.OtherErrorControlDescription"} ]
 6118              uint16 ErrorControlSupported[];
 6119           
 6120              [Description (
 6121                  "Description of the error control type when \"Other\" (value="
 6122                  "1) is specified in the ErrorControlSupported property. If "
 6123                  "there are multiple \"Other\" types, then combine their "
 6124                  "descriptions into a single string."), 
 6125               ModelCorrespondence {
 6126                  "CIM_CallBasedModem.ErrorControlSupported"} ]
 6127              string OtherErrorControlDescription;
 6128           
 6129              [Description (
 6130                  "Describes the current error correction characteristics of the "
 6131                  "Modem."),
 6132               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6133 karl  1.2        "11", "12", "13"}, 
 6134               Values {"Unknown", "Other", "No Error Correction", "MNP 4", 
 6135                  "LAPM", "V.58", "ECP Enhanced Cellular Protocol", 
 6136                  "ETC Enhanced Throughput Cellular", "MNP 1", "MNP 2", 
 6137                  "MNP 3", "MNP10", "PEP", "HST"},
 6138               ModelCorrespondence {"CIM_CallBasedModem.ErrorControlSupported", 
 6139                  "CIM_CallBasedModem.OtherErrorControlInfoDescription"} ]
 6140              uint16 ErrorControlInfo;
 6141           
 6142              [Description (
 6143                  "Description of the error control when \"Other\" (value=1) "
 6144                  "is defined as the value of the ErrorControlInfo property."), 
 6145               ModelCorrespondence {"CIM_CallBasedModem.ErrorControlInfo"} ]
 6146              string OtherErrorControlInfoDescription;
 6147           
 6148              [Description ("Time of last reset of the Modem.") ]
 6149              datetime TimeOfLastReset;
 6150           
 6151              [Description (
 6152                  "The rate at which the receiver and transmitter are or were "
 6153                  "last cooperating, on a call, before disconnection."), 
 6154 karl  1.2     Units ("Bits per Second") ]
 6155              uint32 CallSpeed;
 6156           
 6157              [Description (
 6158                  "Status of the Modem. For example, information regarding "
 6159                  "modem negotiation or whether the modem is connected (values "
 6160                  "8 and 9, respectively) can be conveyed in this property."), 
 6161               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"},  
 6162               Values {"Unknown", "Other", "Offline", "On Hook", "Dialing", 
 6163                  "Waiting for Answer", "Ringing", "Modem Detected",  
 6164                  "Negotiating", "Online", "Error"} ]
 6165              uint16 CallStatus;
 6166           
 6167              [Description (
 6168                  "Total number of characters sent by the Device on the last "
 6169                  "or current call. That a call is in-progress is indicated by "
 6170                  "the CallStatus property."), 
 6171               Counter ]
 6172              uint32 CharsSent;
 6173           
 6174              [Description (
 6175 karl  1.2        "Total number of characters received by the Device on the last "
 6176                  "or current call. That a call is in-progress is indicated by "
 6177                  "the CallStatus property."), 
 6178               Counter ]
 6179              uint32 CharsReceived;
 6180           
 6181              [Description (
 6182                  "Total number of characters lost by the Device on the last or "
 6183                  "current call. That a call is in-progress is indicated by the "
 6184                  "CallStatus property."), 
 6185               Counter ]
 6186              uint32 CharsLost;
 6187           
 6188              [Description (
 6189                  "Total number of blocks sent by the Device on the last or "
 6190                  "current call. That a call is in-progress is indicated by the "
 6191                  "CallStatus property."), 
 6192               Counter ]
 6193              uint32 BlocksSent;
 6194           
 6195              [Description (
 6196 karl  1.2        "Total number of blocks resent by the Device on the last or "
 6197                  "current call. That a call is in-progress is indicated by the "
 6198                  "CallStatus property."), 
 6199               Counter ]
 6200              uint32 BlocksResent;
 6201           
 6202              [Description (
 6203                  "Total number of blocks received by the Device on the last or "
 6204                  "current call. That a call is in-progress is indicated by the "
 6205                  "CallStatus property."), 
 6206               Counter ]
 6207              uint32 BlocksReceived;
 6208           
 6209              [Description (
 6210                  "Total number of block errors seen by the Device on the last "
 6211                  "or current call. That a call is in-progress is indicated by "
 6212                  "the CallStatus property."), 
 6213               Counter ]
 6214              uint32 BlockErrors;
 6215           
 6216              [Description (
 6217 karl  1.2        "Length of the last or current call. That a call is in-progress "
 6218                  "is indicated by the CallStatus property. The 'interval' "
 6219                  "format of the datetime data type should be used for the "
 6220                  "property value.") ]
 6221              datetime CallLength;
 6222           
 6223              [Description (
 6224                  "Last or current number dialed to which the statistics apply, "
 6225                  "or NULL if the call was incoming.") ]
 6226              string NumberDialed;
 6227           };
 6228           
 6229           
 6230           // ===================================================================
 6231           // ISDNModem 
 6232           // ===================================================================
 6233           [Version ("2.6.0"), Description (
 6234              "The ISDNModem class, a kind of call-based Modem. Properties "
 6235              "will be defined in a future release of the model.") ]
 6236           class CIM_ISDNModem: CIM_CallBasedModem {
 6237           };
 6238 karl  1.2 
 6239           
 6240           // ===================================================================
 6241           // POTSModem
 6242           // ===================================================================
 6243           [Version ("2.6.0"), Description (
 6244              "The POTSModem class represents a Device that translates "
 6245              "binary data into wave modulations for sound based "
 6246              "transmission.  It connects to the POTS (Plain Old Telephone "
 6247              "System) network.") ] 
 6248           class CIM_POTSModem : CIM_CallBasedModem {
 6249           
 6250              [Description (
 6251                  "Capabilities of the POTSModem. For example, the Device "
 6252                  "may support distinctive ring, caller ID, fax, voice, etc."), 
 6253                  ArrayType ("Indexed"), 
 6254               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6255                  "11", "12"}, 
 6256               Values {"Unknown", "Other", "Distinctive Ring", "Caller ID", 
 6257                  "Voice", "Fax Class 1", "Fax Class 2", "WakeOnRing", 
 6258                  "Fax Group 3", "GSM Support", "AMPS Support", 
 6259 karl  1.2        "OOB Alerting", "Worldwide Country Support"}, 
 6260               ModelCorrespondence {"CIM_POTSModem.CapabilityDescriptions"} ]
 6261              uint16 Capabilities[];
 6262           
 6263              [Description (
 6264                  "An array of free-form strings providing more detailed "
 6265                  "explanations for any of the POTSModem features indicated "
 6266                  "in the Capabilities array. Note, each entry of this array "
 6267                  "is related to the entry in the Capabilities array that "
 6268                  "is located at the same index."), 
 6269               ArrayType ("Indexed"), 
 6270               ModelCorrespondence {"CIM_POTSModem.Capabilities"} ]
 6271              string CapabilityDescriptions[];
 6272           
 6273              [Description (
 6274                  "Specifies which capabilities are enabled from the list of "
 6275                  "ones supported, defined in the Capabilities array."), 
 6276               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6277                  "11", "12"}, 
 6278               Values {"Unknown", "Other", "Distinctive Ring", "Caller ID", 
 6279                  "Voice", "Fax Class 1", "Fax Class 2", "WakeOnRing", 
 6280 karl  1.2        "Fax Group 3", "GSM Support", "AMPS Support", 
 6281                  "OOB Alerting", "Worldwide Country Support"}, 
 6282               ModelCorrespondence {"CIM_POTSModem.Capabilities"} ]
 6283              uint16 EnabledCapabilities[];
 6284           
 6285              [Description (
 6286                  "Defines the maximum settable communication speed "
 6287                  "to the COM Port for an external modem.  Enter 0 if "
 6288                  "not applicable."),
 6289               Units ("Bits per Second") ]
 6290              uint32 MaxBaudRateToSerialPort;
 6291           
 6292              [Description (
 6293                  "Defines the maximum settable communication speed "
 6294                  "for accessing the phone system."), 
 6295               Units ("Bits per Second") ]
 6296              uint32 MaxBaudRateToPhone;
 6297           
 6298              [Description (
 6299                  "Boolean indicating that synchronous, as well as "
 6300                  "asynchronous, communication is supported.") ]
 6301 karl  1.2    boolean SupportsSynchronousConnect;
 6302           
 6303              [Description (
 6304                  "DialType is an integer indicating whether tone (value=1) or "
 6305                  "pulse dialing (value=2) is used. \"Unknown\" (0) can also be "
 6306                  "defined."),
 6307               ValueMap {"0", "1", "2"},  
 6308               Values {"Unknown", "Tone", "Pulse"} ]
 6309              uint16 DialType;
 6310           
 6311              [Description (
 6312                  "InactivityTimeout defines the time limit (in seconds) "
 6313                  "for automatic disconnection of the phone line, if no data "
 6314                  "is exchanged.  A value of 0 indicates that this "
 6315                  "feature is present but not enabled."),
 6316               Units ("Seconds") ]
 6317              uint32 InactivityTimeout;
 6318           
 6319              [Description (
 6320                  "Describes the volume level of the audible tones from the "
 6321                  "Modem. For example, high, medium or low volume can be "
 6322 karl  1.2        "reported (values 3, 4 or 5, respectively)."),
 6323               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"}, 
 6324               Values {"Unknown", "Other", "Not Supported", "High", 
 6325                  "Medium", "Low", "Off", "Auto"} ]
 6326              uint16 SpeakerVolumeInfo;
 6327           
 6328              [MaxLen (64), Description (
 6329                  "CountriesSupported is an array of strings defining the "
 6330                  "countries in which the POTSModem operates.") ]
 6331              string CountriesSupported[];
 6332           
 6333              [MaxLen (64), Description (
 6334                  "CountrySelected is a string value defining the country "
 6335                  "for which the Modem is currently programmed. When multiple "
 6336                  "countries are supported, this property defines which one "
 6337                  "is currently selected for use.") ] 
 6338              string CountrySelected;
 6339           
 6340              [Description (
 6341                  "Number of rings before the Modem answers an incoming call.") ]  
 6342              uint8 RingsBeforeAnswer;
 6343 karl  1.2 
 6344              [Description (
 6345                  "MaxNumberOfPasswords specifies the number of passwords "
 6346                  "definable in the Modem itself.  If this feature is not "
 6347                  "supported, enter 0.") ] 
 6348              uint16 MaxNumberOfPasswords;
 6349           
 6350              [MaxLen (24), Description (
 6351                  "CurrentPasswords is an array containing the currently defined "
 6352                  "passwords for the Modem.  This array may be left blank for "
 6353                  "security reasons.") ] 
 6354              string CurrentPasswords[];
 6355           
 6356              [Description (
 6357                  "Indication of whether the Modem supports call-back.") ]
 6358              boolean SupportsCallback;
 6359           
 6360              [Description (
 6361                  "AnswerMode defines the current auto-answer/call-back "
 6362                  "setting for the Modem."),
 6363               ValueMap {"0", "1", "2", "3", "4", "5"}, 
 6364 karl  1.2     Values {"Unknown", "Other", "Disabled", "Manual Answer", 
 6365                  "Auto Answer", "Auto Answer with Call-Back"} ]
 6366              uint16 AnswerMode;
 6367           
 6368              [Description (
 6369                  "The current equalization setting for the Modem."), 
 6370               ValueMap {"0", "1", "2", "3"}, 
 6371               Values {"Unknown", "Other", "Long", "Short"} ]
 6372              uint16 Equalization;
 6373           
 6374              [Description ("List of black-listed numbers for the Modem.") ]
 6375              string BlackListedNumbers[];
 6376           };
 6377           
 6378           
 6379           // ===================================================================
 6380           // Unimodem
 6381           // ===================================================================
 6382           [Version ("2.6.0"), Description (
 6383              "Unimodem is a POTSModem that supports the Unimodem 1.0 "
 6384              "Specification.") ]
 6385 karl  1.2 class CIM_Unimodem : CIM_POTSModem {
 6386           
 6387              [Description ("Current call setup result code."), 
 6388               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 6389                  "10", "11"}, 
 6390               Values {"No Previous Call", "No Dial Tone Detected", 
 6391                  "Reorder Signal Detected, Network Busy", 
 6392                  "Busy Signal Detected", "No Recognized Signal Detected", 
 6393                  "Voice Detected", "Text Telephone Detected", 
 6394                  "Data Answering Signal Detected", 
 6395                  "Data Calling Signal Detected", 
 6396                  "Fax Answering Signal Detected", 
 6397                  "Fax Calling Signal Detected", "V.8bis Signal Detected"} ]
 6398              uint16 CallSetupResultCode;
 6399           
 6400              [Description ("Current multi-media mode of the Unimodem."), 
 6401               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"},
 6402               Values {"Data Only", "Fax Only", "Voice Only", "Voice View", 
 6403                  "ASVD V.61", "ASVD V.34Q", "DSVD Multi-Tech", "DSVD 1.2", 
 6404                  "DSVD V.70", "Video Telephony H.324", "Other V.80 Call"} ]
 6405              uint16 MultiMediaMode;
 6406 karl  1.2 
 6407              [Description (
 6408                  "Current DTE-DCE interface mode of the Unimodem, such as "
 6409                  "asynchronous, v.80 transparent or framed synchronous modes."),
 6410               ValueMap {"0", "1", "2"}, 
 6411               Values {"Async Data", "V.80 Transparent Synchronous Mode", 
 6412                  "V.80 Framed Synchronous Mode"} ]
 6413              uint16 DTEDCEInterfaceMode;
 6414           
 6415              [Description ("The active transmit modulation scheme."), 
 6416               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6417                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 6418                  "21", "22", ".."}, 
 6419               Values {"V.17 (G3 Fax Call)", "V.21", "V.22", "V.22bis", 
 6420                  "V.23 Constant Carrier (1200/75)", 
 6421                  "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
 6422                  "V.26ter", "V.27ter (G3 Fax Call)", 
 6423                  "V.29 HD (G3 Fax Call)", "V.32", "V.32bis", "V.34", 
 6424                  "V.34 HD (G3 Fax Call)", "V.90 Issue 1 (Asymmetric)", 
 6425                  "V.90 Issue 2 (Symmetric)", "Reserved (V.58)", "X2", 
 6426                  "K56FLEX", "V.FC", "V.32terbo", "Bell 212A", 
 6427 karl  1.2        "Bell 103", "Reserved for Mfgs"} ]
 6428              uint16 TransmitCarrierNegotiation;
 6429           
 6430              [Description ("The active receive modulation scheme."), 
 6431               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6432                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 6433                  "21", "22", ".."}, 
 6434               Values {"V.17 (G3 Fax Call)", "V.21", "V.22", "V.22bis", 
 6435                  "V.23 Constant Carrier (1200/75)", 
 6436                  "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
 6437                  "V.26ter", "V.27ter (G3 Fax Call)", 
 6438                  "V.29 HD (G3 Fax Call)", "V.32", "V.32bis", "V.34", 
 6439                  "V.34 HD (G3 Fax Call)", "V.90 Issue 1 (Asymmetric)", 
 6440                  "V.90 Issue 2 (Symmetric)", "Reserved (V.58)", "X2", 
 6441                  "K56FLEX", "V.FC", "V.32terbo", "Bell 212A", 
 6442                  "Bell 103", "Reserved for Mfgs"} ]
 6443              uint16 ReceiveCarrierNegotiation;
 6444           
 6445              [Description (
 6446                  "Initial transmit carrier data rate for the current or "
 6447                  "last call, in bits per second."), 
 6448 karl  1.2     Units ("Bits per Second") ]
 6449              uint32 InitialTransmitCarrierDataRate;
 6450           
 6451              [Description (
 6452                  "Initial receive carrier data rate for the current or last "
 6453                  "call, in bits per second."), 
 6454               Units ("Bits per Second") ]
 6455              uint32 InitialReceiveCarrierDataRate;
 6456           
 6457              [Description (
 6458                  "The number of carrier retrains requested during the current "
 6459                  "or last call."), 
 6460               Counter ]
 6461              uint8 CarrierRetrainsRequested;
 6462           
 6463              [Description (
 6464                  "The number of carrier retrains granted during the current "
 6465                  "or last call."), 
 6466               Counter ]
 6467              uint8 CarrierRetrainsGranted;
 6468           
 6469 karl  1.2    [Description (
 6470                  "Final transmit carrier data rate of the current or last "
 6471                  "call, in bits per second."), 
 6472               Units ("Bits per Second") ]
 6473              uint32 FinalTransmitCarrierDataRate;
 6474           
 6475              [Description (
 6476                  "Final receive carrier data rate of the current or last "
 6477                  "call, in bits per second."), 
 6478               Units ("Bits per Second") ]
 6479              uint32 FinalReceiveCarrierDataRate;
 6480           
 6481              [Description ("Cause of last call termination."), 
 6482               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 6483                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 6484                  "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", 
 6485                  "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", 
 6486                  "41", "42", "43", "44", "45", "46", "47", "48", "49", "50"}, 
 6487               Values {"Cause Unidentified", "No Previous Call", 
 6488                  "Call Is Still in Progress", "Call Waiting Signal Detected", 
 6489                  "Delayed", "NMS Initiated Dial Call", 
 6490 karl  1.2        "NMS Initiated Leased Line Restoral", "NMS Initiated Redial", 
 6491                  "NMS Initiated Dial Disconnect", "Power Loss", 
 6492                  "Equipment Failure", "Front Panel Disconnect Requested", 
 6493                  "Front Panel Leased Line Restoral", 
 6494                  "Automatic Leased Line Restoral", "Inactivity Timer Expired", 
 6495                  "cct116 Restoral Request", "cct108 Is Off Inhibits Dial", 
 6496                  "cct108 Turned Off", "No Number Provided", "Blacklisted Number", 
 6497                  "Call Attempts Limit Exceeded", "Extension Phone Off Hook", 
 6498                  "Call Setup Fail Timer Expired", "Incoming Call Detected", 
 6499                  "Loop Current Interrupted", "No Dial Tone", "Voice Detected", 
 6500                  "Reorder Tone", "Sit Tone", "Engaged Tone", 
 6501                  "Long Space Disconnect", "Carrier Lost", "Training Failed", 
 6502                  "No Modulation in Common", "Retrain Failed", 
 6503                  "Retrain Attempt Count Exceeded", "GSTN Cleardown Received", 
 6504                  "Fax Detected", "In Test Mode", 
 6505                  "Intrusive Self Test Initiated", "Any Key Abort", 
 6506                  "DTE Hangup Command", "DTE Reset Command", "Frame Reject", 
 6507                  "No Error Control Established", "Protocol Violation", 
 6508                  "n400 Exceeded", "Negotiation Failed", 
 6509                  "Disconnect Frame Received", "Sabme Frame Received", 
 6510                  "Loss Of Synchronization"} ]
 6511 karl  1.2    uint16 TerminationCause;
 6512           
 6513              [Description (
 6514                  "Diagnostic Command Specification, Unimodem revision number.") ]
 6515              string UnimodemRevision;
 6516           
 6517              [Gauge, Description (
 6518                  "Estimated noise level for the last or current call in "
 6519                  "-dBm. Values are in the range of 0-100."), 
 6520               Units ("-dBm") ]
 6521              uint32 EstimatedNoiseLevel;
 6522           
 6523              [Description (
 6524                  "Normalized mean squared error for the last or current call.") ]
 6525              uint32 NormalizedMeanSquaredError;
 6526           
 6527              [Description (
 6528                  "Temporary carrier loss event count for the last or current "
 6529                  "call."), 
 6530               Counter ]
 6531              uint8 TemporaryCarrierLossEventCount;
 6532 karl  1.2 
 6533              [Description (
 6534                  "Carrier Rate re-negotiation event count for the last or "
 6535                  "current call."), 
 6536               Counter ]
 6537              uint8 CarrierRenegotiationEventCount;
 6538           
 6539              [Description (
 6540                  "Error Control frame size in bytes for the last or current "
 6541                  "call."), 
 6542               Units ("Bytes") ]
 6543              uint16 ErrorControlFrameSize;
 6544           
 6545              [Description (
 6546                  "Error control link timeouts in transmission for the last or "
 6547                  "current call."), 
 6548               Counter ]
 6549              uint8 ErrorControlLinkTimeouts;
 6550           
 6551              [Description (
 6552                  "Error control link NAKs received for the last or current "
 6553 karl  1.2        "call."), 
 6554               Counter ]
 6555              uint8 ErrorControlLinkNAKs;
 6556           
 6557              [Description (
 6558                  "The flow control mechanism used in transmitting data."), 
 6559               ValueMap {"0", "1", "2", "3"}, 
 6560               Values {"Unknown", "Off", "DC1/DC3", "V.24 ckt 106/133"} ]
 6561              uint16 TransmitFlowControl;
 6562           
 6563              [Description (
 6564                  "The flow control mechanism used in receiving data."), 
 6565               ValueMap {"0", "1", "2", "3"}, 
 6566               Values {"Unknown", "Off", "DC1/DC3", "V.24 ckt 106/133"} ]
 6567              uint16 ReceiveFlowControl;
 6568           
 6569              [Description (
 6570                  "Number of transmit chars sent from the DTE for the last or "
 6571                  "current call. A continuous connection may exceed this value, "
 6572                  "given enough time. Typically these counters are implemented "
 6573                  "as 32 bit counters, but additional bits may be provided and "
 6574 karl  1.2        "are accounted for in this property. If these counters hit "
 6575                  "maximum value, the DCE manufacturer may roll over to 0."), 
 6576               Counter ]
 6577              uint64 TransmitCharsSentFromDTE;
 6578           
 6579              [Description (
 6580                  "Number of receive chars sent to the DTE for the last or "
 6581                  "current call. A continuous connection may exceed this value, "
 6582                  "given enough time. Typically these counters are implemented "
 6583                  "as 32 bit counters, but additional bits may be provided and "
 6584                  "are accounted for in this property. If these counters hit "
 6585                  "maximum value, the DCE manufacturer may roll over to 0."), 
 6586               Counter ]
 6587              uint64 ReceiveCharsSentToDTE;
 6588           
 6589              [Description (
 6590                  "Number of transmit characters lost for the last or current "
 6591                  "call. A DCE may limit this counter to 16 bits, but additional "
 6592                  "bits may be provided and are accounted for in this property."), 
 6593               Counter ]
 6594              uint64 TransmitCharsLost;
 6595 karl  1.2 
 6596              [Description (
 6597                  "Number of receive characters lost for the last or current "
 6598                  "call. A DCE may limit this counter to 16 bits, but additional "
 6599                  "bits may be provided and are accounted for in this property."), 
 6600               Counter ]
 6601              uint64 ReceiveCharsLost;
 6602           
 6603              [Description (
 6604                  "Number of I-Frames transmitted for the last or current call. "
 6605                  "A continuous connection may exceed this value, given enough "
 6606                  "time. Typically these counters are implemented as 32 bit "
 6607                  "counters, but additional bits may be provided and are "
 6608                  "accounted for in this property. If these counters hit maximum "
 6609                  "value, the DCE manufacturer may roll over to 0."), 
 6610               Counter ]
 6611              uint64 TransmitIFrameCount;
 6612           
 6613              [Description (
 6614                  "Number of I-Frames received for the last or current call. "
 6615                  "A continuous connection may exceed this value, given enough "
 6616 karl  1.2        "time. Typically these counters are implemented as 32 bit "
 6617                  "counters, but additional bits may be provided and are "
 6618                  "accounted for in this property. If these counters hit maximum "
 6619                  "value, the DCE manufacturer may roll over to 0."), 
 6620               Counter ]
 6621              uint64 ReceiveIFrameCount;
 6622           
 6623              [Description (
 6624                  "Number of I-Frame errors detected for the last or current "
 6625                  "call, if error control protocol is running. A DCE may limit "
 6626                  "this counter to 16 bits, but additional bits may be provided "
 6627                  "and are accounted for in this property."), 
 6628               Counter ]
 6629              uint64 TransmitIFrameErrorCount;
 6630           
 6631              [Description (
 6632                  "Number of I-Frame errors detected for the last or current "
 6633                  "call, if error control protocol is running. A DCE may limit "
 6634                  "this counter to 16 bits, but additional bits may be provided "
 6635                  "and are accounted for in this property."), 
 6636               Counter ]
 6637 karl  1.2    uint64 ReceivedIFrameErrorCount;
 6638           
 6639              [Description (
 6640                  "Number of Call waiting events detected for the last or "
 6641                  "current call."), 
 6642               Counter ]
 6643              uint8 CallWaitingEventCount;
 6644           };
 6645           
 6646           
 6647           // ===================================================================
 6648           //    UML Page 10 - Storage Devices
 6649           // ===================================================================
 6650           // ===================================================================
 6651           // MediaAccessDevice
 6652           // ===================================================================
 6653           [Version ("2.6.0"), Description (
 6654              "A MediaAccessDevice represents the ability to access one or "
 6655              "more media and use this media to store and retrieve data.") ] 
 6656           class CIM_MediaAccessDevice : CIM_LogicalDevice {
 6657           
 6658 karl  1.2    [Description (
 6659                  "Capabilities of the MediaAccessDevice. For example, the " 
 6660                  "Device may support \"Random Access\", removeable media and "
 6661                  "\"Automatic Cleaning\". In this case, the values 3, 7 and 9 "
 6662                  "would be written to the array. \n"
 6663                  "Several of the enumerated values require some explanation: "
 6664                  "1) Value 11, Supports Dual Sided Media, distinguishes a "
 6665                  "Device that can access both sides of dual sided Media, from "
 6666                  "a Device that reads only a single side and requires the "
 6667                  "Media to be flipped; and, 2) Value 12, Predismount Eject "
 6668                  "Not Required, indicates that Media does not have to be "
 6669                  "explicitly ejected from the Device before being accessed "
 6670                  "by a PickerElement."), 
 6671               ArrayType ("Indexed"),
 6672               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 6673                  "10", "11", "12"},
 6674               Values {"Unknown", "Other", "Sequential Access", 
 6675                  "Random Access", "Supports Writing", "Encryption",
 6676                  "Compression", "Supports Removeable Media",
 6677                  "Manual Cleaning", "Automatic Cleaning", 
 6678                  "SMART Notification", "Supports Dual Sided Media", 
 6679 karl  1.2        "Predismount Eject Not Required"}, 
 6680               MappingStrings {"MIF.DMTF|Storage Devices|001.9", 
 6681                  "MIF.DMTF|Storage Devices|001.11", 
 6682                  "MIF.DMTF|Storage Devices|001.12",
 6683                  "MIF.DMTF|Disks|003.7", "MIF.DMTF|Host Disk|001.2",  
 6684                  "MIF.DMTF|Host Disk|001.4"}, 
 6685               ModelCorrespondence {
 6686                  "CIM_MediaAccessDevice.CapabilityDescriptions"} ]
 6687              uint16 Capabilities[];
 6688           
 6689              [Description (
 6690                  "An array of free-form strings providing more detailed "
 6691                  "explanations for any of the AccessDevice features indicated "
 6692                  "in the Capabilities array. Note, each entry of this array "
 6693                  "is related to the entry in the Capabilities array that "
 6694                  "is located at the same index."),
 6695               ArrayType ("Indexed"),
 6696               ModelCorrespondence {"CIM_MediaAccessDevice.Capabilities"} ]
 6697              string CapabilityDescriptions[];
 6698           
 6699              [Description (
 6700 karl  1.2        "ErrorMethodology is a free-form string describing "
 6701                  "the type(s) of error detection and correction supported "
 6702                  "by this Device.") ]
 6703              string ErrorMethodology;
 6704           
 6705              [Description (      
 6706                  "A free form string indicating the algorithm or tool used by "
 6707                  "the device to support compression. "
 6708                  "If it is not possible or not desired to describe the "
 6709                  "compression scheme (perhaps because it is not known), "
 6710                  "recommend using the following words: \"Unknown\" to "
 6711                  "represent that it is not known whether the device supports "
 6712                  "compression capabilities or not, \"Compressed\" to represent "
 6713                  "that the device supports compression capabilities but either "
 6714                  "its compression scheme is not known or not disclosed, and "
 6715                  "\"Not Compressed\" to represent that the devices does not "
 6716                  "support compression capabilities.")     ]
 6717              string CompressionMethod;
 6718           
 6719              [Description (
 6720                  "When the MediaAccessDevice supports multiple individual "
 6721 karl  1.2        "Media, this property defines the maximum number which can "
 6722                  "be supported or inserted.") ]
 6723              uint32 NumberOfMediaSupported;
 6724           
 6725              [Description (
 6726                  "Maximum size, in KBytes, of media supported by this Device. "
 6727                  "KBytes is interpreted as the number of bytes multiplied by "
 6728                  "1000 (NOT the number of bytes multiplied by 1024)."),
 6729               MappingStrings {"MIF.DMTF|Sequential Access Devices|001.2", 
 6730                  "MIF.DMTF|Host Disk|001.5"} ]
 6731              uint64 MaxMediaSize;
 6732           
 6733              [Description ("Default block size, in bytes, for this Device."),
 6734               Units ("Bytes") ]
 6735              uint64 DefaultBlockSize;
 6736           
 6737              [Description (
 6738                  "Maximum block size, in bytes, for media accessed by this "
 6739                  "Device."),
 6740               Units ("Bytes") ]
 6741              uint64 MaxBlockSize;
 6742 karl  1.2 
 6743              [Description (
 6744                  "Minimum block size, in bytes, for media accessed by this "
 6745                  "Device."),
 6746               Units ("Bytes") ]
 6747              uint64 MinBlockSize;
 6748           
 6749              [Description (
 6750                  "Boolean indicating that the MediaAccessDevice needs cleaning. " 
 6751                  "Whether manual or automatic cleaning is possible is indicated "
 6752                  "in the Capabilities array property. ") ]
 6753              boolean NeedsCleaning;
 6754           
 6755              [Description (
 6756                  "True indicates that the media is locked in the Device "
 6757                  "and can not be ejected. For non-removeable Devices, this "
 6758                  "value should be true.") ]
 6759              boolean MediaIsLocked;
 6760           
 6761              [Description (
 6762                  "An enumeration indicating the operational security defined "
 6763 karl  1.2        "for the MediaAccessDevice. For example, information that "
 6764                  "the Device is \"Read Only\" (value=4) or \"Boot Bypass\" "
 6765                  "(value=6) can be described using this property."), 
 6766               ValueMap {"1", "2", "3", "4", "5", "6", "7"}, 
 6767               Values {"Other", "Unknown", "None", "Read Only", "Locked Out", 
 6768                        "Boot Bypass", "Boot Bypass and Read Only"}, 
 6769               MappingStrings {"MIF.DMTF|Disks|003.22"} ]
 6770              uint16 Security;
 6771           
 6772              [Description (
 6773                  "The date and time on which the Device was last cleaned.") ]
 6774              datetime LastCleaned;
 6775           
 6776              [Description (
 6777                  "Time in milliseconds to move from the first location on "
 6778                  "the Media to the location that is furthest with respect to "
 6779                  "time. For a DiskDrive, this represents full seek + full "
 6780                  "rotational delay. For TapeDrives, this represents a search "
 6781                  "from the beginning of the tape to the most physically "
 6782                  "distant point. (The end of a tape may be at its most "
 6783                  "physically distant point, but this is not necessarily "
 6784 karl  1.2        "true.)"), 
 6785               Units ("MilliSeconds") ]
 6786              uint64 MaxAccessTime;
 6787           
 6788              [Description (
 6789                  "The sustained data transfer rate in KB/sec that the "
 6790                  "Device can read from and write to a Media. This is a "
 6791                  "sustained, raw data rate. Maximum rates or rates "
 6792                  "assuming compression should not be reported in this "
 6793                  "property."), 
 6794               Units ("KiloBytes per Second") ]
 6795              uint32 UncompressedDataRate;
 6796           
 6797              [Description (
 6798                  "Time in milliseconds from 'load' to being able to read "
 6799                  "or write a Media. For example, for DiskDrives, this is "
 6800                  "the interval between a disk not spinning to the disk "
 6801                  "reporting that it is ready for read/write (ie, the disk "
 6802                  "spinning at nominal speeds). For TapeDrives, this is "
 6803                  "the time from a Media being injected to reporting that "
 6804                  "it is ready for an application. This is usually at the "
 6805 karl  1.2        "tape's BOT area."), 
 6806               Units ("MilliSeconds") ]
 6807              uint64 LoadTime;
 6808           
 6809              [Description (
 6810                  "Time in milliseconds from being able to read or write a "
 6811                  "Media to its 'unload'. For example, for DiskDrives, "
 6812                  "this is the interval between a disk spinning at nominal "
 6813                  "speeds and a disk not spinning. For TapeDrives, this is "
 6814                  "the time for a Media to go from its BOT to being fully "
 6815                  "ejected and accessible to a PickerElement or human "
 6816                  "operator."), 
 6817               Units ("MilliSeconds") ]
 6818              uint64 UnloadTime;
 6819           
 6820              [Description (
 6821                  "For a MediaAccessDevice that supports removable Media, "
 6822                  "the number of times that Media have been mounted for "
 6823                  "data transfer or to clean the Device. For Devices "
 6824                  "accessing nonremovable Media, such as hard disks, "
 6825                  "this property is not applicable and should be set to 0."),
 6826 karl  1.2     Counter ]
 6827              uint64 MountCount;
 6828           
 6829              [Description (
 6830                  "For a MediaAccessDevice that supports removable Media, "
 6831                  "the most recent date and time that Media was mounted "
 6832                  "on the Device. For Devices accessing nonremovable Media, "
 6833                  "such as hard disks, this property has no meaning and is "
 6834                  "not applicable.") ]
 6835              datetime TimeOfLastMount;
 6836           
 6837              [Description (
 6838                  "For a MediaAccessDevice that supports removable Media, "
 6839                  "the total time (in seconds) that Media have been mounted "
 6840                  "for data transfer or to clean the Device. For Devices "
 6841                  "accessing nonremovable Media, such as hard disks, "
 6842                  "this property is not applicable and should be set to 0.") ]
 6843              uint64 TotalMountTime;
 6844           
 6845              [Description (
 6846                  "Defines 'Units' relative to its use in the property, "
 6847 karl  1.2        "MaxUnitsBeforeCleaning. This describes the criteria used "
 6848                  "to determine when the MediaAccessDevice should be cleaned."),
 6849               ModelCorrespondence {
 6850                  "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning",
 6851                  "CIM_MediaAccessDevice.UnitsUsed"} ]
 6852              string UnitsDescription;
 6853           
 6854              [Description (
 6855                  "An unsigned integer indicating the maximum 'units' "
 6856                  "that can be used, with respect to the AccessDevice, "
 6857                  "before the Device should be cleaned. The property, "
 6858                  "UnitsDescription, defines how 'units' should be "
 6859                  "interpreted."),
 6860               ModelCorrespondence {
 6861                  "CIM_MediaAccessDevice.UnitsDescription"} ]
 6862              uint64 MaxUnitsBeforeCleaning;
 6863           
 6864              [Description (
 6865                  "An unsigned integer indicating the currently used " 
 6866                  "'units' of the AccessDevice, helpful to describe "
 6867                  "when the Device may require cleaning. The property, "
 6868 karl  1.2        "UnitsDescription, defines how 'units' should be "
 6869                  "interpreted."),
 6870               Gauge,
 6871               ModelCorrespondence {
 6872                  "CIM_MediaAccessDevice.UnitsDescription",
 6873                  "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning"} ]
 6874              uint64 UnitsUsed;
 6875           
 6876              [Description (
 6877                  "Method to lock and unlock the media in a removeable Access"
 6878                  "Device. The method takes one parameter as input - a boolean "
 6879                  "indicating whether to lock or unlock. TRUE indicates that "
 6880                  "the media should be locked in the Device, FALSE indicates "
 6881                  "that the media should be unlocked. The method returns 0 if "
 6882                  "successful, 1 if not supported, and any other value if an "
 6883                  "error occurred. The set of possible return codes should be "
 6884                  "specified in a ValueMap qualifier on the method. The strings "
 6885                  "to which the ValueMap contents are 'translated' should be "
 6886                  "specified as a Values array qualifier on the method.") ]
 6887              uint32 LockMedia (
 6888           
 6889 karl  1.2        [IN] boolean Lock);
 6890           };
 6891           
 6892           
 6893           // ===================================================================
 6894           // DiskDrive
 6895           // ===================================================================
 6896           [Version ("2.6.0"), Description (
 6897              "Capabilities and managment of a DiskDrive, a subtype of "
 6898              "MediaAccessDevice.") ] 
 6899           class CIM_DiskDrive : CIM_MediaAccessDevice {
 6900           };
 6901           
 6902           
 6903           // ===================================================================
 6904           // DisketteDrive
 6905           // ===================================================================
 6906           [Version ("2.6.0"), Description (
 6907              "Capabilities and managment of a DisketteDrive, a subtype of "
 6908              "MediaAccessDevice.") ] 
 6909           class CIM_DisketteDrive : CIM_MediaAccessDevice {
 6910 karl  1.2 };
 6911           
 6912           
 6913           // ===================================================================
 6914           // CDROMDrive
 6915           // ===================================================================
 6916           [Version ("2.6.0"), Description (
 6917              "Capabilities and managment of a CDROMDrive, a subtype of "
 6918              "MediaAccessDevice.") ] 
 6919           class CIM_CDROMDrive : CIM_MediaAccessDevice {
 6920           };
 6921           
 6922           
 6923           // ===================================================================
 6924           // DVDDrive 
 6925           // ===================================================================
 6926           [Version ("2.6.0"), Description (
 6927              "Capabilities and management of a DVDDrive, a subtype of "
 6928              "MediaAccessDevice.") ]
 6929           class CIM_DVDDrive : CIM_MediaAccessDevice {
 6930           
 6931 karl  1.2    [Description (
 6932                  "The CD and DVD formats that are supported by this Device. "
 6933                  "For example, the Drive may support \"CD-ROM\" and "
 6934                  "\"DVD-RAM\". In this case, the values 16 and 24 would be "
 6935                  "written to the array. This property's values align with "
 6936                  "those defined in PhysicalMedia.MediaType."), 
 6937               ValueMap {"0", "1", "16", "17", "18", "19", "22", "23", "24", 
 6938                  "25", "26", "27", "33", "34", "35", "36", "37", "38", 
 6939                  "39", "40", "41", "42"}, 
 6940               Values {"Unknown", "Other", "CD-ROM", "CD-ROM/XA", 
 6941                  "CD-I", "CD Recordable", "DVD", "DVD-RW+", 
 6942                  "DVD-RAM", "DVD-ROM", "DVD-Video", "Divx", "CD-RW", 
 6943                  "CD-DA", "CD+", "DVD Recordable", "DVD-RW", 
 6944                  "DVD-Audio", "DVD-5", "DVD-9", "DVD-10", "DVD-18"},
 6945               ModelCorrespondence {"CIM_PhysicalMedia.MediaType"} ]
 6946              uint16 FormatsSupported[];
 6947           };
 6948           
 6949           
 6950           // ===================================================================
 6951           // WORMDrive
 6952 karl  1.2 // ===================================================================
 6953           [Version ("2.6.0"), Description (
 6954              "Capabilities and managment of a WORMDrive, a subtype of "
 6955              "MediaAccessDevice.") ] 
 6956           class CIM_WORMDrive : CIM_MediaAccessDevice {
 6957           };
 6958           
 6959           
 6960           // ===================================================================
 6961           // MagnetoOpticalDrive
 6962           // ===================================================================
 6963           [Version ("2.6.0"), Description (
 6964              "Capabilities and managment of a MagnetoOpticalDrive, a "
 6965              "subtype of MediaAccessDevice.") ] 
 6966           class CIM_MagnetoOpticalDrive : CIM_MediaAccessDevice {
 6967           };
 6968           
 6969           
 6970           // ===================================================================
 6971           // TapeDrive
 6972           // ===================================================================
 6973 karl  1.2 [Version ("2.6.0"), Description (
 6974              "Capabilities and managment of a TapeDrive, a subtype of "
 6975              "MediaAccessDevice.") ] 
 6976           class CIM_TapeDrive : CIM_MediaAccessDevice {
 6977           
 6978              [Description (
 6979                  "EOTWarningZoneSize indicates the size, in bytes, of the "
 6980                  "area designated as 'end of tape'. Access in this area "
 6981                  "generates an 'end of tape' warning."),
 6982               Units ("Bytes") ]
 6983              uint32 EOTWarningZoneSize;
 6984           
 6985              [Description ("Maximum partition count for the TapeDrive.") ]
 6986              uint32 MaxPartitionCount;
 6987           
 6988              [Description (
 6989                  "Padding indicates the number of bytes inserted between "
 6990                  "blocks on a tape Media."),
 6991               Units ("Bytes") ]
 6992              uint32 Padding;
 6993           
 6994 karl  1.2    [Description (
 6995                  "Time in milliseconds to move from the most physically distant "
 6996                  "point on the tape to the beginning."), 
 6997               Units ("MilliSeconds") ]
 6998              uint64 MaxRewindTime;
 6999           };
 7000           
 7001           
 7002           // ===================================================================
 7003           // MediaTransferDevice
 7004           // ===================================================================
 7005           [Version ("2.6.0"), Description (
 7006              "A MediaTransferDevice represents hardware that moves Physical"
 7007              "Media. It is a superclass for Devices like PickerElement, "
 7008              "ChangerDevice and InterLibraryPort.") ]
 7009           class CIM_MediaTransferDevice : CIM_LogicalDevice {
 7010           };
 7011           
 7012           
 7013           // ===================================================================
 7014           // PickerElement
 7015 karl  1.2 // ===================================================================
 7016           [Version ("2.6.0"), Description (
 7017              "PickerElements represent hardware used to pick or place "
 7018              "PhysicalMedia from/into StorageMediaLocations.") ]
 7019           class CIM_PickerElement : CIM_MediaTransferDevice {
 7020           
 7021              [Description (
 7022                  "The maximum time in seconds for a PickerElement to grab "
 7023                  "a PhysicalMedia from a StorageMediaLocation, once the "
 7024                  "Picker has arrived at that Location. The maximum time "
 7025                  "interval for moving a Media from one point to another is "
 7026                  "the sum of the PickerElement's MaxPickTime, the Changer"
 7027                  "Device's MaxTransitTime and the PickerElement's MaxPutTime."), 
 7028               Units ("Seconds") ]
 7029              uint32 MaxPickTime;
 7030           
 7031              [Description (
 7032                  "The maximum time in seconds for a PickerElement to place "
 7033                  "a PhysicalMedia into a StorageMediaLocation, once the "
 7034                  "Picker has arrived at that Location. The maximum time "
 7035                  "interval for moving a Media from one point to another is "
 7036 karl  1.2        "the sum of the PickerElement's MaxPickTime, the Changer"
 7037                  "Device's MaxTransitTime and the PickerElement's MaxPutTime."), 
 7038               Units ("Seconds") ]
 7039              uint32 MaxPutTime;
 7040           
 7041              [Description (
 7042                  "String describing the location in the StorageLibrary "
 7043                  "where the Picker is currently positioned.") ] 
 7044              string CellLocation;
 7045           };
 7046           
 7047           
 7048           // ===================================================================
 7049           // ChangerDevice 
 7050           // ===================================================================
 7051           [Version ("2.6.0"), Description (
 7052              "ChangerDevices represent hardware that moves PhysicalMedia "
 7053              "within a System, such as a StorageLibrary.") ]
 7054           class CIM_ChangerDevice : CIM_MediaTransferDevice {
 7055           
 7056              [Description (
 7057 karl  1.2        "The maximum time in seconds between a PickerElement pick "
 7058                  "and place. It should be reported as the transit time "
 7059                  "between the two most physically distant StorageMedia"
 7060                  "Locations in a System. The maximum time interval for "
 7061                  "moving a Media from one point to another is the sum of "
 7062                  "the PickerElement's MaxPickTime, the ChangerDevice's Max"
 7063                  "TransitTime and the PickerElement's MaxPutTime."), 
 7064               Units ("Seconds") ]
 7065              uint32 MaxTransitTime;
 7066           
 7067              [Description (
 7068                  "Boolean set to TRUE if the Changer supports media flipping. "
 7069                  "Media needs to be flipped when multi-sided PhysicalMedia "
 7070                  "are placed into a MediaAccessDevice that does NOT support "
 7071                  "dual sided access.") ]
 7072              boolean MediaFlipSupported;
 7073           
 7074              [Description (
 7075                  "Boolean set to TRUE if an audit is currently being performed "
 7076                  "by the Changer.") ]
 7077              boolean AuditInProgress;
 7078 karl  1.2 
 7079              [Description (
 7080                  "A count of the number of audits performed by the Changer."), 
 7081               Counter ]
 7082              uint64 AuditsPerformed;
 7083           };
 7084           
 7085           
 7086           // ===================================================================
 7087           // PickerForChanger 
 7088           // ===================================================================
 7089           [Association, Version ("2.6.0"), Description (
 7090              "PickerForChanger indicates the PickerElement(s) that access "
 7091              "StorageMediaLocations and deliver PhysicalMedia to the Changer, "
 7092              "for movement through the System. A Changer may have several "
 7093              "Pickers for faster exchange of Media.") ]
 7094           class CIM_PickerForChanger : CIM_Dependency {
 7095           
 7096              [Override ("Antecedent"), Description (
 7097                  "The PickerElement that accesses StorageMediaLocations "
 7098                  "to deliver Media to the Changer.") ]
 7099 karl  1.2    CIM_PickerElement REF Antecedent;
 7100           
 7101              [Override ("Dependent"), Max (1), 
 7102               Description ("The ChangerDevice.") ]
 7103              CIM_ChangerDevice REF Dependent;
 7104           };
 7105           
 7106           
 7107           // ===================================================================
 7108           // LimitedAccessPort 
 7109           // ===================================================================
 7110           [Version ("2.6.0"), Description (
 7111              "LimitedAccessPorts represent hardware that transports Physical"
 7112              "Media into or out of a System, such as a StorageLibrary. They "
 7113              "are identified as 'limited' since these Ports do not provide "
 7114              "access to ALL the PhysicalMedia or StorageMediaLocations in a "
 7115              "Library, but only to a subset.") ]
 7116           class CIM_LimitedAccessPort : CIM_MediaTransferDevice {
 7117           
 7118              [Description (
 7119                  "Boolean indicating that the Port is 'locked' (TRUE) or "
 7120 karl  1.2        "'unlocked' (FALSE). When the Port is locked, access its Media "
 7121                  "Locations is prevented without the use of a physical key, "
 7122                  "front panel activity or the issuance of a software unlock "
 7123                  "command.") ]
 7124              boolean Locked;
 7125           
 7126              [Description (
 7127                  "When a Port is 'Extended' or 'open' (value=TRUE), its Storage"
 7128                  "MediaLocations are accessible to a human operator. If not "
 7129                  "extended (value=FALSE), the Locations are accessible to a "
 7130                  "PickerElement.") ]
 7131              boolean Extended;
 7132           
 7133              [Description (
 7134                  "When a LimitedAccessPort is 'Extended', all related media-"
 7135                  "transfer componentry may be stopped. The ExtendTimeout "
 7136                  "property provides a mechanism to event on a Port left open "
 7137                  "for a period of time (in seconds) exceeding the property's "
 7138                  "value."), 
 7139               Units ("Seconds") ]
 7140              uint32 ExtendTimeout;
 7141 karl  1.2 
 7142              [Description ("Date and time that the Port was last extended.") ]
 7143              datetime LastExtended;
 7144           
 7145              [Counter, Description (
 7146                  "The number of times that the LimitedAccessPort was used to "
 7147                  "move a PhysicalMedia into the System/StorageLibrary.") ]
 7148              uint64 ImportCount;
 7149           
 7150              [Counter, Description (
 7151                  "The number of times that the LimitedAccessPort was used to "
 7152                  "move a PhysicalMedia out of the System/StorageLibrary.") ]
 7153              uint64 ExportCount;
 7154           
 7155              [Description (
 7156                  "An enumeration expressing whether the Port is used for "
 7157                  "import into the Library/System which scopes and names it " 
 7158                  "(value=1), export from the Library/System (value=2), or "
 7159                  "both (value=3)."),
 7160               ValueMap {"0", "1", "2", "3"},
 7161               Values {"Unknown", "Import", "Export", "Both Import and Export"} ]
 7162 karl  1.2    uint16 Direction;
 7163           };
 7164           
 7165           
 7166           // ===================================================================
 7167           // InterLibraryPort 
 7168           // ===================================================================
 7169           [Version ("2.6.0"), Description (
 7170              "InterLibraryPorts represent hardware that transports Physical"
 7171              "Media between connected StorageLibraries. The LibraryExchange "
 7172              "association identifies the connected Libraries, by identifying "
 7173              "the connected InterLibraryPorts.") ]
 7174           class CIM_InterLibraryPort : CIM_MediaTransferDevice {
 7175           
 7176              [Description (
 7177                  "Date and time that the Port was last accessed by its "
 7178                  "System/StorageLibrary. This value may be different "
 7179                  "than that specified for the Port(s) to which this Inter"
 7180                  "LibraryPort is connected. Connected Ports are identified "
 7181                  "using the LibraryExchange association.") ]
 7182              datetime LastAccessed;
 7183 karl  1.2 
 7184              [Description (
 7185                  "The number of times that the InterLibraryPort was used to "
 7186                  "move a PhysicalMedia into the System/StorageLibrary."),
 7187               Counter ]
 7188              uint64 ImportCount;
 7189           
 7190              [Description (
 7191                  "The number of times that the InterLibraryPort was used to "
 7192                  "move a PhysicalMedia out of the System/StorageLibrary."),
 7193               Counter ]
 7194              uint64 ExportCount;
 7195           
 7196              [Description (
 7197                  "An enumeration expressing whether the Port is used for "
 7198                  "import into the Library/System which scopes and names it " 
 7199                  "(value=1), export from the Library/System (value=2), or "
 7200                  "both (value=3)."),
 7201               ValueMap {"0", "1", "2", "3"},
 7202               Values {"Unknown", "Import", "Export", "Both Import and Export"} ]
 7203              uint16 Direction;
 7204 karl  1.2 };
 7205           
 7206           
 7207           // ===================================================================
 7208           // LibraryExchange 
 7209           // ===================================================================
 7210           [Association, Version ("2.6.0"), Description (
 7211              "LibraryExchange indicates that two StorageLibraries are "
 7212              "connected through their InterLibraryPorts.") ]
 7213           class CIM_LibraryExchange : CIM_Dependency {
 7214           
 7215              [Override ("Antecedent"), 
 7216               Description ("The InterLibraryPort of one StorageLibrary.") ]
 7217              CIM_InterLibraryPort REF Antecedent;
 7218           
 7219              [Override ("Dependent"), 
 7220               Description ("The InterLibraryPort of the connected Library.") ]
 7221              CIM_InterLibraryPort REF Dependent;
 7222           
 7223              [Description (
 7224                  "Enumeration indicating whether the Antecedent (value=1), "
 7225 karl  1.2        "Dependent (value=2), or neither Library (value=3) currently "
 7226                  "has access to the Port."), 
 7227               ValueMap {"0", "1", "2", "3"},
 7228               Values {"Unknown", "Antecedent", "Dependent", "Neither"} ]
 7229              uint16 CurrentlyAccessingPort;
 7230           };
 7231           
 7232           
 7233           // ===================================================================
 7234           // LabelReader 
 7235           // ===================================================================
 7236           [Version ("2.6.0"), Description (
 7237              "LabelReaders represent hardware capable of scanning or reading "
 7238              "a physical label or the NonVolatileMemory on a PhysicalMedia. "
 7239              "Examples of labels include barcode and OCR tags.") ]
 7240           class CIM_LabelReader : CIM_LogicalDevice {
 7241           
 7242              [Description (
 7243                  "An array of enumerated integers describing the formats of "
 7244                  "the labels that can be read or scanned by the LabelReader. "
 7245                  "The values specified for this property correspond to "
 7246 karl  1.2        "those defined for CIM_PhysicalMedia.LabelFormats."), 
 7247               ValueMap {"0", "1", "2", "3", "4", "5"},
 7248               Values {"Barcode", "Radio Frequency Identification", 
 7249                  "OCR (Optical Character Recognition)", 
 7250                  "MICR (Magnetic Ink Character Recognition)",
 7251                  "7 Character Barcode", "9 Character Barcode"},
 7252               ModelCorrespondence {"CIM_PhysicalMedia.LabelFormats"} ]
 7253              uint16 SupportedFormats[];
 7254           
 7255              [Description (
 7256                  "The technology used by the LabelReader. One entry of the "
 7257                  "Values array requires some explanation - \"Memory Reader\". "
 7258                  "The latter describes the ability to access memory in a Physical"
 7259                  "Media's packaging (for example, memory on an AIT tape). The "
 7260                  "existence of this Memory is indicated by the MemoryWithMedia "
 7261                  "association on the physical side, or by AssociatedMemory on "
 7262                  "the logical side."), 
 7263               ValueMap {"0", "1", "2", "3", "4", "5", "6"},
 7264               Values {"Unknown", "Other", "Laser", "Infrared", "RF", 
 7265                  "Camera", "Memory Reader"} ]
 7266              uint16 Technology;
 7267 karl  1.2 };
 7268           
 7269           
 7270           // ===================================================================
 7271           // AssociatedLabelReader
 7272           // ===================================================================
 7273           [Association, Version ("2.6.0"), Description (
 7274              "A LogicalDevice may use or require one or more LabelReaders, to "
 7275              "scan barcodes or otherwise identify entities. This relationship "
 7276              "is described by the AssociatedLabelReader dependency. ") ]
 7277           class CIM_AssociatedLabelReader : CIM_Dependency {
 7278           
 7279              [Override ("Antecedent"), 
 7280               Description ("The LabelReader.") ]
 7281              CIM_LabelReader REF Antecedent;
 7282           
 7283              [Override ("Dependent"), Description (
 7284                  "The Device that is dependent on the Reader Device.") ]
 7285              CIM_LogicalDevice REF Dependent;
 7286           };
 7287           
 7288 karl  1.2 
 7289           // ===================================================================
 7290           // PickerLabelReader
 7291           // ===================================================================
 7292           [Association, Version ("2.6.0"), Description (
 7293              "PickerLabelReader is used to indicate that one or more Label"
 7294              "Readers works in conjunction with PickerElements, to identify "
 7295              "PhysicalMedia as they are being picked/placed.") ]
 7296           class CIM_PickerLabelReader : CIM_AssociatedLabelReader {
 7297           
 7298              [Override ("Dependent"), Description (
 7299                  "The PickerElement that is dependent on the Reader Device.") ]
 7300              CIM_PickerElement REF Dependent;
 7301           };
 7302           
 7303            
 7304           // ===================================================================
 7305           // AccessLabelReader
 7306           // ===================================================================
 7307           [Association, Version ("2.6.0"), Description (
 7308              "AccessLabelReader is used to indicate that one or more Label"
 7309 karl  1.2    "Readers works in conjunction with MediaAccessDevices, "
 7310              "to identify PhysicalMedia before read/write.") ]
 7311           class CIM_AccessLabelReader : CIM_AssociatedLabelReader {
 7312           
 7313              [Override ("Dependent"),  Description (
 7314                  "The MediaAccessDevice that is dependent on the Reader "
 7315                  "Device.") ]
 7316              CIM_MediaAccessDevice REF Dependent;
 7317           };
 7318           
 7319           
 7320           // ===================================================================
 7321           //    UML Page 11 - StorageExtent and Memory
 7322           // ===================================================================
 7323           // ===================================================================
 7324           // StorageExtent
 7325           // ===================================================================
 7326           [Version ("2.6.0"), Description (
 7327              "StorageExtent describes the capabilities and management of "
 7328              "the various media that exist to store data and allow data "
 7329              "retrieval. This superclass could be used to represent the "
 7330 karl  1.2    "various components of RAID (Hardware or Software) or as a "
 7331              "raw logical extent on top of physical media.") ] 
 7332           class CIM_StorageExtent : CIM_LogicalDevice {
 7333           
 7334              [Description ("Type of data organization used."), 
 7335               ValueMap {"0", "1", "2", "3", "4"},
 7336               Values {"Other", "Unknown", "Fixed Block", "Variable Block", 
 7337                  "Count Key Data"} ]
 7338              uint16 DataOrganization;
 7339           
 7340              [Description (
 7341                  "A free form string describing the media and/or its use."),
 7342               MappingStrings {
 7343                  "MIB.IETF|HOST-RESOURCES-MIB.hrStorageDescr"} ]
 7344              string Purpose;
 7345           
 7346              [Description (
 7347                  "Access describes whether the media is readable (value=1), "
 7348                  "writeable (value=2), or both (value=3). \"Unknown\" (0) "
 7349                  "and \"Write Once\" (4) can also be defined."),
 7350               ValueMap {"0", "1", "2", "3", "4"},
 7351 karl  1.2     Values {"Unknown", "Readable", "Writeable", 
 7352                  "Read/Write Supported", "Write Once"} ]
 7353              uint16 Access;
 7354           
 7355              [Description (
 7356                  "ErrorMethodology is a free-form string describing "
 7357                  "the type of error detection and correction supported "
 7358                  "by this StorageExtent.") ]
 7359              string ErrorMethodology;
 7360           
 7361              [Description (
 7362                  "Size in bytes of the blocks which form this StorageExtent. "
 7363                  "If variable block size, then the maximum block size in bytes "
 7364                  "should be specified. If the block size is unknown or if a "
 7365                  "block concept is not valid (for example, for AggregateExtents, "
 7366                  "Memory or LogicalDisks), enter a 1."), 
 7367               Units ("Bytes"),
 7368               MappingStrings {"MIF.DMTF|Host Storage|001.4", 
 7369                  "MIB.IETF|HOST-RESOURCES-MIB.hrStorageAllocationUnits,"
 7370                  "MIF.DMTF|Storage Devices|001.5"} ]
 7371              uint64 BlockSize;
 7372 karl  1.2 
 7373              [Description (
 7374                  "Total number of logically contiguous blocks, of size Block"
 7375                  "Size, which form this Extent. The total size of the Extent "
 7376                  "can be calculated by multiplying BlockSize by NumberOfBlocks. "
 7377                  "If the BlockSize is 1, this property is the total size of the "
 7378                  "Extent."),
 7379               MappingStrings {"MIF.DMTF|Host Storage|001.5", 
 7380                  "MIB.IETF|HOST-RESOURCES-MIB.hrStorageSize"} ]
 7381              uint64 NumberOfBlocks;
 7382           
 7383              [Description ( 
 7384                  "The maximum number of blocks, of size BlockSize, which are "
 7385                  "available for consumption when layering StorageExtents "
 7386                  "using the BasedOn association. This property only has meaning "
 7387                  "when this StorageExtent is an Antecedent reference in a "
 7388                  "BasedOn relationship. For example, a StorageExtent could be "
 7389                  "composed of 120 blocks. However, the Extent itself may use 20 "
 7390                  "blocks for redundancy data. If another StorageExtent is "
 7391                  "BasedOn this Extent, only 100 blocks would be available to it. "
 7392                  "This information ('100 blocks is available for consumption') "
 7393 karl  1.2        "is indicated in the ConsumableBlocks property.") ]
 7394              uint64 ConsumableBlocks;
 7395           
 7396              [Description (
 7397                  "True indicates that the underlying StorageExtent(s) "
 7398                  "participate in a StorageRedundancyGroup.") ]
 7399              boolean IsBasedOnUnderlyingRedundancy;
 7400           
 7401              [Description (
 7402                  "Boolean set to TRUE if the Storage is sequentially accessed "
 7403                  "by a MediaAccessDevice. A TapePartition is an example of a "
 7404                  "sequentially accessed StorageExtent. StorageVolumes, Disk"
 7405                  "Partitions and LogicalDisks represent randomly accessed "
 7406                  "Extents.") ]
 7407              boolean SequentialAccess;
 7408           };
 7409           
 7410           
 7411           // ===================================================================
 7412           // ResidesOnExtent
 7413           // ===================================================================
 7414 karl  1.2 [Association, Version ("2.6.0"), Description (
 7415              "An association between a FileSystem and the StorageExtent "
 7416              "where it is located. Typically, a FileSystem ResidesOn "
 7417              "a LogicalDisk.") ] 
 7418           class CIM_ResidesOnExtent : CIM_Dependency {
 7419           
 7420              [Override ("Antecedent"), Description ("The StorageExtent.") ]
 7421              CIM_StorageExtent REF Antecedent;
 7422           
 7423              [Override ("Dependent"), Description (
 7424                 "The FileSystem that is located on the StorageExtent.") ]
 7425              CIM_FileSystem REF Dependent;
 7426           };
 7427           
 7428           
 7429           // ===================================================================
 7430           // BasedOn
 7431           // ===================================================================
 7432           [Association, Version ("2.6.0"), Description (
 7433              "BasedOn is an association describing how StorageExtents can "
 7434              "be assembled from lower level Extents. For example, "
 7435 karl  1.2    "ProtectedSpaceExtents are parts of PhysicalExtents, while "
 7436              "VolumeSets are assembled from one or more Physical or "
 7437              "ProtectedSpaceExtents. As another example, CacheMemory "
 7438              "can be defined independently and realized in a PhysicalElement "
 7439              "or can be 'based on' Volatile or NonVolatileStorageExtents.") ] 
 7440           class CIM_BasedOn : CIM_Dependency {
 7441           
 7442              [Override ("Antecedent"), Description (
 7443                  "The lower level StorageExtent.") ]
 7444              CIM_StorageExtent REF Antecedent;
 7445           
 7446              [Override ("Dependent"), Description (
 7447                  "The higher level StorageExtent.") ]
 7448              CIM_StorageExtent REF Dependent;
 7449           
 7450              [Description (
 7451                  "StartingAddress indicates where in lower level storage, "
 7452                  "the higher level Extent begins.") ] 
 7453              uint64 StartingAddress;
 7454           
 7455              [Description (
 7456 karl  1.2        "EndingAddress indicates where in lower level storage, "
 7457                  "the higher level Extent ends. This property is useful when "
 7458                  "mapping non-contiguous Extents into a higher level grouping.") ] 
 7459              uint64 EndingAddress;
 7460           
 7461              [Description (
 7462                  "If there is an order to the BasedOn associations that "
 7463                  "describe how a higher level StorageExtent is assembled, the "
 7464                  "OrderIndex property indicates this. When an order exists, "
 7465                  "the instances of BasedOn with the same Dependent value "
 7466                  "(i.e., the same higher level Extent) should place unique "
 7467                  "values in the OrderIndex property. The lowest value implies "
 7468                  "the first member of the collection of lower level Extents, "
 7469                  "and increasing values imply successive members of the "
 7470                  "collection. If there is no ordered relationship, a value "
 7471                  "of zero should be specified. An example of the use of this "
 7472                  "property is to define a RAID-0 striped array of 3 disks. "
 7473                  "The resultant RAID array is a StorageExtent that is "
 7474                  "dependent on (BasedOn) the StorageExtents that describe "
 7475                  "each of the 3 disks. The OrderIndex of each BasedOn "
 7476                  "association from the disk Extents to the RAID array could "
 7477 karl  1.2        "be specified as 1, 2 and 3 to indicate the order in which "
 7478                  "the disk Extents are used to access the RAID data.") ]
 7479              uint16 OrderIndex;
 7480           };
 7481           
 7482           
 7483           // ===================================================================
 7484           // MediaPresent
 7485           // ===================================================================
 7486           [Association, Version ("2.6.0"), Description (
 7487              "Where a StorageExtent must be accessed through a MediaAccess"
 7488              "Device, this relationship is described by the MediaPresent "
 7489              "association."),
 7490               MappingStrings {"MIF.DMTF|Storage Devices|001.8"} ] 
 7491           class CIM_MediaPresent : CIM_Dependency {
 7492           
 7493              [Override ("Antecedent"),
 7494               Description ("The MediaAccessDevice.") ]
 7495              CIM_MediaAccessDevice REF Antecedent;
 7496           
 7497              [Override ("Dependent"), Description (
 7498 karl  1.2        "The StorageExtent accessed using the MediaAccessDevice.") ]
 7499              CIM_StorageExtent REF Dependent;
 7500           
 7501              [Description (
 7502                  "Boolean indicating that the accessed StorageExtent is "
 7503                  "fixed in the MediaAccessDevice and can not be ejected.") ]
 7504              boolean FixedMedia;
 7505           };
 7506           
 7507           
 7508           // ===================================================================
 7509           // StorageError
 7510           // ===================================================================
 7511           [Version ("2.6.0"), Description (
 7512              "StorageError defines blocks of media or memory space that are "
 7513              "mapped 'out of use' due to errors. The Key of the class is "
 7514              "the StartingAddress of the bytes in error.") ] 
 7515           class CIM_StorageError : CIM_ManagedElement {
 7516           
 7517              [Propagated("CIM_StorageExtent.SystemCreationClassName"),
 7518               Key, MaxLen (256),
 7519 karl  1.2     Description ("The scoping System's CreationClassName.") ]
 7520              string SystemCreationClassName;
 7521           
 7522              [Propagated("CIM_StorageExtent.SystemName"),
 7523               Key, MaxLen (256),
 7524               Description ("The scoping System's Name.") ]
 7525              string SystemName;
 7526           
 7527              [Propagated("CIM_StorageExtent.CreationClassName"),
 7528               Key, MaxLen (256),
 7529               Description ("The scoping StorageExtent's CreationClassName.") ]
 7530              string DeviceCreationClassName;
 7531           
 7532              [Propagated("CIM_StorageExtent.DeviceID"),
 7533               Key, MaxLen (64),
 7534               Description ("The scoping StorageExtent's DeviceID.") ]
 7535              string DeviceID;
 7536           
 7537              [Key,
 7538               Description ("The starting address of the bytes in error.") ]
 7539              uint64 StartingAddress;
 7540 karl  1.2 
 7541              [Description ("The ending address of the bytes in error.") ]
 7542              uint64 EndingAddress;
 7543           };
 7544           
 7545           
 7546           // ===================================================================
 7547           // StorageDefect
 7548           // ===================================================================
 7549           [Association, Aggregation, Version ("2.6.0"), Description (
 7550              "The StorageDefect aggregation collects the StorageErrors for "
 7551              "a StorageExtent.") ] 
 7552           class CIM_StorageDefect {
 7553           
 7554              [Key, Aggregate, Min (1), Max (1), Description (
 7555                  "The Extent reference defines the StorageExtent on which the "
 7556                  "errors occurred.") ]
 7557              CIM_StorageExtent REF Extent;
 7558           
 7559              [Key, Weak, Description (
 7560                  "Error references the Error object, defining the starting "
 7561 karl  1.2        "and ending addresses that are 'mapped out' of the Storage"
 7562                  "Extent.") ]
 7563              CIM_StorageError REF Error;
 7564           };
 7565           
 7566           
 7567           // ===================================================================
 7568           // PhysicalExtent
 7569           // ===================================================================
 7570           [Version ("2.6.0"), Description (
 7571              "A PhysicalExtent is used to model an SCC RAID "
 7572              "implementation. It defines the consecutive addressable "
 7573              "block addresses on a single storage device, that are "
 7574              "treated as a single StorageExtent and that are in the "
 7575              "same StorageRedundancyGroup. An alternate possibility, "
 7576              "if automatic configuration is used, is to instantiate or "
 7577              "extend the AggregatePExtent class.") ] 
 7578           class CIM_PhysicalExtent : CIM_StorageExtent {
 7579           
 7580           // Override is used to define the MappingString qualifier 
 7581              [Override ("BlockSize"),   
 7582 karl  1.2     MappingStrings {"MIF.DMTF|Physical Extent|001.4"} ]
 7583              uint64 BlockSize;
 7584           
 7585           // Override is used to define the MappingString qualifier 
 7586              [Override ("NumberOfBlocks"),
 7587               MappingStrings {"MIF.DMTF|Physical Extent|001.3"} ]
 7588              uint64 NumberOfBlocks;
 7589           
 7590              [Description (
 7591                  "Number of bytes of user data to skip before "
 7592                  "starting the check data interleave."),
 7593               Units ("Bytes"),
 7594               MappingStrings {"MIF.DMTF|Physical Extent|001.6"} ]
 7595              uint64 UnitsBeforeCheckDataInterleave;
 7596           
 7597              [Description (
 7598                  "Number of bytes to be reserved for check data."),
 7599               Units ("Bytes"), 
 7600               MappingStrings {"MIF.DMTF|Physical Extent|001.7"} ]
 7601              uint64 UnitsOfCheckData;
 7602           
 7603 karl  1.2    [Description (
 7604                  "Number of bytes to be reserved for user data."),
 7605               Units ("Bytes"),
 7606               MappingStrings {"MIF.DMTF|Physical Extent|001.8"} ]
 7607              uint64 UnitsOfUserData;
 7608           };
 7609           
 7610           
 7611           // ===================================================================
 7612           // ProtectedSpaceExtent
 7613           // ===================================================================
 7614           [Version ("2.6.0"), Description (
 7615              "A ProtectedSpaceExtent is used to model an SCC RAID "
 7616              "implementation. ProtectedSpaceExtent defines addressable logical "
 7617              "block addresses, treated as a single Extent, located on one or "
 7618              "more PhysicalExtents. ProtectedSpaceExtents exclude any logical "
 7619              "blocks mapped as check data and contain user data stripe depth "
 7620              "mapping information. An alternate possibility, if automatic "
 7621              "configuration is used, is to instantiate or extend the Aggregate"
 7622              "PSExtent class.") ] 
 7623           class CIM_ProtectedSpaceExtent : CIM_StorageExtent {
 7624 karl  1.2 
 7625           // Override is used to define the MappingString qualifier 
 7626              [Override ("BlockSize"),
 7627               MappingStrings {"MIF.DMTF|Protected Space Extent|001.4"} ]
 7628              uint64 BlockSize;
 7629           
 7630              [Override ("NumberOfBlocks"),
 7631               Description (
 7632                  "The number of user data blocks contained in this Extent."),
 7633               MappingStrings {"MIF.DMTF|Protected Space Extent|001.3"} ]
 7634              uint64 NumberOfBlocks;
 7635           
 7636              [Description (
 7637                  "For a ProtectedSpaceExtent that is allocated to a VolumeSet, "
 7638                  "(i.e. is named in a CIM_VolumeSetBasedOnPSExtent "
 7639                  "association), this property is the number of user data bytes "
 7640                  "placed on this ProtectedSpaceExtent before moving on to the "
 7641                  "next ProtectedSpaceExtent in the VolumeSet.  Otherwise, this "
 7642                  "ProtectedSpaceExtent is considered to be unallocated and "
 7643                  "this property shall be set to zero (0h.)"),
 7644               Units ("Bytes"),
 7645 karl  1.2     MappingStrings {"MIF.DMTF|Protected Space Extent|001.6"} ]
 7646               uint64 UserDataStripeDepth;
 7647           };
 7648           
 7649           
 7650           // ===================================================================
 7651           // PSExtentBasedOnPExtent
 7652           // ===================================================================
 7653           [Association, Version ("2.6.0"), Description (
 7654              "ProtectedSpaceExtents are BasedOn a PhysicalExtent. This "
 7655              "relationship is made explicit in this association.") ] 
 7656           class CIM_PSExtentBasedOnPExtent : CIM_BasedOn {
 7657           
 7658              [Override ("Antecedent"), Description (
 7659                  "The PhysicalExtent.") ]
 7660              CIM_PhysicalExtent REF Antecedent;
 7661           
 7662              [Override ("Dependent"), Description (
 7663                  "The ProtectedSpaceExtent which is built on the Physical"
 7664                  "Extent.") ]
 7665              CIM_ProtectedSpaceExtent REF Dependent;
 7666 karl  1.2 
 7667              [Override ("StartingAddress"), Description (
 7668                  "The starting logical block address of the PhysicalExtent "
 7669                  "from which this ProtectedSpaceExtent is derived."), 
 7670               MappingStrings {"MIF.DMTF|Protected Space Extent|001.2"} ]
 7671              uint64 StartingAddress;
 7672           };
 7673           
 7674           
 7675           // ===================================================================
 7676           // StorageVolume 
 7677           // ===================================================================
 7678           [Version ("2.6.0"), Description (
 7679              "A StorageVolume is an Extent that is presented to the Operating"
 7680              "System (for example, by a hardware RAID cabinet), to a File"
 7681              "System (for example, by a software volume manager) or to another "
 7682              "entity. StorageVolumes do NOT participate in StorageRedundancy"
 7683              "Groups. They are directly Realized in hardware or are the end "
 7684              "result of assembling lower level Extents.") ]
 7685           class CIM_StorageVolume : CIM_StorageExtent {
 7686           };
 7687 karl  1.2 
 7688           
 7689           // ===================================================================
 7690           // VolumeSet
 7691           // ===================================================================
 7692           [Version ("2.6.0"), Description (
 7693              "A VolumeSet is used to model an SCC RAID implementation. "
 7694              "VolumeSets represent a contiguous range of logical blocks "
 7695              "presented to the operating environment. VolumeSets may overlap. "
 7696              "However, the underlying PhysicalExtents within the overlap "
 7697              "shall not contain any check data. They are BasedOn one or more "
 7698              "ProtectedSpaceExtents. These BasedOn associations should be "
 7699              "instantiated or subclassed as needed.") ] 
 7700           class CIM_VolumeSet : CIM_StorageVolume {
 7701           
 7702           // Override is used to define the MappingString qualifier 
 7703              [Override ("NumberOfBlocks"), 
 7704               MappingStrings {"MIF.DMTF|Volume Set|001.3"} ]
 7705              uint64 NumberOfBlocks;
 7706           
 7707              [Description (
 7708 karl  1.2        "Number of contiguous ProtectedSpaceExtents counted "
 7709                  "before looping back to the first ProtectedSpaceExtent "
 7710                  "of the current stripe. It is the number of Extents forming "
 7711                  "the user data stripe."),
 7712               MappingStrings {"MIF.DMTF|Volume Set|001.4"} ]
 7713              uint64 PSExtentStripeLength;
 7714           
 7715              [Description (
 7716                  "Number of ProtectedSpaceExtents to stripe as a collective "
 7717                  "set. In SCC, this value is defined as the number of stripes "
 7718                  "to count before continuing to map into the next contiguous "
 7719                  "set of Extents, beyond the current stripe."), 
 7720               MappingStrings {"MIF.DMTF|Volume Set|001.5"} ]
 7721              uint64 PSExtentInterleaveDepth;
 7722           
 7723              [Description (
 7724                  "VolumeSets in SCC have additional status information "
 7725                  "beyond that captured in the Availability and StatusInfo "
 7726                  "properties, inherited from ManagedSystemElement. This "
 7727                  "additional information (for example, \"Protection Disabled\", "
 7728                  "value=9) is captured in the VolumeStatus property."), 
 7729 karl  1.2     ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 7730                  "11", "12", "13", "14"},  
 7731               Values {"Other", "Unknown", "None/Not Applicable", "Broken", 
 7732                  "Data Lost", "Dynamic Reconfig", "Exposed", 
 7733                  "Fractionally Exposed", "Partially Exposed", 
 7734                  "Protection Disabled", "Readying", "Rebuild", 
 7735                  "Recalculate", "Spare in Use", "Verify In Progress"} ]
 7736              uint16 VolumeStatus;
 7737           };
 7738           
 7739           
 7740           // ===================================================================
 7741           // VolumeSetBasedOnPSExtent
 7742           // ===================================================================
 7743           [Association, Version ("2.6.0"), Description (
 7744              "VolumeSets are BasedOn on one or more ProtectedSpaceExtents. "
 7745              "This relationship is made explicit in this association.") ]
 7746           class CIM_VolumeSetBasedOnPSExtent : CIM_BasedOn {
 7747           
 7748              [Override ("Antecedent"), Min (1), 
 7749               Description ("The ProtectedSpaceExtent.") ]
 7750 karl  1.2    CIM_ProtectedSpaceExtent REF Antecedent;
 7751           
 7752              [Override ("Dependent"), Description (
 7753                  "The VolumeSet which is built on the ProtectedSpaceExtent.") ]
 7754              CIM_VolumeSet REF Dependent;
 7755           
 7756              [Description (
 7757                  "True if logical blocks in the ProtectedSpaceExtent are mapped "
 7758                  "in decrementing order. This property corresponds to the INCDEC "
 7759                  "value in the SCC-2 Volume Set PS_Extent Descriptor.") ]
 7760              boolean LBAsMappedByDecrementing;
 7761           
 7762              [Description (
 7763                  "True if the logical block mapping algorithm includes check "
 7764                  "data bytes. This property corresponds to the NOCHKSKIP "
 7765                  "attribute in the SCC-2 Volume Set PS_Extent Descriptor.") ]
 7766              boolean LBAMappingIncludesCheckData;
 7767           };
 7768           
 7769           
 7770           // ===================================================================
 7771 karl  1.2 // MediaPartition
 7772           // ===================================================================
 7773           [Version ("2.6.0"), Description (
 7774              "A MediaPartition is a presentation of a contiguous range "
 7775              "of logical blocks and has identifying data written on/to it. "
 7776              "It may include a signature written by the OS or by "
 7777              "an application.  This class is a common superclass for Disk and "
 7778              "TapePartions. Partitions are directly realized by Physical"
 7779              "Media (indicated by the RealizesExtent association) or built "
 7780              "on StorageVolumes (indicated by the BasedOn association.") ] 
 7781           class CIM_MediaPartition : CIM_StorageExtent {
 7782           
 7783              [Description (
 7784                  "Boolean indicating that the Partition is labeled as "
 7785                  "bootable. (Note that this does not mean that an Operating"
 7786                  "System is actually loaded on the Partition.) With the advent "
 7787                  "of bootable Tape and other bootable media, this property is "
 7788                  "included in the higher level MediaPartition class, rather "
 7789                  "than in a subclass such as DiskPartition.") ]
 7790              boolean Bootable;
 7791           
 7792 karl  1.2    [Description (
 7793                  "Boolean indicating that the Partition is available and "
 7794                  "may be allocated for use.") ]
 7795              boolean Allocatable;
 7796           
 7797              [Description (
 7798                  "An identifying string written to the Partition. Additional "
 7799                  "information related to this 'Signature' may be found in the "
 7800                  "properties, SignatureState and SignatureAlgorithm."), 
 7801               ModelCorrespondence {"CIM_MediaPartition.SignatureState",
 7802                  "CIM_MediaPartition.SignatureAlgorithm"} ]
 7803              string Signature;
 7804           
 7805              [Description (
 7806                  "A free-form string describing the algorithm used to "
 7807                  "define the Partition Signature. The value of this property "
 7808                  "is dependent on the Signature's State. "),
 7809               ModelCorrespondence {"CIM_MediaPartition.Signature", 
 7810                  "CIM_MediaPartition.SignatureState"} ]
 7811              string SignatureAlgorithm;
 7812           
 7813 karl  1.2    [Description (
 7814                  "An enumeration describing the state of the Partition's "
 7815                  "identifying Signature string. Information such as "
 7816                  "\"Uninitialized\" (value=2), or \"Assigned by Owning "
 7817                  "Application\" (value=5) are possible entries. "),
 7818               ValueMap {"0", "1", "2", "3", "4", "5"},  
 7819               Values {"Unknown", "Unimplemented", "Uninitialized",
 7820                  "Calculated by Operating System", 
 7821                  "Calculated by a Media Manager", 
 7822                  "Assigned by Owning Application"},
 7823               ModelCorrespondence {"CIM_MediaPartition.Signature",
 7824                  "CIM_MediaPartition.SignatureAlgorithm"} ]
 7825              string SignatureState;
 7826           
 7827              [Description (
 7828                  "Boolean indicating that the Partition can be grown/extended "
 7829                  "without reformatting.") ]
 7830              boolean Extendable;
 7831           };
 7832           
 7833           
 7834 karl  1.2 // ===================================================================
 7835           // DiskPartition
 7836           // ===================================================================
 7837           [Version ("2.6.0"), Description (
 7838              "A DiskPartition is a presentation of a contiguous range "
 7839              "of logical blocks that is identifiable by the Operating"
 7840              "System via the Partition's type and subtype fields. Disk"
 7841              "Partitions should be directly realized by PhysicalMedia "
 7842              "(indicated by the RealizesDiskPartition association) or built "
 7843              "on StorageVolumes (indicated by the PartitionBasedOnVolume "
 7844              "association.") ] 
 7845           class CIM_DiskPartition : CIM_MediaPartition {
 7846           
 7847              [Description (
 7848                  "Boolean indicating that the DiskPartition is labelled as "
 7849                  "the primary partition for a ComputerSystem.") ]
 7850              boolean PrimaryPartition;
 7851           
 7852              [Description ("The type of Partition."), 
 7853               ValueMap {"0", "1", "2", "3"},  
 7854               Values {"Unknown", "Primary", "Extended", "Logical"} ]
 7855 karl  1.2    uint16 PartitionType;
 7856           
 7857              [Description (
 7858                  "The 'sub' type of a primary, extended, or logical Partition. "
 7859                  "The list of possible values corresponds to the decimal "
 7860                  "representation of the typical values in the Partition record."), 
 7861               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 7862                  "10", "11", "12", "14", "15", "16", "17", "18", 
 7863                  "20", "22", "23", "27", "28", "33", "35", "36", 
 7864                  "38", "49", "51", "52", "53", "54", "55", "60", 
 7865                  "64", "65", "66", "67", "80", "81", "82", "83", 
 7866                  "84", "85", "86", "97", "99", "100", "101", "102", 
 7867                  "103", "104", "105", "113", "115", "116", "117", 
 7868                  "118", "119", "120", "121", "128", "129", "130", 
 7869                  "131", "132", "134", "135", "147", "148", "161", 
 7870                  "163", "164", "165", "166", "177", "179", "180", 
 7871                  "182", "183", "184", "193", "196", "198", "199", 
 7872                  "216", "219", "225", "227", "228", "229", "230", 
 7873                  "239", "240", "241", "242", "243", "244", "246", 
 7874                  "254", "255", "65535"}, 
 7875               Values {"Empty | Microsoft", "DOS 12-bit FAT", 
 7876 karl  1.2        "XENIX root", "XENIX usr", "DOS 16-bit FAT", 
 7877                  "DOS Extended", "DOS 16-bit FAT (> 32MB)", 
 7878                  "OS/2 HPFS | Win NTFS | QNX Ver 2 | Adv UNIX", 
 7879                  "AIX Boot | OS /2 | Dell (Array) | Commodore DOS", 
 7880                  "AIX Data, Coherent", "OS/2 Boot Manager", 
 7881                  "32-bit FAT", "32-bit FAT", "Microsoft 16-bit FAT", 
 7882                  "Microsoft DOS Extended", "OPUS | OS/2 2.0", 
 7883                  "OS/2 (MOSS) Inactive Type 1", 
 7884                  "Compaq Diagnostics Partition | Microsoft", 
 7885                  "OS/2 (MOSS) Inactive Type 4", 
 7886                  "OS/2 (MOSS) Inactive Type 6", 
 7887                  "OS/2 (MOSS) Inactive Type 7", 
 7888                  "OS/2 (MOSS) Inactive Type B", 
 7889                  "OS/2 (MOSS) Inactive Type C", "Microsoft", 
 7890                  "Microsoft", "Microsoft", "Microsoft", "Microsoft", 
 7891                  "Microsoft", "Microsoft", "OS/2 Logical Volume Manager", 
 7892                  "Microsoft", "OS/2 JFS Log", "PowerQuest", 
 7893                  "VENIX 80286 | Series/1 Disk", "Personal RISC Boot", 
 7894                  "Veritas", "Veritas", "OnTrack Disk Manager Read Only DOS", 
 7895                  "OnTrack Disk Manager Read/Write DOS", 
 7896                  "CPM | Microport System V/386 | OnTrack Disk Mgr | Microsoft", 
 7897 karl  1.2        "OnTrack Disk Manager", "OnTrack Disk Manager Non-DOS", 
 7898                  "Micro House EZ-Drive Non-DOS", 
 7899                  "Golden Bow Vfeature | Microsoft", 
 7900                  "Storage Dimensions SpeedStor | Microsoft", 
 7901                  "UNIX - AT&T System V/386 | SCO UNIX", 
 7902                  "Novell NetWare | Speedstore", "Novell NetWare", 
 7903                  "Novell NetWare", "Novell", "Novell", "Novell", 
 7904                  "Microsoft", "Microsoft", "Microsoft", "PC/IX IBM", 
 7905                  "Microsoft", "QNX POSIX", "QNX POSIX (Secondary)", 
 7906                  "QNX POSIX (Secondary)", 
 7907                  "Minix (<=1.4a) | Linux | Microsoft", 
 7908                  "Minix (>=1.4b) | Microsoft", "Linux Swap | Prime", 
 7909                  "Linux Native | Apple", "System Hibernation for APM", 
 7910                  "Microsoft", "HPFS FT mirror", "Amoeba | Microsoft", 
 7911                  "Amoeba BBT | Microsoft", "Microsoft", "Microsoft", 
 7912                  "Microsoft", "BSD/386", "Microsoft", "Microsoft", 
 7913                  "Microsoft", "Microsoft", "Microsoft", 
 7914                  "BSDI fs | Microsoft", "BSDI Swap | Microsoft", 
 7915                  "Microsoft", "Microsoft", "Microsoft", 
 7916                  "Syrinx | HPFS FT Disabled Mirror", "CP/M 86", 
 7917                  "Digital Research CPM-86 | Concurrent DOS | OUTRIGGER", 
 7918 karl  1.2        "SpeedStor 12-bit FAT Extended", 
 7919                  "DOS Read-Only | Storage Dimensions", 
 7920                  "SpeedStor 16-bit FAT Extended", "Microsoft", 
 7921                  "Microsoft", "Intel", "OS/2 Raw Data", 
 7922                  "Storage Dimensions", "DOS (Secondary)", "Microsoft", 
 7923                  "SpeedStor Large | Storage Dimensions", "Microsoft", 
 7924                  "Lan Step | SpeedStor | IBM PS/2 IML", 
 7925                  "Bad Block Tables", "Unknown"} ]
 7926              uint16 PartitionSubtype;
 7927           };
 7928           
 7929           
 7930           // ===================================================================
 7931           // DiskPartitionBasedOnVolume
 7932           // ===================================================================
 7933           [Association, Version ("2.6.0"), Description (
 7934              "DiskPartitions should be BasedOn a single StorageVolume (for "
 7935              "example, exposed by a hardware RAID cabinet), an SCC VolumeSet, "
 7936              "or realized directly in PhysicalMedia. The first two "
 7937              "relationships are made explicit in this association. The latter "
 7938              "is conveyed by the RealizesDiskPartition association.") ]
 7939 karl  1.2 class CIM_DiskPartitionBasedOnVolume : CIM_BasedOn {
 7940           
 7941              [Override ("Antecedent"), Max (1), 
 7942               Description ("The StorageVolume.") ]
 7943              CIM_StorageVolume REF Antecedent;
 7944           
 7945              [Override ("Dependent"), Description (
 7946                  "The DiskPartition which is built on the Volume.") ]
 7947              CIM_DiskPartition REF Dependent;
 7948           };
 7949           
 7950           
 7951           // ===================================================================
 7952           // TapePartition
 7953           // ===================================================================
 7954           [Version ("2.6.0"), Description (
 7955              "Capabilities and management of a TapePartition StorageExtent. "
 7956              "Note that if a PhysicalTape is not partitioned, only a "
 7957              "generic StorageExtent that represents the entire Tape should "
 7958              "be instantiated. TapePartitions may be BasedOn other "
 7959              "StorageExtents or directly Realized on a PhysicalTape.") ]
 7960 karl  1.2 class CIM_TapePartition : CIM_MediaPartition {
 7961           
 7962              [Description (
 7963                  "Number of blocks that are currently unused/not written on "
 7964                  "the Partition. When this number is multiplied by the "
 7965                  "BlockSize, inherited from StorageExtent, the total number "
 7966                  "of bytes available for writing can be computed."),
 7967               Gauge ]
 7968              uint64 UnusedBlocks;
 7969           };
 7970           
 7971           
 7972           // ===================================================================
 7973           // TapePartitionOnSurface
 7974           // ===================================================================
 7975           [Association, Version ("2.6.0"), Description (
 7976              "TapePartitionOnSurface represents the ability to have one or "
 7977              "more TapePartitions on each surface of a PhysicalTape. The "
 7978              "individual surfaces are represented as instances of "
 7979              "CIM_StorageExtent.") ]
 7980           class CIM_TapePartitionOnSurface : CIM_BasedOn {
 7981 karl  1.2 
 7982              [Override ("Antecedent"), Max (1), 
 7983               Description (
 7984                  "The StorageExtent that represents the Tape's surface.") ]
 7985              CIM_StorageExtent REF Antecedent;
 7986           
 7987              [Override ("Dependent"), Description (
 7988                  "The TapePartition which is built on the Extent.") ]
 7989              CIM_TapePartition REF Dependent;
 7990           };
 7991           
 7992           
 7993           // ===================================================================
 7994           // LogicalDisk
 7995           // ===================================================================
 7996           [Version ("2.6.0"), Description (
 7997              "A LogicalDisk is a presentation of a contiguous range of "
 7998              "logical blocks that is identifiable by a FileSystem via the "
 7999              "Disk's DeviceId (key) field. For example in a Windows "
 8000              "environment, the DeviceID field would contain a drive letter. "
 8001              "In a Unix environment, it would contain the access path; and in "
 8002 karl  1.2    "a NetWare environment, DeviceID would contain the volume name. "
 8003              "LogicalDisks are typically built on a DiskPartition or Storage"
 8004              "Volume (for example, exposed by a software volume manager) "
 8005              "using the LogicalDiskBasedOnPartition or LogicalDiskBasedOn"
 8006              "Volume associations. However, it can be based on other "
 8007              "StorageExtents, like CIM_Memory, in the case of a RAM disk. "
 8008              "The latter is described using the LogicalDiskBasedOnExtent "
 8009              "relationship. (Indeed, the BasedOnExtent association is the "
 8010              "superclass for the BasedOnPartition and BasedOnVolume "
 8011              "relationships.)") ] 
 8012           class CIM_LogicalDisk : CIM_StorageExtent {
 8013           };
 8014           
 8015           
 8016           // ===================================================================
 8017           // LogicalDiskBasedOnExtent 
 8018           // ===================================================================
 8019           [Association, Version ("2.6.0"), Description (
 8020              "LogicalDisks can be BasedOn a single StorageVolume, Memory "
 8021              "(in the case of a RAM Disk), a DiskPartition or other " 
 8022              "StorageExtent. These relationships are made explicit in this "
 8023 karl  1.2    "association. Subclasses of the association, LogicalDiskBasedOn"
 8024              "Partition and LogicalDiskBasedOnVolume, detail the 'typical' "
 8025              "semantics.") ]
 8026           class CIM_LogicalDiskBasedOnExtent : CIM_BasedOn {
 8027           
 8028              [Override ("Antecedent"), Max (1), 
 8029               Description ("The StorageExtent.") ]
 8030              CIM_StorageExtent REF Antecedent;
 8031           
 8032              [Override ("Dependent"), Description (
 8033                  "The LogicalDisk which is built on the StorageExtent.") ]
 8034              CIM_LogicalDisk REF Dependent;
 8035           };
 8036           
 8037           
 8038           // ===================================================================
 8039           // LogicalDiskBasedOnVolume
 8040           // ===================================================================
 8041           [Association, Version ("2.6.0"), Description (
 8042              "LogicalDisks can be BasedOn a single Volume (for example, "
 8043              "exposed by a software volume manager), or be BasedOn a Disk"
 8044 karl  1.2    "Partition directly. The former relationship is made explicit "
 8045              "in this association.") ]
 8046           class CIM_LogicalDiskBasedOnVolume : CIM_LogicalDiskBasedOnExtent {
 8047           
 8048              [Override ("Antecedent"), Max (1), 
 8049               Description ("The StorageVolume.") ]
 8050           CIM_StorageVolume REF Antecedent; 
 8051           };
 8052           
 8053           
 8054           // ===================================================================
 8055           // LogicalDiskBasedOnVolumeSet
 8056           // ===================================================================
 8057           [Association, Version ("2.6.0"), Description (
 8058              "LogicalDisks can be BasedOn a VolumeSet. This association is "
 8059              "an optimization where software RAID doesn't exist and the "
 8060              "LogicalDisk is built right on top of a VolumeSet presented by "
 8061              "an SCC cabinet. However, this would be better modeled by a "
 8062              "DiskPartition BasedOn the VolumeSet (described using the "
 8063              "DiskPartitionBasedOnVolume association) and then basing the "
 8064              "LogicalDisk on the DiskPartition (using the LogicalDisk"
 8065 karl  1.2    "BasedOnPartition association).") ] 
 8066           class CIM_LogicalDiskBasedOnVolumeSet : CIM_LogicalDiskBasedOnVolume {
 8067           
 8068              [Override ("Antecedent"), Max (1),
 8069               Description ("The VolumeSet.") ]
 8070              CIM_VolumeSet REF Antecedent;
 8071           };
 8072           
 8073           
 8074           // ===================================================================
 8075           // LogicalDiskBasedOnPartition
 8076           // ===================================================================
 8077           [Association, Version ("2.6.0"), Description (
 8078              "LogicalDisks can be BasedOn a DiskPartition. For example, a "
 8079              "personal computer's C: drive may be located on a Partition on "
 8080              "local PhysicalMedia. In this association of LogicalDisks to "
 8081              "Partitions, note that the cardinality of the Antecedent, Disk"
 8082              "Partition, is Max (1). This dictates that a LogicalDisk can not "
 8083              "span more than one Partition. However, there are cases where "
 8084              "this is true. When it occurs, the LogicalDisk is really based "
 8085              "on some kind of RAID configuration (for example, a mirror or "
 8086 karl  1.2    "stripe set). In these scenarios, the LogicalDisk is more "
 8087              "correctly BasedOn a StorageVolume. To prevent incorrectly using "
 8088              "the LogicalDiskBasedOnPartition association, the Max (1) "
 8089              "qualifier was put on the Antecedent reference to the "
 8090              "DiskPartition.") ] 
 8091           class CIM_LogicalDiskBasedOnPartition : CIM_LogicalDiskBasedOnExtent {
 8092           
 8093              [Override ("Antecedent"), Max (1),
 8094               Description ("The DiskPartition.") ]
 8095              CIM_DiskPartition REF Antecedent;
 8096           };
 8097           
 8098           
 8099           // ===================================================================
 8100           // AggregatePExtent
 8101           // ===================================================================
 8102           [Version ("2.6.0"), Description (
 8103              "An AggregatePExtent is used to model an SCC RAID "
 8104              "implementation. AggregatePExtents provide summary information "
 8105              "about the addressable logical blocks which are in the same "
 8106              "StorageRedundancyGroup and reside on the same storage device. "
 8107 karl  1.2    "This is an alternative grouping for PhysicalExtents, when only "
 8108              "summary information is needed or when automatic configuration "
 8109              "is used.") ] 
 8110           class CIM_AggregatePExtent : CIM_StorageExtent {
 8111           
 8112              [Override ("NumberOfBlocks"),
 8113               Description (
 8114                  "Total number of blocks (including the check data blocks) "
 8115                  "contained in this AggregatePExtent.  The block size (an "
 8116                  "inherited property) should be set to the same value as for "
 8117                  "the MediaAccessDevice associated with this Extent."),
 8118               MappingStrings {"MIF.DMTF|Aggregate Physical Extent|001.2"} ]
 8119              uint64 NumberOfBlocks;
 8120           
 8121              [Description (
 8122                  "The number of blocks contained in this AggregatePExtent "
 8123                  "to be used as check data. If this AggregatePExtent is "
 8124                  "available, then this value shall be zero."), 
 8125               MappingStrings {"MIF.DMTF|Aggregate Physical Extent|001.3"} ]
 8126              uint64 BlocksOfCheckData;
 8127           };
 8128 karl  1.2 
 8129           
 8130           // ===================================================================
 8131           // AggregatePSExtent
 8132           // ===================================================================
 8133           [Version ("2.6.0"), Description (
 8134              "An AggregatePSExtent is used to model an SCC RAID "
 8135              "implementation. AggregatePSExtents define the number of "
 8136              "addressable logical blocks on a single storage device, "
 8137              "excluding any logical blocks mapped as check data. "
 8138              "This is an alternative grouping for ProtectedSpaceExtents, "
 8139              "when only summary information is needed or when automatic "
 8140              "configuration is used.") ] 
 8141           class CIM_AggregatePSExtent : CIM_StorageExtent {
 8142           
 8143              [Override ("NumberOfBlocks"), Description (
 8144                  "Total number of user data blocks that are contained in this "
 8145                  "Extent."),
 8146               MappingStrings {
 8147                  "MIF.DMTF|Aggregate Protected Space Extent|001.2"} ]
 8148              uint64 NumberOfBlocks;   
 8149 karl  1.2 };
 8150           
 8151           
 8152           // ===================================================================
 8153           // AggregatePSExtentBasedOnPExtent
 8154           // ===================================================================
 8155           [Association, Version ("2.6.0"), Description (
 8156              "AggregatePSExtents are BasedOn a single PhysicalExtent. This "
 8157              "relationship is made explicit in this association.") ]
 8158           class CIM_AggregatePSExtentBasedOnPExtent : CIM_BasedOn {
 8159           
 8160              [Override ("Antecedent"), Max (1), 
 8161               Description ("The PhysicalExtent.") ]
 8162              CIM_PhysicalExtent REF Antecedent;
 8163           
 8164              [Override ("Dependent"),  Description (
 8165                  "The AggregatePSExtent which is built on the "
 8166                  "PhysicalExtent.") ]
 8167              CIM_AggregatePSExtent REF Dependent;
 8168           };
 8169           
 8170 karl  1.2 
 8171           // ===================================================================
 8172           // AggregatePSExtentBasedOnAggregatePExtent
 8173           // ===================================================================
 8174           [Association, Version ("2.6.0"), Description (
 8175              "AggregatePSExtents are BasedOn a single AggregatePExtent. This "
 8176              "relationship is made explicit in this association.") ]
 8177           class CIM_AggregatePSExtentBasedOnAggregatePExtent : CIM_BasedOn {
 8178           
 8179              [Override ("Antecedent"), Max (1),
 8180               Description ("The AggregatePExtent.") ]
 8181              CIM_AggregatePExtent REF Antecedent;
 8182           
 8183              [Override ("Dependent"), Description (
 8184                  "The AggregatePSExtent which is built on the Aggregate"
 8185                  "PExtent.") ]
 8186              CIM_AggregatePSExtent REF Dependent;
 8187           };
 8188           
 8189           
 8190           // ===================================================================
 8191 karl  1.2 // Snapshot 
 8192           // ===================================================================
 8193           [Version ("2.6.0"), Description (
 8194              "The Snapshot class is an optional construct. It can be "
 8195              "used to represent an Extent that contains a full copy of "
 8196              "another Extent, or the changes to that Extent when performing "
 8197              "a delta-based (delta before or delta after) copy. \n"
 8198              "Snapshot's definition in CIM is not equivalent to the act "
 8199              "of creating a volume or file-based snapshot, or a point in "
 8200              "time copy. It is at a much lower level and represents the "
 8201              "use of storage to hold a copied image of an Extent, or to hold "
 8202              "changes to an Extent.  Use of the Snapshot object when making "
 8203              "a full copy is only recommended if the purpose is to describe "
 8204              "the existence of a copy. (This use will be very infrequent.) "
 8205              "The problem with describing an Extent solely as a 'snapshot' "
 8206              "is that when the snapshot/copy is broken, the object must be "
 8207              "destroyed. Typically, this object still holds valid data, and "
 8208              "would have to be reinstantiated. If the 'full copy' object "
 8209              "is to be treated as a StorageVolume or more general Extent, "
 8210              "then it should be modeled as such from the beginning - "
 8211              "i.e., not as an instance of Snapshot but as an instance of a "
 8212 karl  1.2    "generic StorageExtent or StorageVolume. In this case, the "
 8213              "Synchronized association would be used to describe that one "
 8214              "StorageExtent is synchronized with another. \n"
 8215              "When describing a delta-based snapshot/point in time copy, "
 8216              "the Snapshot object represents the store holding the before/after "
 8217              "image changes to the original Extent. For example, when doing a "
 8218              "'delta before' Snapshot, the resultant target would be modeled "
 8219              "as a StorageExtent that is BasedOn the original Extent and the "
 8220              "instance of Snapshot (that holds the changes to the original "
 8221              "Extent).") ]
 8222           class CIM_Snapshot : CIM_StorageExtent {
 8223           
 8224              [Description ("True indicates that the snapshot is synced.") ]
 8225              boolean IsSynced;
 8226           
 8227              [Description (
 8228                  "The time stamp indicating when the sync occurred.") ]
 8229              datetime SyncTime;
 8230           };
 8231           
 8232           
 8233 karl  1.2 // ===================================================================
 8234           // SnapshotOfExtent
 8235           // ===================================================================
 8236           [Association, Version ("2.6.0"), Description (
 8237              "SnapshotOfExtent is an association between an Extent and "
 8238              "its Snapshot. This relationship is made explicit in this "
 8239              "association.") ]
 8240           class CIM_SnapshotOfExtent : CIM_Dependency {
 8241           
 8242              [Override ("Antecedent"), Max (1), 
 8243               Description ("The StorageExtent.") ]
 8244              CIM_StorageExtent REF Antecedent;
 8245           
 8246              [Override ("Dependent"), 
 8247               Description ("The Snapshot.") ]
 8248              CIM_Snapshot REF Dependent;
 8249           
 8250              [Description ("The type of snapshot."), 
 8251               ValueMap {"0", "1", "2", "3", "4"},  
 8252               Values {"Other", "Unknown", "Copy", "Before Delta", 
 8253                  "After Delta"} ]
 8254 karl  1.2    uint16 SnapshotType;
 8255           };
 8256           
 8257           
 8258           // ===================================================================
 8259           // Memory
 8260           // ===================================================================
 8261           [Version ("2.6.0"), Description (
 8262              "Capabilities and management of Memory-related LogicalDevices.") ] 
 8263           class CIM_Memory : CIM_StorageExtent {
 8264           
 8265              [Override ("ErrorMethodology"),
 8266               Description (
 8267                  "ErrorMethodology for Memory is a string property that "
 8268                  "indicates whether parity or CRC algorithms, ECC or other "
 8269                  "mechanisms are used. Details on the algorithm can also "
 8270                  "be supplied."),
 8271               MappingStrings {"MIF.DMTF|Physical Memory Array|001.7"} ]
 8272              string ErrorMethodology;
 8273           
 8274              [Description (
 8275 karl  1.2        "The beginning address, referenced by an application or "
 8276                  "operating system and mapped by a memory controller, for "
 8277                  "this Memory object. The starting address is specified in "
 8278                  "KBytes."),
 8279               Units ("KiloBytes"),
 8280               MappingStrings {"MIF.DMTF|Memory Array Mapped Addresses|001.3",
 8281                  "MIF.DMTF|Memory Device Mapped Addresses|001.4"} ]
 8282              uint64 StartingAddress;
 8283           
 8284              [Description (
 8285                  "The ending address, referenced by an application or "
 8286                  "operating system and mapped by a memory controller, for "
 8287                  "this Memory object. The ending address is specified in "
 8288                  "KBytes."),
 8289               Units ("KiloBytes"),
 8290               MappingStrings {"MIF.DMTF|Memory Array Mapped Addresses|001.4",
 8291                  "MIF.DMTF|Memory Device Mapped Addresses|001.5"} ]
 8292              uint64 EndingAddress;
 8293           
 8294              [Description (
 8295                  "An integer enumeration describing the type of error that "
 8296 karl  1.2        "occurred most recently. For example, single (value=6) or "
 8297                  "double bit errors (7) can be specified using this property. "
 8298                  "The values, 12-14, are undefined in the CIM Schema since in "
 8299                  "DMI, they mix the semantics of the type of error and whether "
 8300                  "it was correctable or not.  The latter is indicated in the "
 8301                  "property, CorrectableError."),
 8302               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 8303                  "11", "12", "13", "14"},
 8304               Values {"Other", "Unknown", "OK", "Bad Read", "Parity Error",
 8305                  "Single-Bit Error", "Double-Bit Error", "Multi-Bit Error",
 8306                  "Nibble Error", "Checksum Error", "CRC Error", "Undefined",
 8307                  "Undefined", "Undefined"}, 
 8308               MappingStrings {"MIF.DMTF|Memory Device|005",
 8309                  "MIF.DMTF|Physical Memory Array|001.8"},
 8310               ModelCorrespondence {"CIM_Memory.OtherErrorDescription"} ]
 8311              uint16 ErrorInfo;
 8312           
 8313              [Description (
 8314                  "Free form string providing more information if the Error"
 8315                  "Type property is set to 1, \"Other\". If not set to 1, this "
 8316                  "string has no meaning."),
 8317 karl  1.2     ModelCorrespondence {"CIM_Memory.ErrorInfo"} ]
 8318              string OtherErrorDescription;
 8319           
 8320              [Description (
 8321                  "Boolean indicating that the most recent error was "
 8322                  "correctable. If the ErrorInfo property is equal to 3, " 
 8323                  "\"OK\", then this property has no meaning."),
 8324               MappingStrings {"MIF.DMTF|Memory Device|005",
 8325                  "MIF.DMTF|Physical Memory Array|001.8"} ]
 8326              boolean CorrectableError;
 8327           
 8328              [Description (
 8329                  "The time that the last memory error occurred. The type of "
 8330                  "error is described by the ErrorInfo property. If the Error"
 8331                  "Info property is equal to 3, \"OK\", then this property has "
 8332                  "no meaning.") ]
 8333              datetime ErrorTime;
 8334           
 8335              [Description (
 8336                  "An integer enumeration indicating the memory access "
 8337                  "operation that caused the last error. The type of error is "
 8338 karl  1.2        "described by the ErrorInfo property. If the ErrorInfo "
 8339                  "property is equal to 3, \"OK\", then this property "
 8340                  "has no meaning."),
 8341               ValueMap {"1", "2", "3", "4", "5"}, 
 8342               Values {"Other", "Unknown", "Read", "Write", "Partial Write"},
 8343               MappingStrings {"MIF.DMTF|Memory Device|005",
 8344                  "MIF.DMTF|Physical Memory Array|001.10"} ]
 8345              uint16 ErrorAccess;
 8346           
 8347              [Description (
 8348                  "The size of the data transfer in bits that caused the last "
 8349                  "error. 0 indicates no error. If the ErrorInfo property "
 8350                  "is equal to 3, \"OK\", then this property should be set "
 8351                  "to 0."),
 8352               Units ("Bits"),       
 8353               MappingStrings {"MIF.DMTF|Memory Device|005",
 8354                  "MIF.DMTF|Physical Memory Array|001.11"} ]
 8355              uint32 ErrorTransferSize;
 8356           
 8357              [OctetString, Description (
 8358                  "Data captured during the last erroneous mebmory access. "
 8359 karl  1.2        "The data occupies the first n octets of the array necessary "
 8360                  "to hold the number of bits specified by the ErrorTransferSize "
 8361                  "property. If ErrorTransferSize is 0, then this property "
 8362                  "has no meaning."),
 8363                  ArrayType ("Indexed"),   
 8364               MappingStrings {"MIF.DMTF|Memory Device|005",
 8365                  "MIF.DMTF|Physical Memory Array|001.12"} ]
 8366              uint8 ErrorData[64];
 8367           
 8368              [Description (
 8369                  "The ordering for data stored in the ErrorData property. "
 8370                  "\"Least Significant Byte First\" (value=1) or "
 8371                  "\"Most Significant Byte First\" (2) can be specified. If "
 8372                  "ErrorTransferSize is 0, then this property has no meaning."),
 8373               ValueMap {"0", "1", "2"}, 
 8374               Values {"Unknown", "Least Significant Byte First",
 8375                  "Most Significant Byte First"}       ]
 8376              uint16 ErrorDataOrder;
 8377           
 8378              [Description (
 8379                  "Specifies the address of the last memory error. The type "
 8380 karl  1.2        "of error is described by the ErrorInfo property. "
 8381                  "If the ErrorInfo property is equal to 3, \"OK\", then this "
 8382                  "property has no meaning."),     
 8383               MappingStrings {"MIF.DMTF|Memory Device|005", 
 8384                  "MIF.DMTF|Memory Device|005", 
 8385                  "MIF.DMTF|Physical Memory Array|001.14"} ]
 8386              uint64 ErrorAddress;
 8387           
 8388              [Description (
 8389                  "Boolean indicating whether the address information in "
 8390                  "the property, ErrorAddress, is a system-level address (TRUE) " 
 8391                  "or a physical address (FALSE). If the ErrorInfo property is "
 8392                  "equal to 3, \"OK\", then this property has no meaning.") ]
 8393              boolean SystemLevelAddress;
 8394           
 8395              [Description (
 8396                  "Specifies the range, in bytes, to which the last error can be "
 8397                  "resolved. For example, if error addresses are resolved to bit "
 8398                  "11 (ie, on a typical page basis), then errors can be "
 8399                  "resolved to 4K boundaries and this property is set to 4000. "
 8400                  "If the ErrorInfo property is equal to 3, \"OK\", then this "
 8401 karl  1.2        "property has no meaning."),
 8402               Units ("Bytes"),
 8403               MappingStrings {"MIF.DMTF|Memory Device|005",
 8404                  "MIF.DMTF|Physical Memory Array|001.15"} ]
 8405              uint64 ErrorResolution;
 8406           
 8407              [OctetString, Description (
 8408                  "An array of octets holding additional error information. "
 8409                  "An example is ECC Syndrome or the return of the check bits "
 8410                  "if a CRC-based ErrorMethodology is used. In the latter case, "
 8411                  "if a single bit error is recognized and the CRC algorithm "
 8412                  "is known, it is possible to determine the exact bit that "
 8413                  "failed.  This type of data (ECC Syndrome, Check Bit or "
 8414                  "Parity Bit data, or other vendor supplied information) is "
 8415                  "included in this field. If the ErrorInfo property is "
 8416                  "equal to 3, \"OK\", then AdditionalErrorData has no meaning."),
 8417               MappingStrings {"MIF.DMTF|Memory Device|005",
 8418                  "MIF.DMTF|Physical Memory Array|001.13"} ]
 8419              uint8 AdditionalErrorData[64];
 8420           };
 8421           
 8422 karl  1.2 
 8423           // ===================================================================
 8424           // AssociatedMemory
 8425           // ===================================================================
 8426           [Association, Version ("2.6.0"), Description (
 8427              "LogicalDevices may have Memory installed on them or "
 8428              "otherwise associated with them - such as CacheMemory. "
 8429              "This is made explicit in this association.") ] 
 8430           class CIM_AssociatedMemory : CIM_Dependency {
 8431           
 8432              [Override ("Antecedent"), Description (
 8433                  "Memory installed on or associated with a Device.") ]
 8434              CIM_Memory REF Antecedent;
 8435           
 8436              [Override ("Dependent"), Description (
 8437                  "The LogicalDevice.") ]
 8438              CIM_LogicalDevice REF Dependent;
 8439           };
 8440           
 8441           
 8442           // ===================================================================
 8443 karl  1.2 // ComputerSystemMemory
 8444           // ===================================================================
 8445           [Association, Aggregation, Version ("2.6.0"), Description (
 8446              "Association indicating that memory is installed and required "
 8447              "for the UnitaryComputerSystem to operate. At least one "
 8448              "Memory StorageExtent is required. Note that this relationship "
 8449              "inherits from the SystemDevice association, and therefore, "
 8450              "the Memory StorageExtent is weak to the aggregating Unitary"
 8451              "ComputerSystem.") ] 
 8452           class CIM_ComputerSystemMemory : CIM_SystemDevice {
 8453           
 8454              [Override ("GroupComponent"), Aggregate,
 8455               Description ("The UnitaryComputerSystem.") ]
 8456              CIM_UnitaryComputerSystem REF GroupComponent;
 8457           
 8458              [Override ("PartComponent"), Description (
 8459                  "The Memory StorageExtent which is part of the "
 8460                  "UnitaryComputerSystem.") ]
 8461              CIM_Memory REF PartComponent;
 8462           };
 8463           
 8464 karl  1.2 
 8465           // ===================================================================
 8466           // AssociatedProcessorMemory
 8467           // ===================================================================
 8468           [Association, Version ("2.6.0"), Description (
 8469              "Associates the Processor and system Memory, or a Processor's "
 8470              "Cache. ") ]
 8471           class CIM_AssociatedProcessorMemory : CIM_AssociatedMemory { 
 8472           
 8473              [Override ("Dependent"), 
 8474               Description (
 8475                  "The Processor that accesses the Memory or uses the Cache.") ]
 8476              CIM_Processor REF Dependent; 
 8477           
 8478              [Description (
 8479                  "Speed of the bus, in MHertz, between the Processor and "
 8480                  "Memory. "), 
 8481               Units ("MegaHertz") ]
 8482              uint32 BusSpeed;
 8483           };
 8484           
 8485 karl  1.2 
 8486           // ===================================================================
 8487           // NonVolatileStorage
 8488           // ===================================================================
 8489           [Version ("2.6.0"), Description (
 8490              "Capabilities and management of NV Storage. Non-volatile memory "
 8491              "natively includes flash and ROM storage. In addition, NV memory "
 8492              "can be BasedOn VolatileStorage, if the volatile memory is backed "
 8493              "by a Battery. This scenario would be completely described by an "
 8494              "instance of the AssociatedBattery relationship, referencing the "
 8495              "NonVolatileStorage as the Dependent and the Battery as the "
 8496              "Antecedent, and an instance of the BasedOn relationship, "
 8497              "referencing the NonVolatileStorage as the Dependent and the "
 8498              "VolatileStorage as the Antecedent.") ]
 8499           class CIM_NonVolatileStorage : CIM_Memory {
 8500           
 8501              [Description ("Indicating that the NV storage is writeable.") ]
 8502              boolean IsWriteable;
 8503           
 8504              [Description (
 8505                  "Boolean indicating that at least some portion of the "
 8506 karl  1.2        "NonVolatileStorage is writeable by applications.") ]
 8507              boolean ApplicationWriteable;
 8508           
 8509              [Description (
 8510                  "When at least some portion of the NonVolatileStorage is "
 8511                  "writeable (ApplicationWriteable property = TRUE), StartAddress"
 8512                  "forApplcationWrite indicates the starting address for "
 8513                  "application data. If the ApplicationWriteable property is "
 8514                  "FALSE, this property is undefined."), 
 8515               ModelCorrespondence {
 8516                  "CIM_NonVolatileStorage.ApplicationWriteable"} ]
 8517              uint64 StartAddressForApplicationWrite;
 8518           
 8519              [Description (
 8520                  "When at least some portion of the NonVolatileStorage is "
 8521                  "writeable (ApplicationWriteable property = TRUE), Application"
 8522                  "WritableSize indicates the number of bits available for "
 8523                  "application data. If the ApplicationWriteable property is "
 8524                  "FALSE, this property is undefined."), 
 8525               Units ("Bits"), 
 8526               ModelCorrespondence {
 8527 karl  1.2        "CIM_NonVolatileStorage.ApplicationWriteable"} ]
 8528              uint64 ApplicationWriteableSize;
 8529           };
 8530           
 8531           
 8532           // ===================================================================
 8533           // BIOSLoadedInNV
 8534           // ===================================================================
 8535           [Association, Version ("2.6.0"), Description (
 8536              "A link between BIOSElement and NonVolatileStorage where "
 8537              "the BIOS is loaded.") ] 
 8538           class CIM_BIOSLoadedInNV : CIM_Dependency {
 8539           
 8540              [Override ("Antecedent"),
 8541               Description ("The non-volatile storage.") ]
 8542              CIM_NonVolatileStorage REF Antecedent;
 8543           
 8544              [Override ("Dependent"),
 8545               Description ("The BIOS stored in the NonVolatile Extent.") ]
 8546              CIM_BIOSElement REF Dependent;
 8547           
 8548 karl  1.2    [Description (
 8549                  "The starting address where the BIOS is located in "
 8550                  "non-volatile storage.") ]
 8551              uint64 StartingAddress;
 8552           
 8553              [Description (
 8554                  "The ending address where the BIOS is located in "
 8555                  "non-volatile storage.") ]
 8556              uint64 EndingAddress;        
 8557           };
 8558           
 8559           
 8560           // ===================================================================
 8561           // VolatileStorage
 8562           // ===================================================================
 8563           [Version ("2.6.0"), Description (
 8564              "Capabilities and management of Volatile Storage.") ] 
 8565           class CIM_VolatileStorage : CIM_Memory {
 8566           
 8567              [Description (
 8568                  "Indicates whether this Memory can be cached or not."),
 8569 karl  1.2     MappingStrings {"MIF.DMTF|System Resource Memory Info|002"} ]
 8570              boolean Cacheable;
 8571           
 8572              [Description (
 8573                  "An enumeration indicating the cache type that is "
 8574                  "compatible with this Memory. For example, 4 indicates "
 8575                  "write-through cache.  If the Cacheable property is "
 8576                  "set to false, then this property does not have meaning and "
 8577                  "should be set to 5, \"Not Applicable\"."),
 8578               ValueMap {"1", "2", "3", "4", "5"},  
 8579               Values {"Other", "Unknown", "Write-Back", "Write-Through",
 8580                  "Not Applicable"},
 8581               MappingStrings {"MIF.DMTF|System Resource Memory Info|002"} ]
 8582              uint16 CacheType;
 8583           };
 8584           
 8585           
 8586           // ===================================================================
 8587           // CacheMemory
 8588           // ===================================================================
 8589           [Version ("2.6.0"), Description (
 8590 karl  1.2    "Capabilities and management of Cache Memory. Cache memory is "
 8591              "dedicated or allocated RAM that a Processor searches first "
 8592              "for data, before going to 'regular' memory. CacheMemory is "
 8593              "used to speed up the delivery of data to a Processor. It is "
 8594              "usually described by its closeness to the Processor (for "
 8595              "example, Primary or Secondary Cache). \n"
 8596              "If a DiskDrive includes RAM allocated for holding the disk's "
 8597              "most recently read and/or adjacent data (in order to speed "
 8598              "up retrieval), this also would be modeled as CacheMemory. "
 8599              "Note that CacheMemory is NOT operating system or application "
 8600              "level buffers but actual RAM allocated for caching data for "
 8601              "a Processor, from a hard disk, etc.") ]
 8602           class CIM_CacheMemory : CIM_Memory {
 8603           
 8604              [Description (
 8605                  "Defines whether this is the Primary (value=3), Secondary "
 8606                  "(value=4) or Tertiary (value=5) Cache. Also, \"Other\" (1), "
 8607                  "\"Unknown\" (2) and \"Not Applicable\" (6) can be defined."),
 8608               ValueMap {"1", "2", "3", "4", "5", "6"},
 8609               Values {"Other", "Unknown", "Primary", "Secondary", "Tertiary", 
 8610                  "Not Applicable"},
 8611 karl  1.2     MappingStrings {"MIF.DMTF|System Cache|006"} ]
 8612              uint16 Level;
 8613           
 8614              [Description (
 8615                  "Defines whether this is write-back (value=3) or write-through "
 8616                  "(value=4) Cache, or whether this information \"Varies with "
 8617                  "Address\" (5) or is defined individually for each I/O (6). "
 8618                  "Also, \"Other\" (1) and \"Unknown\" (2) can be specified."),         
 8619               ValueMap {"1", "2", "3", "4", "5", "6"},
 8620               Values {"Other", "Unknown", "Write Back", "Write Through",
 8621                  "Varies with Address", "Determination Per I/O"},
 8622               MappingStrings {"MIF.DMTF|System Cache|006"} ]
 8623              uint16 WritePolicy;
 8624           
 8625              [Description (
 8626                  "Defines whether this is for instruction caching (value=3), "
 8627                  "data caching (value=4) or both (value=5, \"Unified\"). "
 8628                  "Also, \"Other\" (1) and \"Unknown\" (2) can be defined."),
 8629               ValueMap {"1", "2", "3", "4", "5"},
 8630               Values {"Other", "Unknown", "Instruction", "Data", "Unified"},
 8631               MappingStrings {"MIF.DMTF|System Cache|006"} ]
 8632 karl  1.2    uint16 CacheType;
 8633           
 8634              [Description (
 8635                  "Size, in bytes, of a single cache bucket or line."),
 8636               Units ("Bytes"),
 8637               MappingStrings {"MIF.DMTF|System Cache|006"} ]
 8638              uint32 LineSize;
 8639           
 8640              [Description (
 8641                  "An integer enumeration describing the algorithm to "
 8642                  "determine which cache lines or buckets should be re-used."),
 8643               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
 8644               Values {"Other", "Unknown", "Least Recently Used (LRU)",
 8645                  "First In First Out (FIFO)", "Last In First Out (LIFO)",
 8646                  "Least Frequently Used (LFU)", 
 8647                  "Most Frequently Used (MFU)", 
 8648                  "Data Dependent Multiple Algorithms"},
 8649               MappingStrings {"MIF.DMTF|System Cache|006"} ]
 8650              uint16 ReplacementPolicy;
 8651           
 8652              [Description (
 8653 karl  1.2        "Policy that shall be employed by the Cache for handling "
 8654                  "read requests. For example, \"Read\", \"Read-Ahead\" or "
 8655                  "both can be specified using the values, 3, 4 or 5, "
 8656                  "respectively. If the read policy is determined individually "
 8657                  "(ie, for each request), then the value 6 (\"Determination "
 8658                  "per I/O\") should be specified. \"Other\" (1) and "
 8659                  "\"Unknown\" (2) are also valid values."),         
 8660               ValueMap {"1", "2", "3", "4", "5", "6"},
 8661               Values {"Other", "Unknown", "Read", "Read-Ahead", 
 8662                  "Read and Read-Ahead", "Determination Per I/O"},
 8663               MappingStrings {"MIF.DMTF|System Cache|006"} ]
 8664              uint16 ReadPolicy;
 8665           
 8666              [Description (
 8667                  "Maximum amount of time, in seconds, dirty lines or "
 8668                  "buckets may remain in the Cache before they are flushed. "
 8669                  "A value of zero indicated that a cache flush is not "
 8670                  "controlled by a flushing timer."), 
 8671               Units ("Seconds"),
 8672               MappingStrings {"MIF.DMTF|System Cache|006"} ]
 8673              uint32 FlushTimer;
 8674 karl  1.2 
 8675              [Description (
 8676                  "An integer enumeration defining the system cache "
 8677                  "associativity. For example, 6 indicates a fully associative "
 8678                  "cache."),
 8679               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
 8680               Values {"Other", "Unknown", "Direct Mapped", 
 8681                  "2-way Set-Associative",
 8682                  "4-way Set-Associative", "Fully Associative",
 8683                  "8-way Set-Associative", "16-way Set-Associative"},
 8684               MappingStrings {"MIF.DMTF|System Cache|006"} ]
 8685              uint16 Associativity;
 8686           };
 8687           
 8688           
 8689           // ===================================================================
 8690           //    UML Page 12 - Services and Printing
 8691           // ===================================================================
 8692           // ===================================================================
 8693           // Printer
 8694           // ===================================================================
 8695 karl  1.2 [Version ("2.6.0"), Description (
 8696              "Capabilities and management of the Printer LogicalDevice.") ] 
 8697           class CIM_Printer : CIM_LogicalDevice {   
 8698           
 8699              [Description (
 8700                  "Status information for a Printer, beyond that specified "
 8701                  "in the LogicalDevice Availability property. Values include "
 8702                  "\"Idle\" (3) and an indication that the Device is currently "
 8703                  "printing (4)."),
 8704               ValueMap {"1", "2", "3", "4", "5", "6", "7"},
 8705               Values {"Other", "Unknown", "Idle", "Printing", "Warmup",
 8706                  "Stopped Printing", "Offline"},
 8707               MappingStrings {"MIB.IETF|Printer-MIB.hrPrinterStatus"} ]
 8708              uint16 PrinterStatus;
 8709           
 8710              [Description ("Printer error information."),
 8711               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 8712                  "10", "11"},
 8713               Values {"Unknown", "Other", "No Error", "Low Paper", 
 8714                  "No Paper", "Low Toner", 
 8715                  "No Toner", "Door Open", "Jammed", "Offline", 
 8716 karl  1.2        "Service Requested", "Output Bin Full"}, 
 8717               ModelCorrespondence {"CIM_Printer.ErrorInformation"}, 
 8718               MappingStrings {
 8719                  "MIB.IETF|Printer-MIB.hrPrinterDetectedErrorState"} ]
 8720              uint16 DetectedErrorState;
 8721           
 8722              [Description (
 8723                  "An array providing supplemental information for the "
 8724                  "current error state, indicated in DetectedErrorState."),
 8725               ModelCorrespondence {"CIM_Printer.DetectedErrorState"} ]
 8726              string ErrorInformation[];
 8727           
 8728              [Description (
 8729                  "An integer array indicating the types of paper supported."),
 8730               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 8731                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 8732                  "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", 
 8733                  "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", 
 8734                  "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", 
 8735                  "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", 
 8736                  "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", 
 8737 karl  1.2        "71", "72", "73", "74", "75"},
 8738               Values {"Unknown", "Other", "A", "B", "C", "D", "E", 
 8739                  "Letter", "Legal", "NA-10x13-Envelope", "NA-9x12-Envelope", 
 8740                  "NA-Number-10-Envelope", "NA-7x9-Envelope", 
 8741                  "NA-9x11-Envelope", "NA-10x14-Envelope",
 8742                  "NA-Number-9-Envelope", "NA-6x9-Envelope",
 8743                  "NA-10x15-Envelope", "A0", "A1", "A2", "A3", "A4", "A5",
 8744                  "A6", "A7", "A8", "A9" "A10", "B0", "B1", "B2", "B3", "B4",
 8745                  "B5", "B6", "B7", "B8", "B9", "B10", "C0", "C1", "C2" "C3",
 8746                  "C4", "C5", "C6", "C7", "C8", "ISO-Designated", "JIS B0",
 8747                  "JIS B1", "JIS B2", "JIS B3", "JIS B4", "JIS B5", "JIS B6",
 8748                  "JIS B7", "JIS B8", "JIS B9", "JIS B10", 
 8749                  "NA-Letter", "NA-Legal", "B4-Envelope", "B5-Envelope", 
 8750                  "C3-Envelope", "C4-Envelope", "C5-Envelope", "C6-Envelope", 
 8751                  "Designated-Long-Envelope", "Monarch-Envelope", 
 8752                  "Executive", "Folio", "Invoice", "Ledger", "Quarto"} ]
 8753              uint16 PaperSizesSupported[];
 8754           
 8755              [Description (
 8756                  "An array of free-form strings specifying the types of "
 8757                  "paper that are currently available on the Printer. Each "
 8758 karl  1.2        "string should be expressed in the form specified by "
 8759                  "ISO/IEC 10175 Document Printing Application (DPA) which "
 8760                  "is also summarized in Appendix C of RFC 1759 (Printer MIB). "
 8761                  "Examples of valid strings are \"iso-a4-colored\" and "
 8762                  "\"na-10x14-envelope\". By definition a paper size that "
 8763                  "is available and listed in PaperTypesAvailable should "
 8764                  "also appear in the PaperSizesSupported property."), 
 8765               ArrayType ("Indexed"), 
 8766               ModelCorrespondence {"CIM_PrintJob.RequiredPaperType", 
 8767                  "CIM_PrintService.PaperTypesAvailable"}, 
 8768               MappingStrings {"MIB.IETF|Printer-MIB.prtInputMediaName"} ]
 8769              string PaperTypesAvailable[];
 8770           
 8771              [Description (
 8772                  "Specifies the paper type that the Printer will use if a "
 8773                  "PrintJob does not specify a particular type. The string "
 8774                  "should be expressed in the form specified by ISO/IEC "
 8775                  "10175 Document Printing Application (DPA) which is also "
 8776                  "summarized in Appendix C of RFC 1759 (Printer MIB)."), 
 8777               ModelCorrespondence {"CIM_Printer.PaperTypesAvailable"} ]
 8778              string DefaultPaperType;
 8779 karl  1.2 
 8780              [Description (
 8781                  "Specifies the paper type that the Printer is currently "
 8782                  "using. The string should be expressed in the form specified "
 8783                  "by ISO/IEC 10175 Document Printing Application (DPA) which "
 8784                  "is also summarized in Appendix C of RFC 1759 (Printer MIB)."), 
 8785               ModelCorrespondence {"CIM_Printer.PaperTypesAvailable"} ]
 8786              string CurrentPaperType;
 8787           
 8788              [Description (
 8789                  "An array indicating the print languages natively supported."),
 8790               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 8791                  "11", "12", "13", "14", "15", "16", "17", "18", "19",
 8792                  "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 8793                  "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 8794                  "38", "39", "40", "41", "42", "43", "44", "45", "46", "47"},
 8795               Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 8796                  "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 8797                  "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 8798                  "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 8799                  "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 8800 karl  1.2        "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 8801                  "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 8802                  "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
 8803               MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"},
 8804               ModelCorrespondence {"CIM_Printer.MimeTypesSupported", 
 8805                  "CIM_PrintJob.Language", 
 8806                  "CIM_PrintService.LanguagesSupported"} ]
 8807              uint16 LanguagesSupported[];
 8808           
 8809              [Description (
 8810                  "An array of free-form strings providing more detailed "
 8811                  "explanations of any mime types that are supported by "
 8812                  "the Printer. If data is provided for this property, then "
 8813                  "the value 47, \"Mime\", should be included in the Languages"
 8814                  "Supported property."), 
 8815               ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 8816                  "CIM_PrintJob.MimeTypes", 
 8817                  "CIM_PrintService.MimeTypesSupported"} ]
 8818              string MimeTypesSupported[];
 8819           
 8820              [Description (
 8821 karl  1.2        "Indicates the current printer language being used. A "
 8822                  "language that is being used by the Printer should also be "
 8823                  "listed in LanguagesSupported."), 
 8824               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 8825                  "11", "12", "13", "14", "15", "16", "17", "18", "19",
 8826                  "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 8827                  "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 8828                  "38", "39", "40", "41", "42", "43", "44", "45", "46", 
 8829                  "47"},
 8830               Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 8831                  "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 8832                  "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 8833                  "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 8834                  "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 8835                  "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 8836                  "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 8837                  "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
 8838               ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 8839                  "CIM_Printer.CurrentMimeType"} ]
 8840              uint16 CurrentLanguage;
 8841           
 8842 karl  1.2    [Description (
 8843                  "Specifies the mime type currently being used by the "
 8844                  "Printer if the CurrentLanguage is set to indicate a "
 8845                  "mime type is in use (value = 47)."), 
 8846               ModelCorrespondence {"CIM_Printer.CurrentLanguage"} ]
 8847              string CurrentMimeType;
 8848           
 8849              [Description (
 8850                  "Indicates the default printer language. A language that "
 8851                  "is used as a default by the Printer should also be listed "
 8852                  "in LanguagesSupported."), 
 8853               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 8854                  "11", "12", "13", "14", "15", "16", "17", "18", "19",
 8855                  "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 8856                  "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 8857                  "38", "39", "40", "41", "42", "43", "44", "45", "46", 
 8858                  "47"},
 8859               Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 8860                  "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 8861                  "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 8862                  "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 8863 karl  1.2        "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 8864                  "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 8865                  "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 8866                  "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
 8867               ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 8868                  "CIM_Printer.DefaultMimeType"} ]
 8869              uint16 DefaultLanguage;
 8870           
 8871              [Description (
 8872                  "Specifies the default mime type used by the Printer if the "
 8873                  "DefaultLanguage is set to indicate a mime type is in use "
 8874                  "(value=47)."), 
 8875               ModelCorrespondence {"CIM_Printer.DefaultLanguage"} ]
 8876              string DefaultMimeType;
 8877           
 8878              [Description (
 8879                  "Printer jobs processed since last reset.  These jobs may be "
 8880                  "processed from one or more PrintQueues."), 
 8881               Counter ] 
 8882              uint32 JobCountSinceLastReset;
 8883           
 8884 karl  1.2    [Description ("Time of last reset of the Printer Device.") ]
 8885              datetime TimeOfLastReset;
 8886           
 8887              [Description (
 8888                  "An array of integers indicating Printer capabilities. "
 8889                  "Information such as \"Duplex Printing\" (value=3) or "
 8890                  "\"Transparency Printing\" (7) is specified in this "
 8891                  "property."),
 8892               ArrayType ("Indexed"), 
 8893               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 8894                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 8895                  "21"}, 
 8896               Values {"Unknown", "Other", "Color Printing", 
 8897                  "Duplex Printing", "Copies", "Collation", "Stapling", 
 8898                  "Transparency Printing", "Punch", "Cover", "Bind", 
 8899                  "Black and White Printing", "One Sided", 
 8900                  "Two Sided Long Edge", "Two Sided Short Edge", 
 8901                  "Portrait", "Landscape", "Reverse Portrait", 
 8902                  "Reverse Landscape", "Quality High", "Quality Normal", 
 8903                  "Quality Low"}, 
 8904               ModelCorrespondence {"CIM_Printer.CapabilityDescriptions", 
 8905 karl  1.2        "CIM_PrintJob.Finishing", 
 8906                  "CIM_PrintService.Capabilities"} ]
 8907              uint16 Capabilities[];
 8908           
 8909              [Description (
 8910                  "An array of free-form strings providing more detailed "
 8911                  "explanations for any of the Printer features indicated in "
 8912                  "the Capabilities array. Note, each entry of this array "
 8913                  "is related to the entry in the Capabilities array that "
 8914                  "is located at the same index."),
 8915               ArrayType ("Indexed"),
 8916               ModelCorrespondence {"CIM_Printer.Capabilities"} ]
 8917              string CapabilityDescriptions[];
 8918           
 8919              [Description (
 8920                  "Specifies which finishings and other capabilities of "
 8921                  "the Printer will be used by default. An entry in Default"
 8922                  "Capabilities should also be listed in the Capabilities "
 8923                  "array."), 
 8924               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 8925                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 8926 karl  1.2        "21"}, 
 8927               Values {"Unknown", "Other", "Color Printing", 
 8928                  "Duplex Printing", "Copies", "Collation", "Stapling", 
 8929                  "Transparency Printing", "Punch", "Cover", "Bind", 
 8930                  "Black and White Printing", "One Sided", 
 8931                  "Two Sided Long Edge", "Two Sided Short Edge", 
 8932                  "Portrait", "Landscape", "Reverse Portrait", 
 8933                  "Reverse Landscape", "Quality High", "Quality Normal", 
 8934                  "Quality Low"}, 
 8935               ModelCorrespondence {"CIM_Printer.Capabilities"} ]
 8936              uint16 DefaultCapabilities[];
 8937           
 8938              [Description (
 8939                  "Specifies which finishings and other capabilities of "
 8940                  "the Printer are currently being used. An entry in this "
 8941                  "property should also be listed in the Capabilities array."), 
 8942               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 8943                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 8944                  "21"},
 8945               Values {"Unknown", "Other", "Color Printing", 
 8946                  "Duplex Printing", "Copies", "Collation", "Stapling", 
 8947 karl  1.2        "Transparency Printing", "Punch", "Cover", "Bind", 
 8948                  "Black and White Printing", "One Sided", 
 8949                  "Two Sided Long Edge", "Two Sided Short Edge", 
 8950                  "Portrait", "Landscape", "Reverse Portrait", 
 8951                  "Reverse Landscape", "Quality High", "Quality Normal", 
 8952                  "Quality Low"}, 
 8953               ModelCorrespondence {"CIM_Printer.Capabilities"} ]
 8954              uint16 CurrentCapabilities[];
 8955           
 8956              [Description (
 8957                  "The maximum number of copies that can be produced by "
 8958                  "the Printer from a single Job."), 
 8959               ModelCorrespondence {"CIM_PrintJob.Copies"} ]
 8960              uint32 MaxCopies;
 8961           
 8962              [Description (
 8963                  "The number of copies that will be produced for a "
 8964                  "single Job unless otherwise specified.") ]
 8965              uint32 DefaultCopies;
 8966           
 8967              [Description (
 8968 karl  1.2        "The maximum number of print-stream pages that the "
 8969                  "Printer can render onto a single media sheet."), 
 8970               ModelCorrespondence {"CIM_PrintJob.NumberUp"} ]
 8971              uint32 MaxNumberUp;
 8972           
 8973              [Description (
 8974                  "The number of print-stream pages that the Printer will "
 8975                  "render onto a single media sheet unless a Job specifies "
 8976                  "otherwise.") ]
 8977              uint32 DefaultNumberUp;
 8978           
 8979              [Description (
 8980                  "Printer's horizontal resolution in Pixels per Inch."),
 8981               Units ("Pixels per Inch"), 
 8982               ModelCorrespondence {"CIM_PrintJob.HorizontalResolution"} ]
 8983              uint32 HorizontalResolution;
 8984           
 8985              [Description (
 8986                  "Printer's vertical resolution in Pixels per Inch."),
 8987               Units ("Pixels per Inch"),
 8988               ModelCorrespondence {"CIM_PrintJob.HorizontalResolution"} ]
 8989 karl  1.2    uint32 VerticalResolution;
 8990           
 8991              [Description (
 8992                  "Identifies the available character sets for the output "
 8993                  "of text related to managing the Printer. Strings "
 8994                  "provided in this property should conform to the "
 8995                  "semantics and syntax specified by section 4.1.2 "
 8996                  "(\"Charset parameter\") in RFC 2046 (MIME Part 2) and "
 8997                  "contained in the IANA character-set registry. Examples "
 8998                  "include \"utf-8\", \"us-ascii\" and \"iso-8859-1\"."), 
 8999               ArrayType ("Indexed"), 
 9000               ModelCorrespondence {"CIM_PrintJob.CharSet"}, 
 9001               MappingStrings {
 9002                  "MIB.IETF|Printer-MIB.prtLocalizationCharacterSet"} ]
 9003              string CharSetsSupported[];
 9004           
 9005              [Description (
 9006                  "Specifies the current character set being used for "
 9007                  "the output of text relating to management of the "
 9008                  "Printer. The character set described by this property "
 9009                  "should also be listed in CharsetsSupported. The string "
 9010 karl  1.2        "specified by this property should conform to the "
 9011                  "semantics and syntax specified by section 4.1.2 "
 9012                  "(\"Charset parameter\") in RFC 2046 (MIME Part 2) and "
 9013                  "contained in the IANA character-set registry. Examples "
 9014                  "include \"utf-8\", \"us-ascii\" and \"iso-8859-1\"."), 
 9015               ModelCorrespondence {"CIM_Printer.CharSetsSupported"} ]
 9016              string CurrentCharSet;
 9017           
 9018              [Description (
 9019                  "Identifies the available languages for strings used by "
 9020                  "the Printer for the output of management information. "
 9021                  "The strings should conform to RFC 1766, for example "
 9022                  "\"en\" is used for English."), 
 9023               ArrayType ("Indexed"), 
 9024               MappingStrings {
 9025                      "MIB.IETF|Printer-MIB.prtLocalizationLanguage"}, 
 9026               ModelCorrespondence {"CIM_PrintJob.NaturalLanguage"} ]
 9027              string NaturalLanguagesSupported[];
 9028           
 9029              [Description (
 9030                  "Identifies the current language being used by the "
 9031 karl  1.2        "Printer for management. The language listed in the "
 9032                  "CurrentNaturalLanguage property should also be listed "
 9033                  "in NaturalLanguagesSupported."), 
 9034               ModelCorrespondence {"CIM_Printer.NaturalLanguagesSupported"} ]
 9035              string CurrentNaturalLanguage;
 9036           
 9037              [Description (
 9038                  "Specifies the largest Job (as a byte stream) that the "
 9039                  "Printer will accept in units of Kbytes. A value of zero "
 9040                  "indicates that no limit has been set."), 
 9041               Units ("KiloBytes"), 
 9042               ModelCorrespondence {"CIM_PrintJob.JobSize"} ]
 9043              uint32 MaxSizeSupported;
 9044           
 9045              [Description (
 9046                  "Describes all of the job sheets that are available on "
 9047                  "the Printer. This can also be used to describe the banner "
 9048                  "that a Printer might provide at the beginning of each Job, "
 9049                  "or can describe other user specified options."), 
 9050               ModelCorrespondence {"CIM_PrintJob.RequiredJobSheets"} ]
 9051              string AvailableJobSheets[];
 9052 karl  1.2 
 9053              [Description (
 9054                  "Specifies the marking technology used by the Printer."), 
 9055               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", 
 9056                  "10", "11", "12", "13", "14", "15", "16", "17", 
 9057                  "18", "19", "20", "21", "22", "23", "24", "25", 
 9058                  "26", "27"}, 
 9059               Values {"Other", "Unknown", "Electrophotographic LED", 
 9060                  "Electrophotographic Laser",  
 9061                  "Electrophotographic Other", 
 9062                  "Impact Moving Head Dot Matrix 9pin", 
 9063                  "Impact Moving Head Dot Matrix 24pin", 
 9064                  "Impact Moving Head Dot Matrix Other", 
 9065                  "Impact Moving Head Fully Formed", 
 9066                  "Impact Band", "Impact Other", "Inkjet Aqueous", 
 9067                  "Inkjet Solid", "Inkjet Other", "Pen", 
 9068                  "Thermal Transfer", "Thermal Sensitive", 
 9069                  "Thermal Diffusion", "Thermal Other", 
 9070                  "Electroerosion", "Electrostatic", 
 9071                  "Photographic Microfiche", 
 9072                  "Photographic Imagesetter", "Photographic Other", 
 9073 karl  1.2        "Ion Deposition", "eBeam", "Typesetter"}, 
 9074               MappingStrings {"MIB.IETF|Printer-MIB.prtMarkerMarkTech"} ]
 9075              uint16 MarkingTechnology;
 9076           };
 9077           
 9078           
 9079           // ===================================================================
 9080           // PrintQueue 
 9081           // ===================================================================
 9082           [Version ("2.6.0"), Description (
 9083              "Capabilities and management of a Printer Queue. A PrintQueue "
 9084              "holds PrintJobs - which are placed on the Queue by a Print"
 9085              "Service. Jobs can move from Queue to Queue.") ]
 9086           class CIM_PrintQueue : CIM_JobDestination {
 9087           
 9088              [Description (
 9089                  "Indicates that Jobs on the Queue will be passed to a "
 9090                  "Printer. When FALSE, a Job will remain on the Queue and "
 9091                  "will not be passed to a Printer for output.") ]
 9092              boolean QueueEnabled;
 9093           
 9094 karl  1.2    [Description (
 9095                  "When FALSE, no PrintService can place PrintJobs on the "
 9096                  "PrintQueue. The ability of an individual PrintService "
 9097                  "to place a Job on the Queue can be specified using the "
 9098                  "QueueAcceptingFromService property in the QueueForPrint"
 9099                  "Service association.") ]
 9100              boolean QueueAccepting;
 9101           
 9102              [Description ("The current number of Jobs on the Queue."),
 9103               Gauge ]
 9104              uint32 NumberOnQueue;
 9105           
 9106              [Description (
 9107                  "Gives Queue-specific status information, beyond the "
 9108                  "ManagedSystemElement.Status property. This may be used to "
 9109                  "provide further qualification as to the status of the "
 9110                  "Queue or to indicate a secondary condition (e.g. spool "
 9111                  "area is full)."), 
 9112               ValueMap {"0", "1", "2", "3"}, 
 9113               Values {"Other", "Unknown", "No Additional Status", 
 9114                  "QueueSpoolAreaFull"} ]
 9115 karl  1.2    uint16 QueueStatus;
 9116           
 9117              [Description (
 9118                  "Provides a textual explanation for the status of the Queue. "
 9119                  "The settings of both QueueStatus and the Status property "
 9120                  "inherited from ManagedSystemElement may be described by "
 9121                  "QueueStatusInfo. For example, if \"Stopping\" is the value "
 9122                  "assigned to Status, then this property may contain an "
 9123                  "explanation as to why the Queue is being stopped.") ]
 9124              string QueueStatusInfo;
 9125           
 9126              [Description (
 9127                  "Specifies the largest possible Job (in terms of a single "
 9128                  "byte stream) that may be submitted to this Queue. A value "
 9129                  "of zero indicates that no limit has been set. Units "
 9130                  "are Kbytes."), 
 9131               Units ("KiloBytes"), 
 9132               ModelCorrespondence {"CIM_PrintJob.JobSize"} ]
 9133              uint32 MaxJobSize;
 9134           
 9135              [Description (
 9136 karl  1.2        "Specifies the priority that will be assigned to a new Job "
 9137                  "being submitted to this Queue, if the Job does not "
 9138                  "explicitly specify a priority. The range of valid priorities "
 9139                  "and the interpretation of priorities may be determined from "
 9140                  "the JobPriorityHigh and JobPriorityLow properties."), 
 9141               ModelCorrespondence {"CIM_PrintQueue.JobPriorityHigh", 
 9142                  "CIM_PrintQueue.JobPriorityLow"} ]
 9143              uint32 DefaultJobPriority;
 9144           
 9145              [Description (
 9146                  "Specifies the numeric value that is used to represent the "
 9147                  "highest priority Jobs that are submitted to this Queue. The "
 9148                  "range of numeric values for priority may be inversed, e.g. "
 9149                  "a high priority job is represented by a low integer value. "
 9150                  "This is indicated by JobPriorityLow being greater than "
 9151                  "JobPriorityHigh. If both values (PriorityLow and Priority"
 9152                  "High) are assigned to zero, then the Queue does not support "
 9153                  "Job priorities."), 
 9154               ModelCorrespondence {"CIM_PrintQueue.JobPriorityLow", 
 9155                  "CIM_Job.Priority"} ]
 9156              uint32 JobPriorityHigh;
 9157 karl  1.2 
 9158              [Description (
 9159                  "Specifies the numeric value that is used to represent the "
 9160                  "lowest priority Jobs that are submitted to this Queue. The "
 9161                  "range of numeric values for priority may be inversed, e.g. "
 9162                  "a low priority job is represented by a high integer value. "
 9163                  "This is indicated by JobPriorityLow being greater than "
 9164                  "JobPriorityHigh. If both values (PriorityLow and PriorityHigh) "
 9165                  "are assigned to zero, then the Queue does not support "
 9166                  "Job priorities."), 
 9167               ModelCorrespondence {"CIM_PrintQueue.JobPriorityHigh", 
 9168                  "CIM_Job.Priority"} ]
 9169              uint32 JobPriorityLow;
 9170           
 9171              [Description (
 9172                  "Specifies the job sheets that are supported by this Queue. "
 9173                  "Typically the job sheets provided by a Queue will be the "
 9174                  "union or aggregation of those provided by all the Printers "
 9175                  "that it supports. However, a system administrator may choose "
 9176                  "to restrict access to some job sheets on a particular Queue. "
 9177                  "A Queue might also support additional job sheets through the "
 9178 karl  1.2        "use of a filter that adds a banner or some other page when a "
 9179                  "Job is taken from the Queue."), 
 9180               ModelCorrespondence {"CIM_PrintJob.RequiredJobSheets"} ]
 9181              string AvailableJobSheets[];
 9182           };
 9183           
 9184           
 9185           // ===================================================================
 9186           // PrintJob
 9187           // ===================================================================
 9188           [Version ("2.6.0"), Description (
 9189              "Description of a print request that is either waiting on a "
 9190              "Queue for a Printer to become available, in the process of "
 9191              "being output on a Printer, or that has previously been "
 9192              "printed on a Printer. PrintJobs are weak to their current "
 9193              "Queue, or to the last Queue that held them.") ]
 9194           class CIM_PrintJob : CIM_Job {
 9195           
 9196              [Propagated ("CIM_PrintQueue.SystemCreationClassName"), 
 9197               Key, MaxLen (256),
 9198               Description ("The scoping System's CreationClassName.") ]
 9199 karl  1.2    string SystemCreationClassName;
 9200           
 9201              [Propagated ("CIM_PrintQueue.SystemName"), 
 9202               Key, MaxLen (256),
 9203               Description ("The scoping System's Name.") ] 
 9204              string SystemName;
 9205           
 9206              [Propagated ("CIM_PrintQueue.CreationClassName"), 
 9207               Key, MaxLen (256),
 9208               Description ("The scoping Queue's CreationClassName.") ]
 9209              string QueueCreationClassName;
 9210           
 9211              [Propagated ("CIM_PrintQueue.Name"), 
 9212               Key, MaxLen (256),
 9213               Description ("The scoping Queue's Name.") ]
 9214              string QueueName;
 9215           
 9216              [Override("JobStatus"), 
 9217               Description (
 9218                  "The inherited JobStatus is used to provide additional "
 9219                  "information about the status of a PrintJob beyond that "
 9220 karl  1.2        "enumerated by PrintJobStatus."), 
 9221               ModelCorrespondence {"CIM_PrintJob.PrintJobStatus"} ]
 9222              string JobStatus;
 9223           
 9224              [Key, Description (
 9225                  "Uniquely identifies this Job within its scoping Queue.") ]
 9226              string JobID;
 9227           
 9228              [Description (
 9229                  "Provides additional textual descriptions of how this "
 9230                  "Job should be scheduled.") ]
 9231              string SchedulingInformation;
 9232           
 9233              [Description (
 9234                  "Specifies the size of the PrintJob (as a byte stream) in "
 9235                  "units of Kbytes."), 
 9236               Units ("KiloBytes"), 
 9237               ModelCorrespondence {"CIM_Printer.MaxSizeSupported", 
 9238                  "CIM_PrintQueue.MaxJobSize"} ]
 9239              uint32 JobSize;
 9240           
 9241 karl  1.2    [Description (
 9242                  "Specifies the print language used by this Job."), 
 9243               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 9244                  "11", "12", "13", "14", "15", "16", "17", "18", "19", 
 9245                  "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 9246                  "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 9247                  "38", "39", "40", "41", "42", "43", "44", "45", "46", 
 9248                  "47"},
 9249               Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 9250                  "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 9251                  "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 9252                  "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 9253                  "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 9254                  "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 9255                  "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 9256                  "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"}, 
 9257                  ArrayType ("Indexed"), 
 9258               MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"}, 
 9259               ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 9260                  "CIM_PrintService.LanguagesSupported", 
 9261                  "CIM_PrintJob.MimeTypes"} ]
 9262 karl  1.2    uint16 Language;
 9263           
 9264              [Description (
 9265                  "Specifies the mime types used by the PrintJob if "
 9266                  "Language is set to indicate a mime type is in use (value=47)."), 
 9267               ModelCorrespondence {"CIM_PrintJob.Language", 
 9268                  "CIM_Printer.MimeTypesSupported", 
 9269                  "CIM_PrintService.MimeTypesSupported"} ]
 9270              string MimeTypes[];
 9271           
 9272              [Description (
 9273                  "A string specifying the type of paper that is required by "
 9274                  "this PrintJob. Each string should be expressed in the form "
 9275                  "specified by ISO/IEC 10175 Document Printing Application (DPA) "
 9276                  "which is also summarized in Appendix C of RFC 1759 (Printer "
 9277                  "MIB). Examples of valid strings are \"iso-a4-colored\" and "
 9278                  "\"na-10x14-envelope\"."), 
 9279               ModelCorrespondence {"CIM_Printer.PaperTypesAvailable", 
 9280                  "CIM_PrintService.PaperTypesAvailable"} ]
 9281              string RequiredPaperType;
 9282           
 9283 karl  1.2    [Description (
 9284                  "An array of integers indicating the type of finishing "
 9285                  "required by this Job. It is equivalent to the Capabilities "
 9286                  "property provided by the Printer."), 
 9287               ArrayType ("Indexed"), 
 9288               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 9289                  "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
 9290                  "21"},  
 9291               Values {"Unknown", "Other", "Color Printing", 
 9292                  "Duplex Printing", "Copies", "Collation", "Stapling", 
 9293                  "Transparency Printing", "Punch", "Cover", "Bind", 
 9294                  "Black and White Printing", "One Sided", 
 9295                  "Two Sided Long Edge", "Two Sided Short Edge", 
 9296                  "Portrait", "Landscape", "Reverse Portrait", 
 9297                  "Reverse Landscape", "Quality High", "Quality Normal", 
 9298                  "Quality Low"}, 
 9299               ModelCorrespondence {"CIM_Printer.Capabilities", 
 9300                  "CIM_PrintService.Capabilities"} ]
 9301              uint16 Finishing[];
 9302           
 9303              [Description (
 9304 karl  1.2        "The number of physical copies of the output that will be "
 9305                  "produced from this Job."), 
 9306               ModelCorrespondence {"CIM_Printer.MaxCopies"} ]
 9307              uint32 Copies;
 9308           
 9309              [Description (
 9310                  "The horizontal resolution in Pixels per Inch for the Job."), 
 9311               Units ("Pixels per Inch"), 
 9312               ModelCorrespondence {"CIM_Printer.HorizontalResolution"} ]
 9313              uint32 HorizontalResolution;
 9314           
 9315              [Description (
 9316                  "The vertical resolution in Pixels per Inch for the Job."), 
 9317               Units ("Pixels per Inch"), 
 9318               ModelCorrespondence {"CIM_Printer.VerticalResolution"} ]
 9319              uint32 VerticalResolution;
 9320           
 9321              [Description (
 9322                  "Specifies the character set and encoding method that "
 9323                  "should be used by the Printer for the management of "
 9324                  "this Job. The strings should conform to the semantics and "
 9325 karl  1.2        "syntax specified by section 4.1.2 (\"Charset parameter\") "
 9326                  "in RFC 2046 (MIME Part 2) and contained in the IANA "
 9327                  "character-set registry. Examples include \"utf-8\", "
 9328                  "\"us-ascii\" and \"iso-8859-1\"."), 
 9329               ModelCorrespondence {"CIM_Printer.CharSetsSupported"} ]
 9330              string CharSet;
 9331           
 9332              [Description (
 9333                  "Identifies the language that should be used by the Printer "
 9334                  "for the management of this Job. The specified value should "
 9335                  "conform to RFC 1766. For example, \"en\" is used for "
 9336                  "English."), 
 9337               ModelCorrespondence {"CIM_Printer.NaturalLanguagesSupported"} ]
 9338              string NaturalLanguage;
 9339           
 9340              [Description (
 9341                  "The number of print-stream pages that should be rendered "
 9342                  "onto a single media sheet when the Printer outputs this "
 9343                  "PrintJob."), 
 9344               ModelCorrespondence {"CIM_Printer.MaxNumberUp"} ]
 9345              uint32 NumberUp;
 9346 karl  1.2 
 9347              [Description (
 9348                  "Describes the current state of this Job with respect "
 9349                  "to the PrintQueue and the Printer. Additional information "
 9350                  "may be specified in JobStatus."), 
 9351               ValueMap {"1", "2", "3", "4", "5", "6", "7"}, 
 9352               Values {"Other", "Unknown", "Pending", "Blocked", 
 9353                  "Complete", "Completed With Error", "Printing"}, 
 9354               ModelCorrespondence {"CIM_PrintJob.TimeCompleted", 
 9355                  "CIM_PrintJob.JobStatus"} ]
 9356              uint16 PrintJobStatus;
 9357           
 9358              [Description (
 9359                  "Time when this Job was completed. This value is only "
 9360                  "valid if the PrintJobStatus has been assigned to "
 9361                  "\"Complete\" (value=5) or \"Completed With Error\" "
 9362                  "(value=6)."), 
 9363               ModelCorrespondence {"CIM_PrintJob.PrintJobStatus"} ]
 9364              datetime TimeCompleted;
 9365           
 9366              [Description (
 9367 karl  1.2        "Describes the job sheets that should be used when this "
 9368                  "Job is output on the Printer."), 
 9369               ModelCorrespondence {"CIM_Printer.AvailableJobSheets"} ]
 9370              string RequiredJobSheets[];
 9371           
 9372              [Description (
 9373                  "Provides additional information, beyond Job Owner "
 9374                  "inherited from CIM_Job, to identify the origins of the "
 9375                  "PrintJob. This property could include information such as "
 9376                  "the System, application or Process that created the Job.") ]
 9377              string JobOrigination;
 9378           };
 9379           
 9380           
 9381           // ===================================================================
 9382           // PrintSAP
 9383           // ===================================================================
 9384           [Version ("2.6.0"), Description (
 9385              "The ServiceAccessPoint for a printing Service.") ]
 9386           class CIM_PrintSAP : CIM_ServiceAccessPoint {
 9387           
 9388 karl  1.2    [Description (
 9389                  "Specifies the print procotols that this AccessPoint uses. "
 9390                  "Note that each entry of this array is related to the entry in "
 9391                  "the PrintProtocolInfo array that is located at the same "
 9392                  "index."), 
 9393               ArrayType ("Indexed"), 
 9394               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},
 9395               Values {"Unknown", "Other", "SMB", "BSD", "SYSV", "HPNP", "IPP", 
 9396                  "Local"}, 
 9397               ModelCorrespondence {"CIM_PrintSAP.PrintProtocolInfo"} ]
 9398              uint16 PrintProtocol[];
 9399           
 9400              [Description (
 9401                  "Provides clarifying or additional information about the "
 9402                  "protocols supported by this AccessPoint. Note, each entry "
 9403                  "of this array is related to the entry in the PrintProtocol "
 9404                  "array that is located at the same index."), 
 9405               ArrayType ("Indexed"), 
 9406               ModelCorrespondence {"CIM_PrintSAP.PrintProtocol"} ]
 9407              string PrintProtocolInfo[];
 9408           };
 9409 karl  1.2 
 9410           
 9411           // ===================================================================
 9412           // PrintService
 9413           // ===================================================================
 9414           [Version ("2.6.0"), Description (
 9415              "The Service that provides support for printing. The basic "
 9416              "assumption of the Printing Model is that a PrintService accepts "
 9417              "a PrintJob for processing, via its PrintSAP. The Job is then "
 9418              "placed on a PrintQueue (indicated by the QueueForPrintService "
 9419              "association). Printers take Jobs from Queues (indicated by the "
 9420              "PrinterServicingQueue association).") ]
 9421           class CIM_PrintService : CIM_Service {
 9422           
 9423              [Description (
 9424                  "An array of free-form strings specifying the types of "
 9425                  "paper that may be used by Jobs that are submitted to this "
 9426                  "PrintService. This may be different than the paper types that "
 9427                  "are installed on the Printer, because the PrintService may "
 9428                  "include support for manually making other types available or "
 9429                  "only a subset of paper types may be exported via this Service. "
 9430 karl  1.2        "Each string should be expressed in the form specified by "
 9431                  "ISO/IEC 10175 Document Printing Application (DPA) which is "
 9432                  "also summarized in Appendix C of RFC 1759 (Printer MIB). "
 9433                  "Examples of valid strings are \"iso-a4-colored\" and "
 9434                  "\"na-10x14-envelope\"."), 
 9435               ModelCorrespondence {"CIM_Printer.PaperTypesAvailable", 
 9436                  "CIM_PrintJob.RequiredPaperType"} ]
 9437              string PaperTypesAvailable[];
 9438           
 9439              [Description (
 9440                  "An array indicating the print languages supported by the "
 9441                  "PrintService. A PrintService may support more languages "
 9442                  "than those available on the underlying Printer through the "
 9443                  "use of filters. An administrator may also choose to prevent "
 9444                  "some languages from being exported by the PrintService."), 
 9445               ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 9446                  "11", "12", "13", "14", "15", "16", "17", "18", "19", 
 9447                  "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 9448                  "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 9449                  "38", "39", "40", "41", "42", "43", "44", "45", "46", 
 9450                  "47"},
 9451 karl  1.2     Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 9452                  "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 9453                  "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 9454                  "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 9455                  "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 9456                  "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 9457                  "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 9458                  "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"}, 
 9459                  ArrayType ("Indexed"), 
 9460               MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"}, 
 9461               ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 9462                  "CIM_PrintJob.Language", 
 9463                  "CIM_PrintService.MimeTypesSupported"} ]
 9464              uint16 LanguagesSupported[];
 9465           
 9466              [Description (
 9467                  "An array of free-form strings providing more detailed "
 9468                  "explanations for any mime types that are supported by "
 9469                  "the PrintService. Support for mime types is indicated "
 9470                  "by specifying a value of 47 in the LanguagesSupported array."), 
 9471               ModelCorrespondence {"CIM_Printer.MimeTypesSupported", 
 9472 karl  1.2        "CIM_PrintJob.MimeTypes", 
 9473                  "CIM_PrintService.LanguagesSupported"} ]
 9474              string MimeTypesSupported[];
 9475           
 9476              [Description (
 9477                  "An array of integers indicating the capabilities supported "
 9478                  "by this service. Information such as \"Duplex Printing\" "
 9479                  "(value=3) or \"Transparency Printing\" (7) is specified in "
 9480                  "this property."), 
 9481               ArrayType ("Indexed"), 
 9482               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 9483                  "11", "12", "13", "14", "15", "16", "17", "18", "19", 
 9484                  "20", "21"}, 
 9485               Values {"Unknown", "Other", "Color Printing", "Duplex Printing", 
 9486                  "Copies", "Collation", "Stapling", "Transparency Printing", 
 9487                  "Punch", "Cover", "Bind", "Black and White Printing", 
 9488                  "One Sided", "Two Sided Long Edge", "Two Sided Short Edge", 
 9489                  "Portrait", "Landscape", "Reverse Portrait", 
 9490                  "Reverse Landscape", "Quality High", "Quality Normal", 
 9491                  "Quality Low"}, 
 9492               ModelCorrespondence {"CIM_Printer.Capabilities", 
 9493 karl  1.2        "CIM_PrintJob.Finishing", 
 9494                  "CIM_PrintService.CapabilityDescriptions"} ]
 9495              uint16 Capabilities[];
 9496           
 9497              [Description (
 9498                  "An array of free-form strings providing more detailed "
 9499                  "explanations for any of the Printer features indicated in "
 9500                  "the Capabilities array. Note, each entry of this array "
 9501                  "is related to the entry in the Capabilities array that "
 9502                  "is located at the same index."), 
 9503                  ArrayType ("Indexed"), 
 9504               ModelCorrespondence {"CIM_PrintService.Capabilities"} ]
 9505              string CapabilityDescriptions[];
 9506           
 9507              [Description (
 9508                  "Describes the filters that are available within this Print"
 9509                  "Service. For example, a PrintService may be able to convert "
 9510                  "a Job submitted in one page description language to another, "
 9511                  "so that it can be passed to an available Printer.") ]
 9512              string AvailableFilters[];
 9513           };
 9514 karl  1.2 
 9515           
 9516           // ===================================================================
 9517           // PrinterServicingQueue 
 9518           // ===================================================================
 9519           [Association, Version ("2.6.0"), Description (
 9520              "This association indicates that a Printer can be passed "
 9521              "PrintJobs from a particular Queue.") ]
 9522           class CIM_PrinterServicingQueue : CIM_Dependency {
 9523           
 9524              [Override ("Antecedent"), Description (
 9525                  "A destination Printer for Jobs enqueued on the Dependent "
 9526                  "Queue.") ]
 9527              CIM_Printer REF Antecedent;
 9528           
 9529              [Override ("Dependent"), Description (
 9530                  "A Queue that is providing Jobs to the Printer.") ]
 9531              CIM_PrintQueue REF Dependent;
 9532           };
 9533           
 9534           
 9535 karl  1.2 // ===================================================================
 9536           // PrinterServicingJob 
 9537           // ===================================================================
 9538           [Association, Version ("2.6.0"), Description (
 9539              "This association indicates that a Printer is currently "
 9540              "servicing a particular PrintJob.") ]
 9541           class CIM_PrinterServicingJob : CIM_Dependency {
 9542           
 9543              [Override ("Antecedent"), 
 9544               Description ("The destination Printer for a PrintJob.") ]
 9545              CIM_Printer REF Antecedent;
 9546           
 9547              [Override ("Dependent"), Description ("The PrintJob.") ]
 9548              CIM_PrintJob REF Dependent;
 9549           };
 9550           
 9551           
 9552           // ===================================================================
 9553           // PrintJobFile 
 9554           // ===================================================================
 9555           [Association, Aggregation, Version ("2.6.0"), Description (
 9556 karl  1.2    "This association indicates which files are associated with "
 9557              "a PrintJob.") ]
 9558           class CIM_PrintJobFile : CIM_Component {
 9559           
 9560              [Override ("GroupComponent"), Aggregate,
 9561               Description ("The PrintJob that is based on one or more Files.") ]
 9562              CIM_PrintJob REF GroupComponent;
 9563           
 9564              [Override ("PartComponent"), 
 9565               Description ("The File(s) that make up a PrintJob.") ]
 9566              CIM_DataFile REF PartComponent;
 9567           };
 9568           
 9569           
 9570           // ===================================================================
 9571           // QueueForPrintService 
 9572           // ===================================================================
 9573           [Association, Version ("2.6.0"), Description (
 9574              "This association indicates that a PrintService utilizes a "
 9575              "particular PrintQueue.") ]
 9576           class CIM_QueueForPrintService : CIM_Dependency {
 9577 karl  1.2 
 9578              [Override ("Antecedent"), 
 9579               Description ("The PrintQueue that the Service utilizes.") ]
 9580              CIM_PrintQueue REF Antecedent;
 9581           
 9582              [Override ("Dependent"), 
 9583               Description ("The PrintService that puts Jobs on the Queue.") ]
 9584              CIM_PrintService REF Dependent;
 9585           
 9586              [Description (
 9587                  "Indicates that the PrintService can accept Jobs and "
 9588                  "place them on the Queue.") ]
 9589              boolean QueueAcceptingFromService;
 9590           };
 9591           
 9592           
 9593           // ===================================================================
 9594           // QueueForwardsToPrintSAP 
 9595           // ===================================================================
 9596           [Association, Version ("2.6.0"), Description (
 9597              "This association indicates that the Jobs from a PrintQueue "
 9598 karl  1.2    "can be sent to the referenced PrintSAP, to be handled by the "
 9599              "SAP's backing PrintService.") ]
 9600           class CIM_QueueForwardsToPrintSAP : CIM_Dependency {
 9601           
 9602              [Override ("Antecedent"), 
 9603               Description ("The PrintSAP for the PrintService.") ]
 9604              CIM_PrintSAP REF Antecedent;
 9605           
 9606              [Override ("Dependent"), 
 9607               Description ("The PrintQueue that forwards Jobs to the SAP.") ]
 9608              CIM_PrintQueue REF Dependent;
 9609           };
 9610           
 9611           
 9612           // ===================================================================
 9613           // OwningPrintQueue 
 9614           // ===================================================================
 9615           [Association, Version ("2.6.0"), Description (
 9616              "This association indicates which Queue holds a PrintJob and "
 9617              "where the Job is located within that Queue. A Job may remain on "
 9618              "its final Queue once it has been printed with a PrintJobStatus "
 9619 karl  1.2    "of \"Complete\" or \"Completed With Error\".") ]
 9620           class CIM_OwningPrintQueue : CIM_JobDestinationJobs {
 9621           
 9622              [Override ("Antecedent"), Min (1), Max (1),
 9623               Description ("The PrintQueue on which the Job is held.") ]
 9624              CIM_PrintQueue REF Antecedent;
 9625           
 9626              [Override ("Dependent"), Weak,
 9627               Description ("The PrintJob.") ]
 9628              CIM_PrintJob REF Dependent;
 9629           
 9630              [Description (
 9631                  "The position of the PrintJob on the Queue. The top of the "
 9632                  "Queue is indicated by a value of 1 with higher values being "
 9633                  "used to represent Jobs that are further away from the top of "
 9634                  "the Queue. A QueuePosition of zero indicate that the Job has "
 9635                  "completed (either with or without error).") ]
 9636              uint32 QueuePosition;
 9637           };
 9638           
 9639           
 9640 karl  1.2 // ===================================================================
 9641           // CIM_OOBAlertService 
 9642           // ===================================================================
 9643           [Version ("2.6.0"), Description (
 9644              "This Service is implemented by a LogicalDevice (e.g. a "
 9645              "NetworkAdapter or Modem) that is capable of sending alert "
 9646              "messages to a remote destination. The alert messages reflect "
 9647              "the state of one or more ManagedSystemElements. The Elements "
 9648              "for which alert messages are forwarded, are defined by "
 9649              "enumerating the ProvidesServiceToElement association for the "
 9650              "Service. Out of Band (OOB) refers to the mechanisms in use when "
 9651              "normal OS-based management mechanisms are not possible. This "
 9652              "occurs when the OS is down or not functioning properly.") ]
 9653           class CIM_OOBAlertService : CIM_Service {
 9654           
 9655              [Description (
 9656                  "The type of the alert destination. For example, the alert "
 9657                  "may be received by an application listening on a UDP Port on "
 9658                  "a remote destination, or could be sent to a pager (values "
 9659                  "4 or 2, respectively)."), 
 9660               ValueMap {"0", "1", "2", "3", "4"}, 
 9661 karl  1.2     Values {"Unknown", "Other", "Pager", "TCP Port", "UDP Port"}, 
 9662               ModelCorrespondence {
 9663                  "CIM_OOBAlertService.OtherDestinationTypeDescription"} ]
 9664              uint16 DestinationType;
 9665           
 9666              [Description (
 9667                  "The description of the alert DestinationType. This is used "
 9668                  "when the DestinationType is set to \"Other\" (value=1)."), 
 9669               ModelCorrespondence {"CIM_OOBAlertService.DestinationType"} ]
 9670              string OtherDestinationTypeDescription;
 9671           
 9672              [Description (
 9673                  "The address where this Service sends the alerts. The "
 9674                  "format of this address depends on the DestinationType. For "
 9675                  "example, if the DestinationType is a UDP Port (value=4), "
 9676                  "then this property contains a string identifying the IP "
 9677                  "address of the Port (for example, 111.222.333.444:4567). "
 9678                  "If DestinationType is a pager (value=2), then the "
 9679                  "address is a Pager number (for example, 18002257654).") ]
 9680              string DestinationAddress;
 9681           
 9682 karl  1.2    [Description (
 9683                  "The format of the Alert Message sent by the Service."), 
 9684               ValueMap {"0", "1", "2", "3", "4", "5"}, 
 9685               Values {"Unknown", "Other", "Numeric", "AlphaNumeric", 
 9686                  "Free Form Text", "Platform Event Trap"}, 
 9687               ModelCorrespondence {
 9688                  "CIM_OOBAlertService.OtherMessageFormatDescription"} ]
 9689              uint16 MessageFormat;
 9690           
 9691              [Description (
 9692                  "The description of the format of the alert message used "
 9693                  "by the Service when the AlertMessageFormat property is "
 9694                  "set to \"Other\" (value=1)."), 
 9695               ModelCorrespondence {"CIM_OOBAlertService.MessageFormat"} ]
 9696              string OtherMessageFormatDescription;
 9697           
 9698              [Description (
 9699                  "If the AlertService only uses a fixed message to send "
 9700                  "an alert, then this flag should be set to TRUE.") ]
 9701              boolean OnlySendsFixedMessage;
 9702           
 9703 karl  1.2    [Description (
 9704                  "The AlertService may require some fixed data to send as "
 9705                  "part of the message. This may include things like the "
 9706                  "address or name of the System. This string contains the "
 9707                  "complete message when the property, OnlySendsFixedMessage, "
 9708                  "is set to TRUE.") ]
 9709              string FixedPartOfMessage;
 9710           
 9711              [Description (
 9712                  "If the destination is capable of sending an acknowledgement "
 9713                  "to the alert, then this flag is set to TRUE. The format of "
 9714                  "the acknowledgement is determined by the DestinationType "
 9715                  "and the MessageFormat.") ]
 9716              boolean DestinationIsAckCapable;
 9717           
 9718              [Description (
 9719                  "The AlertService may retry and send an alert more than "
 9720                  "once. The RetryCount identifies how often the operation will "
 9721                  "be repeated. If DestinationIsAckCapable is set to TRUE, then "
 9722                  "the retry will only be done if an Ack is not received. "
 9723                  "Otherwise, the retries are done unconditionally.") ]
 9724 karl  1.2    uint16 RetryCount;
 9725           
 9726              [Description (
 9727                  "The interval between each successive retry, in seconds. "
 9728                  "If DestinationIsAckCapable is set to TRUE, then this "
 9729                  "interval is used as a timeout interval, before the next "
 9730                  "retry is done."), 
 9731               Units ("Seconds") ]
 9732              uint16 RetryInterval;
 9733           
 9734              [Read, Description ( 
 9735                  "If the OOB Alerting service is capable of sending Presence " 
 9736                  "heart beat messages") ] 
 9737              boolean PresenceHeartbeatCapable; 
 9738           
 9739              [Description (   
 9740                  "When set to true causes the OOBAlertService to send Presence" 
 9741                  "heart beat messages"), 
 9742               ModelCorrespondence {
 9743                  "CIM_OOBAlertService.PresenceHeartbeatCapable"} ]
 9744              boolean EnablePresenceHeartbeats; 
 9745 karl  1.2 };
 9746           
 9747           
 9748           // ===================================================================
 9749           // WakeUpService 
 9750           // ===================================================================
 9751           [Version ("2.6.0"), Description (
 9752              "WakeUpService allows a UnitaryComputerSystem to be woken up "
 9753              "from a low power sleep state. This Service is implemented "
 9754              "by a LogicalDevice (e.g. NetworkAdapter or Modem) that is "
 9755              "capable of receiving wakeup messages, and notifying the "
 9756              "System.") ]
 9757           class CIM_WakeUpService : CIM_Service {
 9758           
 9759              [Description ("The Type of the WakeUp Service."), 
 9760               ValueMap {"0", "1", "2", "3", "4"}, 
 9761               Values {"Unknown", "Other", "Wake On LAN - Magic Packet", 
 9762                  "Wake on LAN - Packet Filtering", "Wake On Ring"}, 
 9763               ModelCorrespondence {
 9764                  "CIM_WakeUpServcice.OtherWakeUpTypeDescription"} ]
 9765              uint16 WakeUpType;
 9766 karl  1.2 
 9767              [Description (
 9768                  "A description of the type of WakeUpService used when "
 9769                  "WakeUpType is set to \"Other\" (value=1)."), 
 9770               ModelCorrespondence {"CIM_WakeUpService.WakeUpType"} ]
 9771              string OtherWakeUpTypeDescription;
 9772           
 9773              [Description (
 9774                  "The filter type on the packets/messages that trigger "
 9775                  "the WakeUpService. This field is only used when the WakeUp"
 9776                  "Type is set to \"Wake On LAN - Packet Filtering\" (value"
 9777                  "=3)."), 
 9778               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"}, 
 9779               Values {"Unknown", "Other", "ARP Broadcast", 
 9780                  "Neighbor Discovery Multicast", 
 9781                  "IP Packet with Directed MAC Address", 
 9782                  "IPX Diagnostic Responder", "NBT Name Query", 
 9783                  "Binary Match"}, 
 9784               ModelCorrespondence {
 9785                  "CIM_WakeUpService.OtherFilterTypeDescription"} ]
 9786              uint16 FilterType;
 9787 karl  1.2 
 9788              [OctetString, Description (
 9789                  "The binary data that is used to compare the contents "
 9790                  "of the received packet. This is used when the FilterType is "
 9791                  "set to \"Binary Match\" (value=7). This could also be used "
 9792                  "when the FilterType is set to \"Other\" (value=1).") ]
 9793              uint8 FilterData[];
 9794           
 9795              [Description (
 9796                  "The description of the format of the FilterType used by "
 9797                  "the Service when the FilterType is set to \"Other\" "
 9798                  "(value=1)."), 
 9799               ModelCorrespondence {"CIM_WakeUpService.FilterType"} ]
 9800              string OtherFilterTypeDescription;
 9801           };
 9802           
 9803           
 9804           // ===================================================================
 9805           // OOBAlertServiceOnModem 
 9806           // ===================================================================
 9807           [Association, Version ("2.6.0"), Description (
 9808 karl  1.2    "OOBAlertServiceOnModem defines where the out of band alerting "
 9809              "Service is implemented. The Service can either employ a Modem "
 9810              "or NetworkAdapter to send alerts.") ]
 9811           class CIM_OOBAlertServiceOnModem : CIM_DeviceServiceImplementation {
 9812           
 9813              [Override ("Antecedent"), Max (1),
 9814               Description ("The Modem which implements the alerting Service.") ]
 9815              CIM_Modem REF Antecedent;
 9816           
 9817              [Override ("Dependent"), 
 9818               Description ("The alerting Service provided on the Modem.") ]
 9819              CIM_OOBAlertService REF Dependent;
 9820           };
 9821           
 9822           
 9823           // ===================================================================
 9824           // WakeUpServiceOnModem 
 9825           // ===================================================================
 9826           [Association, Version ("2.6.0"), Description (
 9827              "WakeUpServiceOnModem defines where the WakeUpService is "
 9828              "implemented. The Service can either employ a Modem or "
 9829 karl  1.2    "NetworkAdapter to receive a wakeup signal.") ]
 9830           class CIM_WakeUpServiceOnModem : CIM_DeviceServiceImplementation {
 9831           
 9832              [Override ("Antecedent"), Max (1), 
 9833               Description ("The Modem which implements the WakeUpService.") ]
 9834              CIM_Modem REF Antecedent;
 9835           
 9836              [Override ("Dependent"), 
 9837               Description ("The wakeup Service provided on the Modem.") ]
 9838              CIM_WakeUpService REF Dependent;
 9839           };
 9840           
 9841           
 9842           // ===================================================================
 9843           // OOBAlertServiceOnNetworkAdapter 
 9844           // ===================================================================
 9845           [Association, Version ("2.6.0"), Description (
 9846              "OOBAlertServiceOnNetworkAdapter defines where the out of band "
 9847              "alerting Service is implemented. Currently, the Service can "
 9848              "either employ a Modem or a NetworkAdapter to send alerts.") ]
 9849           class CIM_OOBAlertServiceOnNetworkAdapter : 
 9850 karl  1.2 CIM_DeviceServiceImplementation {
 9851           
 9852              [Override ("Antecedent"), Max (1), Description (
 9853                  "The NetworkAdapter which implements the Service.") ]
 9854              CIM_NetworkAdapter REF Antecedent;
 9855           
 9856              [Override ("Dependent"), Description (
 9857                  "The alerting Service provided on the NetworkAdapter.") ]
 9858              CIM_OOBAlertService REF Dependent;
 9859           };
 9860           
 9861           
 9862           // ===================================================================
 9863           // WakeUpServiceOnNetworkAdapter 
 9864           // ===================================================================
 9865           [Association, Version ("2.6.0"), Description (
 9866              "WakeUpServiceOnNetworkAdapter defines where the WakeUpService "
 9867              "is implemented. Currently, the Service can either employ a Modem "
 9868              "or a NetworkAdapter for wakeup.") ]
 9869           class CIM_WakeUpServiceOnNetworkAdapter : 
 9870           CIM_DeviceServiceImplementation {
 9871 karl  1.2 
 9872              [Override ("Antecedent"), Max (1), Description (
 9873                  "The NetworkAdapter which implements the Service.") ]
 9874              CIM_NetworkAdapter REF Antecedent;
 9875           
 9876              [Override ("Dependent"), Description (
 9877                  "The wakeup Service provided on the NetworkAdapter.") ]
 9878              CIM_WakeUpService REF Dependent;
 9879           };
 9880           
 9881           
 9882           // ==================================================================
 9883           // FibreProtocolService 
 9884           // ==================================================================
 9885           [Version ("2.6.0"), Description (
 9886              "FibreProtocolService abstracts and allows the management of "
 9887              "the Alias, Management, Time, Security, Directory (Naming) and "
 9888              "other services and functions available in a Fibre Channel "
 9889              "network. This class will be further defined in a later "
 9890              "release of CIM.") ]
 9891           class CIM_FibreProtocolService : CIM_Service {
 9892 karl  1.2 };
 9893           
 9894           
 9895           // ===================================================================
 9896           //    UML Page 13 -  Redundancy & Grouping
 9897           // ===================================================================
 9898           // ===================================================================
 9899           // RedundancyGroup
 9900           // ===================================================================
 9901           [Version ("2.6.0"), Description (
 9902              "A class derived from LogicalElement that is a special "
 9903              "collection of ManagedSystemElements. This collection indicates "
 9904              "that the aggregated components together provide redundancy. "
 9905              "All elements aggregated in a RedundancyGroup should be "
 9906              "instantiations of the same object class.") ] 
 9907           class CIM_RedundancyGroup : CIM_LogicalElement {
 9908           
 9909              [Key, MaxLen (256), Description (
 9910                  "CreationClassName indicates the name of the class or "
 9911                  "the subclass used in the creation of an instance. When "
 9912                  "used with the other key properties of this class, this "
 9913 karl  1.2        "property allows all instances of this class and its "
 9914                  "subclasses to be uniquely identified.") ]
 9915              string CreationClassName;
 9916           
 9917              [Override("Name"), 
 9918               Key, MaxLen (256), Description (
 9919                 "The RedundancyGroup Name serves as the key for the "
 9920                 "Group's instance in an enterprise environment.") ]
 9921              string Name;
 9922           
 9923              [Description (
 9924                  "RedundancyStatus provides information on the state of the "
 9925                  "RedundancyGroup. \"Fully Redundant\" (value=2) means that "
 9926                  "all of the configured redundancy is still available; "
 9927                  "\"Degraded Redundancy\" (3) means that some failures have "
 9928                  "been experienced but some reduced amount of redundancy is "
 9929                  "still available; \"Redundancy Lost\" (4) means that a "
 9930                  "sufficient number of failures have been experienced such "
 9931                  "that no redundancy is available and the next failure "
 9932                  "experienced will cause overall failure. Also, the values, "
 9933                  "\"Other\" (1) and \"Unknown\" (0), are defined."),
 9934 karl  1.2     ValueMap {"0", "1", "2", "3", "4"}, 
 9935               Values {"Unknown", "Other", "Fully Redundant", 
 9936                  "Degraded Redundancy", "Redundancy Lost"} ]
 9937              uint16 RedundancyStatus;
 9938           };
 9939           
 9940           
 9941           // ===================================================================
 9942           // RedundancyComponent
 9943           // ===================================================================
 9944           [Association, Aggregation, Version ("2.6.0"), Description (
 9945              "A RedundancyGroup aggregates Managed System Elements and "
 9946              "indicates that these elements, taken together, provide "
 9947              "redundancy. All elements aggregated in a RedundancyGroup "
 9948              "should be instantiations of the same object class.") ] 
 9949           class CIM_RedundancyComponent : CIM_Component {
 9950           
 9951              [Override ("GroupComponent"), Aggregate,
 9952               Description (
 9953                  "The RedundancyComponent association indicates that "
 9954                  "'this set of fans' or 'these physical extents' participate "
 9955 karl  1.2        "in a single RedundancyGroup.") ]
 9956              CIM_RedundancyGroup REF GroupComponent;
 9957           };
 9958           
 9959           
 9960           // ===================================================================
 9961           // SpareGroup
 9962           // ===================================================================
 9963           [Version ("2.6.0"), Description (
 9964              "A class derived from RedundancyGroup indicating that one or "
 9965              "more of the aggregated elements can be spared. (The actual "
 9966              "Spares are defined using the ActsAsSpare association.) An "
 9967              "example is the use of redundant NICs in a ComputerSystem - "
 9968              "where one NIC is primary and the other is Spare. The 'primary' "
 9969              "NIC would be a member of the SpareGroup (associated using the "
 9970              "RedundancyComponent class) and the 'other' NIC would be "
 9971              "associated using the ActsAsSpare relationship.") ] 
 9972           class CIM_SpareGroup : CIM_RedundancyGroup {
 9973           
 9974              [Description (
 9975                  "This method is forces a failover from one ManagedSystemElement "
 9976 karl  1.2        "to another.  There are two parameters to the Failover method, " 
 9977                  "FailoverFrom and FailoverTo. The FailoverFrom parameter is a "
 9978                  "reference to the primary ManagedSystemElement that will become "
 9979                  "inactive after the method. This Element should be associated "
 9980                  "with the SpareGroup through the RedundancyComponent "
 9981                  "relationship. The FailoverTo parameter is a reference to the "
 9982                  "ManagedSystemElement that will take over for the primary. "
 9983                  "This Element should be associated with the SpareGroup through "
 9984                  "the ActsAsSpare association. Once the failover has occurred, "
 9985                  "the SpareGroup and the RedundancyComponent and ActsAsSpare "
 9986                  "associations will be updated with current status.  For "
 9987                  "example, the ActsAsSpare association that contained the "
 9988                  "FailoverTo Element will be deleted and a new Redundancy"
 9989                  "Component association instantiated in its place. The method "
 9990                  "should return 0 if successful, 1 if the request is not "
 9991                  "supported, and some other value if any other error occurred. "
 9992                  "In a subclass, the set of possible return codes could be "
 9993                  "specified, using a ValueMap qualifier on the method. The "
 9994                  "strings to which the ValueMap contents are 'translated' may "
 9995                  "also be specified in the subclass as a Values array "
 9996                  "qualifier.") ]
 9997 karl  1.2    uint32 Failover(
 9998           
 9999                  [IN] CIM_ManagedSystemElement REF FailoverFrom, 
10000           
10001                  [IN] CIM_ManagedSystemElement REF FailoverTo);      
10002           };
10003           
10004           
10005           // ===================================================================
10006           // ActsAsSpare
10007           // ===================================================================
10008           [Association, Version ("2.6.0"), Description (
10009              "The ActsAsSpare association indicates which elements can spare "
10010              "or replace the other aggregated elements.  The fact that a "
10011              "spare can operate in \"hot standby\" mode is specified on an "
10012              "element by element basis.") ]
10013           class CIM_ActsAsSpare  {
10014           
10015              [Key, Description ("The SpareGroup") ]
10016              CIM_SpareGroup REF Group;
10017           
10018 karl  1.2    [Key, Description (
10019                  "A ManagedSystemElement acting as a spare and participating "
10020                  "in the SpareGroup.") ]
10021              CIM_ManagedSystemElement REF Spare; 
10022           
10023              [Description (
10024                  "HotStandby is a boolean indicating that the spare is "
10025                  "operating as a hot standby.") ]
10026              boolean HotStandby;   
10027           };
10028           
10029           
10030           // ===================================================================
10031           // StorageRedundancyGroup
10032           // ===================================================================
10033           [Version ("2.6.0"), Description (
10034              "A class derived from RedundancyGroup containing mass "
10035              "storage-related redundancy information. StorageRedundancy"
10036              "Groups are used to protect user data.  They are made up of one "
10037              "or more PhysicalExtents, or one or more AggregatePExtents. "
10038              "StorageRedundancyGroups may overlap.  However, the "
10039 karl  1.2    "underlying Extents within the overlap should not contain "
10040              "any check data.") ] 
10041           class CIM_StorageRedundancyGroup : CIM_RedundancyGroup  {
10042           
10043              [Description (
10044                  "The TypeOfAlgorithm specifies the algorithm used for data "
10045                  "redundancy and reconstruction. For example, \"P+Q\" (value"
10046                  "=5) or \"P+S\" (7) may be specified. The value of 0, is "
10047                  "defined as \"None\" to indicate that data redundancy is not "
10048                  "active. An inactive redundancy should only be instantiated "
10049                  "if data striping or concatenation are active. These are "
10050                  "indicated by the IsStriped or IsConcatentated boolean "
10051                  "properties of this RedundancyGroup."), 
10052               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"}, 
10053               Values {"None", "Other", "Unknown", "Copy", "XOR", "P+Q", 
10054                  "S", "P+S"}, 
10055               MappingStrings {"MIF.DMTF|Redundancy Group|001.2"} ]
10056              uint16 TypeOfAlgorithm;
10057           
10058              [Description (
10059                  "StorageRedundancy provides additional information on the "
10060 karl  1.2        "state of the RedundancyGroup, beyond the RedundancyStatus "
10061                  "property. Information like \"Reconfig In Progress\" (value"
10062                  "=1) or \"Redundancy Disabled\" can be specified using "
10063                  "this property."), 
10064               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"}, 
10065               Values {"No Additional Status", "Reconfig In Progress", 
10066                  "Data Lost", "Not Currently Configured", 
10067                  "Protected Rebuild", "Redundancy Disabled", 
10068                  "Unprotected Rebuild", "Recalculating", "Verifying"} ]
10069              uint16 StorageRedundancy;
10070           
10071              [Description (
10072                  "True indicates that the data is striped across the various "
10073                  "StorageExtents in the Group.") ]
10074              boolean IsStriped;
10075           
10076              [Description (
10077                  "True indicates that the data is concatenated across the "
10078                  "various StorageExtents in the Group.") ]
10079              boolean IsConcatenated;
10080           };
10081 karl  1.2 
10082           
10083           // ===================================================================
10084           // ExtraCapacityGroup
10085           // ===================================================================
10086           [Version ("2.6.0"), Description (
10087              "A class derived from RedundancyGroup indicating that the "
10088              "aggregated elements have more capacity or capability than is "
10089              "needed.  An example of this type of redundancy is the "
10090              "installation of N+1 power supplies or fans in a system.") ] 
10091           class CIM_ExtraCapacityGroup : CIM_RedundancyGroup {
10092           
10093              [Description (
10094                  "MinNumberNeeded indicates the smallest number of elements "
10095                  "that must be operational in order to have redundancy.  "
10096                  "For example, in an N+1 redundancy relationship, "
10097                  "the MinNumberNeeded property should be set equal to N.") ]
10098              uint32 MinNumberNeeded;
10099           
10100              [Description (
10101                  "Boolean indicating whether load balancing is supported by "
10102 karl  1.2        "the ExtraCapacityGroup.") ]
10103              boolean LoadBalancedGroup; 
10104           };
10105           
10106           
10107           // ===================================================================
10108           // NetworkAdapterRedundancyComponent
10109           // ===================================================================
10110           [Association, Aggregation, Version ("2.6.0"), Description (
10111              "CIM_NetworkAdapterRedundancyComponent indicates the role that "
10112              "a NetworkAdapter plays in a ExtraCapacityGroup, providing "
10113              "load balancing.") ]
10114           class CIM_NetworkAdapterRedundancyComponent : CIM_RedundancyComponent {
10115           
10116              [Override("GroupComponent"), Aggregate,
10117               Description (
10118                  "The RedundancyGroup representing a set of load balanced "
10119                  "NetworkAdapters.") ]
10120              CIM_ExtraCapacityGroup REF GroupComponent;
10121           
10122              [Override("PartComponent"), 
10123 karl  1.2     Description (
10124                  "The Network Adapter(s) belonging to the RedundancyGroup.") ]
10125              CIM_NetworkAdapter REF PartComponent;
10126           
10127              [Description (
10128                  "Indicates the scope of load balancing for the NetworkAdapters "
10129                  "involved in the RedundancyGroup. Load balancing may be "
10130                  "restricted to transmitting data only (value=1), "
10131                  "receiving data only (value=2), or used for both transmit "
10132                  "and receive (value=3)."), 
10133               ValueMap {"0", "1", "2", "3"}, 
10134               Values {"Unknown", "Load Balancing - Transmit Only",
10135                  "Load Balancing - Receive Only", "Full Load Balancing"} ]
10136              uint16 ScopeOfBalancing;
10137           
10138              [Description (
10139                  "Boolean indicating whether the Network Adapter is an original "
10140                  "primary adapter (value=1), a preferred primary adapter (2), "
10141                  "or both (3). Values of \"Unknown\" and \"Not Applicable\" may "
10142                  "also be specified."),
10143               ValueMap {"0", "1", "2", "3", "4"}, 
10144 karl  1.2     Values {"Unknown", "Original Primary", "Preferred Primary", 
10145                  "Both", "Not Applicable"} ]
10146              uint16 PrimaryAdapter;
10147           };
10148           
10149           
10150           // ===================================================================
10151           // NetworkVirtualAdapter
10152           // ===================================================================
10153           [Association, Version ("2.6.0"), Description (
10154              "NetworkVirtualAdapter describes that an instance of Network"
10155              "Adapter is actually the result of several Adapters "
10156              "participating in a load balanced RedundancyGroup.") ]
10157           class CIM_NetworkVirtualAdapter : CIM_LogicalIdentity {
10158           
10159              [Override ("SystemElement"), 
10160               Description ("The 'virtual' NetworkAdapter.") ]
10161              CIM_NetworkAdapter REF SystemElement;
10162           
10163              [Override ("SameElement"), 
10164               Description (
10165 karl  1.2        "The ExtraCapacity RedundancyGroup that describes the load "
10166                  "balancing. The result of the load balancing is the 'virtual' "
10167                  "Adapter.") ]
10168              CIM_ExtraCapacityGroup REF SameElement;
10169           };
10170           
10171            
10172           // ===================================================================
10173           // ExtentRedundancyComponent
10174           // ===================================================================
10175           [Association, Aggregation, Version ("2.6.0"), Description (
10176              "Describes the StorageExtents participating in a Storage"
10177              "RedundancyGroup.") ]
10178           class CIM_ExtentRedundancyComponent : CIM_RedundancyComponent {
10179           
10180              [Override ("GroupComponent"), Aggregate, 
10181               Description ("The StorageRedundancyGroup.") ]
10182              CIM_StorageRedundancyGroup REF GroupComponent;
10183           
10184              [Override ("PartComponent"),  Description (
10185                  "The StorageExtent participating in the RedundancyGroup.") ]
10186 karl  1.2    CIM_StorageExtent REF PartComponent;
10187           };
10188           
10189           
10190           // ===================================================================
10191           // PExtentRedundancyComponent
10192           // ===================================================================
10193           [Association, Aggregation, Version ("2.6.0"), Description (
10194              "Describes the PhysicalExtents participating in a Storage"
10195              "RedundancyGroup.") ] 
10196           class CIM_PExtentRedundancyComponent : CIM_ExtentRedundancyComponent {
10197           
10198              [Override ("GroupComponent"), Aggregate,
10199               Description ("The StorageRedundancyGroup.")   ]
10200              CIM_StorageRedundancyGroup REF GroupComponent;
10201           
10202              [Override ("PartComponent"), Description (
10203                  "The PhysicalExtent participating in the RedundancyGroup.") ]
10204              CIM_PhysicalExtent REF PartComponent;
10205           };
10206           
10207 karl  1.2 
10208           // ===================================================================
10209           // AggregateRedundancyComponent
10210           // ===================================================================
10211           [Association, Aggregation, Version ("2.6.0"), Description (
10212              "Describes the AggregatePExtent in a StorageRedundancyGroup.") ] 
10213           class CIM_AggregateRedundancyComponent : CIM_ExtentRedundancyComponent {
10214           
10215              [Override ("GroupComponent"), Aggregate,
10216               Description ("The StorageRedundancyGroup.") ]
10217              CIM_StorageRedundancyGroup REF GroupComponent;
10218           
10219              [Override ("PartComponent"), Description (
10220                 "The AggregatePExtent participating in the RedundancyGroup.") ]
10221              CIM_AggregatePExtent REF PartComponent;
10222           };
10223           
10224           
10225           // ==============================================================
10226           // DiskGroup 
10227           // ==============================================================
10228 karl  1.2 [Version ("2.6.0"), Description (
10229              "A DiskGroup is a named collection of DiskDrives and the "
10230              "StorageExtent(s) accessed via those Drives. The "
10231              "collection is used to limit the BasedOn relationships of "
10232              "the Extents in the DiskGroup. Extents in the Group can NOT "
10233              "be BasedOn storage accessed from Drives outside of the "
10234              "Group. For example, a SoftwareVolume created 'within the "
10235              "DiskGroup' is restricted to be completely accessed using "
10236              "Drives in the Group. Actions such as 'replicate' or "
10237              "'migrate' on an Extent must operate within the scope of "
10238              "the Extents present in the DiskGroup.") ]
10239           class CIM_DiskGroup : CIM_CollectionOfMSEs {
10240           
10241              [Override ("CollectionID"), Key]
10242              string CollectionID;
10243           };
10244           
10245           
10246           // ===================================================================
10247           // DriveInDiskGroup
10248           // ===================================================================
10249 karl  1.2 [Association, Aggregation, Version ("2.6.0"), Description (
10250              "CIM_DriveInDiskGroup defines the DiskDrive(s) that participate "
10251              "in the Group.") ]
10252           class CIM_DriveInDiskGroup : CIM_CollectedMSEs {
10253           
10254              [Override ("Collection"), Aggregate, Max (1), 
10255               Description (
10256                  "The DiskGroup. A Drive is a member of at most one "
10257                  "DiskGroup.") ]
10258              CIM_DiskGroup REF Collection;
10259           
10260              [Override ("Member"), Description (
10261                  "The DiskDrive in the Group.") ]
10262              CIM_DiskDrive REF Member;
10263           };
10264           
10265           
10266           // ===================================================================
10267           // ExtentInDiskGroup
10268           // ===================================================================
10269           [Association, Aggregation, Version ("2.6.0"), Description (
10270 karl  1.2    "CIM_ExtentInDiskGroup defines the StorageExtent(s) that are "
10271              "located within and restricted by the Group.") ]
10272           class CIM_ExtentInDiskGroup : CIM_CollectedMSEs {
10273           
10274              [Override ("Collection"), Aggregate, Max (1), 
10275               Description (
10276                  "The DiskGroup. An Extent is defined within at most one "
10277                  "DiskGroup.") ]
10278              CIM_DiskGroup REF Collection;
10279           
10280              [Override ("Member"), Description (
10281                  "The StorageExtent restricted by and participating in the "
10282                  "Group.") ]
10283              CIM_StorageExtent REF Member;
10284           };
10285           
10286           
10287           // ===================================================================
10288           // GroupInDiskGroup
10289           // ===================================================================
10290           [Association, Aggregation, Version ("2.6.0"), Description (
10291 karl  1.2    "CIM_GroupInDiskGroup describes that a DiskGroup may be "
10292              "divided into smaller named Collections.") ]
10293           class CIM_GroupInDiskGroup : CIM_CollectedCollections {
10294           
10295              [Override ("Collection"), Aggregate, Max (1), 
10296               Description (
10297                  "The DiskGroup that is subsetted into smaller "
10298                  "Collections.") ]
10299              CIM_DiskGroup REF Collection;
10300           
10301              [Override ("CollectionInCollection"), Description (
10302                  "The DiskGroup that is a subset of the larger Group.") ]
10303              CIM_DiskGroup REF CollectionInCollection;
10304           };
10305           
10306           
10307           // ===================================================================
10308           //    UML Page 14 - Settings & Logs
10309           // ===================================================================
10310           // ===================================================================
10311           // MonitorResolution
10312 karl  1.2 // ===================================================================
10313           [Version ("2.6.0"), Description (
10314              "MonitorResolution describes the relationship between "
10315              "horizontal and vertical resolutions, refresh rate and scan "
10316              "mode for a DesktopMonitor. The actual resolutions, etc. that "
10317              "are in use, are the values specified in the VideoController "
10318              "object.") ] 
10319           class CIM_MonitorResolution : CIM_Setting {
10320           
10321              [Override ("SettingID"),
10322               Key, MaxLen (256),
10323               Description (
10324                  "The inherited SettingID serves as part of the key for a "
10325                  "MonitorResolution instance.") ]
10326              string SettingID; 
10327           
10328              [Description ("Monitor's horizontal resolution in Pixels."),
10329               Units ("Pixels"),
10330               ModelCorrespondence {
10331                  "CIM_VideoController.CurrentHorizontalResolution"},
10332               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.2"} ]
10333 karl  1.2    uint32 HorizontalResolution;
10334           
10335              [Description ("Monitor's vertical resolution in Pixels."),
10336               Units ("Pixels"),
10337               ModelCorrespondence {
10338                  "CIM_VideoController.CurrentVerticalResolution"},
10339               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.3"} ]
10340              uint32 VerticalResolution;
10341           
10342              [Description (
10343                  "Monitor's refresh rate in Hertz. If a range of rates is "
10344                  "supported, use the MinRefreshRate and MaxRefreshRate "
10345                  "properties, and set RefreshRate (this property) to 0."), 
10346               Units ("Hertz"),
10347               ModelCorrespondence {
10348                  "CIM_VideoController.CurrentRefreshRate"},
10349               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.4"} ]
10350              uint32 RefreshRate;
10351           
10352              [Description (
10353                  "Monitor's minimum refresh rate in Hertz, when a range of "
10354 karl  1.2        "rates is supported at the specified resolutions."),
10355               Units ("Hertz"),
10356               ModelCorrespondence {
10357                  "CIM_VideoController.MinRefreshRate"},
10358               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.6"} ]
10359              uint32 MinRefreshRate;
10360           
10361              [Description (
10362                  "Monitor's maximum refresh rate in Hertz, when a range of "
10363                  "rates is supported at the specified resolutions."),
10364               Units ("Hertz"),
10365               ModelCorrespondence {
10366                  "CIM_VideoController.MaxRefreshRate"},
10367               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.7"} ]
10368              uint32 MaxRefreshRate;
10369           
10370              [Description (
10371                  "Integer indicating whether the monitor operates in "
10372                  "interlaced (value=5) or non-interlaced (4) mode."),
10373               ValueMap {"1", "2", "3", "4", "5"},
10374               Values {"Other", "Unknown", "Not Supported",
10375 karl  1.2        "Non-Interlaced Operation", "Interlaced Operation"},
10376               ModelCorrespondence {
10377                  "CIM_VideoController.CurrentScanMode"},
10378               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.5"} ]
10379              uint16 ScanMode;
10380           };
10381           
10382           
10383           // ===================================================================
10384           // MonitorSetting
10385           // ===================================================================
10386           [Association, Version ("2.6.0"), Description (
10387              "MonitorSetting associates the MonitorResolution Setting object "
10388              "with the DesktopMonitor to which it applies.") ] 
10389           class CIM_MonitorSetting : CIM_ElementSetting {
10390           
10391              [Override ("Element"), Description (
10392                  "The DesktopMonitor.") ] 
10393              CIM_DesktopMonitor REF Element;
10394           
10395              [Override ("Setting"), Description (
10396 karl  1.2        "The MonitorResolution associated with the DesktopMonitor.") ]   
10397              CIM_MonitorResolution REF Setting;
10398           };
10399           
10400           
10401           // ===================================================================
10402           // VideoControllerResolution
10403           // ===================================================================
10404           [Version ("2.6.0"), Description (
10405              "VideoControllerResolution describes the various video modes "
10406              "that a VideoController can support. Video modes are defined by "
10407              "the possible horizontal and vertical resolutions, refresh "
10408              "rate, scan mode and number of colors settings supported by a "
10409              "Controller. The actual resolutions, etc. that are in use, are "
10410              "the values specified in the VideoController object.") ]
10411           class CIM_VideoControllerResolution : CIM_Setting {
10412           
10413              [Override ("SettingID"), 
10414               Key, MaxLen (256), Description (
10415                  "The inherited SettingID serves as part of the key for a "
10416                  "VideoControllerResolution instance.") ]
10417 karl  1.2    string SettingID;
10418           
10419              [Description ("Controller's horizontal resolution in Pixels."), 
10420               Units ("Pixels"), 
10421               ModelCorrespondence {
10422                  "CIM_VideoController.CurrentHorizontalResolution"}, 
10423               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.2"} ]
10424              uint32 HorizontalResolution;
10425           
10426              [Description ("Controller's vertical resolution in Pixels."), 
10427               Units ("Pixels"), 
10428               ModelCorrespondence {
10429                  "CIM_VideoController.CurrentVerticalResolution"}, 
10430               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.3"} ]
10431              uint32 VerticalResolution;
10432           
10433              [Description (
10434                  "Refresh rate in Hertz. If a range of rates is supported, use "
10435                  "the MinRefreshRate and MaxRefreshRate properties, and set "
10436                  "RefreshRate (this property) to 0."), 
10437               Units ("Hertz"), 
10438 karl  1.2     ModelCorrespondence {"CIM_VideoController.CurrentRefreshRate"}, 
10439               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.4"} ]
10440              uint32 RefreshRate;
10441           
10442              [Description (
10443                  "Minimum refresh rate in Hertz, when a range of rates is "
10444                  "supported at the specified resolutions."), 
10445               Units ("Hertz"), 
10446               ModelCorrespondence {"CIM_VideoController.MinRefreshRate"}, 
10447               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.6"} ]
10448              uint32 MinRefreshRate;
10449           
10450              [Description (
10451                  "Maximum refresh rate in Hertz, when a range of rates is "
10452                  "supported at the specified resolutions."), 
10453               Units ("Hertz"), 
10454               ModelCorrespondence {"CIM_VideoController.MaxRefreshRate"}, 
10455               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.7"} ]
10456              uint32 MaxRefreshRate;
10457           
10458              [Description (
10459 karl  1.2        "Integer indicating whether the Controller operates in "
10460                  "interlaced (value=5) or non-interlaced (4) mode."), 
10461               ValueMap {"1", "2", "3", "4", "5"}, 
10462               Values {"Other", "Unknown", "Not Supported", 
10463                  "Non-Interlaced Operation", "Interlaced Operation"}, 
10464               ModelCorrespondence {"CIM_VideoController.CurrentScanMode"}, 
10465               MappingStrings {"MIF.DMTF|Monitor Resolutions|002.5"} ]
10466              uint16 ScanMode;
10467           
10468              [Description (
10469                  "Number of colors supported at the current resolutions."), 
10470               ModelCorrespondence {
10471                  "CIM_VideoController.CurrentNumberOfColors"} ]
10472              uint64 NumberOfColors;
10473           };
10474           
10475           
10476           // ===================================================================
10477           // VideoSetting
10478           // ===================================================================
10479           [Association, Version ("2.6.0"), Description (
10480 karl  1.2    "VideoSetting associates the VideoControllerResolution Setting "
10481              "with the Controller(s) to which it applies.") ]
10482           class CIM_VideoSetting : CIM_ElementSetting {
10483           
10484              [Override ("Element"), 
10485               Description ("The VideoController.") ]
10486              CIM_VideoController REF Element;
10487           
10488              [Override ("Setting"), 
10489               Description (
10490                  "The resolutions, refresh rates, scan mode and number of colors "
10491                  "that can be set for the Controller.") ]
10492              CIM_VideoControllerResolution REF Setting;
10493           };
10494           
10495           
10496           // ===================================================================
10497           // MessageLog
10498           // ===================================================================
10499           [Version ("2.6.0"), Description (
10500              "MessageLog represents any type of event, error or informational "
10501 karl  1.2    "register or chronicle. The object describes the existence of "
10502              "the log and its characteristics. Several methods are defined "
10503              "for retrieving, writing and deleting log entries, and "
10504              "maintaining the log.") ] 
10505           class CIM_MessageLog : CIM_LogicalElement {
10506           
10507              [Key, MaxLen (256),
10508               Description (
10509                  "CreationClassName indicates the name of the class or "
10510                  "the subclass used in the creation of an instance. When "
10511                  "used with the other key properties of this class, this "
10512                  "property allows all instances of this class and its "
10513                  "subclasses to be uniquely identified.") ]
10514              string CreationClassName;
10515           
10516              [Override ("Name"), 
10517               Key, MaxLen (256), 
10518               Description (
10519                  "The inherited Name serves as part of the key (a unique "
10520                  "identifier) for the MessageLog instance.") ] 
10521              string Name; 
10522 karl  1.2 
10523              [Description (
10524                  "An array of integers indicating the Log capabilities. "
10525                  "Information such as \"Write Record Supported\" (value="
10526                  "2) or \"Variable Length Records Supported\" (8) is "
10527                  "specified in this property."),
10528               ArrayType ("Indexed"),
10529               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}, 
10530               Values {"Unknown", "Other", "Write Record Supported", 
10531                  "Delete Record Supported", 
10532                  "Can Move Backward in Log", "Freeze Log Supported", 
10533                  "Clear Log Supported", 
10534                  "Supports Addressing by Ordinal Record Number",
10535                  "Variable Length Records Supported", 
10536                  "Variable Formats for Records", 
10537                  "Can Flag Records for Overwrite"}, 
10538               ModelCorrespondence {
10539                  "CIM_MessageLog.CapabilitiesDescriptions"} ]
10540              uint16 Capabilities[];
10541           
10542              [Description (
10543 karl  1.2        "An array of free-form strings providing more detailed "
10544                  "explanations for any of the Log features indicated in "
10545                  "the Capabilities array. Note, each entry of this array "
10546                  "is related to the entry in the Capabilities array that "
10547                  "is located at the same index."),
10548               ArrayType ("Indexed"),
10549               ModelCorrespondence {"CIM_MessageLog.Capabilities"} ]
10550              string CapabilitiesDescriptions[];
10551           
10552              [Description (
10553                  "The maximum size, in bytes, to which the Log can grow. "
10554                  "If there is no maximum, then MaxLogSize should be set "
10555                  "to 0."),
10556               Units ("Bytes") ]
10557              uint64 MaxLogSize;
10558           
10559              [Description (
10560                  "The size of the Log header, in bytes, if one is "
10561                  "present. If there is no Log header, then this property "
10562                  "should be set to 0. Headers may include general "
10563                  "information about the Log such as the current number of "
10564 karl  1.2        "records, time of last update, or a pointer to the location "
10565                  "of the first Log entry. Note that this property is NOT the "
10566                  "size of the header for an individual Log entry. The latter "
10567                  "is described by the property, SizeOfRecordHeader."), 
10568               Units ("Bytes") ]
10569              uint64 SizeOfHeader;
10570           
10571              [Description (
10572                  "If the SizeOfHeader property is non-zero, this property "
10573                  "describes the structure and format of the Log header. It "
10574                  "is a free-form string. If the SizeOfHeader property is 0, "
10575                  "then the information in this property is undefined.") ]
10576              string HeaderFormat;
10577           
10578              [Description (
10579                  "Maximum size, in bytes, to which an individual Log "
10580                  "entry (record) can grow - if the Capabilities array "
10581                  "includes a value of 7 (\"Variable Length Records "
10582                  "Supported\"). If the Capabilities array does not "
10583                  "include a 7, then the Log only supports fixed length "
10584                  "entries. The size of these entries is described by "
10585 karl  1.2        "this property."), 
10586               Units ("Bytes") ]
10587              uint64 MaxRecordSize;
10588           
10589              [Description (
10590                  "The size of the header for the Log's individual entries, "
10591                  "in bytes, if record headers are defined. If there are no "
10592                  "record headers, then this property should be set to 0. "
10593                  "Record headers may include information such as the type of "
10594                  "the Log entry, the date/time that the entry was last "
10595                  "updated, or a pointer to the start of optional data. Note "
10596                  "that this property defines the header size for individual "
10597                  "records in the Log, while the SizeOfHeader property "
10598                  "describes the Log's overall header, typically located at "
10599                  "the start of the MessageLog."), 
10600               Units ("Bytes") ]
10601              uint64 SizeOfRecordHeader;
10602           
10603              [Description (
10604                  "If the SizeOfRecordHeader property is non-zero, this "
10605                  "property describes the structure and format of the "
10606 karl  1.2        "record headers. It is a free-form string. If the "
10607                  "SizeOfRecordHeader property is 0, then the information "
10608                  "in this property is undefined.") ]
10609              string RecordHeaderFormat;
10610           
10611              [Description (
10612                  "Maximum number of records that can be captured in "
10613                  "the Log. If undefined, a value of zero should be "
10614                  "specified. Note that when the Capabilities array "
10615                  "indicates that variable length records are supported "
10616                  "(value=7), then it is possible that this maximum may "
10617                  "not be achieved.") ]
10618              uint64 MaxNumberOfRecords;
10619           
10620              [Description (
10621                  "Current number of entries (records) in the Log."),
10622               Gauge ]
10623              uint64 CurrentNumberOfRecords;
10624           
10625              [Description (
10626                  "An enumeration describing the behavior of the Log, when "
10627 karl  1.2        "it becomes full or near full. For example, the Log may "
10628                  "wrap (value=2) or may simply stop recording entries (value"
10629                  "=7). \n\n"
10630                  "Some of the property's possible values need further "
10631                  "explanation:\n"
10632                  "3=\"Clear When Near Full\" indicates that all of the Log's "
10633                  "entries will be deleted when a specified record capacity is "
10634                  "reached. The capacity is specified in percentage, using the "
10635                  "property, PercentageNearFull. 'Near Full' may be less than "
10636                  "100% if the Log takes time to clear, and a position should "
10637                  "always be available for new records. \n"
10638                  "4=\"Overwrite Outdated When Needed\" describes that Log "
10639                  "entries (timestamped later than the date/time specified in "
10640                  "the property, TimeWhenOutdated) can be overwritten. \n"
10641                  "5=\"Remove Outdated Records\" specifies that records "
10642                  "(timestamped later than the date/time specified in the "
10643                  "property, TimeWhenOutdated) are logically and/or physically "
10644                  "removed from the Log. \n"
10645                  "6=\"Overwrite Specific Records\" indicates that specially "
10646                  "flagged records may be overwritten. This property only makes "
10647                  "sense when the Capabilities array includes a value of 10, "
10648 karl  1.2        "\"Can Flag Records for Overwrite\"."),
10649               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"}, 
10650               Values {"Unknown", "Other", "Wraps When Full",
10651                  "Clear When Near Full", 
10652                  "Overwrite Outdated When Needed", 
10653                  "Remove Outdated Records",
10654                  "Overwrite Specific Records", 
10655                  "Never Overwrite"},
10656               ModelCorrespondence {"CIM_MessageLog.OtherPolicyDescription", 
10657                  "CIM_MessageLog.TimeWhenOutdated", 
10658                  "CIM_MessageLog.PercentageNearFull"} ]
10659              uint16 OverwritePolicy;
10660           
10661              [Description (
10662                  "When the OverwritePolicy specifies a value of 1 "
10663                  "(\"Other\"), the Log's behavior can be explained "
10664                  "using this property. If OverwritePolicy is not 1, "
10665                  "then this property's contents are undefined."), 
10666               ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"} ]
10667              string OtherPolicyDescription;
10668           
10669 karl  1.2    [Description (
10670                  "If the OverwritePolicy is based on 'outdated' records "
10671                  "(values 4 or 5), this property defines when a Log entry "
10672                  "is considered to be outdated - either by time interval or "
10673                  "at a specific date and time."), 
10674               ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"} ]
10675              datetime TimeWhenOutdated;
10676           
10677              [Description (
10678                  "If the OverwritePolicy is based on clearing records "
10679                  "when the Log is near full (value=3), this property defines "
10680                  "the record capacity (in percentage) that is considered to "
10681                  "be 'near full'."),
10682               Units ("Percent"), 
10683               ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"} ]
10684              uint8 PercentageNearFull;
10685           
10686              [Description (
10687                  "An enumeration describing the last change to the "
10688                  "MessageLog."), 
10689               ValueMap {"0", "1", "2", "3", "4"}, 
10690 karl  1.2     Values {"Unknown", "Add", "Delete", "Modify", "Log Cleared"} ]
10691              uint16 LastChange;
10692           
10693              [Description (
10694                  "When a change is made to the Log, the date/time of "
10695                  "that modification is captured. This property could be "
10696                  "used to event against any update to the MessageLog.") ]
10697              datetime TimeOfLastChange;
10698           
10699              [Description (
10700                  "When a change is made to the Log, the record number that "
10701                  "was modified is captured.") ]
10702              uint64 RecordLastChanged;
10703           
10704              [Description (
10705                  "Boolean indicating that the Log is currently frozen and "
10706                  "modifications are not allowed.") ]
10707              boolean IsFrozen;
10708           
10709              [Description (
10710                  "An enumeration describing the character set used to record "
10711 karl  1.2        "data in the individual Log entries. For example, the "
10712                  "Log records may contain ASCII data (value=2), or be raw octet "
10713                  "strings (value=10)."), 
10714               ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
10715                  "10", "11"}, 
10716               Values {"Unknown", "Other", "ASCII", "Unicode", "ISO2022", 
10717                  "ISO8859", "Extended UNIX Code", "UTF-8", "UCS-2", 
10718                  "Bitmapped Data", "OctetString", 
10719                  "Defined by Individual Records"} ]
10720              uint16 CharacterSet; 
10721           
10722              [Description (
10723                  "Requests that the MessageLog be cleared of all entries. "
10724                  "The return value should be 0 if the request was successfully "
10725                  "executed, 1 if the request is not supported and some other "
10726                  "value if an error occurred. If the request is not supported, "
10727                  "check the Capabilities array that a value of 6 (\"Clear Log "
10728                  "Supported\") is specified. \n\n"
10729                  "Note: In a subclass, the set of possible return codes could "
10730                  "be described using a ValueMap qualifier on the method. The "
10731                  "strings to which the ValueMap contents are 'translated' may "
10732 karl  1.2        "also be specified in the subclass as a Values array "
10733                  "qualifier.") ]
10734              uint32 ClearLog();
10735           
10736              [Description (
10737                  "Requests that an iteration of the MessageLog be established "
10738                  "and that the iterator be set to the first entry in the Log. "
10739                  "An identifier for the iterator is returned as an output "
10740                  "parameter of the method. \n"
10741                  "\n"
10742                  "Regarding iteration, you have 2 choices:  1) Embed iteration "
10743                  "data in the method call, and allow implementations to track/"
10744                  "store this data manually; or, 2) Iterate using a separate "
10745                  "object (for example, class ActiveIterator) as an iteration "
10746                  "agent. The first approach is used here for interoperability. "
10747                  "The second requires an instance of the Iterator object for "
10748                  "EACH iteration in progress. 2's functionality could be "
10749                  "implemented underneath 1. \n"
10750                  "\n"
10751                  "The return value from PositionToFirstRecord should be 0 if "
10752                  "the request was successfully executed, 1 if the request is "
10753 karl  1.2        "not supported and some other value if an error occurred. In "
10754                  "a subclass, the set of possible return codes could be "
10755                  "specified, using a ValueMap qualifier on the method. The "
10756                  "strings to which the ValueMap contents are 'translated' may "
10757                  "also be specified in the subclass as a Values array "
10758                  "qualifier.") ]
10759              uint32 PositionToFirstRecord (
10760           
10761                  [IN (false), OUT] string IterationIdentifier);
10762           
10763              [Description (
10764                  "Requests that the Log's iteration identifier be advanced or "
10765                  "retreated a specific number of records, or set to the "
10766                  "entry at a specified numeric location. These two different "
10767                  "behaviors are accomplished using the input parameters of the "
10768                  "method. Advancing or retreating is achieved by setting the "
10769                  "MoveAbsolute boolean to FALSE, and then specifying the number "
10770                  "of entries to advance or retreat as positive or negative values "
10771                  "in the RecordNumber parameter. Moving to a specific record "
10772                  "number is accomplished by setting the MoveAbsolute input "
10773                  "parameter to TRUE, and then placing the record number into "
10774 karl  1.2        "the RecordNumber parameter. This can only be done if the "
10775                  "Capabilities array includes a value of 7, \"Supports "
10776                  "Addressing by Ordinal Record Number\". \n"
10777                  "\n"
10778                  "After the method completes and if ordinal record numbers are "
10779                  "supported (the Capabilities array includes a 7), the current "
10780                  "record number is returned in the RecordNumber output parameter. "
10781                  "Otherwise, the value of the parameter is undefined. \n"
10782                  "\n"
10783                  "IterationIdentifier is defined as an Input/Output method "
10784                  "parameter to allow the Log to embed state information in "
10785                  "the Identifier and potentially let the identifier be "
10786                  "maintained by the using application. \n"
10787                  "\n"
10788                  "The return value from PositionAtRecord should be 0 if "
10789                  "the request was successfully executed, 1 if the request is "
10790                  "not supported and some other value if an error occurred. If "
10791                  "the request is not supported, check the Capabilities array "
10792                  "regarding support for ordinal record number addressing and "
10793                  "backward movement in the Log (values 7 and 4, respectively). \n"
10794                  "\n"
10795 karl  1.2        "Note: In a subclass, the set of possible return codes could "
10796                  "be described using a ValueMap qualifier on the method. The "
10797                  "strings to which the ValueMap contents are 'translated' may "
10798                  "also be specified in the subclass as a Values array "
10799                  "qualifier.") ]
10800              uint32 PositionAtRecord (
10801           
10802                  [IN, OUT] string IterationIdentifier, 
10803           
10804                  [IN, Description ("Advancing or retreating the IterationIdentifier "
10805                      "is achieved by setting the MoveAbsolute boolean to FALSE, "
10806                      "and specifying the number of entries to advance or retreat "
10807                      "as positive or negative values in the RecordNumber "
10808                      "parameter. Moving to a specific record number is "
10809                      "accomplished by setting the MoveAbsolute parameter to TRUE, "
10810                      "and placing the record number into the RecordNumber "
10811                      "parameter.") ] 
10812                  boolean MoveAbsolute, 
10813           
10814                  [IN, OUT] sint64 RecordNumber);
10815           
10816 karl  1.2    [Description (
10817                  "Requests that the record indicated by the IterationIdentifier "
10818                  "be retrieved from the MessageLog. After retrieval, the "
10819                  "IterationIdentifier may be advanced to the next record by "
10820                  "setting the PositionToNext input parameter to TRUE. Two output "
10821                  "parameters are defined for the method - RecordData which holds "
10822                  "the contents of the Log entry (as an array of bytes that can "
10823                  "be recast to an appropriate format), and RecordNumber which "
10824                  "returns the current record number addressed via the Iteration"
10825                  "Identifier. The RecordNumber parameter is only defined/valid "
10826                  "when the Capabilities array indicates that ordinal record "
10827                  "number addressing is supported (a value of 7). \n"
10828                  "\n"
10829                  "IterationIdentifier is defined as an Input/Output method "
10830                  "parameter to allow the Log to embed state information in "
10831                  "the Identifier and potentially let the identifier be "
10832                  "maintained by the using application. \n"
10833                  "\n"
10834                  "The return value from GetRecord should be 0 if the request "
10835                  "was successfully executed, 1 if the request is not supported, "
10836                  "and some other value if an error occurred. In a subclass, the "
10837 karl  1.2        "set of possible return codes could be specified, using a "
10838                  "ValueMap qualifier on the method. The strings to which the "
10839                  "ValueMap contents are 'translated' may also be specified in "
10840                  "the subclass as a Values array qualifier.") ]
10841              uint32 GetRecord (
10842           
10843                  [IN, OUT] string IterationIdentifier, 
10844           
10845                  [IN, Description ("Boolean indicating that the Iteration"
10846                      "Identifier should be advanced to the next record, after "
10847                      "retrieving the current Log entry.") ] 
10848                  boolean PositionToNext, 
10849           
10850                  [IN (false), OUT] uint64 RecordNumber,
10851           
10852                  [IN (false), OUT] uint8 RecordData[]); 
10853           
10854              [Description (
10855                  "Requests that the record indicated by the IterationIdentifier "
10856                  "be deleted from the MessageLog. After deletion, the Iteration"
10857                  "Identifier may be advanced to the next record by setting the "
10858 karl  1.2        "PositionToNext input parameter to TRUE. If set to FALSE, then "
10859                  "the IterationIdentifier will be positioned at the previous "
10860                  "record. Two output parameters are defined for the method - "
10861                  "RecordData which holds the contents of the deleted Log entry "
10862                  "(as an array of bytes that can be recast to an appropriate "
10863                  "format or discarded), and RecordNumber which returns the "
10864                  "current record number addressed via the IterationIdentifier. "
10865                  "The RecordNumber parameter is only defined/valid when the "
10866                  "Capabilities array indicates that ordinal record number "
10867                  "addressing is supported (a value of 7). \n"
10868                  "\n"
10869                  "IterationIdentifier is defined as an Input/Output method "
10870                  "parameter to allow the Log to embed state information in "
10871                  "the Identifier and potentially let the identifier be "
10872                  "maintained by the using application. \n"
10873                  "\n"
10874                  "The return value from DeleteRecord should be 0 if the request "
10875                  "was successfully executed, 1 if the request is not supported, "
10876                  "and some other value if an error occurred. If the request is "
10877                  "not supported, check the Capabilities array that a value of 3 "
10878                  "(\"Delete Record Supported\") is specified. \n"
10879 karl  1.2        "\n"
10880                  "Note: In a subclass, the set of possible return codes could "
10881                  "be described using a ValueMap qualifier on the method. The "
10882                  "strings to which the ValueMap contents are 'translated' may "
10883                  "also be specified in the subclass as a Values array "
10884                  "qualifier.") ]
10885              uint32 DeleteRecord (
10886           
10887                  [IN, OUT] string IterationIdentifier, 
10888           
10889                  [IN, Description ("Boolean that when set to TRUE requests the "
10890                      "IterationIdentifier to be advanced to the next record, "
10891                      "after the current entry is deleted. If set to FALSE, "
10892                      "IterationIdentifier is set to the previous record.") ]
10893                  boolean PositionToNext, 
10894           
10895                  [IN (false), OUT] uint64 RecordNumber,
10896           
10897                  [IN (false), OUT] uint8 RecordData[]); 
10898           
10899              [Description (
10900 karl  1.2        "Requests that a record be inserted at the Log position "
10901                  "indicated by the IterationIdentifier. The entry's data is "
10902                  "provided in the RecordData input parameter. After insertion, "
10903                  "the IterationIdentifier may be advanced to the next record "
10904                  "by setting the PositionToNext input parameter to TRUE. "
10905                  "The output parameter, RecordNumber, returns the current "
10906                  "record number addressed via the IterationIdentifier. This "
10907                  "parameter is only defined/valid when the Capabilities array "
10908                  "indicates that ordinal record number addressing is supported " 
10909                  "(a value of 7). \n"
10910                  "\n"
10911                  "IterationIdentifier is defined as an Input/Output method "
10912                  "parameter to allow the Log to embed state information in "
10913                  "the Identifier and potentially let the identifier be "
10914                  "maintained by the using application. \n"
10915                  "\n"
10916                  "The return value from WriteRecord should be 0 if the request "
10917                  "was successfully executed, 1 if the request is not supported, "
10918                  "and some other value if an error occurred. If the request is "
10919                  "not supported, check the Capabilities array that a value of 2 "
10920                  "(\"Write Record Supported\") is specified. \n"
10921 karl  1.2        "\n"
10922                  "Note: In a subclass, the set of possible return codes could "
10923                  "be described using a ValueMap qualifier on the method. The "
10924                  "strings to which the ValueMap contents are 'translated' may "
10925                  "also be specified in the subclass as a Values array "
10926                  "qualifier.") ]
10927              uint32 WriteRecord (
10928           
10929                  [IN, OUT] string IterationIdentifier, 
10930           
10931                  [IN, Description ("Boolean indicating that the Iteration"
10932                      "Identifier should be advanced to the next record, after "
10933                      "writing the Log entry.") ] 
10934                  boolean PositionToNext, 
10935           
10936                  [IN] uint8 RecordData[],
10937           
10938                  [IN (false), OUT] uint64 RecordNumber); 
10939           
10940              [Description (
10941                  "Requests that an iteration of the Log, identified by the "
10942 karl  1.2        "IterationIdentifier input parameter, be stopped. The "
10943                  "return value from CancelIteration should be 0 if the "
10944                  "request was successfully executed, 1 if the request is "
10945                  "not supported and some other value if an error occurred. In "
10946                  "a subclass, the set of possible return codes could be "
10947                  "specified, using a ValueMap qualifier on the method. The "
10948                  "strings to which the ValueMap contents are 'translated' "
10949                  "may also be specified in the subclass as a Values array "
10950                  "qualifier.") ]
10951              uint32 CancelIteration (
10952           
10953                  [IN] string IterationIdentifier);
10954           
10955              [Description (
10956                  "Requests that the MessageLog be placed in a frozen state "
10957                  "(\"Freeze\" input parameter = TRUE) or 'unfrozen' (= FALSE). "
10958                  "If frozen, modifications to the Log will not be allowed. "
10959                  "If successful, the Log's IsFrozen boolean property will "
10960                  "be updated to reflect the desired state. \n\n"
10961                  "The method's return code should be 0 if the request was "
10962                  "successfully executed, 1 if the request is not supported "
10963 karl  1.2        "and some other value if an error occurred. If the request "
10964                  "is not supported, check the Capabilities array that a value "
10965                  "of 5 (\"Freeze Log Supported\") is specified. \n\n"
10966                  "Note: In a subclass, the set of possible return codes could "
10967                  "be described using a ValueMap qualifier on the method. The "
10968                  "strings to which the ValueMap contents are 'translated' may "
10969                  "also be specified in the subclass as a Values array "
10970                  "qualifier.") ]
10971              uint32 FreezeLog(
10972           
10973                  [IN] boolean Freeze);
10974           
10975              [Description (
10976                  "Requests that the record indicated by the IterationIdentifier "
10977                  "be flagged as overwriteable. This method is only supported "
10978                  "when the Capabilities array includes a value of 10, \"Can Flag "
10979                  "Records for Overwrite\". After updating the entry, the "
10980                  "IterationIdentifier may be advanced to the next record by "
10981                  "setting the PositionToNext input parameter to TRUE. One output "
10982                  "parameter is defined for the method RecordNumber. It returns "
10983                  "the current record number addressed via the Iteration"
10984 karl  1.2        "Identifier. This parameter is only defined/valid when the "
10985                  "Capabilities array indicates that ordinal record number "
10986                  "addressing is supported (a value of 7). \n"
10987                  "\n"
10988                  "IterationIdentifier is defined as an Input/Output method "
10989                  "parameter to allow the Log to embed state information in "
10990                  "the Identifier and potentially let the identifier be "
10991                  "maintained by the using application. \n"
10992                  "\n"
10993                  "The return value from FlagRecordForOverwrite should be 0 if "
10994                  "the request was successfully executed, 1 if the request is not "
10995                  "supported, and some other value if an error occurred. In a "
10996                  "subclass, the set of possible return codes could be specified, "
10997                  "using a ValueMap qualifier on the method. The strings to which "
10998                  "the ValueMap contents are 'translated' may also be specified "
10999                  "in the subclass as a Values array qualifier.") ]
11000              uint32 FlagRecordForOverwrite (
11001           
11002                  [IN, OUT] string IterationIdentifier, 
11003           
11004                  [IN, Description ("Boolean indicating that the Iteration"
11005 karl  1.2            "Identifier should be advanced to the next record, after "
11006                      "updating the current Log entry.") ] 
11007                  boolean PositionToNext, 
11008           
11009                  [IN (false), OUT] uint64 RecordNumber); 
11010           };
11011           
11012            
11013           // ===================================================================
11014           // LogRecord
11015           // ===================================================================
11016           [Version ("2.6.0"), Description (
11017              "The LogRecord object can describe the definitional format for "
11018              "entries in a MessageLog, or can be used to instantiate the "
11019              "actual records in the Log. The latter approach provides a "
11020              "great deal more semantic definition and management control over "
11021              "the individual entries in a MessageLog, than do the record "
11022              "manipulation methods of the Log class. It is recommended that "
11023              "the data in individual Log entries be modeled using subclasses "
11024              "of LogRecord, to avoid the creation of LogRecords with one "
11025              "property (such as RecordData) without semantics. \n"
11026 karl  1.2    "Definitional formats for LogRecords could be specified by "
11027              "establishing a naming convention for the RecordID and Message"
11028              "Timestamp key properties.") ] 
11029           class CIM_LogRecord : CIM_ManagedElement {
11030           
11031              [Propagated("CIM_MessageLog.CreationClassName"), 
11032               Key, MaxLen (256),
11033               Description ("The scoping Log's CreationClassName.") ]
11034              string LogCreationClassName;
11035           
11036              [Propagated("CIM_MessageLog.Name"),
11037               Key, MaxLen (256),
11038               Description ("The scoping Log's Name.") ]
11039              string LogName;
11040           
11041              [Key, MaxLen (256),
11042               Description (
11043                  "CreationClassName indicates the name of the class or "
11044                  "the subclass used in the creation of an instance. When "
11045                  "used with the other key properties of this class, this "
11046                  "property allows all instances of this class and its "
11047 karl  1.2        "subclasses to be uniquely identified.") ]
11048              string CreationClassName;
11049           
11050              [Key, MaxLen (256), 
11051               Description (
11052                  "RecordID, with the MessageTimestamp property, serve to "
11053                  "uniquely identify the LogRecord within a MessageLog. Note "
11054                  "that this property is different than the RecordNumber "
11055                  "parameters of the MessageLog methods. The latter are ordinal "
11056                  "values only, useful to track position when iterating through "
11057                  "a Log. On the other hand, RecordID is truly an identifier "
11058                  "for an instance of LogRecord. It may be set to the record's "
11059                  "ordinal position, but this is not required.") ] 
11060              string RecordID; 
11061           
11062              [Key, Description (
11063                  "A LogRecord's key structure includes a timestamp for "
11064                  "the entry.") ]
11065              datetime MessageTimestamp;
11066           
11067              [Description (
11068 karl  1.2        "A free-form string describing the LogRecord's data "
11069                  "structure.") ]
11070              string DataFormat;
11071           };
11072           
11073            
11074           // ===================================================================
11075           // RecordInLog
11076           // ===================================================================
11077           [Association, Aggregation, Version ("2.6.0"), Description (
11078              "RecordInLog describes the aggregation or location of Log "
11079              "entries within a MessageLog.") ]
11080           class CIM_RecordInLog  {
11081           
11082              [Key, Aggregate, Min (1), Max (1), 
11083               Description ("The Message Log.") ]
11084              CIM_MessageLog REF MessageLog;
11085           
11086              [Key, Weak, Description (
11087                  "The Log entry contained within the MessageLog.") ]
11088              CIM_LogRecord REF LogRecord;
11089 karl  1.2 };
11090            
11091           
11092           // ===================================================================
11093           // LogInDeviceFile
11094           // ===================================================================
11095           [Association, Version ("2.6.0"), Description (
11096              "MessageLogs can reside in data files, on specially allocated "
11097              "storage areas such as disks or memory, or output as raw I/O "
11098              "streams. In fact, a single Log may use each of these mechanisms "
11099              "to output or capture its contents. The LogInDeviceFile "
11100              "association describes a Log outputting to a raw I/O stream "
11101              "DeviceFile - for example, a serial port on a UNIX system.") ]
11102           class CIM_LogInDeviceFile : CIM_Dependency {
11103           
11104              [Override ("Antecedent"), Description (
11105                  "The I/O stream DeviceFile.") ]
11106              CIM_DeviceFile REF Antecedent;
11107           
11108              [Override ("Dependent"),
11109               Description ("The MessageLog outputting to the DeviceFile.") ]
11110 karl  1.2    CIM_MessageLog REF Dependent;
11111           };
11112           
11113           
11114           // ===================================================================
11115           // LogInDataFile
11116           // ===================================================================
11117           [Association, Version ("2.6.0"), Description (
11118              "MessageLogs can reside in data files, on specially allocated "
11119              "storage areas such as disks or memory, or output as raw I/O "
11120              "streams. In fact, a single Log may use each of these mechanisms "
11121              "to output or capture its contents. The LogInDataFile "
11122              "association describes a Log stored as a DataFile.") ]
11123           class CIM_LogInDataFile : CIM_Dependency {
11124           
11125              [Override ("Antecedent"), Description (
11126                  "The DataFile.") ]
11127              CIM_DataFile REF Antecedent;
11128           
11129              [Override ("Dependent"),
11130               Description ("The MessageLog residing in the DataFile.") ]
11131 karl  1.2    CIM_MessageLog REF Dependent;
11132           };
11133           
11134            
11135           // ===================================================================
11136           // LogInStorage
11137           // ===================================================================
11138           [Association, Version ("2.6.0"), Description (
11139              "MessageLogs can reside in data files, on specially allocated "
11140              "storage areas such as disks or memory, or output as raw I/O "
11141              "streams. In fact, a single Log may use each of these mechanisms "
11142              "to output or capture its contents. The LogInStorage "
11143              "association describes a Log located in a specially allocated "
11144              "portion of a StorageExtent. The offset of the Log, within "
11145              "the Extent, is defined using a property of the association, "
11146              "StartingOffset.") ]
11147           class CIM_LogInStorage : CIM_Dependency {
11148           
11149              [Override ("Antecedent"), Description ("The StorageExtent.") ]
11150              CIM_StorageExtent REF Antecedent;
11151           
11152 karl  1.2    [Override ("Dependent"),
11153               Description ("The MessageLog located within the Extent.") ]
11154              CIM_MessageLog REF Dependent;
11155           
11156              [Description (
11157                  "StartingOffset indicates where in the Extent that the Log "
11158                  "begins.") ] 
11159              uint64 StartingOffset;
11160           };
11161           
11162            
11163           // ===================================================================
11164           // UseOfMessageLog
11165           // ===================================================================
11166           [Association, Version ("2.6.0"), Description (
11167              "ManagedSystemElements may record their event, error or "
11168              "informational data within MessageLogs. The use of a Log to "
11169              "hold a ManagedSystemElement's data is described by this "
11170              "association. The type of Element data captured by the Log "
11171              "can be specified using the RecordedData string property.") ]
11172           class CIM_UseOfMessageLog : CIM_Dependency {
11173 karl  1.2 
11174              [Override ("Antecedent"), Description ("The MessageLog.") ]
11175              CIM_MessageLog REF Antecedent;
11176           
11177              [Override ("Dependent"), Description (
11178                  "The ManagedSystemElement whose information is recorded in "
11179                  "the MessageLog.") ]
11180              CIM_ManagedSystemElement REF Dependent;
11181           
11182              [Description (
11183                  "A free-form string describing the use of the Log by the "
11184                  "ManagedSystemElement.") ] 
11185              string RecordedData;
11186           };
11187           
11188            
11189           // ===================================================================
11190           // end of file
11191           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2