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

   1 karl  1.1 // ===================================================================
   2           // Title:       Devices MOF specification 2.5
   3           // Filename:    CIM_Device25.mof
   4           // Version:     2.5
   5           // Release:     0
   6 karl  1.1.2.1 // Date:        06/12/2001
   7               // ===================================================================
   8               // Copyright "2001" 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 cited should always be noted.
  17               // ===================================================================
  18 karl  1.1     // Description: The object classes below are listed in an order that
  19               //              avoids forward references. Required objects, defined 
  20 karl  1.1.2.1 //              by other working groups, are omitted.
  21 karl  1.1     // ==================================================================
  22 karl  1.1.2.1 // Author:      DMTF System and Devices Working Group
  23 karl  1.1     // ==================================================================
  24               // Date:  04/14/1998 - Version 2.0
  25               //        06/23/1998 - V2.0 Errata
  26 karl  1.1.2.1 //      - CR222, References to the "Resource" component in 
  27               //          CIM_ComputerSystemResource association and its
  28               //          subclasses incorrect - Should be PartComponent
  29               //      - CR225, Antecedent reference should be CIM_CurrentSensor
  30               //          in the AssociatedSupplyCurrentSensor relationship
  31               //      - CR226, Add ArrayType("Indexed") and update descriptions
  32               //          for CIM_NetworkAdapter.NetworkAddresses and its
  33               //          overrides
  34               //      - CR227, UninterruptablePowerSupply should be 
  35               //          Uninterruptible
  36               //      - CR235, Format for specifying propagated value uses
  37 karl  1.1     //                period, not colon
  38 karl  1.1.2.1 //      09/29/1998 - Version 2.1
  39               //      - CR236, Add ModelCorrespondence qualifier to properties
  40               //          of CIM_MonitorResolution 
  41               //      - CR243, Add AutoSense and MaxSpeed properties to 
  42               //          CIM_NetworkAdapter
  43               //      - CR244a, Extend the enumeration of CIM_Processor.Family, 
  44               //          Add a new Processor property, OtherFamilyDescription
  45               //      - CR245, Add CIM_AllocatedDMA association
  46               //      - CR254, Add CIM_DeviceErrorCounts object and related
  47               //          association, CIM_ErrorCountersForDevice
  48               //      - CR259, Add DesiredSpeed property and SetSpeed method 
  49               //          to CIM_Fan
  50               //      - CR261a, Add two properties to CIM_Battery, ExpectedLife
  51               //          and MaxRechargeTime
  52               //      - CR265, Address "cleaning" related to a CIM_Media
  53               //          AccessDevice
  54               //      - CR266, Add CIM_AlarmDevice and association
  55               //      - CR274, Remove repetition of the Values array from 
  56               //          property Descriptions
  57               //      - CR275, Update DMI Master.MIF mappings
  58               //      - CR288a, Add AssociatedProcessorMemory relationship
  59 karl  1.1.2.1 //      - CR292, Add ModelCorrespondence to 'linked' properties
  60 karl  1.1     //          - CR294, Remove key-qualifier from 'StartingAddress' in
  61               //                CIM_BIOSLoadedInNV
  62 karl  1.1.2.1 //      10/14/1998 - Version 2.1.1
  63               //      - Missed CR271a, Add Stepping property to CIM_Processor
  64               //      06/11/1999 - Version 2.2
  65               //      - CR297, Add Sparc processors to the enum, Processor.Family
  66               //      - CR308a, Create DeviceIdentity relationship
  67               //      - CR316, Add OrderIndex to BasedOn
  68               //      - CR318c, Add processors to the enum, Processor.Family
  69               //      - CR325, Load balancing (Add LoadBalancedGroup boolean to
  70               //          ExtraCapacityGroup, Create new NetworkAdapter
  71               //          RedundancyComponent and NetworkVirtualAdapter 
  72 karl  1.1     //                associations)
  73 karl  1.1.2.1 //      - CR326, Add properties, LoadedOnDevice and UpgradeableOn
  74               //          Device to DeviceSoftware
  75               //      - CR327b, Update the PCIController class and add new 
  76               //          subclasses, PCIDevice and PCIBridge
  77               //      - CR328, New MappingStrings, Descriptions and properties in 
  78               //          SCSIController and SCSIInterface
  79               //      - CR329a, Add to the MediaAccessDevice Capabilities array,
  80               //          (enum) / Also, add a MediaIsLocked property and 
  81 karl  1.1     //                LockMedia method / Create subclass, DVDDevice
  82 karl  1.1.2.1 //      - CR330a, Add properties and methods to AlarmDevice
  83               //      - CR331, Create IDE, PCMCIA and InfraredController 
  84 karl  1.1     //                subclasses of Controller / Add to the enum for 
  85               //                Controller.ProtocolSupported
  86 karl  1.1.2.1 //      - CR332, Add PartitionType and PartitionSubtype properties
  87               //          to DiskPartition / Update class Description
  88               //      - CR333a, Extensions to and clarifications of StorageExtent
  89               //      - CR334, Clarify the StorageRedundancyGroup.TypeOfAlgorithm
  90               //          enum and add properties to the class / Create an
  91               //          ExtentRedundancyComponent association
  92               //      - CR335a, Updates to the Printer object
  93               //      - CR336, New Printer-related classes and associations
  94               //      - CR341, Create new Modem classes, properties and 
  95               //          associations
  96               //      - CR342, Create OOBAlert and WakeUpServices and 
  97 karl  1.1     //                associations to NetworkAdapter 
  98 karl  1.1.2.1 //      - CR343, Create new NetworkAdapter classes, properties 
  99               //          and associations
 100               //      - CR344, Changes to POTSModem and movement of some 
 101               //          properties up to CIM_Modem
 102               //      - CR345b, Changes to Sensor and its subclasses
 103               //      - CR346, Add WatchDog object
 104               //      - CR347, Add a UniqueID property to Processor
 105               //      - CR348, Create AGPVideoController and AGPSoftware
 106               //          Feature classes
 107               //      - CR351, Add TimeOfDeviceReset to ControlledBy
 108               //      - CR355a, Use Values-ValueMap qualifiers in DeviceError
 109 karl  1.1     //                Counts.ResetCounter and AlarmDevice.SetUrgency / 
 110 karl  1.1.2.1 //          Update the method descriptions indicating that 
 111 karl  1.1     //                Values-ValueMap qualifiers can be defined for 
 112               //                return codes
 113 karl  1.1.2.1 //      - CR356a, Keys on all associations either explicitly or
 114               //          via inheritance
 115               //      - CR357, Remove company references
 116               //      - CR360, Add VendorID to ConnectionBasedModem
 117               //      - CR366, Clarify the Description for ResidesOnExtent
 118 karl  1.1     //          - CR372, Create LogicalPort and PortOnDevice 
 119 karl  1.1.2.1 //      - CR373, Define the USB Model
 120               //      - CR375, Update descriptions and enumerations / Add new
 121               //          classes - SuppliesPower, VideoControllerResolution,
 122               //          VideoSetting / Create new properties - IRQ.Hardware,
 123               //          Security in MediaAccessDevice, ParallelController and
 124               //          SerialController, VideoController.CurrentNumberOf
 125               //          Colors, ScreenHeight and Width in DesktopMonitor, 
 126               //          NetworkAdapter.FullDuplex, Processor.CPUStatus,
 127 karl  1.1     //                MemoryMappedIO.MappedResource and 3 'storage is 
 128               //                writeable' properties in NonVolatileStorage
 129 karl  1.1.2.1 //      - CR377, Add "video processor" to Processor.Family
 130               //      - CR379a, Update the DMI MappingStrings
 131               //      - CR380a, Define the Fibre Channel Adapter and Port models
 132               //      - CR381, Update MediaAccessDevice's enumerations and add new
 133               //          properties - LastCleaned, MaxAccessTime, 
 134 karl  1.1     //                UncompressedDataRate, LoadTime, UnloadTime / Create
 135 karl  1.1.2.1 //          MediaPresent.FixedMedia / Update StorageExtent's 
 136               //          enumerations and add a SequentialAccess property /
 137               //          Create TapeDrive.MaxRewindTime
 138               //      - CR382, Create a DiskGroup class and its supporting
 139               //          associations
 140               //      - CR384, Update Processor.UpgradeMethod / Create an
 141               //          ESCONController
 142               //      - CR393a, Define the Tape Library Device Model
 143               //      - CR394, Update Descriptions / Add VolumeSet.VolumeStatus
 144               //          and properties to VolumeSetBasedOnPSExtent (from
 145               //          CR333a)
 146               //      - CR399, Remove SubmitsRequest from CR336
 147               //      - CR405, Add Counter and Gauge qualifiers as appropriate
 148               //      - CR406, Update PartitionSubtype enumeration from CR332
 149               //      - CR407, Add DoorAccessToPhysicalElement and Changer.
 150               //          AuditInProgress
 151               //      - CR408, Update the Description for StorageExtent.
 152               //          ConsumableBlocks (from CR333a)
 153               //      - CR410, Updates to the Fibre Channel Model submitted in
 154               //          CR380a
 155               //      - CR414, Add "Mouse-Optical Sensor" to PointingDevice.
 156 karl  1.1.2.1 //          PointingType
 157               //      - CR415, Remove OrderOfQueue from QueueForPrintService
 158               //          (added in CR336)
 159               //      - CR417a, Add "N/A" to CacheMemory.Level
 160               //      - CR418a, Add to the enum for CacheMemory.Read and Write
 161               //          Policy / Update Descriptions related to Storage
 162               //          Volume (from CR333a) / Change the association,
 163               //          LogicalDiskBasedOnSoftwareVolume (CR333a) to 
 164               //          LogicalDiskBasedOnVolume
 165               //      - CR420, Miscellaneous syntax and semantic issues
 166               //      - CR421, Defer including some properties of Unimodem from
 167               //          CR341
 168               //      07/06/1999 - Version 2.2.1
 169               //      - CR422, Cut & paste errors (Remove Association qualifier 
 170               //          from LabelReader, MediaAccess and PickerStatInfo; 
 171               //          Add Association qualifier to CIM_VideoSetting)
 172               //      - CR423, Locale should be specified as en_US
 173               //      - CR424, Add CIM_ to the class name for PCIDevice and 
 174               //          PCIBridge / Add Overrides to xxxInDiskGroup 
 175               //          aggregations / Update the Descriptions for Cache
 176               //          Memory Read and WritePolicy
 177 karl  1.1.2.1 //      - CR425, Update the DMI MappingStrings using the June
 178               //          release of the master.mif
 179               //      07/27/1999 - Version 2.2.2
 180               //      - CR428, Remove underscores from two properties of 
 181               //          PCIDevice 
 182               //  Date  02/18/2000 - Version 2.3
 183               //      - CR429 Modify Description of UserDataStripeDepth in 
 184               //          CIM_ProtectedSpaceExtent
 185               //      - CR431 Update MappingStrings
 186               //      - CR432 Create subclasses of MemoryMappedIO
 187               //      - CR433 Add new properties and enums from Master.MIF and new 
 188               //          ModelCorrespondences 
 189               //      - CR436 Add a place holder for SSA Controller
 190               //      - CR438 Change Intel Processor types to meet Intel legal requirements 
 191               //          in CIM_Processor.Family
 192               //      - CR445e Modify the SpareGroup class to add a Failover method
 193               //      - CR449 Add Itanium processors to CIM_Processor.Family
 194               //      - CR452a Updates to FibrePort
 195               //      - CR457 Miscellaneous StorageExtent and MediaAccessDevice 
 196               //          clarifications
 197               //      - CR460a Add Counter, OctetString and Gauge qualifiers
 198 karl  1.1.2.1 //      - CR461 Subclass from CIM_ManagedElement StorageError
 199               //      - CR463b Define the necessary classes and associations to 
 200               //          support Message Logs
 201               //      - CR471 Recommended qualifier for CIM_NumericSensor.CurrentReading
 202               //      - CR474 Add Processor types to CIM_Processor.Family
 203               //      - CR475 Add Processor types to CIM_Processor.Family
 204               //  Date 06/09/2000 - Version 2.4
 205               //      - CR479 Miscellaneous Device Model Additions to the Storage and 
 206               //          StorageLibrary Classes
 207               //          1. Add a new property, CellLocation, to the PickerElement class. 
 208               //          2. Add to the enumeration for LabelReader.SupportedFormats.
 209               //          3. Add a new property, Extendable, to TapePartition
 210               //          4. Add a new property, Direction, to BOTH LimitedAccessPort 
 211               //              and InterLibraryPort
 212               //          5. Add six new properties to MediaAccessDevice.
 213               //          6. Define a new association, AssociatedLabelReader
 214               //          7. Update the subclassing of PickerLabelReader and AccessLabelReader
 215               //              to use the association defined in #6.
 216               //          8. Update the description for LimitedAccessPort.
 217               //      - CR486, Further updates to the Storage and Storage Library Models
 218               //          1. Add seek and recovered R/W stats to the class, MediaAccessStatInfo
 219 karl  1.1.2.1 //          2. Due to the changes in #1, must update the ResetCounters method 
 220               //              in MediaAccessStatInfo.
 221               //          3. Create a new superclass of TapePartition and DiskPartition, 
 222               //              MediaPartition
 223               //          4. Change the subclassing of TapePartition and DiskPartition from 
 224               //              CIM_StorageExtent to CIM_MediaPartition.
 225               //          5. Remove the Bootable boolean from DiskPartition since it is now 
 226               //              found in the MediaPartition superclass.
 227               //      - CR494, Add to the enumerations in CIM_CacheMemory.Associativity
 228               //  Date 07/14/00 - Version 2.4
 229               //      - CR513a, Move Extendable Boolean up to the MediaPartition superclass
 230               //      - CR519   ERRATA CIM 2.3: correct ValueMap syntax errors in 
 231               //                CIM_Processor.Family
 232               //  Date 12/01/2000 Version 2.5
 233               //      - CR527 Add AMD Duron  processors to CIM_Processor.Family
 234               //      - CR528 Add Socket 423 and Socket A (Socket 462) enumerations to 
 235               //          CIM_Processor.UpgradeMethod
 236               //      - CR530 Modify the enumerations in CIM_Processor.Family (Device MOF) 
 237               //      - CR531 Add Transmeta Crusoe  processors's names in CIM_Processor.Family
 238               //      - CR534 Update MappingStrings Qualifiers to stay in sync with 
 239               //              updates to the MASTER.MIF.
 240 karl  1.1.2.1 //      - CR535 Add "Service Processor" to CIM_Watchdog.MonitoredEntity and 
 241               //          CIM_Watchdog.MonitoredEntityOnLastExpiration enumeration.
 242               //  Date 05/23/2001 - Final Version 2.5
 243               //          Reordered classes to match Visio
 244               //      - CR606 Add the Aggregate qualifier where missing:
 245               //              PrintJobFile, NetworkAdapterRedundancyComponent,
 246 karl  1.1     //
 247               // ===================================================================
 248               
 249               
 250               // ===================================================================
 251               // Generic Pragmas
 252               // ===================================================================
 253               #pragma locale ("en_US")
 254               
 255 karl  1.1.2.1 // ===================================================================
 256               //
 257               //    General Devices 
 258               //
 259               // ===================================================================
 260 karl  1.1     
 261               // ===================================================================
 262               // DeviceConnection
 263               // ===================================================================
 264                  [Association,
 265                   Description (
 266 karl  1.1.2.1      "The DeviceConnection relationship indicates that two or more "
 267                    "Device are connected together.") ] 
 268               class CIM_DeviceConnection : CIM_Dependency {
 269 karl  1.1           [Override ("Antecedent"),
 270 karl  1.1.2.1        Description ("A LogicalDevice.") ]
 271 karl  1.1        CIM_LogicalDevice REF Antecedent;
 272                     [Override ("Dependent"),
 273                      Description (
 274 karl  1.1.2.1         "A second LogicalDevice connected to the Antecedent Device.") ]
 275 karl  1.1        CIM_LogicalDevice REF Dependent;
 276                     [Description (
 277 karl  1.1.2.1         "When several bus and/or connection speeds are possible, the "
 278                       "NegotiatedSpeed property defines the one in use between the "
 279                       "Devices.  Speed is specified in bits per second.  If "
 280                       "connection or bus speeds are not negotiated, or if this "
 281                       "information is not available/important to Device management, "
 282                       "the property should be set to 0."), 
 283 karl  1.1            Units ("Bits per Second"),
 284 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Bus Port Association|001.2"}  ]
 285 karl  1.1        uint64 NegotiatedSpeed;
 286                     [Description (
 287 karl  1.1.2.1         "When several bus and/or connection data widths are possible, "
 288                       "the NegotiatedDataWidth property defines the one in use "
 289                       "between the Devices.  Data width is specified in bits.  If "
 290                       "data width is not negotiated, or if this information is not "
 291                       "available/important to Device management, the property should "
 292                       "be set to 0."),
 293 karl  1.1            Units ("Bits"),
 294 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Bus Port Association|001.3"}  ]
 295 karl  1.1        uint32 NegotiatedDataWidth;
 296               };
 297               
 298 karl  1.1.2.1 
 299 karl  1.1     // ===================================================================
 300               // DeviceIdentity
 301               // ===================================================================
 302                  [Association,
 303                   Description (
 304 karl  1.1.2.1      "CIM_DeviceIdentity indicates that two LogicalDevices "
 305                    "represent different aspects of the same underlying entity. "
 306                    "This association refines the CIM_LogicalIdentity superclass "
 307                    "by restricting it to the Device level and defining its use in "
 308                    "well understood scenarios. One of these scenarios is to "
 309                    "represent that a Device is both a 'bus' entity and a "
 310                    "'functional' entity. For example, a Device could be both a PCI "
 311                    "Device (or a USB Device), as well as a CIM_Keyboard. The other "
 312                    "scenario is where a Device plays multiple functional roles "
 313                    "that can not be distinguished by their hardware realization "
 314                    "alone. For example, a Fibre Channel adapter might have aspects "
 315                    "of both a NetworkAdapter and a SCSIController.") ]
 316               class CIM_DeviceIdentity: CIM_LogicalIdentity {
 317 karl  1.1           [Override ("SystemElement"), 
 318                      Description (
 319 karl  1.1.2.1         "SystemElement represents one aspect of the Device.") ]
 320 karl  1.1        CIM_LogicalDevice ref SystemElement;
 321                     [Override ("SameElement"), 
 322                      Description (
 323                       "SameElement represents an alternate aspect of "
 324 karl  1.1.2.1         "the System entity.") ]
 325 karl  1.1        CIM_LogicalDevice ref SameElement;
 326               };
 327               
 328               
 329               // ===================================================================
 330 karl  1.1.2.1 // WatchDog
 331 karl  1.1     // ===================================================================
 332 karl  1.1.2.1    [Description (
 333                    "CIM_Watchdog is a timer implemented in system hardware. It "
 334                    "allows the hardware to monitor the state of the Operating"
 335                    "System, BIOS or a software component installed on the "
 336                    "System. If the monitored component fails to re-arm the timer "
 337                    "before its expiration, the hardware assumes that the System is "
 338                    "in a critical state, and could reset the ComputerSystem. This "
 339                    "feature can also be used as an application watchdog timer for "
 340                    "a mission-critical application. In this case, the application "
 341                    "would assume responsibility for re-arming the timer before "
 342                    "expiration.") ]
 343               class CIM_Watchdog : CIM_LogicalDevice {
 344 karl  1.1           [Description (
 345 karl  1.1.2.1         "The entity that is currently being monitored by the WatchDog. "
 346                       "This property is used to identify the module that is responsible "
 347                       "for re-arming the watchdog at periodic intervals."), 
 348                      Values {"Unknown", "Other", "Operating System", 
 349                              "Operating System Boot Process", 
 350                              "Operating System Shutdown Process", 
 351                              "Firmware Boot Process", "BIOS Boot Process", "Application", 
 352                              "Service Processor"}  ]
 353                  uint16 MonitoredEntity;
 354                     [MaxLen (256), Description (
 355                       "A string describing more textual information about the "
 356                       "monitored entity ") ]
 357                  string MonitoredEntityDescription;
 358 karl  1.1           [Description (
 359 karl  1.1.2.1         "The timeout interval used by the watchdog, in MicroSeconds."), 
 360                      Units ("MicroSeconds") ]
 361                  uint32 TimeoutInterval;
 362 karl  1.1           [Description (
 363 karl  1.1.2.1         "Resolution of the timer. For example, if this value is 100, "
 364                       "then the timer can expire anytime between (TimeoutInterval-"
 365                       "100) microseconds or (TimeoutInterval+100) microseconds."),
 366                      Units ("MicroSeconds") ]
 367                  uint32 TimerResolution;
 368                     [Description ("The time of the last timer expiry.") ]
 369                  datetime TimeOfLastExpiration; 
 370                     [Description (
 371                       "Monitored entity at the time of last timer expiry."), 
 372                      Values {"Unknown", "Other", "Operating System", 
 373                              "Operating System Boot Process", 
 374                              "Operating System Shutdown Process", 
 375                              "Firmware Boot Process", "BIOS Boot Process", "Application", 
 376                              "Service Processor"}  ]
 377                  uint16 MonitoredEntityOnLastExpiration;
 378                     [Description (
 379                       "The action that should happen upon the expiry of the watchdog."), 
 380                      Values {"None - Status Only", "System Reset", "System Power Off", 
 381                              "System Power Off, then On", 
 382                              "Generate System NonMaskableInterrupt (NMI)", 
 383                              "Generate System Management Interrupt (SMI)"} ]
 384 karl  1.1.2.1    uint16 ActionOnExpiration;
 385                     [Description (
 386                       "A method to re-arm the timer. This method is only used if "
 387                       "the MonitoredEntity is \"Application\". It returns 0 if "
 388                       "successful, 1 if unsupported, and any other value if an "
 389                       "error occurred. In a subclass, the set of possible return "
 390                       "codes could be specified, using a ValueMap qualifier on "
 391                       "the method. The strings to which the ValueMap contents are "
 392                       "'translated' may also be specified in the subclass as a "
 393                       "Values array qualifier.") ]
 394                  uint32 KeepAlive();
 395 karl  1.1     };
 396               
 397 karl  1.1.2.1 
 398 karl  1.1     // ===================================================================
 399 karl  1.1.2.1 // CoolingDevice
 400 karl  1.1     // ===================================================================
 401                  [Description (
 402 karl  1.1.2.1      "Capabilities and management of CoolingDevices.") ] 
 403               class CIM_CoolingDevice : CIM_LogicalDevice {
 404 karl  1.1           [Description (
 405 karl  1.1.2.1         "ActiveCooling is a boolean indicating that the Cooling"
 406                       "Device provides active (as opposed to passive) cooling.") ]
 407                  boolean ActiveCooling;
 408 karl  1.1     };
 409               
 410 karl  1.1.2.1 
 411 karl  1.1     // ===================================================================
 412 karl  1.1.2.1 // Refrigeration
 413 karl  1.1     // ===================================================================
 414 karl  1.1.2.1    [Description (
 415                    "Capabilities and management of a Refrigeration CoolingDevice.") ] 
 416               class CIM_Refrigeration : CIM_CoolingDevice {
 417 karl  1.1     };
 418               
 419 karl  1.1.2.1 
 420 karl  1.1     // ===================================================================
 421 karl  1.1.2.1 // HeatPipe
 422 karl  1.1     // ===================================================================
 423 karl  1.1.2.1    [Description (
 424                    "Capabilities and management of a HeatPipe CoolingDevice.") ] 
 425               class CIM_HeatPipe : CIM_CoolingDevice {
 426 karl  1.1     };
 427               
 428 karl  1.1.2.1 
 429 karl  1.1     // ===================================================================
 430 karl  1.1.2.1 // Fan
 431 karl  1.1     // ===================================================================
 432 karl  1.1.2.1    [Description (
 433                    "Capabilities and management of a Fan CoolingDevice.") ] 
 434               class CIM_Fan : CIM_CoolingDevice {
 435 karl  1.1           [Description (
 436 karl  1.1.2.1         "Indication of whether the fan supports variable speeds.") ]
 437                  boolean VariableSpeed;
 438 karl  1.1           [Description (
 439 karl  1.1.2.1         "DesiredSpeed is the currently requested fan speed, " 
 440                       "defined in Revolutions per Minute, when a variable speed fan "
 441                       "is supported (VariableSpeed boolean = TRUE). The current " 
 442                       "speed is determined via a sensor (CIM_Tachometer) that is "
 443                       "associated with the Fan using the CIM_AssociatedSensor "
 444                       "relationship."), 
 445                      Units ("Revolutions per Minute") ]
 446                  uint64 DesiredSpeed;
 447 karl  1.1           [Description (
 448 karl  1.1.2.1         "Requests that the Fan speed be set to the " 
 449                       "value specified in the method's input parameter. The return " 
 450                       "value should be 0 if the request was successfully executed, " 
 451                       "1 if the request is not supported and some other value if an " 
 452                       "error occurred. In a subclass, the set of possible "
 453                       "return codes could be specified, using a ValueMap qualifier "
 454                       "on the method. The strings to which the ValueMap contents "
 455                       "are 'translated' may also be specified in the "
 456                       "subclass as a Values array qualifier.") ]
 457                  uint32 SetSpeed (
 458                      [IN] uint64 DesiredSpeed);
 459 karl  1.1     };
 460               
 461 karl  1.1.2.1 
 462 karl  1.1     // ===================================================================
 463 karl  1.1.2.1 // AssociatedCooling
 464 karl  1.1     // ===================================================================
 465 karl  1.1.2.1    [Association, Description (
 466                    "Many Devices, such as processors or power supplies, require "
 467                    "their own cooling devices.  This association indicates where "
 468                    "fans or other CoolingDevices are specific to a Device, "
 469                    "versus providing enclosure or cabinet cooling.") ] 
 470               class CIM_AssociatedCooling : CIM_Dependency {
 471                     [Override ("Antecedent"),
 472                      Description ("The CoolingDevice.") ]
 473                  CIM_CoolingDevice REF Antecedent;
 474                     [Override ("Dependent"),
 475                      Description ("The LogicalDevice being cooled.") ]
 476                  CIM_LogicalDevice REF Dependent;
 477 karl  1.1     };
 478               
 479 karl  1.1.2.1 
 480 karl  1.1     // ===================================================================
 481 karl  1.1.2.1 // UserDevice
 482 karl  1.1     // ===================================================================
 483 karl  1.1.2.1    [Abstract, Description (
 484                    "UserDevices are LogicalDevices that allow a ComputerSystem's "
 485                    "users to input, view or hear data.  It is a superclass from "
 486                    "which other classes, such as Keyboard or DesktopMonitor, "
 487                    "descend.") ] 
 488               class CIM_UserDevice : CIM_LogicalDevice {
 489                     [Description (
 490                       "An indication of whether the Device is locked, preventing "
 491                       "user input or output.") ]
 492                  boolean IsLocked;
 493 karl  1.1     };
 494               
 495 karl  1.1.2.1 
 496 karl  1.1     // ===================================================================
 497 karl  1.1.2.1 // PointingDevice
 498 karl  1.1     // ===================================================================
 499 karl  1.1.2.1    [Description (
 500                    "PointingDevice represents those Devices used to 'point' to "
 501                    "regions of a Display.") ] 
 502               class CIM_PointingDevice : CIM_UserDevice {
 503                     [Description ("The type of the pointing device."),
 504                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9"},
 505                      Values {"Other", "Unknown", "Mouse", "Track Ball", "Track Point",
 506                              "Glide Point", "Touch Pad", "Touch Screen", 
 507                              "Mouse - Optical Sensor"}, 
 508                      MappingStrings {"MIF.DMTF|Pointing Device|003"} ]
 509                  uint16 PointingType;
 510                     [Description (
 511                       "Number of buttons. If the PointingDevice has no buttons, "
 512                       "enter 0."),
 513                      MappingStrings {"MIF.DMTF|Pointing Device|003"} ]
 514                  uint8 NumberOfButtons;
 515                     [Description (
 516                       "Integer indicating whether the PointingDevice is configured "
 517                       "for right (value=2) or left handed operation (value=3). "
 518                       "Also, the values, \"Unknown\" (0) and \"Not Applicable\" (1), "
 519                       "can be defined."),
 520 karl  1.1.2.1        Values {"Unknown", "Not Applicable", "Right Handed Operation",
 521                              "Left Handed Operation"} ]
 522                  uint16 Handedness;
 523                     [Description (
 524                       "Tracking resolution of the PointingDevice in Counts per "
 525                       "Inch."),
 526                      Units ("Counts per Inch") ]
 527                  uint32 Resolution;
 528 karl  1.1     };
 529               
 530 karl  1.1.2.1 
 531 karl  1.1     // ===================================================================
 532 karl  1.1.2.1 // Keyboard
 533 karl  1.1     // ===================================================================
 534 karl  1.1.2.1    [Description (
 535                    "Capabilities and management of the Keyboard LogicalDevice.") ] 
 536               class CIM_Keyboard : CIM_UserDevice {
 537                     [Description ("Number of function keys on the Keyboard.") ]
 538                  uint16 NumberOfFunctionKeys;
 539                     [Description (
 540                       "A free-form string indicating the format and layout of the "
 541                       "Keyboard."),
 542                      MappingStrings {"MIF.DMTF|Keyboard|004"} ]
 543                  string Layout;
 544                     [Description (
 545                       "An integer indicating whether a hardware-level password is "
 546                       "enabled at the keyboard (value=4), preventing local input. "
 547                       "Other values are:  \"Disabled\" (3), \"Not Implemented\" (5), "
 548                       "\"Other\" (1) and \"Unknown\" (2)."),
 549                      ValueMap {"1", "2", "3", "4", "5"},
 550                      Values {"Other", "Unknown", "Disabled", "Enabled", 
 551                              "Not Implemented"},
 552                      MappingStrings {"MIF.DMTF|System Hardware Security|001.2"} ]
 553                  uint16 Password;
 554 karl  1.1     };
 555               
 556 karl  1.1.2.1 
 557 karl  1.1     // ===================================================================
 558 karl  1.1.2.1 // Display
 559 karl  1.1     // ===================================================================
 560 karl  1.1.2.1    [Abstract, Description (
 561                    "Display is a superclass for grouping the miscellaneous display "
 562                    "devices that exist.") ] 
 563               class CIM_Display : CIM_UserDevice {
 564 karl  1.1     };
 565               
 566 karl  1.1.2.1 
 567 karl  1.1     // ===================================================================
 568 karl  1.1.2.1 // DesktopMonitor
 569               // ===================================================================
 570                  [Description (
 571                    "Capabilities and management of the DesktopMonitor (CRT) "
 572                    "LogicalDevice.") ] 
 573               class CIM_DesktopMonitor : CIM_Display {
 574                     [Description (
 575                       "The type of DesktopMonitor or CRT. For example, "
 576                       "multiscan color or monochrome monitors (values 2 or 3, "
 577                       "respectively) can be indicated in this property."),
 578                      Values {"Unknown", "Other", "Multiscan Color", 
 579                              "Multiscan Monochrome", "Fixed Frequency Color",
 580                              "Fixed Frequency Monochrome"} ]
 581                  uint16 DisplayType;
 582                     [Description (
 583                       "Monitor's bandwidth in MHertz. If unknown, enter 0."),
 584                      Units ("MegaHertz") ]
 585                  uint32 Bandwidth;
 586                     [Description (
 587                       "The logical height of the Display in screen coordinates.") ]
 588                  uint32 ScreenHeight;
 589 karl  1.1.2.1       [Description ( 
 590                       "The logical width of the Display in screen coordinates.") ]
 591                  uint32 ScreenWidth;
 592 karl  1.1     };
 593               
 594 karl  1.1.2.1 
 595 karl  1.1     // ===================================================================
 596 karl  1.1.2.1 // FlatPanel
 597 karl  1.1     // ===================================================================
 598                  [Description (
 599 karl  1.1.2.1      "Capabilities and management of the FlatPanel LogicalDevice.") ] 
 600               class CIM_FlatPanel : CIM_Display  {
 601                     [Description ("FlatPanel's horizontal resolution in Pixels."),
 602                      Units ("Pixels") ]
 603                  uint32 HorizontalResolution;
 604                     [Description ("FlatPanel's vertical resolution in Pixels."),
 605                      Units ("Pixels") ]
 606                  uint32 VerticalResolution;
 607                     [Description (
 608                       "A FlatPanel's scan mode indicating either single "
 609                       "(value=2) or dual scan (3)."),
 610                      Values {"Unknown", "Other", "Single Scan", "Dual Scan"} ]
 611                  uint16 ScanMode;
 612                     [Description (
 613                       "An integer enumeration describing the type of flat panel "
 614                       "display."),
 615                      Values {"Unknown", "Other", "Passive Matrix LCD", 
 616                              "Active Matrix LCD", "Cholesteric LCD",
 617                              "Field Emission Display", 
 618                              "Electro Luminescent Display", "Gas Plasma", "LED"} ]
 619                  uint16 DisplayType;
 620 karl  1.1.2.1       [Description (
 621                       "A description of the display illumination type. For example, "
 622                       "backlit (value=2) or reflective (4) can be specified."),
 623                      Values {"Unknown", "Other", "Backlit", "Edgelit", "Reflective"} ]
 624                  uint16 LightSource;
 625                     [Description (
 626                      "Boolean indicating whether the FlatPanel supports color "
 627                      "display.") ]
 628                  boolean SupportsColor;
 629 karl  1.1     };
 630               
 631               
 632               // ===================================================================
 633 karl  1.1.2.1 // Scanner
 634 karl  1.1     // ===================================================================
 635                  [Description (
 636 karl  1.1.2.1      "Capabilities and management of the Scanner LogicalDevice.") ] 
 637               class CIM_Scanner : CIM_LogicalDevice {
 638 karl  1.1     };
 639               
 640 karl  1.1.2.1 
 641 karl  1.1     // ===================================================================
 642 karl  1.1.2.1 // Battery
 643 karl  1.1     // ===================================================================
 644                  [Description (
 645 karl  1.1.2.1      "Capabilities and management of the Battery LogicalDevice. "
 646                    "This class applies to both batteries in Laptop Systems and "
 647                    "other internal/external batteries, such as used in, "
 648                    "or as UPSs.") ] 
 649               class CIM_Battery : CIM_LogicalDevice  {
 650                     [Description (
 651                       "Description of the Battery's charge status. Values such "
 652                       "as \"Fully Charged\" (value=3) or \"Partially Charged\" "
 653                       "(11) can be specified. The value, 10, is "
 654                       "not valid in the CIM Schema since in DMI it represents "
 655                       "that no battery is installed. In this case, this object "
 656                       "should not be instantiated."),
 657                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 658                                "11"},
 659                      Values {"Other", "Unknown", "Fully Charged",  
 660                              "Low", "Critical", "Charging", "Charging and High", 
 661                              "Charging and Low", "Charging and Critical", "Undefined", 
 662                              "Partially Charged"},
 663                      MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
 664                  uint16 BatteryStatus;
 665                     [Description (
 666 karl  1.1.2.1         "TimeOnBattery indicates the elapsed time in seconds "
 667                       "since the ComputerSystem, UPS, ... last switched to "
 668                       "battery power, or the time since the System or UPS "
 669                       "was last restarted, whichever is less. Zero shall "
 670                       "be returned if the Battery is 'on line'."), 
 671                      Units ("Seconds") ]
 672                  uint32 TimeOnBattery;
 673                     [Description (
 674                       "EstimatedRunTime is an estimate in minutes of the "
 675                       "time to battery charge depletion under the present "
 676                       "load conditions if the utility power is off, or lost "
 677                       "and remains off, or a Laptop is disconnected from a "
 678                       "power source."),
 679                      Units ("Minutes"),
 680                      MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
 681                  uint32 EstimatedRunTime;
 682                     [Gauge, Description (
 683                       "An estimate of the percentage of full charge remaining."),
 684                      Units ("Percent") ] 
 685                  uint16 EstimatedChargeRemaining;
 686                     [Description (
 687 karl  1.1.2.1         "An enumeration that describes the Battery's chemistry."),
 688                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
 689                      Values {"Other", "Unknown", "Lead Acid", "Nickel Cadmium", 
 690                              "Nickel Metal Hydride", "Lithium-ion", "Zinc air", 
 691                              "Lithium Polymer"},
 692                      MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
 693                  uint16 Chemistry;
 694                     [Description (
 695                       "The design capacity of the battery in mWatt-hours. "
 696                       "If this property is not supported, enter 0."),
 697                      Units ("MilliWattHours"),
 698                      MappingStrings {"MIF.DMTF|Portable Battery|003"} ]  
 699                  uint32 DesignCapacity;
 700                     [Description (
 701                       "The full charge capacity of the battery in mWatt-hours. "
 702                       "Comparison of this value to the Battery DesignCapacity "
 703                       "determines when the Battery requires replacement.  A "
 704                       "Battery's end of life is typically when the FullCharge"
 705                       "Capacity falls below 80% of the DesignCapacity. "
 706                       "If this property is not supported, enter 0."),
 707                      Units ("MilliWattHours"),
 708 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
 709                  uint32 FullChargeCapacity;
 710                     [Description (
 711                       "The design voltage of the battery in mVolts. If "
 712                       "this attribute is not supported, enter 0."),
 713                      Units ("MilliVolts"),
 714                      MappingStrings {"MIF.DMTF|Portable Battery|003"} ]   
 715                  uint64 DesignVoltage;
 716                     [MaxLen (64), Description (
 717                       "The Smart Battery Data Specification version number "
 718                       "supported by this Battery. If the Battery does not "
 719                       "support this function, the value should be left blank."),
 720                      MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
 721                  string SmartBatteryVersion;
 722                     [Description (
 723                       "The remaining time to charge the battery fully in minutes "
 724                       "at the current charging rate and usage."),
 725                      Units ("Minutes"),
 726                      MappingStrings {"MIF.DMTF|Portable Battery|003"} ]
 727                  uint32 TimeToFullCharge;
 728                   [Description (
 729 karl  1.1.2.1         "Indicates the Battery's expected lifetime in minutes, " 
 730                       "assuming that the Battery is fully charged. This property "
 731                       "represents the total expected life of the Battery, not its "
 732                       "current remaining life, which is indicated by the "
 733                       "EstimatedRunTime property. "), 
 734                      Units ("Minutes") ]
 735                  uint32 ExpectedLife;
 736                     [Description (
 737                       "MaxRechargeTime indicates the maximum time, in minutes, " 
 738                       "to fully charge the Battery. This property represents the "
 739                       "time to recharge a fully depleted Battery, not the current "
 740                       "remaining charging time, which is indicated in the "
 741                       "TimeToFullCharge property. "), 
 742                      Units ("Minutes") ]
 743                  uint32 MaxRechargeTime;  
 744 karl  1.1     };
 745               
 746               
 747               // ===================================================================
 748 karl  1.1.2.1 // PowerSupply
 749 karl  1.1     // ===================================================================
 750 karl  1.1.2.1    [Description (
 751                    "Capabilities and management of the PowerSupply LogicalDevice.") ] 
 752               class CIM_PowerSupply : CIM_LogicalDevice   {
 753 karl  1.1           [Description (
 754 karl  1.1.2.1         "Boolean indicating that the PowerSupply is a switching "
 755                       "(vs linear) supply.") ]
 756                  boolean IsSwitchingSupply;
 757 karl  1.1           [Description (
 758 karl  1.1.2.1         "The low voltage of Input Voltage Range 1 for this Power"
 759                       "Supply, in millivolts. A value of 0 denotes 'unknown'."),
 760                      Units ("MilliVolts"),
 761                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 762                  uint32 Range1InputVoltageLow;
 763 karl  1.1           [Description (
 764 karl  1.1.2.1         "The high voltage of Input Voltage Range 1 for this Power"
 765                       "Supply, in millivolts. A value of 0 denotes 'unknown'."),
 766                      Units ("MilliVolts"),
 767                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 768                  uint32 Range1InputVoltageHigh;
 769 karl  1.1           [Description (
 770 karl  1.1.2.1         "The frequency (in Hertz) at the low end of this Power"
 771                       "Supply's Input Frequency Range 1. A value of zero "
 772                       "implies DC."),
 773                      Units ("Hertz"),
 774                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 775                  uint32 Range1InputFrequencyLow;
 776                     [Description (
 777                       "The frequency (in Hertz) at the high end of this Power"
 778                       "Supply's Input Frequency Range 1. A value of zero "
 779                       "implies DC."),
 780                      Units ("Hertz"),
 781                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 782                  uint32 Range1InputFrequencyHigh;
 783                     [Description (
 784                       "The low voltage of Input Voltage Range 2 for this Power"
 785                       "Supply, in millivolts. A value of 0 denotes 'unknown'."),
 786                      Units ("MilliVolts"), 
 787                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 788                  uint32 Range2InputVoltageLow;
 789                     [Description (
 790                       "The high voltage of Input Voltage Range 2 for this Power"
 791 karl  1.1.2.1         "Supply, in millivolts. A value of 0 denotes 'unknown'."),
 792                      Units ("MilliVolts"), 
 793                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 794                  uint32 Range2InputVoltageHigh;
 795                     [Description (
 796                       "The frequency (in Hertz) at the low end of this Power"
 797                       "Supply's Input Frequency Range 2. A value of zero "
 798                       "implies DC."),
 799                      Units ("Hertz"),
 800                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 801                  uint32 Range2InputFrequencyLow;
 802                     [Description (
 803                       "The frequency (in Hertz) at the high end of this Power"
 804                       "Supply's Input Frequency Range 2. A value of zero "
 805                       "implies DC."),
 806                      Units ("Hertz"),
 807                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 808                  uint32 Range2InputFrequencyHigh;
 809                     [Description (
 810                       "ActiveInputVoltage indicates which input voltage range is "
 811                       "currently in use. Range 1, 2 or both can be specified "
 812 karl  1.1.2.1         "using the values 3, 4 or 5, respectively. If the Supply "
 813                       "is not currently drawing power, the value 6 (\"Neither\") "
 814                       "can be specified. This information is necessary in the "
 815                       "case of a UPS, a subclass of PowerSupply."),
 816                      ValueMap {"1", "2", "3", "4", "5", "6"},
 817                      Values {"Other", "Unknown", "Range 1", "Range 2", "Both",
 818                              "Neither"},
 819                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 820                  uint16 ActiveInputVoltage;
 821                     [Description (
 822                       "TypeOfRangeSwitching describes the kind of input voltage "
 823                       "range switching implemented in this PowerSupply. For "
 824                       "example, autoswitching can be specified (value=4)."),
 825                      ValueMap {"1", "2", "3", "4", "5", "6"},
 826                      Values {"Other", "Unknown", "Manual", "Autoswitch",
 827                              "Wide Range", "Not Applicable"},
 828                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 829                  uint16 TypeOfRangeSwitching;
 830                     [Description (
 831                       "Represents the total output power of the PowerSupply in "
 832                       "milliWatts. 0 denotes 'unknown'."),
 833 karl  1.1.2.1        Units ("MilliWatts"),
 834                      MappingStrings {"MIF.DMTF|Power Supply|004"} ]
 835                  uint32 TotalOutputPower;
 836 karl  1.1     };
 837               
 838 karl  1.1.2.1 
 839 karl  1.1     // ===================================================================
 840 karl  1.1.2.1 // SuppliesPower 
 841 karl  1.1     // ===================================================================
 842 karl  1.1.2.1    [Association, Description (
 843                    "The SuppliesPower relationship indicates that a Device is in "
 844                    "the power domain of the referenced PowerSupply or UPS. "
 845                    "It indicates which Device(s) are dependent on the PowerSupply, "
 846                    "and hence, which Devices are affected if the Supply is lost.") ]
 847               class CIM_SuppliesPower : CIM_Dependency {
 848                     [Override ("Antecedent"), 
 849                      Description ("The Supply providing power.") ]
 850                  CIM_PowerSupply REF Antecedent;
 851                     [Override ("Dependent"), 
 852 karl  1.1            Description (
 853 karl  1.1.2.1         "A LogicalDevice in the power domain of the Supply.") ]
 854                  CIM_LogicalDevice REF Dependent;
 855 karl  1.1     };
 856               
 857               
 858               // ===================================================================
 859 karl  1.1.2.1 // UninterruptiblePowerSupply
 860 karl  1.1     // ===================================================================
 861                  [Description (
 862 karl  1.1.2.1      "Capabilities and management of an UninterruptiblePowerSupply. "
 863                    "The properties of the UPS Device indicate when incoming power "
 864                    "is trimmed or boosted, and the aggregated information of the "
 865                    "batteries, generators, etc. that comprise the Device.  These "
 866                    "individual components (for example, multiple batteries) can "
 867                    "also be independently modeled and associated with the UPS.") ] 
 868               class CIM_UninterruptiblePowerSupply : CIM_PowerSupply {
 869                     [Override ("Range1InputVoltageLow"), Description (
 870                       "If the voltage (in millivolts) drops below the value "
 871                       "specified by Range1InputVoltageLow, the UPS will compensate "
 872                       "by boosting the voltage using its power source(s).  A value "
 873                       "of 0 indicates that the voltage at which boosting occurs "
 874                       "is 'unknown'."), 
 875                      Units ("MilliVolts") ]
 876                  uint32 Range1InputVoltageLow;
 877                     [Override ("Range1InputVoltageHigh"), Description (
 878                       "If the voltage (in millivolts) rises above the value "
 879                       "specified by Range1InputVoltageHigh, the UPS will compensate "
 880                       "by trimming the voltage.  A value of 0 indicates that the "
 881                       "voltage at which trimming occurs is 'unknown'."),
 882                      Units ("MilliVolts") ]
 883 karl  1.1.2.1    uint32 Range1InputVoltageHigh;
 884                     [Override ("Range2InputVoltageLow"), Description (
 885                       "If the voltage (in millivolts) drops below the value "
 886                       "specified by Range2InputVoltageLow, the UPS will compensate "
 887                       "by boosting the voltage using its power source(s).  A value "
 888                       "of 0 indicates that the voltage at which boosting occurs "
 889                       "is 'unknown'."), 
 890                      Units ("MilliVolts") ]
 891                  uint32 Range2InputVoltageLow;
 892                     [Override ("Range2InputVoltageHigh"), Description (
 893                       "If the voltage (in millivolts) rises above the value "
 894                       "specified by Range2InputVoltageHigh, the UPS will compensate "
 895                       "by trimming the voltage.  A value of 0 indicates that the "
 896                       "voltage at which trimming occurs is 'unknown'."),
 897                      Units ("MilliVolts") ]
 898                  uint32 Range2InputVoltageHigh;
 899                     [Description (
 900                       "The indication of the capacity remaining in the UPS' "
 901                       "batteries, generator, ...  A value of \"Normal\" (2) "
 902                       "indicates that the remaining estimated minutes of run-time "
 903                       "is greater than the UPS' defined 'low power' state "
 904 karl  1.1.2.1         "(typically two minutes). A value of \"Low\" (3) indicates "
 905                       "that the remaining estimated minutes of run-time is less "
 906                       "than or equal to the UPS' defined 'low power' state.  A "
 907                       "value of \"Depleted\" (4) indicates that the "
 908                       "UPS will be unable to sustain the present load when and if "
 909                       "the utility power is lost (including the possibility that "
 910                       "the utility power is currently absent)."), 
 911                      ValueMap {"1", "2", "3", "4"}, 
 912                      Values {"Unknown", "Normal", "Low", "Depleted"},
 913                      MappingStrings {"MIF.DMTF|UPS Battery|001.1"} ]
 914                  uint16 RemainingCapacityStatus;
 915                     [Description (
 916                       "TimeOnBackup indicates the elapsed time in seconds "
 917                       "since the UPS last switched to battery power, generator, ...  "
 918                       "Or, the time since the UPS was last restarted, whichever is "
 919                       "less. Zero shall be returned if the UPS is 'on line'."), 
 920                      Units ("Seconds"),
 921                      MappingStrings {"MIF.DMTF|UPS Battery|001.2"} ]
 922                  uint32 TimeOnBackup;
 923                     [Description (
 924                       "EstimatedRunTime is an estimate in minutes of the time to "
 925 karl  1.1.2.1         "battery, generator, ... depletion under the present load "
 926                       "conditions if the utility power is off, or lost and remains "
 927                       "off."),
 928                      Units ("Minutes"),
 929                      MappingStrings {"MIF.DMTF|UPS Battery|001.3"} ]
 930                  uint32 EstimatedRunTime;
 931                     [Gauge, Description (
 932                       "An estimate of the percentage of full charge remaining for "
 933                       "a UPS (that uses battery technology)."),
 934                      Units ("Percent"),
 935                      MappingStrings {"MIF.DMTF|UPS Battery|001.4"} ] 
 936                  uint16 EstimatedChargeRemaining;
 937 karl  1.1     };
 938               
 939 karl  1.1.2.1 
 940 karl  1.1     // ===================================================================
 941 karl  1.1.2.1 // AssociatedBattery
 942 karl  1.1     // ===================================================================
 943 karl  1.1.2.1    [Association, Description (
 944                    "A LogicalDevice may use or require one or more Batteries. This "
 945                    "relationship is described by the AssociatedBattery dependency. "
 946                    "It is also possible to model the individual Batteries that "
 947                    "comprise a UPS, using this association.") ] 
 948               class CIM_AssociatedBattery : CIM_Dependency   {
 949                     [Override ("Antecedent"),
 950                      Description ("The Battery.") ]
 951                  CIM_Battery REF Antecedent;
 952                     [Override ("Dependent"),
 953                      Description (
 954                       "The LogicalDevice needing or associated with the Battery.") ]
 955                  CIM_LogicalDevice REF Dependent;
 956 karl  1.1     };
 957               
 958 karl  1.1.2.1 
 959 karl  1.1     // ===================================================================
 960 karl  1.1.2.1 // Processor
 961 karl  1.1     // ===================================================================
 962                  [Description (
 963 karl  1.1.2.1      "Capabilities and management of the Processor LogicalDevice.") ] 
 964               class CIM_Processor : CIM_LogicalDevice {
 965 karl  1.1           [Description (
 966 karl  1.1.2.1         "A free form string describing the role of the Processor - "
 967                       "for example, \"Central Processor\" or \"Math Processor\".") ] 
 968                  string Role;
 969 karl  1.1           [Description (
 970 karl  1.1.2.1         "The Processor family type. For example, values include "
 971                       "\"Pentium(R) processor with MMX(TM) technology\" (14) "
 972                       "and \"68040\" (96)."), 
 973                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 974                                "11", "12", "13", "14", "15", "16", "17", "18", "19", 
 975                                "24", "25", "26", "27", "28", "29", "30", 
 976                                "31", "32", "33", "34", "35", "36", "37", "38", "39", 
 977                                "48", "49", "50", "51", "52", "53", "54", "55", 
 978                                "64", "65", "66", "67", "68", "69", 
 979                                "80", "81", "82", "83", "84", "85", "86", "87", "88", 
 980                                "96", "97", "98", "99", "100", 
 981                                "101", "112", "120", "121", "128", "130", 
 982                                "144", "145", "146", "147", "148", "149", "150",
 983                                "160", "176", "177", "180", "200", "201", "202", 
 984                                "250", "251", "260", "261", "280", "281", 
 985                                "300", "301", "302", "320", "350", "500"},
 986                      Values {"Other", "Unknown", "8086", "80286", "80386", "80486",
 987                              "8087", "80287", "80387", "80487", "Pentium(R) brand",
 988                              "Pentium(R) Pro", "Pentium(R) II", 
 989                              "Pentium(R) processor with MMX(TM) technology", 
 990                              "Celeron(TM)", "Pentium(R) II Xeon(TM)", 
 991 karl  1.1.2.1                "Pentium(R) III", "M1 Family", "M2 Family", "K5 Family", 
 992                              "K6 Family", "K6-2", "K6-3", 
 993                              "AMD Athlon(TM) Processor Family", 
 994                              "AMD(R) Duron(TM) Processor", "AMD29000 Family", 
 995                              "K6-2+", "Power PC Family", "Power PC 601", 
 996                              "Power PC 603", "Power PC 603+", "Power PC 604", 
 997                              "Power PC 620", "Power PC X704", "Power PC 750", 
 998                              "Alpha Family", "Alpha 21064", "Alpha 21066", 
 999                              "Alpha 21164", "Alpha 21164PC", "Alpha 21164a", 
1000                              "Alpha 21264", "Alpha 21364", "MIPS Family", 
1001                              "MIPS R4000", "MIPS R4200", "MIPS R4400", "MIPS R4600", 
1002                              "MIPS R10000", "SPARC Family", "SuperSPARC", 
1003                              "microSPARC II", "microSPARC IIep", "UltraSPARC", 
1004                              "UltraSPARC II", "UltraSPARC IIi", "UltraSPARC III", 
1005                              "UltraSPARC IIIi", "68040", "68xxx Family", "68000", 
1006                              "68010", "68020", "68030", "Hobbit Family", 
1007                              "Crusoe(TM) TM5000 Family", "Crusoe(TM) TM3000 Family",
1008                              "Weitek", "Itanium(TM) Processor", "PA-RISC Family", 
1009                              "PA-RISC 8500", "PA-RISC 8000", "PA-RISC 7300LC", 
1010                              "PA-RISC 7200", "PA-RISC 7100LC", "PA-RISC 7100", 
1011                              "V30 Family", "Pentium(R) III Xeon(TM)", 
1012 karl  1.1.2.1                "Pentium(R) III Processor with Intel(R) SpeedStep(TM) Technology",
1013                              "AS400 Family", "IBM390 Family", "G4", "G5", "i860", 
1014                              "i960", "SH-3", "SH-4", "ARM", "StrongARM", "6x86", 
1015                              "MediaGX", "MII", "WinChip", "DSP", "Video Processor"},
1016                      MappingStrings {"MIF.DMTF|Processor|013"},
1017                      ModelCorrespondence {"CIM_Processor.OtherFamilyDescription"} ]
1018                  uint16 Family;
1019                     [MaxLen (64), Description (
1020                       "A string describing the Processor Family type - used when "
1021                       "the Family property is set to 1 (\"Other\"). This string "
1022                       "should be set to NULL when the Family property is any "
1023                       "value other than 1."),
1024                      ModelCorrespondence {"CIM_Processor.Family"} ]
1025                  string OtherFamilyDescription;
1026 karl  1.1           [Description (
1027 karl  1.1.2.1         "CPU socket information including data on how this "
1028                       "Processor can be upgraded (if upgrades are supported). "
1029                       "This property is an integer enumeration."),
1030                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", 
1031                                "10", "11", "12", "13", "14"}, 
1032                      Values {"Other", "Unknown", "Daughter Board", "ZIF Socket",
1033                              "Replacement/Piggy Back", "None", "LIF Socket", "Slot 1",
1034                              "Slot 2", "370 Pin Socket", "Slot A", "Slot M", 
1035                              "Socket 423", "Socket A (Socket 462)"}, 
1036                      MappingStrings {"MIF.DMTF|Processor|013"} ]
1037                  uint16 UpgradeMethod;
1038                     [Description ("The maximum speed (in MHz) of this Processor."),
1039                      Units ("MegaHertz"),
1040                      MappingStrings {"MIF.DMTF|Processor|013"} ]
1041                  uint32 MaxClockSpeed;
1042                     [Description ("The current speed (in MHz) of this Processor."),
1043                      Units ("MegaHertz"),
1044                      MappingStrings {"MIF.DMTF|Processor|013"} ]
1045                  uint32 CurrentClockSpeed;
1046                     [Description ("Processor data width in bits."),
1047                      Units ("Bits") ]
1048 karl  1.1.2.1    uint16 DataWidth; 
1049                     [Description ("Processor address width in bits."),
1050                      Units ("Bits") ]
1051                  uint16 AddressWidth;
1052                     [Gauge, Description (
1053                       "Loading of this Processor, averaged over the last minute, "
1054                       "in Percent."),
1055                      Units ("Percent"),
1056                      MappingStrings {"MIB.IETF|HOST-RESOURCES-MIB.hrProcessorLoad"} ]
1057                  uint16 LoadPercentage;
1058 karl  1.1           [Description (
1059 karl  1.1.2.1         "Stepping is a free-form string indicating the revision " 
1060                       "level of the Processor within the Processor.Family."), 
1061                      ModelCorrespondence {"CIM_Processor.Family"} ]
1062                  string Stepping;
1063                     [Description (
1064                       "A globally unique identifier for the Processor. This "
1065                       "identifier may only be unique within a Processor Family.") ]
1066                  string UniqueID;
1067                     [Description (
1068                       "The CPUStatus property indicates the current status of "
1069                       "the Processor. For example, it may be disabled by the user "
1070                       "via BIOS (value=2), or disabled due to a POST error (value="
1071                       "3). Information in this property can be obtained from SMBIOS, "
1072                       "the Type 4 structure, the Status attribute."), 
1073                      ValueMap {"0", "1", "2", "3", "4", "7"}, 
1074                      Values {"Unknown", "CPU Enabled", 
1075                              "CPU Disabled by User via BIOS Setup", 
1076                              "CPU Disabled By BIOS (POST Error)", "CPU Is Idle", "Other"} ]
1077                  uint16 CPUStatus;
1078 karl  1.1     };
1079               
1080 karl  1.1.2.1 
1081               // ====================================================================
1082               // AlarmDevice 
1083 karl  1.1     // ===================================================================
1084                  [Description (
1085 karl  1.1.2.1      "An AlarmDevice is a type of Device that emits audible or " 
1086                    "visible indications related to a problem situation. ") ]
1087               class CIM_AlarmDevice : CIM_LogicalDevice {
1088                     [Description ("Boolean indicating that the Alarm is audible. ") ]
1089                  boolean AudibleAlarm;
1090                     [Description ("Boolean indicating that the Alarm is visible. ") ]
1091                  boolean VisibleAlarm;
1092 karl  1.1           [Description (
1093 karl  1.1.2.1         "Boolean indicating that the Alarm causes motion of the "
1094                       "Device.") ]
1095                  boolean MotionAlarm;
1096                     [Description (
1097                       "Urgency is an enumerated value that indicates the relative " 
1098                       "frequency at which the Alarm flashes, vibrates and/or emits "
1099                       "audible tones. "), 
1100                      Values {"Unknown", "Other", "Not Supported", "Informational", 
1101                              "Non-Critical", "Critical", "Unrecoverable"} ]
1102                  uint16 Urgency;
1103                     [Description ("The current state of the alarm."),
1104                      Values {"Unknown", "Off", "Steady", "Alternating"} ]
1105                  uint16 AlarmState;
1106                     [Description (
1107                       "True indicates that the audio of an AlarmState indicator "
1108                       "has been disabled (i.e. muted). A disabled state here "
1109                       "does not imply that the AlarmState is off.") ]
1110                  boolean AudioIndicatorIsDisabled;
1111                     [Description (
1112                       "True indicates that the visual of an AlarmState indicator "
1113                       "has been disabled (i.e. dimmed). A disabled state here "
1114 karl  1.1.2.1         "does not imply that the AlarmState is off.") ]
1115                  boolean VisualIndicatorIsDisabled;
1116                     [Description (
1117                       "True indicates that the motion of an AlarmState indicator "
1118                       "has been disabled (i.e. stopped). A disabled state here "
1119                       "does not imply that the AlarmState is off.") ]
1120                  boolean MotionIndicatorIsDisabled;
1121                     [Description (
1122                       "SetAlarmState is a method for defining the current state "
1123                       "of the Alarm. Its input parameter, RequestedAlarmState, is "
1124                       "specified using the Values list of AlarmDevice's AlarmState "
1125                       "property. SetAlarmState returns 0 if the request is "
1126                       "successfully implemented, 1 if the specified RequestedAlarm"
1127                       "State is not supported, and some other value if any other "
1128                       "error occurred. In a subclass, the set of possible return "
1129                       "codes should be specified using a ValueMap qualifier on the "
1130                       "method. The strings to which the ValueMap contents are "
1131                       "'translated' should be specified as a Values array "
1132                       "qualifier.") ]
1133                  uint32 SetAlarmState (
1134                     [IN, Values {"Unknown", "Off", "Steady", "Alternating"}] 
1135 karl  1.1.2.1        uint16 RequestedAlarmState);
1136                     [Description (
1137                       "SetAlarmIndicator is a method for enabling or disabling the "
1138                       "indicator of the AlarmState function, without changing the "
1139                       "current AlarmState. It has 3 input parameters, Audio"
1140                       "Indicator, VisualIndicator and MotionIndicator. For all of "
1141                       "the input parameters, a value of 0 indicates no change to "
1142                       "the AlarmState indicator, 1 indicates Disable, and 2 "
1143                       "indicates Enable. The method returns 0 if the request is "
1144                       "successfully implemented, 1 if the specified request is not "
1145                       "supported, and some other value if any other error occurred. "
1146                       "In a subclass, the set of possible return codes should be "
1147                       "specified using a ValueMap qualifier on the method. The "
1148                       "strings to which the ValueMap contents are 'translated' "
1149                       "should be specified as a Values array qualifier.") ]
1150                  uint32 SetAlarmIndicator (
1151                     [IN, Values {"No Change", "Disable", "Enable"}] 
1152                      uint16 AudioIndicator, 
1153                     [IN, Values {"No Change", "Disable", "Enable"}] 
1154                      uint16 VisualIndicator, 
1155                     [IN, Values {"No Change", "Disable", "Enable"}] 
1156 karl  1.1.2.1        uint16 MotionIndicator);
1157                     [Description (
1158                       "SetUrgency is a method for defining the desired urgency " 
1159                       "level for the Alarm. Its input parameter, RequestedUrgency, "
1160                       "is specified using the Values list of AlarmDevice's Urgency "
1161                       "property. SetUrgency returns 0 if the request is successfully "
1162                       "implemented, 1 if the specified Urgency level is not "
1163                       "supported, and some other value if any other error occurred. "
1164                       "In a subclass, the set of possible return codes should be "
1165                       "specified using a ValueMap qualifier on the method. The "
1166                       "strings to which the ValueMap contents are 'translated' "
1167                       "should be specified as a Values array qualifier.") ]
1168                  uint32 SetUrgency (
1169                     [IN, ValueMap {"1", "3", "4", "5", "6"}, 
1170                          Values {"Other", "Informational", "Non-Critical", "Critical", 
1171                                  "Unrecoverable"} ] 
1172                      uint16 RequestedUrgency);
1173 karl  1.1     };
1174               
1175 karl  1.1.2.1 
1176 karl  1.1     // ===================================================================
1177 karl  1.1.2.1 // AssociatedAlarm 
1178 karl  1.1     // ===================================================================
1179 karl  1.1.2.1    [Association, Description (
1180                    "LogicalDevices may have one or more AlarmDevices " 
1181                    "associated with them, in order to indicate problem situations. "
1182                    "This relationship is indicated by the AssociatedAlarm "
1183                    "dependency. ") ]
1184               class CIM_AssociatedAlarm : CIM_Dependency {
1185 karl  1.1           [Override ("Antecedent"), 
1186 karl  1.1.2.1        Description ("The AlarmDevice. ") ] 
1187                  CIM_AlarmDevice REF Antecedent;
1188 karl  1.1           [Override ("Dependent"), 
1189 karl  1.1.2.1        Description ("The LogicalDevice that is alarmed. ") ]
1190                  CIM_LogicalDevice REF Dependent;
1191 karl  1.1     };
1192               
1193 karl  1.1.2.1 
1194 karl  1.1     // ===================================================================
1195 karl  1.1.2.1 // Door
1196 karl  1.1     // ===================================================================
1197                  [Description (
1198 karl  1.1.2.1      "A Door is the abstraction of hardware providing access to "
1199                    "the internal componentry of a System. When a Door is 'opened', "
1200                    "typically all accessible, moving components are stopped or "
1201                    "suspended to prevent physical harm.") ]
1202               class CIM_Door : CIM_LogicalDevice {
1203 karl  1.1           [Description (
1204 karl  1.1.2.1         "Boolean indicating the 'open' (TRUE) or 'closed' (FALSE) "
1205                       "status of the Door.") ]
1206                  boolean Open;
1207 karl  1.1           [Description (
1208 karl  1.1.2.1         "Boolean indicating that the Door is 'locked' (TRUE) or "
1209                       "'unlocked' (FALSE). When the Door is locked, access to the "
1210                       "componentry is prevented, without the use of a physical "
1211                       "key or the issuance of a software unlock command.") ]
1212                  boolean Locked;
1213 karl  1.1           [Description (
1214 karl  1.1.2.1         "When a Door is 'Open', all accessible, moving componentry "
1215                       "and Device operation are typically stopped. The Timeout "
1216                       "property provides a mechanism to event on a Door left open "
1217                       "for a period of time (in seconds) exceeding the property's "
1218                       "value."), 
1219                      Units ("Seconds") ]
1220                  uint32 Timeout;
1221 karl  1.1           [Description (
1222 karl  1.1.2.1         "Date and time that the Door was last opened.") ]
1223                  datetime LastOpened;
1224 karl  1.1           [Description (
1225 karl  1.1.2.1         "The Capabilities of the Door. For example, information on "
1226                       "whether the Door is \"Host System Lockable\" (value=2) and/or "
1227                       "whether a key is available (value=3) are specified in this "
1228                       "property. The value 4, \"All Drives Dismounted Before "
1229                       "Access\", pertains to a Door on a StorageLibrary or set of "
1230                       "drive bays. If specified for the Door, it means that it can "
1231                       "not be opened unless all Media are first unloaded from the "
1232                       "accessible MediaAccessDevices."), 
1233                      Values {"Unknown", "Other", "Host System Lockable", 
1234                              "Physical Key", "All Drives Dismounted Before Access"} ]
1235                  uint16 Capabilities[];
1236               };
1237               
1238               
1239               // ===================================================================
1240               // DoorAccessToPhysicalElement 
1241               // ===================================================================
1242                  [Association, Description (
1243                    "Doors provide access to PhysicalElements for hot swap, repair "
1244                    "and similar activities. The entities accessed through a Door "
1245                    "are indicated in this relationship.") ]
1246 karl  1.1.2.1 class CIM_DoorAccessToPhysicalElement : CIM_Dependency {
1247                     [Override ("Antecedent"), 
1248                      Description ("The Door that provides access.") ]
1249                  CIM_Door REF Antecedent;
1250                     [Override ("Dependent"), 
1251                      Description ("The PhysicalElement that is accessed.") ]
1252                  CIM_PhysicalElement REF Dependent;
1253               };
1254               
1255               
1256               // ===================================================================
1257               // DoorAccessToDevice 
1258               // ===================================================================
1259                  [Association, Description (
1260                    "Doors provide access to PhysicalElements for hot swap, repair "
1261                    "and similar activities. In turn, PhysicalElements 'Realize' "
1262                    "LogicalDevices. Since it may not be possible to define all the "
1263                    "PhysicalElements that exist, and optimizing the retrieval of "
1264                    "Devices 'behind' the Door may be desirable, the DoorAccessTo"
1265                    "Device association provides a shortcut mechanism for defining "
1266                    "the LogicalDevices ('hardware') accessed through a Door.") ]
1267 karl  1.1.2.1 class CIM_DoorAccessToDevice : CIM_Dependency {
1268                     [Override ("Antecedent"), 
1269                      Description ("The Door that provides access.") ]
1270                  CIM_Door REF Antecedent;
1271                     [Override ("Dependent"), 
1272                      Description ("The LogicalDevice that is accessed.") ]
1273                  CIM_LogicalDevice REF Dependent;
1274               };
1275               
1276               
1277               // ===================================================================
1278               //
1279               //    Resources, Statistics, and Sensors
1280               //
1281               // ===================================================================
1282               
1283               
1284               // ===================================================================
1285               // SystemResource
1286               // ===================================================================
1287                  [Abstract,
1288 karl  1.1.2.1     Description (
1289                    "An entity managed by BIOS and/or an OperatingSystem which is "
1290                    "available for use by software and/or LogicalDevices. Examples "
1291                    "of Resources in the x86 environment are IRQs, DMA channels and "
1292                    "memory mapped I/O.") ] 
1293               class CIM_SystemResource : CIM_LogicalElement {
1294 karl  1.1           [Description (
1295 karl  1.1.2.1         "Boolean indicating whether the Resource can be shared.") ]
1296                  boolean Shareable;
1297               };
1298               
1299               
1300               // ===================================================================
1301               // IRQ
1302               // ===================================================================
1303                  [Description ("Personal computer architecture IRQ.") ] 
1304               class CIM_IRQ : CIM_SystemResource {
1305                     [Propagated("CIM_ComputerSystem.CreationClassName"),
1306                      Key, MaxLen (256),
1307                      Description ("The scoping ComputerSystem's CreationClassName.") ]
1308                  string CSCreationClassName;
1309                     [Propagated("CIM_ComputerSystem.Name"),
1310                      Key, MaxLen (256),
1311                      Description ("The scoping ComputerSystem's Name.") ]
1312                  string CSName;
1313                     [Key, MaxLen (256),
1314                      Description (
1315                       "CreationClassName indicates the name of the class or "
1316 karl  1.1.2.1         "the subclass used in the creation of an instance. When "
1317                       "used with the other key properties of this class, this "
1318                       "property allows all instances of this class and its "
1319                       "subclasses to be uniquely identified.")  ]
1320                  string CreationClassName;
1321                     [Key, 
1322                      Description ("A part of the object's key value, IRQ Number."), 
1323                      MappingStrings {"MIF.DMTF|IRQ|002.1"} ]
1324                  uint32 IRQNumber;
1325                     [Description ("Availability of the IRQ."),
1326                      ValueMap {"1", "2", "3", "4", "5"},
1327                      Values {"Other", "Unknown", "Available", 
1328                              "In Use/Not Available", 
1329                              "In Use and Available/Shareable"},
1330                      MappingStrings {"MIF.DMTF|IRQ|002.2"} ]
1331                  uint16 Availability;
1332 karl  1.1           [Description (
1333 karl  1.1.2.1         "IRQ trigger type indicating whether edge (value=4) "
1334                       "or level triggered (value=3) interrupts occur. Also, "
1335                       "\"Other\" (1) and \"Unknown\" (2) may be defined."),
1336                      ValueMap {"1", "2", "3", "4"},
1337                      Values {"Other", "Unknown", "Level", "Edge"},
1338                      MappingStrings {"MIF.DMTF|IRQ|002.3", 
1339                       "MIF.DMTF|System Resource IRQ Info|001.2"} ]
1340                  uint16 TriggerType;
1341 karl  1.1           [Description (
1342 karl  1.1.2.1         "IRQ trigger level indicating whether the interrupt is "
1343                       "triggered by the hardware signal going high (value=4) "
1344                       "or low (value=3).  Also, \"Other\" (1) and "
1345                       "\"Unknown\" (2) may be defined."),
1346                      ValueMap {"1", "2", "3", "4"},
1347                      Values {"Other", "Unknown", "Active Low", "Active High"},
1348                      MappingStrings {"MIF.DMTF|System Resource IRQ Info|001.3"} ]
1349                  uint16 TriggerLevel; 
1350               // Override is used to define the MappingString qualifier 
1351                     [Override ("Shareable"), 
1352                      Description (
1353                       "Boolean indicating whether the IRQ can be shared."),
1354                      MappingStrings {"MIF.DMTF|IRQ|002.4"} ]
1355                  boolean Shareable;
1356 karl  1.1           [Description (
1357 karl  1.1.2.1         "The Hardware property indicates whether the interrupt "
1358                       "is hardware or software based. (If TRUE, the interrupt is "
1359                       "hardware based.) On a personal computer, a hardware IRQ "
1360                       "is a physical wire to a programmable interrupt "
1361                       "controller (PIC) chip, through which the CPU can be "
1362                       "notified of time critical events. Some IRQ lines are "
1363                       "reserved for standard Devices such as the keyboard, floppy "
1364                       "disk drives, and the system clock. A software interrupt "
1365                       "is a programmatic mechanism to allow an application to "
1366                       "get the attention of the Processor.") ]
1367                  boolean Hardware;
1368               };
1369               
1370               // ===================================================================
1371               // MemoryMappedIO
1372               // ===================================================================
1373                  [Description (
1374                    "Personal Computer architecture Memory Mapped I/O. This class "
1375                    "addresses both memory and port I/O resources. The property, "
1376                    "MappedResource, defines whether memory or I/O is mapped (and "
1377                    "for I/O whether the mapping is to a memory or a port space).") ]
1378 karl  1.1.2.1 class CIM_MemoryMappedIO : CIM_SystemResource {
1379                     [Propagated("CIM_ComputerSystem.CreationClassName"),
1380                      Key, MaxLen (256),
1381                      Description ("The scoping ComputerSystem's CreationClassName.") ]
1382                  string CSCreationClassName;
1383                     [Propagated("CIM_ComputerSystem.Name"),
1384                      Key, MaxLen (256),
1385                      Description ("The scoping ComputerSystem's Name.") ]
1386                  string CSName;
1387                     [Key, MaxLen (256),
1388                      Description (
1389                       "CreationClassName indicates the name of the class or "
1390                       "the subclass used in the creation of an instance. When "
1391                       "used with the other key properties of this class, this "
1392                       "property allows all instances of this class and its "
1393                       "subclasses to be uniquely identified.")  ]
1394                  string CreationClassName;
1395                     [Key, Description (
1396                       "A part of the object's key value, the starting address of "
1397                       "memory mapped I/O."),
1398                      MappingStrings {"MIF.DMTF|Memory Mapped I/O|001.1"} ]
1399 karl  1.1.2.1    uint64 StartingAddress;
1400                     [Description ("Ending address of memory mapped I/O."),
1401                      MappingStrings {"MIF.DMTF|Memory Mapped I/O|001.2"} ]
1402                  uint64 EndingAddress;
1403 karl  1.1           [Description (
1404 karl  1.1.2.1         "Type of memory mapped I/O. MappedResource defines whether "
1405                       "memory or I/O is mapped, and for I/O, whether the mapping "
1406                       "is to a memory or a port space."), 
1407                      Values {"Other", "Mapped Memory", "I/O Mapped to Memory Space", 
1408                              "I/O Mapped to Port Space"} ]
1409                  uint16 MappedResource;
1410               };
1411               
1412               
1413               // ===================================================================
1414               // MemoryResource
1415               // ===================================================================
1416                  [Description (
1417                    "Since the MemoryMappedIO class applies to memory AND port "
1418                    "resources, there is the potential for key conflict. For example, "
1419                    "both a memory resource and a port resource may be located at "
1420                    "address 0. Since StartingAddress is the distinguishing key of "
1421                    "MemoryMappedIO, two instances would be created with the same key. "
1422                    "This is prevented by defining memory and port resource subclasses "
1423                    "of MemoryMappedIO, and allowing the CreationClassName key property "
1424                    "to distinguish between them and force uniqueness in their keys.") ]
1425 karl  1.1.2.1 class CIM_MemoryResource : CIM_MemoryMappedIO {
1426 karl  1.1     };
1427               
1428 karl  1.1.2.1 
1429 karl  1.1     // ===================================================================
1430 karl  1.1.2.1 // PortResource
1431 karl  1.1     // ===================================================================
1432                  [Description (
1433 karl  1.1.2.1      "Since the MemoryMappedIO class applies to memory AND port "
1434                    "resources, there is the potential for key conflict. For example, "
1435                    "both a memory resource and a port resource may be located at "
1436                    "address 0. Since StartingAddress is the distinguishing key of "
1437                    "MemoryMappedIO, two instances would be created with the same key. "
1438                    "This is prevented by defining memory and port resource subclasses "
1439                    "of MemoryMappedIO, and allowing the CreationClassName key property "
1440                    "to distinguish between them and force uniqueness in their keys.") ]
1441               class CIM_PortResource : CIM_MemoryMappedIO {
1442               };
1443               
1444               
1445               // ===================================================================
1446               // DMA
1447               // ===================================================================
1448                  [Description ("Personal computer architecture DMA.") ] 
1449               class CIM_DMA : CIM_SystemResource {
1450                     [Propagated("CIM_ComputerSystem.CreationClassName"),
1451                      Key, MaxLen (256),
1452                      Description ("The scoping ComputerSystem's CreationClassName.") ]
1453                  string CSCreationClassName;
1454 karl  1.1.2.1       [Propagated("CIM_ComputerSystem.Name"),
1455                      Key, MaxLen (256),
1456                      Description ("The scoping ComputerSystem's Name.") ]
1457                  string CSName;
1458                     [Key, MaxLen (256),
1459                      Description (
1460                       "CreationClassName indicates the name of the class or "
1461                       "the subclass used in the creation of an instance. When "
1462                       "used with the other key properties of this class, this "
1463                       "property allows all instances of this class and its "
1464                       "subclasses to be uniquely identified.")  ]
1465                  string CreationClassName;
1466                     [Key, Description (
1467                       "A part of the object's key value, the DMA Channel number."),
1468                      MappingStrings {"MIF.DMTF|DMA|001.1"} ]
1469                  uint32 DMAChannel;
1470                     [Description ("Availability of the DMA."),
1471                      ValueMap {"1", "2", "3", "4", "5"},
1472                      Values {"Other", "Unknown", "Available", 
1473                              "In Use/Not Available", 
1474                              "In Use and Available/Shareable"},
1475 karl  1.1.2.1        MappingStrings {"MIF.DMTF|DMA|001.2"} ]
1476                  uint16 Availability;
1477 karl  1.1           [Description (
1478 karl  1.1.2.1         "Indication that the DMA Channel supports burst mode."),
1479                      MappingStrings {"MIF.DMTF|DMA|001.3"} ]
1480                  boolean BurstMode; 
1481 karl  1.1           [Description (
1482 karl  1.1.2.1         "An array indicating all the transfer widths (in bits) "
1483                       "supported by this DMA Channel. Permissible values "
1484                       "are 8, 16, 32, 64 or 128 bits.  If unknown, enter 0."),
1485                      Units ("Bits"),
1486                      ValueMap {"0", "8", "16", "32", "64", "128"},
1487                      MappingStrings {"MIF.DMTF|System Resource DMA Info|001.2"} ]
1488                  uint16 TransferWidths[];
1489 karl  1.1           [Description (
1490 karl  1.1.2.1         "An integer indicating the DMA Channel address size in "
1491                       "bits. Permissible values are 8, 16, 32 or 64 bits. "
1492                       "If unknown, enter 0."),
1493                      Units ("Bits"),
1494                      ValueMap {"0", "8", "16", "32", "64"}, 
1495                      MappingStrings {"MIF.DMTF|System Resource DMA Info|001.3"} ]
1496                  uint16 AddressSize; 
1497 karl  1.1           [Description (
1498 karl  1.1.2.1         "The maximum number of bytes that can be transferred by this "
1499                       "DMA Channel. If unknown, enter 0."),
1500                      Units ("Bytes"),
1501                      MappingStrings {"MIF.DMTF|System Resource DMA Info|001.4"} ]
1502                  uint32 MaxTransferSize;
1503 karl  1.1           [Description (
1504 karl  1.1.2.1         "Indicates whether DMA may execute in 'count by byte' mode "
1505                       "(value=4) or not (value=3).  Also, \"Other\" (1) and "
1506                       "\"Unknown\" (2) may be defined."),
1507                      ValueMap {"1", "2", "3", "4"},
1508                      Values {"Other", "Unknown", 
1509                              "Not execute in 'count by byte' mode", 
1510                              "Execute in 'count by byte' mode"},
1511                      MappingStrings {"MIF.DMTF|System Resource DMA Info|001.7"} ]
1512                  uint16 ByteMode;
1513 karl  1.1           [Description (
1514 karl  1.1.2.1         "Indicates whether DMA may execute in 'count by word' mode "
1515                       "(value=4) or not (value=3).  Also, \"Other\" (1) and "
1516                       "\"Unknown\" (2) may be defined."),
1517                      ValueMap {"1", "2", "3", "4"},
1518                      Values {"Other", "Unknown", 
1519                              "Not execute in 'count by word' mode",
1520                              "Execute in 'count by word' mode"},
1521                      MappingStrings {"MIF.DMTF|System Resource DMA Info|001.8"} ]
1522                  uint16 WordMode;
1523 karl  1.1           [Description (
1524 karl  1.1.2.1         "DMA channel timing.  For example, \"Type A\" (value "
1525                       "=4) or \"Type F\" (6) could be specified."),
1526                      ValueMap {"1", "2", "3", "4", "5", "6"},
1527                      Values {"Other", "Unknown", "ISA Compatible", "Type A",
1528                              "Type B", "Type F"},
1529                      MappingStrings {"MIF.DMTF|System Resource DMA Info|001.9"} ]
1530                  uint16 ChannelTiming;
1531 karl  1.1           [Description (
1532 karl  1.1.2.1         "Indicates whether C type (burst) timing is supported "
1533                       "(value=5) or not (value=4). Also, \"Other\" (1), "
1534                       "\"Unknown\" (2) and \"ISA Compatible\" (3) are defined."),
1535                      ValueMap {"1", "2", "3", "4", "5"},
1536                      Values {"Other", "Unknown", "ISA Compatible", "Not Supported",
1537                              "Supported"},
1538                      MappingStrings {"MIF.DMTF|System Resource DMA Info|001.10"} ]
1539                  uint16 TypeCTiming;
1540 karl  1.1     };
1541               
1542               
1543               // ===================================================================
1544 karl  1.1.2.1 // ComputerSystemResource
1545 karl  1.1     // ===================================================================
1546 karl  1.1.2.1    [Association, Aggregation,
1547                   Description (
1548                    "An association between a ComputerSystem and the System"
1549                    "Resources available on it.") ]
1550               class CIM_ComputerSystemResource : CIM_SystemComponent {
1551                     [Override ("GroupComponent"), Aggregate,
1552                      Min (1), Max (1), Description ("The ComputerSystem.")]
1553                  CIM_ComputerSystem REF GroupComponent;
1554                     [Override ("PartComponent"),
1555                      Description ("A SystemResource of the ComputerSystem.") ]
1556                  CIM_SystemResource REF PartComponent;
1557 karl  1.1     };
1558               
1559 karl  1.1.2.1 
1560 karl  1.1     // ===================================================================
1561 karl  1.1.2.1 // ComputerSystemIRQ
1562 karl  1.1     // ===================================================================
1563 karl  1.1.2.1    [Association, Aggregation,
1564                   Description (
1565                    "An association between a ComputerSystem and the IRQs "
1566                    "available on it.") ]
1567               class CIM_ComputerSystemIRQ : CIM_ComputerSystemResource {
1568                     [Override ("PartComponent"), Weak,
1569                      Description ("An IRQ of the ComputerSystem.")]
1570                  CIM_IRQ REF PartComponent;
1571 karl  1.1     };
1572               
1573               // ===================================================================
1574 karl  1.1.2.1 // ComputerSystemMappedIO
1575 karl  1.1     // ===================================================================
1576 karl  1.1.2.1    [Association, Aggregation,
1577 karl  1.1         Description (
1578 karl  1.1.2.1      "An association between a ComputerSystem and the Memory Mapped "
1579                    "I/O ports available on it.") ]
1580               class CIM_ComputerSystemMappedIO : CIM_ComputerSystemResource {
1581                     [Override ("PartComponent"), Weak,
1582 karl  1.1            Description (
1583 karl  1.1.2.1         "A memory mapped I/O port of the ComputerSystem.")]
1584                  CIM_MemoryMappedIO REF PartComponent;
1585 karl  1.1     };
1586               
1587 karl  1.1.2.1 
1588 karl  1.1     // ===================================================================
1589 karl  1.1.2.1 // ComputerSystemDMA
1590 karl  1.1     // ===================================================================
1591 karl  1.1.2.1    [Association, Aggregation,
1592 karl  1.1         Description (
1593 karl  1.1.2.1      "An association between a ComputerSystem and the DMA channels "
1594                    "available on it.") ]
1595               class CIM_ComputerSystemDMA : CIM_ComputerSystemResource {
1596                     [Override ("PartComponent"), Weak,
1597                      Description ("A DMA channel of the ComputerSystem.")]
1598                  CIM_DMA REF PartComponent;
1599 karl  1.1     };
1600               
1601 karl  1.1.2.1 
1602 karl  1.1     // ===================================================================
1603 karl  1.1.2.1 // AllocatedResource
1604 karl  1.1     // ===================================================================
1605 karl  1.1.2.1    [Association, Description (
1606                    "An association between LogicalDevices and SystemResources, "
1607                    "indicating that the Resource is assigned to the Device.") ]
1608               class CIM_AllocatedResource : CIM_Dependency {
1609                     [Override ("Antecedent"),
1610                      Description ("The Resource.") ]
1611                  CIM_SystemResource REF Antecedent;
1612                     [Override ("Dependent"),
1613                      Description (
1614                       "The LogicalDevice to which the Resource is assigned.") ]
1615                  CIM_LogicalDevice REF Dependent;
1616 karl  1.1     };
1617               
1618 karl  1.1.2.1 
1619 karl  1.1     // ===================================================================
1620 karl  1.1.2.1 // AllocatedDMA
1621               // =================================================================== 
1622                  [Association, Description ( 
1623                    "An association between a LogicalDevice and a DMA System" 
1624                    "Resource indicating that the DMA Channel is assigned to the "
1625                    "Device.") ]
1626               class CIM_AllocatedDMA : CIM_AllocatedResource { 
1627 karl  1.1           [Override ("Antecedent"), 
1628 karl  1.1.2.1        Description ("The DMA Channel.")  ] 
1629                  CIM_DMA REF Antecedent; 
1630                     [Description ( 
1631                       "Boolean indicating whether the LogicalDevice can act as a " 
1632                       "bus master on the DMA Channel."),
1633                      MappingStrings {"MIF.DMTF|System Resource DMA Info|001.6"}  ] 
1634                  boolean BusMaster;
1635 karl  1.1     };
1636               
1637               
1638 karl  1.1.2.1 // ==================================================================
1639               // DeviceErrorCounts
1640               // ==================================================================
1641                  [Description (
1642                    "DeviceErrorCounts is a statistical class containing error-" 
1643                    "related counters for a LogicalDevice. The types of errors " 
1644                    "are as defined by CCITT (Rec X.733) and ISO (IEC 10164-4).") ]
1645               class CIM_DeviceErrorCounts : CIM_StatisticalInformation {
1646                     [Propagated ("CIM_LogicalDevice.SystemCreationClassName"), 
1647                      Key, MaxLen (256),
1648                      Description ("The scoping System's CreationClassName. ") ]
1649                  string SystemCreationClassName; 
1650                     [Propagated ("CIM_LogicalDevice.SystemName"), 
1651                      Key, MaxLen (256),
1652                      Description ("The scoping System's Name. ") ]
1653                  string SystemName; 
1654                     [Propagated ("CIM_LogicalDevice.CreationClassName"), 
1655                      Key, MaxLen (256),
1656                      Description ("The scoping Device's CreationClassName. ") ]
1657                  string DeviceCreationClassName; 
1658                     [Propagated ("CIM_LogicalDevice.DeviceID"), 
1659 karl  1.1.2.1        Key, MaxLen (64),
1660                      Description ("The scoping Device's ID. ") ]
1661                  string DeviceID; 
1662                     [Override ("Name"), 
1663                      Key, MaxLen (256), 
1664                      Description (
1665                       "The inherited Name serves as part of the key for the " 
1666                       "DeviceErrorCounts instance. The object is scoped by " 
1667                       "the LogicalDevice to which the statistics apply. ") ] 
1668                  string Name; 
1669                     [Description ("Count of the indeterminate errors. "),
1670                      Counter ] 
1671                  uint64 IndeterminateErrorCount; 
1672                     [Description ("Count of the critical errors. "), 
1673                      MappingStrings {"MIF.DMTF|Operational State|006"}, 
1674                      Counter ] 
1675                  uint64 CriticalErrorCount; 
1676                     [Description ("Count of the major errors. "), 
1677                      MappingStrings {"MIF.DMTF|Operational State|006"}, 
1678                      Counter ] 
1679                  uint64 MajorErrorCount; 
1680 karl  1.1.2.1       [Description ("Count of the minor errors. "), 
1681                      Counter ] 
1682                  uint64 MinorErrorCount; 
1683                     [Description ("Count of the warnings. "), 
1684                      MappingStrings {"MIF.DMTF|Operational State|006"}, 
1685                      Counter ] 
1686                  uint64 WarningCount; 
1687 karl  1.1           [Description (
1688 karl  1.1.2.1         "Method to reset the error and warning counters. The method " 
1689                       "takes one parameter as input - an integer indicating which "
1690                       "counter to reset. For this input parameter, 0 indicates all, "
1691                       "1 indicates a reset of the indeterminate error counter, "
1692                       "2 the critical error counter, 3 the major error counter, "
1693                       "4 the minor error counter and 5 the warning counter. The "
1694                       "method returns 0 if successful, 1 if not supported, and any " 
1695                       "other value if an error occurred. A method is specified so "
1696                       "that the LogicalDevice's instrumentation, which tabulates "
1697                       "the errors and warnings, can also reset its internal "
1698                       "processing and counters.\n"
1699                       "In a subclass, the set of possible return codes could be "
1700                       "specified, using a ValueMap qualifier on the method. The "
1701                       "strings to which the ValueMap contents are 'translated' "
1702                       "may also be specified in the subclass as a Values "
1703                       "array qualifier.") ]
1704                  uint32 ResetCounter (
1705                     [IN, Values {"All","Indeterminate Error Counter", 
1706                                  "Critical Error Counter", "Major Error Counter", 
1707                                  "Minor Error Counter", "Warning Counter"}] 
1708                     uint16 SelectedCounter);
1709 karl  1.1.2.1 };
1710               
1711               
1712               // ==================================================================
1713               // ErrorCountersForDevice
1714               // ================================================================== 
1715                  [Association, Description (
1716                    "ErrorCountersForDevice relates the DeviceErrorCounts class "
1717                    "to the LogicalDevice to which it applies. ") ]
1718               class CIM_ErrorCountersForDevice : CIM_Statistics { 
1719                     [Override ("Stats"), Weak,
1720                      Description (
1721                       "The statistical object - in this case, the error counter "
1722                       "class. ")]
1723                  CIM_DeviceErrorCounts REF Stats; 
1724                   [Override ("Element"), Min(1), Max(1),
1725                    Description ("The Device to which the error counters apply. ") ]
1726                  CIM_LogicalDevice REF Element;
1727 karl  1.1     };
1728               
1729               // ===================================================================
1730               // Sensor
1731               // ===================================================================
1732 karl  1.1.2.1    [Abstract, Description (
1733                    "A Sensor is a hardware device capable of measuring the "
1734                    "characteristics of some physical property - for example, the "
1735                    "temperature or voltage characteristics of a UnitaryComputer"
1736                    "System.") ] 
1737               class CIM_Sensor : CIM_LogicalDevice {
1738 karl  1.1           [Description (
1739                       "The Type of the Sensor, e.g. Voltage or Temperature Sensor. "
1740                       "If the type is set to \"Other\", then the OtherSensorType"
1741                       "Description can be used to further identify the type, or if "
1742                       "the Sensor has numeric readings, then the type of the Sensor "
1743                       "can be implicitly determined by the Units. A description of "
1744                       "the different Sensor types is as follows: A Temperature Sensor "
1745                       "measures the environmental temperature. Voltage and Current "
1746                       "Sensors measure electrical voltage and current readings. "
1747                       "A Tachometer measures speed/revolutions of a Device. For example, "
1748                       "a Fan Device can have an associated Tachometer which measures "
1749                       "its speed. A Counter is a general purpose Sensor that measures "
1750                       "some numerical property of a Device. A Counter value can be "
1751                       "cleared, but it never decreases. A Switch Sensor has states like "
1752                       "Open/Close, On/Off, or Up/Down. A Lock has states of Locked/"
1753                       "Unlocked. Humidity, Smoke Detection and Air Flow Sensors measure "
1754                       "the equivalent environmental characteristics. A Presence Sensor "
1755                       "detects the presence of a PhysicalElement."), 
1756                      Values {"Unknown", "Other", "Temperature", "Voltage", "Current", 
1757 karl  1.1.2.1                "Tachometer", "Counter", "Switch", "Lock", "Humidity", 
1758                              "Smoke Detection", "Presence", "Air Flow"},
1759                      ModelCorrespondence {"CIM_Sensor.OtherSensorTypeDescription"} ]
1760 karl  1.1        uint16 SensorType;
1761 karl  1.1.2.1       [MaxLen (128), Description (
1762 karl  1.1             "A string describing the Sensor type - used when the SensorType "
1763                       "property is set to \"Other\"."), 
1764 karl  1.1.2.1        ModelCorrespondence {"CIM_Sensor.SensorType"} ]
1765 karl  1.1        string OtherSensorTypeDescription;
1766 karl  1.1.2.1       [MaxLen (128), Description (
1767 karl  1.1             "PossibleStates enumerates the string outputs of the Sensor. For "
1768                       "example, a \"Switch\" Sensor may output the states \"On\", or \"Off\". "
1769                       "Another implementation of the Switch may output the states \"Open\", "
1770                       "and \"Close\". Another example is a NumericSensor supporting "
1771                       "thresholds. This Sensor can report the states like \"Normal\", "
1772                       "\"Upper Fatal\", \"Lower Non-Critical\", etc. A NumericSensor that "
1773                       "does not publish readings and thresholds, but stores this data "
1774 karl  1.1.2.1         "internally, can still report its states.") ]
1775 karl  1.1        string PossibleStates[];
1776 karl  1.1.2.1       [MaxLen (128), Description (
1777 karl  1.1             "The current state indicated by the Sensor. This is always one of "
1778 karl  1.1.2.1         "the \"PossibleStates\".") ]
1779 karl  1.1        string CurrentState;
1780                     [Description (
1781                       "The polling interval that the Sensor hardware or the instrumentation "
1782                       "uses to determine the current state of the Sensor."), 
1783 karl  1.1.2.1        Units ("NanoSeconds") ]
1784 karl  1.1        uint64 PollingInterval;
1785               };
1786               
1787 karl  1.1.2.1 
1788 karl  1.1     // ===================================================================
1789               // AssociatedSensor
1790               // ===================================================================
1791 karl  1.1.2.1    [Association, Description (
1792                    "Many Devices include Sensors or have Sensors installed "
1793                    "nearby, in order to measure critical input and output "
1794                    "properties.  This association indicates that relationship.") ] 
1795               class CIM_AssociatedSensor : CIM_Dependency {
1796 karl  1.1           [Override ("Antecedent"), 
1797 karl  1.1.2.1        Description ("The Sensor.") ]
1798 karl  1.1        CIM_Sensor REF Antecedent;
1799 karl  1.1.2.1       [Override ("Dependent"), Description (
1800                       "The LogicalDevice for which information is measured by "
1801                       "the Sensor.") ]
1802 karl  1.1        CIM_LogicalDevice REF Dependent;
1803               };
1804               
1805 karl  1.1.2.1 
1806 karl  1.1     // ===================================================================
1807               // BinarySensor
1808               // ===================================================================
1809                  [Description (
1810 karl  1.1.2.1      "A BinarySensor provides a boolean output. Given the addition "
1811                    "of the CurrentState and PossibleStates properties to Sensor, "
1812                    "the BinarySensor subclass is no longer necessary, but is "
1813                    "retained for backward compatibility. A BinarySensor can be "
1814                    "created by instantiating a Sensor with two PossibleStates.") ]
1815               class CIM_BinarySensor : CIM_Sensor {
1816                     [Description ("The current value indicated by the Sensor.") ]
1817 karl  1.1        boolean CurrentReading;
1818                     [Description (
1819 karl  1.1.2.1         "ExpectedReading indicates the 'normal' value for the Sensor.") ]
1820 karl  1.1        boolean ExpectedReading;
1821 karl  1.1.2.1       [MaxLen (64), Description (
1822                       "InterpretationOfTrue is a string indicating what a 'True' "
1823                       "value from the BinarySensor means.  This information could "
1824                       "be displayed to a user.") ]
1825 karl  1.1        string InterpretationOfTrue;
1826 karl  1.1.2.1       [MaxLen (64), Description (
1827                       "InterpretationOfFalse is a string indicating what a 'False' "
1828                       "value from the BinarySensor means.  This information could "
1829                       "be displayed to a user.") ]
1830 karl  1.1        string InterpretationOfFalse;
1831               };
1832               
1833 karl  1.1.2.1 
1834 karl  1.1     // ===================================================================
1835               // MultiStateSensor
1836               // ===================================================================
1837                  [Description (
1838 karl  1.1.2.1      "A Multi-StateSensor is a multi-member set of Sensors.") ] 
1839               class CIM_MultiStateSensor : CIM_Sensor {
1840 karl  1.1     };
1841               
1842 karl  1.1.2.1 
1843 karl  1.1     // ===================================================================
1844               // CollectionOfSensors
1845               // ===================================================================
1846 karl  1.1.2.1    [Association, Aggregation, Description (
1847                    "The CollectionOfSensors association indicates the "
1848                    "Sensors that make up a MultiStateSensor.") ] 
1849               class CIM_CollectionOfSensors : CIM_Component {
1850                     [Override ("GroupComponent"), Aggregate, Max (1),
1851                      Description ("The MultiStateSensor.")]
1852 karl  1.1        CIM_MultiStateSensor REF GroupComponent;
1853 karl  1.1.2.1       [Override ("PartComponent"), Min (2),
1854 karl  1.1            Description (
1855 karl  1.1.2.1         "A Sensor that is part of the MultiStateSensor.")]
1856 karl  1.1        CIM_Sensor REF PartComponent;
1857               };
1858               
1859 karl  1.1.2.1 
1860 karl  1.1     // ===================================================================
1861               // DiscreteSensor
1862               // ===================================================================
1863                  [Description (
1864 karl  1.1.2.1      "A DiscreteSensor has a set of legal string values, "
1865                    "that it can report.  These values are enumerated in the "
1866                    "Sensor's PossibleValues property.  A DiscreteSensor will "
1867                    "always have a 'current reading' that corresponds to one of "
1868                    "the enumerated values.\n"
1869                    "Given the addition of the CurrentState and PossibleStates "
1870                    "properties to Sensor, the DiscreteSensor subclass is no longer "
1871                    "necessary, but is retained for backward compatibility. "
1872                    "Information in the CurrentReading and PossibleValues properties "
1873                    "will typically have the same values and semantics as for the "
1874                    "CurrentState and PossibleStates properties, inherited from "
1875                    "Sensor.") ]
1876               class CIM_DiscreteSensor : CIM_Sensor {
1877                     [MaxLen (64), Description (
1878                       "The current value indicated by the Sensor.") ]
1879 karl  1.1        string CurrentReading;
1880 karl  1.1.2.1       [MaxLen (64), Description (
1881                       "PossibleValues enumerates the string outputs that can be "
1882                       "reported by the DiscreteSensor.") ]
1883 karl  1.1        string PossibleValues[];
1884 karl  1.1.2.1       [MaxLen (64), Description (
1885                       "AcceptableValues details which of the PossibleValues strings "
1886                       "are considered 'acceptable' (ie, 'not an error').") ]
1887 karl  1.1        string AcceptableValues[];
1888               };
1889               
1890 karl  1.1.2.1 
1891 karl  1.1     // ===================================================================
1892               // NumericSensor
1893               // ===================================================================
1894                  [Description (
1895 karl  1.1.2.1      "A Numeric Sensor is capable of returning numeric readings "
1896                    "and optionally supports thresholds settings.") ] 
1897               class CIM_NumericSensor : CIM_Sensor {
1898 karl  1.1           [Description (
1899                       "The base unit of the values returned by this Sensor. All "
1900                       "the values returned by this Sensor are represented in the units "
1901                       "obtained by (BaseUnits * 10 raised to the power of the Unit"
1902                       "Modifier). For example, if BaseUnits is Volts and the Unit"
1903                       "Modifier is -6, then the units of the values returned are "
1904                       "MicroVolts. However, if the RateUnits property is set to a "
1905                       "value other than \"None\", then the units are further qualified "
1906                       "as rate units. In the above example, if RateUnits is set to "
1907                       "\"Per Second\", then the values returned by the Sensor "
1908                       "are in MicroVolts/Second. The units apply to all numeric "
1909                       "properties of the Sensor, unless explicitly overridden by the "
1910                       "Units qualifier."), 
1911                      Values {"Unknown", "Other", "Degrees C", "Degrees F", "Degrees K", 
1912 karl  1.1.2.1                "Volts", "Amps", "Watts", "Joules", "Coulombs", "VA", "Nits", 
1913                              "Lumens", "Lux", "Candelas", "kPa", "PSI", "Newtons", "CFM", 
1914                              "RPM", "Hertz", "Seconds", "Minutes", "Hours", "Days", "Weeks", 
1915                              "Mils", "Inches", "Feet", "Cubic Inches", "Cubic Feet", 
1916                              "Meters", "Cubic Centimeters", "Cubic Meters", "Liters", 
1917                              "Fluid Ounces", "Radians", "Steradians", "Revolutions", 
1918                              "Cycles", "Gravities", "Ounces", "Pounds", "Foot-Pounds", 
1919                              "Ounce-Inches", "Gauss", "Gilberts", "Henries", "Farads", 
1920                              "Ohms", "Siemens", "Moles", "Becquerels", 
1921                              "PPM (parts/million)", "Decibels", "DbA", "DbC", 
1922                              "Grays", "Sieverts", "Color Temperature Degrees K", "Bits", 
1923                              "Bytes", "Words (data)", "DoubleWords", "QuadWords", 
1924                              "Percentage"},
1925 karl  1.1            ModelCorrespondence {"CIM_NumericSensor.UnitModifier", 
1926 karl  1.1.2.1         "CIM_NumericSensor.RateUnits"} ]
1927 karl  1.1        uint16 BaseUnits;
1928                     [Description (
1929                       "The unit multiplier for the values returned by this Sensor. All "
1930                       "the values returned by this Sensor are represented in the units "
1931                       "obtained by (BaseUnits * 10 raised to the power of the Unit"
1932                       "Modifier). For example, if BaseUnits is Volts and the Unit"
1933                       "Modifier is -6, then the units of the values returned are Micro"
1934                       "Volts. However, if the RateUnits property is set to a value other "
1935                       "than \"None\", then the units are further qualified as rate units. "
1936                       "In the above example, if RateUnits is set to \"Per Second\", then "
1937                       "the values returned by the Sensor are in MicroVolts/Second. The "
1938                       "units apply to all numeric properties of the Sensor, unless "
1939                       "explicitly overridden by the Units qualifier."),
1940                      ModelCorrespondence {"CIM_NumericSensor.BaseUnits", 
1941 karl  1.1.2.1         "CIM_NumericSensor.RateUnits"} ]
1942 karl  1.1        sint32 UnitModifier;
1943                     [Description (
1944                       "Specifies if the units returned by this Sensor are rate units. "
1945                       "All the values returned by this Sensor are represented in the "
1946                       "units obtained by (BaseUnits * 10 raised to the power of the Unit"
1947                       "Modifier). This is true unless this property (RateUnits) has a "
1948                       "value different than \"None\". For example, if BaseUnits is "
1949                       "Volts and the UnitModifier is -6, then the units of the values "
1950                       "returned are MicroVolts. But, if the RateUnits property is set "
1951                       "to a value other than \"None\", then the units are further "
1952                       "qualified as rate units. In the above example, if RateUnits is "
1953                       "set to \"Per Second\", then the values returned by the Sensor are "
1954                       "in MicroVolts/Second. The units apply to all numeric properties "
1955                       "of the Sensor, unless explicitly overridden by the Units "
1956                       "qualifier. Any implementation of CurrentReading should be qualified "
1957 karl  1.1.2.1         "with either a Counter or a Gauge qualifier, depending on the "
1958                       "characteristics of the sensor being modeled."), 
1959 karl  1.1            Values {"None", "Per MicroSecond", "Per MilliSecond", "Per Second", 
1960 karl  1.1.2.1                "Per Minute", "Per Hour", "Per Day", "Per Week", "Per Month", 
1961                              "Per Year"},
1962 karl  1.1            ModelCorrespondence {"CIM_NumericSensor.UnitModifier", 
1963 karl  1.1.2.1         "CIM_NumericSensor.BaseUnits"} ]
1964 karl  1.1        uint16 RateUnits;
1965 karl  1.1.2.1       [Description ("The current value indicated by the Sensor.") ]
1966 karl  1.1        sint32 CurrentReading;
1967                     [Description (
1968 karl  1.1.2.1         "NominalReading indicates the 'normal' or expected value "
1969                       "for the NumericSensor.") ]
1970 karl  1.1        sint32 NominalReading;
1971                     [Description (
1972 karl  1.1.2.1         "NormalMax provides guidance for the user as to the "
1973                       "normal maximum range for the NumericSensor.") ]
1974 karl  1.1        sint32 NormalMax;
1975                     [Description (
1976 karl  1.1.2.1         "NormalMin provides guidance for the user as to the "
1977                       "normal minimum range for the NumericSensor.") ]
1978 karl  1.1        sint32 NormalMin;
1979                     [Description (
1980 karl  1.1.2.1         "MaxReadable indicates the largest value of the measured "
1981                       "property that can be read by the NumericSensor.") ]     
1982 karl  1.1        sint32 MaxReadable;
1983                     [Description (
1984 karl  1.1.2.1         "MinReadable indicates the smallest value of the measured "
1985                       "property that can be read by the NumericSensor.") ]     
1986 karl  1.1        sint32 MinReadable;
1987                     [Description (
1988 karl  1.1.2.1         "Resolution indicates the ability of the Sensor to resolve "
1989 karl  1.1             "differences in the measured property.  This value may vary "
1990 karl  1.1.2.1         "depending on whether the Device is linear over its dynamic "
1991                       "range.") ]
1992 karl  1.1        uint32 Resolution;
1993                     [Description (
1994 karl  1.1.2.1         "Indicates the tolerance of the Sensor for the measured "
1995                       "property. Tolerance, along with Resolution and Accuracy, "
1996                       "is used to calculate the actual value of the measured "
1997                       "physical property.  Tolerance may vary depending on "
1998                       "whether the Device is linear over its dynamic range.") ]
1999 karl  1.1        sint32 Tolerance;
2000                     [Description (
2001 karl  1.1.2.1         "Indicates the accuracy of the Sensor for the measured "
2002                       "property. Its value is recorded as plus/minus hundredths "
2003                       "of a percent. Accuracy, along with Resolution and Tolerance, "
2004                       "is used to calculate the actual value of the measured "
2005                       "physical property. Accuracy may vary depending on whether "
2006                       "the Device is linear over its dynamic range."), 
2007                      Units ("Hundredths of Percent") ]
2008 karl  1.1        sint32 Accuracy;
2009                     [Description (
2010 karl  1.1.2.1         "Indicates that the Sensor is linear over its dynamic range.") ] 
2011 karl  1.1        boolean IsLinear;
2012                     [Description (
2013                       "Indicates the margin built around the thresholds. This margin "
2014                       "prevents unnecessary state changes when the Sensor reading may "
2015                       "fluctuate very close to its thresholds. This could be due to "
2016                       "the Sensor's tolerance/accuracy/resolution or due to "
2017                       "environmental factors. Once a threshold is crossed, the state of "
2018                       "the Sensor should change. However, the state should not "
2019                       "fluctuate between the old and new states unless the Sensor's "
2020 karl  1.1.2.1         "change in the reading exceeds the hysteresis value.") ]
2021 karl  1.1        uint32 Hysteresis;
2022                     [Description (
2023                       "The Sensor's threshold values specify the ranges (min and max "
2024                       "values) for determining whether the Sensor is operating under "
2025                       "Normal, NonCritical, Critical or Fatal conditions. If Current"
2026                       "Reading is between LowerThresholdNonCritical and UpperThreshold"
2027                       "NonCritical, then the Sensor is reporting a normal value. "
2028                       "If CurrentReading is between LowerThresholdNonCritical and Lower"
2029 karl  1.1.2.1         "ThresholdCritical, then the CurrentState is NonCritical.") ]
2030 karl  1.1        sint32 LowerThresholdNonCritical;
2031                     [Description (
2032                       "The Sensor's threshold values specify the ranges (min and max "
2033                       "values) for determining whether the Sensor is operating under "
2034                       "Normal, NonCritical, Critical or Fatal conditions. If the Current"
2035                       "Reading is between LowerThresholdNonCritical and UpperThreshold"
2036                       "NonCritical, then the Sensor is reporting a normal value. "
2037                       "If the CurrentReading is between UpperThresholdNonCritical and "
2038 karl  1.1.2.1         "UpperThresholdCritical, then the CurrentState is NonCritical.") ]
2039 karl  1.1        sint32 UpperThresholdNonCritical;
2040                     [Description (
2041                       "The Sensor's threshold values specify the ranges (min and max "
2042                       "values) for determining whether the Sensor is operating under "
2043                       "Normal, NonCritical, Critical or Fatal conditions. If the Current"
2044                       "Reading is between LowerThresholdCritical and LowerThreshold"
2045 karl  1.1.2.1         "Fatal, then the CurrentState is Critical.") ]
2046 karl  1.1        sint32 LowerThresholdCritical;
2047                     [Description (
2048                       "The Sensor's threshold values specify the ranges (min and max "
2049                       "values) for determining whether the Sensor is operating under "
2050                       "Normal, NonCritical, Critical or Fatal conditions. If the Current"
2051                       "Reading is between UpperThresholdCritical and UpperThreshold"
2052 karl  1.1.2.1         "Fatal, then the CurrentState is Critical.") ]
2053 karl  1.1        sint32 UpperThresholdCritical;
2054                     [Description (
2055                       "The Sensor's threshold values specify the ranges (min and max "
2056                       "values) for determining whether the Sensor is operating under "
2057                       "Normal, NonCritical, Critical or Fatal conditions. If the Current"
2058                       "Reading is below LowerThresholdFatal, then the CurrentState is "
2059 karl  1.1.2.1         "Fatal.") ]
2060 karl  1.1        sint32 LowerThresholdFatal;
2061                    [Description (
2062                      "The Sensor's threshold values specify the ranges (min and max "
2063                      "values) for determining whether the Sensor is operating under "
2064                      "Normal, NonCritical, Critical or Fatal conditions. If the Current"
2065                      "Reading is above UpperThresholdFatal, then the CurrentState is "
2066 karl  1.1.2.1        "Fatal.") ]
2067 karl  1.1        sint32 UpperThresholdFatal;
2068                     [Description (
2069                       "An array representing the thresholds supported by this Sensor."), 
2070                      Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
2071 karl  1.1.2.1                "LowerThresholdCritical", "UpperThresholdCritical", 
2072                              "LowerThresholdFatal", "UpperThresholdFatal"} ]
2073 karl  1.1        uint16 SupportedThresholds[];
2074                     [Description (
2075                       "An array representing the thresholds that are currently enabled "
2076                       "for this Sensor."), 
2077                      Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
2078 karl  1.1.2.1                "LowerThresholdCritical", "UpperThresholdCritical", 
2079                              "LowerThresholdFatal", "UpperThresholdFatal"} ]
2080 karl  1.1        uint16 EnabledThresholds[];
2081                     [Description (
2082                       "An array representing the writable thresholds supported by "
2083                       "Sensor."), 
2084                      Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
2085 karl  1.1.2.1                "LowerThresholdCritical", "UpperThresholdCritical", 
2086                              "LowerThresholdFatal", "UpperThresholdFatal"} ]
2087 karl  1.1        uint16 SettableThresholds[];
2088                     [Description (
2089                       "This method resets the values of the thresholds to hardware "
2090                       "defaults. This method returns 0 if successful, 1 if "
2091                       "unsupported and any other value if an error occurred. "
2092                       "In a subclass, the set of possible return codes could be "
2093                       "specified, using a ValueMap qualifier on the method. The "
2094                       "strings to which the ValueMap contents are 'translated' "
2095                       "may also be specified in the subclass as a Values "
2096 karl  1.1.2.1         "array qualifier.") ]
2097 karl  1.1        uint32 RestoreDefaultThresholds();
2098                     [Description (
2099                       "For a non-linear Sensor, the resolution, accuracy, tolerance "
2100                       "and hysteresis vary as the current reading moves. This method "
2101                       "can be used to get these factors for a given reading. It "
2102                       "returns 0 if successful, 1 if unsupported, and any other "
2103                       "value if an error occurred. In a subclass, the set of "
2104                       "possible return codes could be specified, using a ValueMap "
2105                       "qualifier on the method. The strings to which the ValueMap "
2106                       "contents are 'translated' may also be specified in the "
2107 karl  1.1.2.1         "subclass as a Values array qualifier.") ]
2108                  uint32 GetNonLinearFactors(
2109                      [IN]sint32 SensorReading, 
2110                      [OUT]sint32 Accuracy, 
2111                      [OUT]uint32 Resolution, 
2112                      [OUT]sint32 Tolerance, 
2113                      [OUT]uint32 Hysteresis);
2114 karl  1.1     };
2115               
2116 karl  1.1.2.1 
2117 karl  1.1     // ===================================================================
2118               // TemperatureSensor
2119               // ===================================================================
2120                  [Description (
2121 karl  1.1.2.1      "This class exists for backward compatibility to earlier "
2122                    "CIM Schema definitions. With additions to Sensor and Numeric"
2123                    "Sensor in V2.2, it is no longer necessary. A TempertatureSensor "
2124                    "can be defined by setting the SensorType property, inherited "
2125                    "from Sensor, to 2 (\"Temperature\"). Other properties of this "
2126                    "class are hard-coded to constant values to correspond to "
2127                    "definitions in the Sensor hierarchy.") ] 
2128               class CIM_TemperatureSensor : CIM_NumericSensor   {
2129 karl  1.1           [Override("SensorType") ]
2130                  uint16 SensorType = 2;
2131                     [Override("BaseUnits") ]
2132                  uint16 BaseUnits = 2;
2133                     [Override("UnitModifier") ]
2134                  sint32 UnitModifier = -1;
2135                     [Override("RateUnits") ]
2136                  uint16 RateUnits = 0;
2137               // Override is used to define the MappingString qualifier 
2138 karl  1.1.2.1       [Override ("CurrentReading"),
2139                      MappingStrings {"MIF.DMTF|Temperature Probe|002.5"} ]
2140 karl  1.1        sint32 CurrentReading;
2141                     [Override ("NominalReading"),
2142 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.6"} ]
2143 karl  1.1        sint32 NominalReading;
2144                     [Override ("NormalMax"),
2145 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.7"} ]
2146 karl  1.1        sint32 NormalMax;
2147                     [Override ("NormalMin"),
2148 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.8"} ]
2149 karl  1.1        sint32 NormalMin;
2150                     [Override ("MaxReadable"),
2151 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.9"} ]     
2152 karl  1.1        sint32 MaxReadable;
2153                     [Override ("MinReadable"),
2154 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.10"} ]     
2155 karl  1.1        sint32 MinReadable;
2156                     [Override ("Resolution"),
2157                      Units ("Hundredths of Degrees C"),
2158 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.17"} ]
2159 karl  1.1        uint32 Resolution;
2160                     [Override ("Tolerance"),
2161 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.18"} ]
2162 karl  1.1        sint32 Tolerance;
2163                     [Override ("Accuracy"),
2164 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.19"} ]
2165 karl  1.1        sint32 Accuracy;
2166                     [Override ("LowerThresholdNonCritical"),
2167 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.11"} ]
2168 karl  1.1        sint32 LowerThresholdNonCritical;
2169                     [Override ("UpperThresholdNonCritical"),
2170 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.12"} ]
2171 karl  1.1        sint32 UpperThresholdNonCritical;
2172                     [Override ("LowerThresholdCritical"),
2173 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.13"} ]
2174 karl  1.1        sint32 LowerThresholdCritical;
2175                     [Override ("UpperThresholdCritical"),
2176 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.14"} ]
2177 karl  1.1        sint32 UpperThresholdCritical;
2178                     [Override ("LowerThresholdFatal"),
2179 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.15"} ]
2180 karl  1.1        sint32 LowerThresholdFatal;
2181                     [Override ("UpperThresholdFatal"),
2182 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Temperature Probe|002.16"} ]
2183 karl  1.1        sint32 UpperThresholdFatal;
2184               };
2185               
2186 karl  1.1.2.1 
2187 karl  1.1     // ===================================================================
2188               // CurrentSensor
2189               // ===================================================================
2190                  [Description (
2191 karl  1.1.2.1      "This class exists for backward compatibility to earlier "
2192                    "CIM Schema definitions. With additions to Sensor and Numeric"
2193                    "Sensor in V2.2, it is no longer necessary. A CurrentSensor can "
2194                    "be defined by setting the SensorType property, inherited from "
2195                    "Sensor, to 4 (\"Current\"). Other properties of this class are "
2196                    "hard-coded to constant values to correspond to definitions in "
2197                    "the Sensor hierarchy.") ] 
2198               class CIM_CurrentSensor : CIM_NumericSensor   {
2199 karl  1.1           [Override("SensorType") ]
2200                  uint16 SensorType = 4;
2201                     [Override("BaseUnits") ]
2202                  uint16 BaseUnits = 6;
2203                     [Override("UnitModifier") ]
2204                  sint32 UnitModifier = -3;
2205                     [Override("RateUnits") ]
2206                  uint16 RateUnits = 0;
2207               // Override is used to define the MappingString qualifier 
2208 karl  1.1.2.1       [Override ("CurrentReading"),
2209                      MappingStrings {"MIF.DMTF|Electrical Current Probe|001.5"} ]
2210 karl  1.1        sint32 CurrentReading;
2211                     [Override ("NominalReading"),
2212 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.6"} ]
2213 karl  1.1        sint32 NominalReading;
2214                     [Override ("NormalMax"),
2215 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.7"} ]
2216 karl  1.1        sint32 NormalMax;
2217                     [Override ("NormalMin"),
2218 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.8"} ]
2219 karl  1.1        sint32 NormalMin;
2220                     [Override ("MaxReadable"),
2221 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.9"} ]     
2222 karl  1.1        sint32 MaxReadable;
2223                     [Override ("MinReadable"),
2224 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.10"} ]     
2225 karl  1.1        sint32 MinReadable;
2226                     [Override ("Resolution"), 
2227                      Units ("Tenths of MilliAmps"),
2228 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.17"} ]
2229 karl  1.1        uint32 Resolution;
2230                     [Override ("Tolerance"),
2231 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.18"} ]
2232 karl  1.1        sint32 Tolerance;
2233                     [Override ("Accuracy"), 
2234 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.19"} ]
2235 karl  1.1        sint32 Accuracy;
2236                     [Override ("LowerThresholdNonCritical"),
2237 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.11"} ]
2238 karl  1.1        sint32 LowerThresholdNonCritical;
2239                     [Override ("UpperThresholdNonCritical"),
2240 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.12"} ]
2241 karl  1.1        sint32 UpperThresholdNonCritical;
2242                     [Override ("LowerThresholdCritical"),
2243 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.13"} ]
2244 karl  1.1        sint32 LowerThresholdCritical;
2245                     [Override ("UpperThresholdCritical"),
2246 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.14"} ]
2247 karl  1.1        sint32 UpperThresholdCritical;
2248                     [Override ("LowerThresholdFatal"),
2249 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.15"} ]
2250 karl  1.1        sint32 LowerThresholdFatal;
2251                     [Override ("UpperThresholdFatal"),
2252 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.16"} ]
2253 karl  1.1        sint32 UpperThresholdFatal;
2254               };
2255               
2256 karl  1.1.2.1 
2257 karl  1.1     // ===================================================================
2258               // VoltageSensor
2259               // ===================================================================
2260                  [Description (
2261 karl  1.1.2.1      "This class exists for backward compatibility to earlier "
2262                    "CIM Schema definitions. With additions to Sensor and Numeric"
2263                    "Sensor in V2.2, it is no longer necessary. A VoltageSensor can "
2264                    "be defined by setting the SensorType property, inherited from "
2265                    "Sensor, to 3 (\"Voltage\"). Other properties of this class are "
2266                    "hard-coded to constant values to correspond to definitions in "
2267                    "the Sensor hierarchy.") ] 
2268               class CIM_VoltageSensor : CIM_NumericSensor   {
2269 karl  1.1           [Override("SensorType") ]
2270                  uint16 SensorType = 3;
2271                     [Override("BaseUnits") ]
2272                  uint16 BaseUnits = 5;
2273                     [Override("UnitModifier") ]
2274                  sint32 UnitModifier = -3;
2275                     [Override("RateUnits") ]
2276                  uint16 RateUnits = 0;
2277               // Override is used to define the MappingString qualifier 
2278 karl  1.1.2.1       [Override ("CurrentReading"),
2279                      MappingStrings {"MIF.DMTF|Voltage Probe|001.5"} ]
2280 karl  1.1        sint32 CurrentReading;
2281                     [Override ("NominalReading"),
2282 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.6"} ]
2283 karl  1.1        sint32 NominalReading;
2284                     [Override ("NormalMax"),
2285 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.7"} ]
2286 karl  1.1        sint32 NormalMax;
2287                     [Override ("NormalMin"),
2288 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.8"} ]
2289 karl  1.1        sint32 NormalMin;
2290                     [Override ("MaxReadable"),
2291 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.9"} ]     
2292 karl  1.1        sint32 MaxReadable;
2293                     [Override ("MinReadable"),
2294 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.10"} ]     
2295 karl  1.1        sint32 MinReadable;
2296                     [Override ("Resolution"), 
2297                      Units ("Tenths of MilliVolts"),
2298 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.17"} ]
2299 karl  1.1        uint32 Resolution;
2300                     [Override ("Tolerance"),
2301 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.18"} ]
2302 karl  1.1        sint32 Tolerance;
2303                     [Override ("Accuracy"),
2304 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.19"} ]
2305 karl  1.1        sint32 Accuracy;
2306                     [Override ("LowerThresholdNonCritical"),
2307 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.11"} ]
2308 karl  1.1        sint32 LowerThresholdNonCritical;
2309                     [Override ("UpperThresholdNonCritical"),
2310 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.12"} ]
2311 karl  1.1        sint32 UpperThresholdNonCritical;
2312                     [Override ("LowerThresholdCritical"),
2313 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.13"} ]
2314 karl  1.1        sint32 LowerThresholdCritical;
2315                     [Override ("UpperThresholdCritical"),
2316 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.14"} ]
2317 karl  1.1        sint32 UpperThresholdCritical;
2318                     [Override ("LowerThresholdFatal"),
2319 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.15"} ]
2320 karl  1.1        sint32 LowerThresholdFatal;
2321                     [Override ("UpperThresholdFatal"),
2322 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Voltage Probe|001.16"} ]
2323 karl  1.1        sint32 UpperThresholdFatal;
2324               };
2325               
2326 karl  1.1.2.1 
2327 karl  1.1     // ===================================================================
2328               // Tachometer
2329               // ===================================================================
2330                  [Description (
2331 karl  1.1.2.1      "This class exists for backward compatibility to earlier "
2332                    "CIM Schema definitions. With additions to Sensor and Numeric"
2333                    "Sensor in V2.2, it is no longer necessary. A Tachometer can "
2334                    "be defined by setting the SensorType property. inherited from "
2335                    "Sensor, to 5 (\"Tachometer\"). Other properties of this class "
2336                    "are hard-coded to constant values to correspond to definitions "
2337                    "in the Sensor hierarchy.") ] 
2338               class CIM_Tachometer : CIM_NumericSensor   {
2339 karl  1.1           [Override("SensorType") ]
2340                  uint16 SensorType = 5;
2341                     [Override("BaseUnits") ]
2342                  uint16 BaseUnits = 38;
2343                     [Override("UnitModifier") ]
2344                  sint32 UnitModifier = 1;
2345                     [Override("RateUnits") ]
2346                  uint16 RateUnits = 4;
2347                     [Override ("Resolution"), 
2348 karl  1.1.2.1        Units ("Tenths of Revolutions per Minute") ]
2349 karl  1.1        uint32 Resolution;
2350               };
2351               
2352 karl  1.1.2.1 
2353 karl  1.1     // ===================================================================
2354 karl  1.1.2.1 // AssociatedSupplyVoltageSensor
2355               // ===================================================================
2356                  [Association, Description (
2357                    "A PowerSupply may have an associated VoltageSensor, monitoring "
2358                    "its input voltage. This is described by this association.") ]
2359               class CIM_AssociatedSupplyVoltageSensor : CIM_AssociatedSensor {
2360                     [Override ("Antecedent"),
2361                      Description ("The VoltageSensor.") ]
2362                  CIM_VoltageSensor REF Antecedent;
2363                     [Override ("Dependent"),
2364                      Description (
2365                       "The PowerSupply associated with the VoltageSensor.") ]
2366                  CIM_PowerSupply REF Dependent;
2367                     [Description (
2368                       "Indicates the PowerSupply's input voltage range measured "
2369                       "by the associated sensor. Range 1, 2 or both can be specified "
2370                       "using the values 2, 3 or 4, respectively."),
2371                      Values {"Unknown", "Other", "Range 1", "Range 2", 
2372                              "Both Range 1 and 2"} ]
2373                  uint16 MonitoringRange;
2374               };
2375 karl  1.1.2.1 
2376               
2377               // ===================================================================
2378               // AssociatedSupplyCurrentSensor
2379 karl  1.1     // ===================================================================
2380 karl  1.1.2.1    [Association, Description (
2381                    "A PowerSupply may have an associated CurrentSensor, monitoring "
2382                    "its input frequency. This is described by this association.") ]
2383               class CIM_AssociatedSupplyCurrentSensor : CIM_AssociatedSensor {
2384                     [Override ("Antecedent"),
2385                      Description ("The CurrentSensor.") ]
2386                  CIM_CurrentSensor REF Antecedent;
2387                     [Override ("Dependent"),
2388                      Description (
2389                       "The PowerSupply associated with the CurrentSensor.") ]
2390                  CIM_PowerSupply REF Dependent;
2391                     [Description (
2392                       "Indicates the PowerSupply's input frequency range measured "
2393                       "by the associated sensor. Range 1, 2 or both can be specified "
2394                       "using the values 2, 3 or 4, respectively."),
2395                      Values {"Unknown", "Other", "Range 1", "Range 2", 
2396                              "Both Range 1 and 2"} ]
2397                  uint16 MonitoringRange;
2398               };
2399               
2400               
2401 karl  1.1.2.1 // ==================================================================
2402               // FCAdapterEventCounters 
2403               // ==================================================================
2404 karl  1.1        [Description (
2405 karl  1.1.2.1        "Error and event counters specific to a Fibre Channel Adapter.") ]
2406               class CIM_FCAdapterEventCounters : CIM_DeviceStatisticalInformation {
2407                     [Description ("The number of Abort sequence frames received."), 
2408                      Counter ]
2409                  uint64 ABTSFramesReceived;
2410                     [Description ("The number of Abort sequence frames sent."), 
2411                      Counter ]
2412                  uint64 ABTSFramesSent;
2413                     [Description ("The number of frames busied by the Fabric."), 
2414                      Counter ]
2415                  uint64 FBSYsReceived;
2416 karl  1.1           [Description (
2417 karl  1.1.2.1         "The number of frames busied by the receiving Node."),
2418                      Counter ]
2419                  uint64 PBSYsReceived;
2420 karl  1.1           [Description (
2421 karl  1.1.2.1         "The number of frames busied by the Adapter itself."),
2422                      Counter ]
2423                  uint64 PBSYsSent;
2424                     [Description ("The number of frames rejected by the Fabric."), 
2425                      Counter ]
2426                  uint64 FRJTsReceived;
2427 karl  1.1           [Description (
2428 karl  1.1.2.1         "The number of frames rejected by the receiving Node."),
2429                      Counter ]
2430                  uint64 PRJTsReceived;
2431 karl  1.1           [Description (
2432 karl  1.1.2.1         "The number of frames rejected by the Adapter itself."),
2433                      Counter ]
2434                  uint64 PRJTsSent;
2435 karl  1.1           [Description (
2436 karl  1.1.2.1         "The number of PRLI frames sent where the response was "
2437                       "LS_RJT."), 
2438                      Counter ]
2439                  uint64 PRLIsRejected;
2440 karl  1.1           [Description (
2441 karl  1.1.2.1         "The number of PRLO frames sent where the response was "
2442                       "LS_RJT."), 
2443                      Counter ]
2444                  uint64 PRLOsRejected;
2445 karl  1.1           [Description (
2446 karl  1.1.2.1         "The number of Abort sequence frames sent where the response "
2447                       "was BA_RJT."), 
2448                      Counter ]
2449                  uint64 ABTSFramesRejected;
2450                   [Description (
2451                     "Method to reset the Adapter event counters. The method " 
2452                     "takes one parameter as input - an integer indicating which "
2453                     "counter to reset. For this input parameter, 0 indicates all, "
2454                     "1 through 11 indicate a reset of the individual counters. "
2455                     "The method returns 0 if successful, 1 if not supported, and " 
2456                     "any other value if an error occurred. A method is specified "
2457                     "so that the Device's instrumentation, which tabulates "
2458                     "the errors and warnings, can also reset its internal "
2459                     "processing and counters.\n"
2460                       "In a subclass, the set of possible return codes could be "
2461                       "specified, using a ValueMap qualifier on the method. The "
2462                       "strings to which the ValueMap contents are 'translated' "
2463                       "may also be specified in the subclass as a Values "
2464                       "array qualifier.") ]
2465                  uint32 ResetCounter (
2466                      [IN, Values {"All", "ABTSFramesReceived", "ABTSFramesSent", 
2467 karl  1.1.2.1            "FBSYReceived", "PBSYReceived", "PBSYSent", "FRJTReceived", 
2468                          "PRJTReceived", "PRJTSent", "PRLIRejected", "PRLORejected", 
2469                          "ABTSFramesRejected"}]
2470                      uint16 SelectedCounter);
2471 karl  1.1     };
2472               
2473               
2474 karl  1.1.2.1 // ==================================================================
2475               // FibrePortEventCounters
2476               // ==================================================================
2477 karl  1.1        [Description (
2478 karl  1.1.2.1        "Error and event counters specific to a Fibre Channel Port "
2479                      "(connection point).") ]
2480               class CIM_FibrePortEventCounters : CIM_DeviceStatisticalInformation {
2481                     [Description ("The number of login frames received."), 
2482                      Counter ]
2483                  uint64 PLOGIsReceived;
2484                     [Description ("The number of login frames sent."), 
2485                      Counter ]
2486                  uint64 PLOGIsSent;
2487                     [Description (
2488                       "Number of frames received containing 'EOF Abort'."), 
2489                      Counter ]
2490                  uint64 EOFAbortsReceived;
2491                     [Description (
2492                       "Number of frames transmitted containing 'EOF Abort'."), 
2493                      Counter ]
2494                  uint64 EOFAbortsTransmitted;
2495                     [Description (
2496                       "The number of logouts received from various targets."), 
2497                      Counter ]
2498                  uint64 PLOGOsReceived;
2499 karl  1.1.2.1       [Description ("The number of logout frames sent."), 
2500                      Counter ]
2501                  uint64 PLOGOsSent;
2502                     [Description (
2503                       "The number of PLOGI frames sent where the response was "
2504                       "LS_RJT."), 
2505                      Counter ]
2506                  uint64 PLOGIsRejected;
2507                     [Description (
2508                       "The number of PLOGO frames sent where the response was "
2509                       "LS_RJT."), 
2510                      Counter ]
2511                  uint64 PLOGOsRejected;
2512                   [Description (
2513                     "Method to reset the Port event counters. The method " 
2514                     "takes one parameter as input - an integer indicating which "
2515                     "counter to reset. For this input parameter, 0 indicates all, "
2516                     "1 through 8 indicate a reset of the individual counters. "
2517                     "The method returns 0 if successful, 1 if not supported, and " 
2518                     "any other value if an error occurred. A method is specified "
2519                     "so that the Device's instrumentation, which tabulates "
2520 karl  1.1.2.1       "the errors and warnings, can also reset its internal "
2521                     "processing and counters.\n"
2522                       "In a subclass, the set of possible return codes could be "
2523                       "specified, using a ValueMap qualifier on the method. The "
2524                       "strings to which the ValueMap contents are 'translated' "
2525                       "may also be specified in the subclass as a Values "
2526                       "array qualifier.") ]
2527                  uint32 ResetCounter (
2528                      [IN, Values {"All", "PLOGIsReceived", "PLOGIsSent", 
2529                           "EOFAbortsReceived", "EOFAbortsTransmitted", "PLOGOsReceived", 
2530                           "PLOGOsSent", "PLOGIsRejected", "PLOGOsRejected"}] 
2531                       uint16 SelectedCounter);
2532 karl  1.1     };
2533               
2534 karl  1.1.2.1 
2535 karl  1.1     // ===================================================================
2536 karl  1.1.2.1 // ComputerSystemProcessor
2537 karl  1.1     // ===================================================================
2538 karl  1.1.2.1    [Association, Aggregation, Description (
2539                    "Association indicating the processor(s) of a Unitary"
2540                    "ComputerSystem. At least one processor is required. Note "
2541                    "that this relationship inherits from the SystemDevice "
2542                    "association, and therefore, the System Processor is weak to "
2543                    "the aggregating UnitaryComputerSystem.") ] 
2544               class CIM_ComputerSystemProcessor : CIM_SystemDevice {   
2545                     [Override ("GroupComponent"), Aggregate,
2546                      Description ("The UnitaryComputerSystem.") ]
2547                  CIM_UnitaryComputerSystem REF GroupComponent;
2548                     [Override ("PartComponent"), Weak,
2549                      Description (
2550                       "The Processor which is part of the UnitaryComputerSystem.") ]
2551                  CIM_Processor REF PartComponent;
2552 karl  1.1     };
2553               
2554 karl  1.1.2.1 
2555 karl  1.1     // ===================================================================
2556 karl  1.1.2.1 // LabelReaderStatInfo
2557 karl  1.1     // ===================================================================
2558                  [Description (
2559 karl  1.1.2.1      "Statistics for a LabelReader, related to read successes, "
2560                    "failures and retries.") ]
2561               class CIM_LabelReaderStatInfo : CIM_DeviceStatisticalInformation {
2562 karl  1.1           [Description (
2563 karl  1.1.2.1         "The number of successful physical label scans."), 
2564                      Counter ]
2565                  uint64 ScanSuccesses;
2566                     [Description ("The number of failed physical label scans."), 
2567                      Counter ]
2568                  uint64 ScanFailures;
2569                     [Description ("The number of retried physical label scans."), 
2570                      Counter ]
2571                  uint64 ScanRetries;
2572                     [Description (
2573                       "Method to reset the statistical counters. The method " 
2574                       "takes one parameter as input - an integer indicating which "
2575                       "counter to reset. For this input parameter, 0 indicates all, "
2576                       "1 resets the \"Scan Successes\" counter, 2 resets the "
2577                       "\"Scan Failures\" counter, and 3 resets the \"Scan Retries\" "
2578                       "counter. The method returns 0 if successful, 1 if not supported, "
2579                       "and any other value if an error occurred. A method is specified "
2580                       "so that the Device's instrumentation can also reset its "
2581                       "internal processing and counters.\n"
2582                       "In a subclass, the set of possible return codes should be "
2583                       "specified in a ValueMap qualifier on the method. The strings "
2584 karl  1.1.2.1         "to which the ValueMap contents are 'translated' can be "
2585                       "specified as a Values array qualifier.") ]
2586                  uint32 ResetCounter (
2587                     [IN, Values {"All", "Scan Successes", "Scan Failures", 
2588                          "Scan Retries"}] 
2589                      uint16 SelectedCounter);
2590 karl  1.1     };
2591               
2592               
2593               // ===================================================================
2594 karl  1.1.2.1 // MediaAccessStatInfo
2595 karl  1.1     // ===================================================================
2596                  [Description (
2597 karl  1.1.2.1      "Statistics related to reading and writing at a specific "
2598                    "MediaAccessDevice, or for a specific StorageExtent. Although "
2599                    "the same class is used to represent this data, at the instance "
2600                    "level the object holds information for the MediaAccessDevice "
2601                    "(independent of the StorageExtent), OR for the Extent "
2602                    "(independent of its AccessDevice).") ]
2603               class CIM_MediaAccessStatInfo : CIM_DeviceStatisticalInformation {
2604                     [Description ("The number of attempted read operations."), 
2605                      Counter ]
2606                  uint64 ReadOperations;
2607                     [Description ("The number of unrecoverable read operations."), 
2608                      Counter ]
2609                  uint64 UnrecoverableReadOperations;
2610                     [Description ("The number of attempted write operations."), 
2611                      Counter ]
2612                  uint64 WriteOperations;
2613                     [Description ("The number of unrecoverable write operations."), 
2614                      Counter ]
2615                  uint64 UnrecoverableWriteOperations;
2616                     [Description ("The number of recovered read operations."), 
2617                      Counter ]
2618 karl  1.1.2.1    uint64 RecoveredReadOperations;
2619                     [Description ("The number of recovered write operations."), 
2620                      Counter ]
2621                  uint64 RecoveredWriteOperations;
2622                     [Description ("The number of recovered seek operations."), 
2623                      Counter ]
2624                  uint64 RecoveredSeekOperations;
2625                     [Description ("The number of unrecoverable seek operations."), 
2626                      Counter ]
2627                  uint64 UnrecoverableSeekOperations;
2628 karl  1.1           [Description (
2629 karl  1.1.2.1         "Method to reset the statistical counters. The method takes one "
2630                       "parameter as input - an integer indicating which counter to "
2631                       "reset. For this input parameter, 0 indicates all, 1-2 and 5 "
2632                       "reset the 'read operation'-related counters, 3-4 and 6 reset "
2633                       "the 'write operation'-related counters, and 7-8 reset the "
2634                       "seek-related counters. The method returns 0 if "
2635                       "successful, 1 if not supported, and any other value if an "
2636                       "error occurred. A method is specified so that the Device's "
2637                       "instrumentation can also reset its internal processing and "
2638                       "counters.\n"
2639                       "In a subclass, the set of possible return codes should be "
2640                       "specified in a ValueMap qualifier on the method. The strings "
2641                       "to which the ValueMap contents are 'translated' can be "
2642                       "specified as a Values array qualifier.") ]
2643                  uint32 ResetCounter (
2644                     [IN, Values {"All", "Read Operations", 
2645                          "Unrecoverable Read Operations", "Write Operations", 
2646                          "Unrecoverable Write Operations", "Recovered Read Operations", 
2647                          "Recovered Write Operations", "Recovered Seeks", 
2648                          "Unrecoverable Seeks"} ] 
2649                      uint16 SelectedCounter);
2650 karl  1.1     };
2651               
2652 karl  1.1.2.1 
2653 karl  1.1     // ===================================================================
2654 karl  1.1.2.1 // PickerStatInfo
2655 karl  1.1     // ===================================================================
2656                  [Description (
2657 karl  1.1.2.1      "Statistics for a PickerElement, related to pick/put successes, "
2658                    "retries and failures.") ]
2659               class CIM_PickerStatInfo : CIM_DeviceStatisticalInformation {
2660                     [Description ("The number of successful picks."), 
2661                      Counter ]
2662                  uint64 PickSuccesses;
2663                     [Description ("The number of failed picks."), 
2664                      Counter ]
2665                  uint64 PickFailures;
2666                     [Description ("The number of retried picks."), 
2667                      Counter ]
2668                  uint64 PickRetries;
2669                     [Description ("The number of successful puts."), 
2670                      Counter ]
2671                  uint64 PutSuccesses;
2672                     [Description ("The number of failed puts."), 
2673                      Counter ]
2674                  uint64 PutFailures;
2675                     [Description ("The number of retried puts."), 
2676                      Counter ]
2677                  uint64 PutRetries;
2678 karl  1.1           [Description (
2679 karl  1.1.2.1         "Method to reset the statistical counters. The method takes one "
2680                       "parameter as input - an integer indicating which counter to "
2681                       "reset. For this input parameter, 0 indicates all, 1-3 reset "
2682                       "the 'pick'-related counters, and 4-6 reset the 'put'-related "
2683                       "counters. The method returns 0 if successful, 1 if not "
2684                       "supported, and any other value if an error occurred. A "
2685                       "method is specified so that the Device's instrumentation can "
2686                       "also reset its internal pocessing and counters.\n"
2687                       "In a subclass, the set of possible return codes should be "
2688                       "specified in a ValueMap qualifier on the method. The strings "
2689                       "to which the ValueMap contents are 'translated' can be "
2690                       "specified as a Values array qualifier.") ]
2691                  uint32 ResetCounter (
2692                     [IN, Values {"All", "Pick Successes", "Pick Failures", "Pick Retries", 
2693                          "Put Successes", "Put Failures", "Put Retries"} ] 
2694                      uint16 SelectedCounter);
2695 karl  1.1     };
2696               
2697               
2698               // ===================================================================
2699 karl  1.1.2.1 //
2700               //    Controllers, Adapters, and Ports
2701               //
2702 karl  1.1     // ===================================================================
2703 karl  1.1.2.1 
2704 karl  1.1     
2705               // ===================================================================
2706 karl  1.1.2.1 // LogicalPort 
2707 karl  1.1     // ===================================================================
2708                  [Description (
2709 karl  1.1.2.1      "The abstraction of a port or connection point of a Device. "
2710                    "This object should be instantiated when the Port has "
2711                    "independent management characteristics from the Device that "
2712                    "includes it. Examples are a Fibre Channel Port and a USB Port. "
2713                    "This class would not be instantiated for an Ethernet Port which "
2714                    "is not managed independently of the EthernetAdapter.") ]
2715               class CIM_LogicalPort : CIM_LogicalDevice {
2716                     [Description ("The speed of the Port in Bits per Second."), 
2717                      Units ("Bits per Second") ]
2718                  uint64 Speed;
2719 karl  1.1           [Description (
2720 karl  1.1.2.1         "The max speed of the Port in Bits per Second."), 
2721                      Units ("Bits per Second") ]
2722                  uint64 MaxSpeed;
2723 karl  1.1     };
2724               
2725 karl  1.1.2.1 
2726 karl  1.1     // ===================================================================
2727 karl  1.1.2.1 // PortOnDevice 
2728 karl  1.1     // ===================================================================
2729 karl  1.1.2.1    [Association, Description (
2730                    "PortOnDevice associates a Port or connection point with its "
2731                    "Device.") ]
2732               class CIM_PortOnDevice : CIM_Dependency {
2733                     [Override ("Antecedent"), 
2734                      Description ("The Device that includes the Port.") ]
2735                  CIM_LogicalDevice REF Antecedent;
2736                     [Override ("Dependent"), 
2737                      Description ("The Port on the Device.") ]
2738                  CIM_LogicalPort REF Dependent;
2739 karl  1.1     };
2740               
2741 karl  1.1.2.1 
2742 karl  1.1     // ===================================================================
2743 karl  1.1.2.1 // NetworkAdapter 
2744 karl  1.1     // ===================================================================
2745 karl  1.1.2.1    [Abstract, Description (
2746                    "NetworkAdapter is an Abstract class defining general "
2747                    "networking hardware concepts (for example, PermanentAddress or "
2748                    "Speed of operation). NetworkAdapters are Devices with the "
2749                    "ability to support multiple, higher level protocols and provide "
2750                    "the implementation behind the Network Model's ProtocolEndpoint "
2751                    "class. (This information is conveyed using the DeviceSAP"
2752                    "Implementation association, defined in the Core Model.) "
2753                    "NetworkAdapters and their Endpoints represent the potential for "
2754                    "connectivity among peers.\n"
2755                    "The 'potential for connectivity' is very different than the "
2756                    "master-slave/controller-controlled by relationships of CIM_"
2757                    "Controller. Sometimes, however, a single Device is both a kind "
2758                    "of NetworkAdapter and a Controller - for example, when a Fibre"
2759                    "ChannelAdapater is operating as a ComputerSystem's SCSIController. "
2760                    "In this case, there are aspects of the Device that are network "
2761                    "oriented and others that are Controller oriented - and, both the "
2762                    "Controller and Adapter classes should be instantiated. A Device"
2763                    "Identity relationship would also be created to tie together these "
2764                    "differing aspects/abstractions of the Device.") ] 
2765               class CIM_NetworkAdapter : CIM_LogicalDevice {
2766 karl  1.1.2.1       [MaxLen (64), Description (
2767                       "PermanentAddress defines the network address hardcoded into "
2768                       "an adapter.  This 'hardcoded' address may be changed via "
2769                       "firmware upgrade or software configuration. If so, this field "
2770                       "should be updated when the change is made.  PermanentAddress "
2771                       "should be left blank if no 'hardcoded' address exists for the "
2772                       "NetworkAdapter."),
2773                      MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.2"} ]       
2774                   string PermanentAddress;
2775                     [MaxLen (64), Description (
2776                       "An array of strings indicating the network addresses for an "
2777                       "adapter."),
2778                      ArrayType ("Indexed"),
2779                      MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.3"} ]
2780                   string NetworkAddresses[]; 
2781 karl  1.1           [Description (
2782 karl  1.1.2.1         "An estimate of the current bandwidth in Bits per Second. "
2783                       "For Adapters which vary in bandwidth or for those where "
2784                       "no accurate estimation can be made, this property should "
2785                       "contain the nominal bandwidth."),
2786                      Units ("Bits per Second"), 
2787                      MappingStrings {"MIB.IETF|RFC1213-MIB.ifSpeed", 
2788                       "MIF.DMTF|Network Adapter 802 Port|001.5"} ]
2789                   uint64 Speed;
2790                     [Description ( 
2791                       "The maximum speed, in Bits per Second, for the Network"
2792                       "Adapter."), 
2793                      Units ("Bits per Second")  ] 
2794                   uint64 MaxSpeed;
2795 karl  1.1           [Description (
2796 karl  1.1.2.1         "Boolean indicating that the Adapter is operating in "
2797                       "full duplex mode.") ]
2798                  boolean FullDuplex;
2799                     [Description ( 
2800                       "A boolean indicating whether the NetworkAdapter is capable " 
2801                       "of automatically determining the speed or other communications "
2802                       "characteristics of the attached network media.")  ] 
2803                   boolean AutoSense;
2804 karl  1.1           [Description (
2805 karl  1.1.2.1         "The total number of octets transmitted, including framing "
2806                       "characters."),
2807                      Mappingstrings {"MIB.IETF|RFC1213-MIB.ifOutOctets", 
2808                       "MIF.DMTF|Network Adapter 802 Port|001.7"}, 
2809                      Counter ] 
2810                   uint64 OctetsTransmitted;
2811 karl  1.1           [Description (
2812 karl  1.1.2.1         "The total number of octets received, including framing "
2813                       "characters."),
2814                      Mappingstrings {"MIB.IETF|RFC1213-MIB.ifInOctets",
2815                       "MIF.DMTF|Network Adapter 802 Port|001.9"}, 
2816                      Counter ] 
2817                   uint64 OctetsReceived;
2818 karl  1.1     };
2819               
2820               
2821               // ===================================================================
2822 karl  1.1.2.1 // EthernetAdapter
2823 karl  1.1     // ===================================================================
2824 karl  1.1.2.1    [Description ("Capabilities and management of an EthernetAdapter.") ]
2825               class CIM_EthernetAdapter : CIM_NetworkAdapter {
2826                     [Override ("NetworkAddresses"), 
2827                      Description (
2828                       "Ethernet/802.3 MAC addresses formatted as twelve hexadecimal "
2829                       "digits (e.g. \"010203040506\"), with each pair representing "
2830                       "one of the six octets of the MAC address in \"canonical\" bit "
2831                       "order.  (Thus, the Group address bit is found in the low "
2832                       "order bit of the first character of the string.)"),
2833                      ArrayType ("Indexed") ]
2834                   string NetworkAddresses[];
2835 karl  1.1           [Description (
2836 karl  1.1.2.1         "The maximum size of the INFO (non-MAC) field that will be "
2837                       "received or transmitted."), 
2838                      Mappingstrings {"MIB.IETF|BRIDGE-MIB.dot1dTpPortMaxInfo"} ]
2839                   uint32 MaxDataSize;
2840 karl  1.1           [Description (
2841 karl  1.1.2.1         "Capabilities of the EthernetAdapter. For example, the "
2842                       "Device may support AlertOnLan, WakeOnLan, Load Balancing "
2843                       "and/or FailOver. If failover or load balancing "
2844                       "capabilities are listed, a SpareGroup (failover) or "
2845                       "ExtraCapacityGroup (load balancing) should also be defined "
2846                       "to completely describe the capability."), 
2847                      ArrayType ("Indexed"), 
2848                      Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
2849                              "FailOver", "LoadBalancing"}, 
2850 karl  1.1            ModelCorrespondence {
2851 karl  1.1.2.1         "CIM_EthernetAdapter.CapabilityDescriptions"} ]
2852                  uint16 Capabilities[];
2853 karl  1.1           [Description (
2854 karl  1.1.2.1         "An array of free-form strings providing more detailed "
2855                       "explanations for any of the EthernetAdapter features "
2856                       "indicated in the Capabilities array. Note, each entry of "
2857                       "this array is related to the entry in the Capabilities "
2858                       "array that is located at the same index."), 
2859                      ArrayType ("Indexed"), 
2860                      ModelCorrespondence {"CIM_EthernetAdapter.Capabilities"} ]
2861                  string CapabilityDescriptions[];
2862 karl  1.1           [Description (
2863 karl  1.1.2.1         "Specifies which capabilities are enabled from the list "
2864                       "of all supported ones, defined in the Capabilities array."), 
2865                      Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
2866                              "FailOver", "LoadBalancing"}, 
2867                      ModelCorrespondence {"CIM_EthernetAdapter.Capabilities"} ]
2868                  uint16 EnabledCapabilities[];
2869 karl  1.1           [Description (
2870 karl  1.1.2.1         "The number of times there was an invalid data symbol when "
2871                       "a valid carrier was present. The count is incremented at "
2872                       "most once per carrier event, even if multiple symbol "
2873                       "errors occur during the carrier event."), 
2874                      MappingStrings {"MIB.IETF|EtherLike-MIB.dot3StatsSymbolErrors"}, 
2875                      Counter ] 
2876                  uint32 SymbolErrors;
2877                     [Description ("The total number of packets transmitted."), 
2878                      MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.6"}, 
2879                      Counter ] 
2880                  uint64 TotalPacketsTransmitted;
2881                     [Description ("The total number of packets received."), 
2882                      MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.8"}, 
2883                      Counter ] 
2884                  uint64 TotalPacketsReceived;
2885 karl  1.1           [Description (
2886 karl  1.1.2.1         "A count of frames received on a particular interface "
2887                       "that are not an integral number of octets in length and do "
2888                       "not pass the FCS check. The count represented by an "
2889                       "instance of this object is incremented when the alignment"
2890                       "Error status is returned by the MAC layer to the LLC (or "
2891                       "other MAC user). Received frames for which multiple error "
2892                       "conditions obtain are, according to the conventions of IEEE "
2893                       "802.3 Layer Management, counted exclusively according to "
2894                       "the error status presented to the LLC."),
2895                      Mappingstrings {
2896                       "MIB.IETF|EtherLike-MIB.dot3StatsAlignmentErrors"}, 
2897                      Counter ] 
2898                   uint32 AlignmentErrors;
2899 karl  1.1           [Description (
2900 karl  1.1.2.1         "A count of frames received on a particular interface "
2901                       "that are an integral number of octets in length but do "
2902                       "not pass the FCS check. The count represented by an "
2903                       "instance of this object is incremented when the frame"
2904                       "CheckError status is returned by the MAC layer to the "
2905                       "LLC (or other MAC user). Received frames for which "
2906                       "multiple error conditions obtain are, according to the "
2907                       "conventions of IEEE 802.3 Layer Management, counted "
2908                       "exclusively according to the error status presented to "
2909                       "the LLC."),
2910                      Mappingstrings {
2911                       "MIB.IETF|EtherLike-MIB.dot3StatsFCSErrors"}, 
2912                      Counter ] 
2913                   uint32 FCSErrors;
2914 karl  1.1           [Description (
2915 karl  1.1.2.1         "A count of successfully transmitted frames on a particular "
2916                       "interface for which transmission is inhibited by exactly "
2917                       "one collision. A frame that is counted by an instance of "
2918                       "this object is not counted by the corresponding instance "
2919                       "of the MultipleCollisionFrames property."),
2920                      Mappingstrings {
2921                       "MIB.IETF|EtherLike-MIB.dot3StatsSingleCollisionFrames"}, 
2922                      Counter ] 
2923                   uint32 SingleCollisionFrames;
2924 karl  1.1           [Description (
2925 karl  1.1.2.1         "A count of successfully transmitted frames on a particular "
2926                       "interface for which transmission is inhibited by more than "
2927                       "one collision. A frame that is counted by an instance of "
2928                       "this object is not counted by the corresponding instance "
2929                       "of the SingleCollisionFrames property."),
2930                      Mappingstrings {
2931                       "MIB.IETF|EtherLike-MIB.dot3StatsMultipleCollisionFrames"}, 
2932                      Counter ] 
2933                   uint32 MultipleCollisionFrames;
2934 karl  1.1           [Description (
2935 karl  1.1.2.1         "A count of times that the SQE TEST ERROR message is "
2936                       "generated by the PLS sublayer for a particular interface. "
2937                       "The SQE TEST ERROR message is defined in section "
2938                       "7.2.2.2.4 of ANSI/IEEE 802.3-1985 and its generation is "
2939                       "described in section 7.2.4.6 of the same document."),
2940                      Mappingstrings {
2941                       "MIB.IETF|EtherLike-MIB.dot3StatsSQETestErrors"}, 
2942                      Counter ] 
2943                   uint32 SQETestErrors;
2944 karl  1.1           [Description (
2945 karl  1.1.2.1         "A count of frames for which the first transmission "
2946                       "attempt on a particular interface is delayed because the "
2947                       "medium is busy. The count represented by an instance of "
2948                       "this object does not include frames involved in collisions."),
2949                      Mappingstrings {
2950                       "MIB.IETF|EtherLike-MIB.dot3StatsDeferredTransmissions"}, 
2951                      Counter ] 
2952                   uint32 DeferredTransmissions;
2953 karl  1.1           [Description (
2954 karl  1.1.2.1         "The number of times that a collision is detected on a "
2955                       "particular interface later than 512 bit-times into the "
2956                       "transmission of a packet. Five hundred and twelve bit-"
2957                       "times corresponds to 51.2 microseconds on a 10 Mbit/s "
2958                       "system. A (late) collision included in a count "
2959                       "represented by an instance of this object is also "
2960                       "considered as a (generic) collision for purposes of "
2961                       "other collision-related statistics."),
2962                      Mappingstrings {
2963                       "MIB.IETF|EtherLike-MIB.dot3StatsLateCollisions"}, 
2964                      Counter ] 
2965                   uint32 LateCollisions;
2966 karl  1.1           [Description (
2967 karl  1.1.2.1         "A count of frames for which transmission on a particular "
2968                       "interface fails due to excessive collisions."),
2969                      Mappingstrings {
2970                       "MIB.IETF|EtherLike-MIB.dot3StatsExcessiveCollisions"}, 
2971                      Counter ] 
2972                   uint32 ExcessiveCollisions;
2973 karl  1.1           [Description (
2974 karl  1.1.2.1         "A count of frames for which transmission on a particular "
2975                       "interface fails due to an internal MAC sublayer transmit "
2976                       "error. A frame is only counted by an instance of this "
2977                       "object if it is not counted by the corresponding instance "
2978                       "of either the LateCollisions property, the Excessive"
2979                       "Collisions property, or the CarrierSenseErrors property. "
2980                       "The precise meaning of the count represented by an instance "
2981                       "of this object is implementation-specific.  In particular, "
2982                       "an instance of this object may represent a count of "
2983                       "transmission errors on a particular interface that are "
2984                       "not otherwise counted."),
2985                      Mappingstrings {
2986                       "MIB.IETF|EtherLike-MIB.dot3StatsInternalMacTransmitErrors"}, 
2987                      Counter ] 
2988                   uint32 InternalMACTransmitErrors;
2989                     [Description (
2990                       "A count of frames for which reception on a particular "
2991                       "interface fails due to an internal MAC sublayer receive "
2992                       "error. A frame is only counted by an instance of this "
2993                       "object if it is not counted by the corresponding instance "
2994                       "of either the FrameTooLongs property, the AlignmentErrors "
2995 karl  1.1.2.1         "property, or the FCSErrors property. The precise meaning "
2996                       "of the count represented by an instance of this object is "
2997                       "implementation-specific.  In particular, an instance of "
2998                       "this object may represent a count of receive errors on a "
2999                       "particular interface that are not otherwise counted."),
3000                      Mappingstrings {
3001                       "MIB.IETF|EtherLike-MIB.dot3StatsInternalMacReceiveErrors"}, 
3002                      Counter ] 
3003                   uint32 InternalMACReceiveErrors;
3004                     [Description (
3005                       "The number of times that the carrier sense condition was "
3006                       "lost or never asserted when attempting to transmit a frame "
3007                       "on a particular interface. The count represented by an "
3008                       "instance of this object is incremented at most once per "
3009                       "transmission attempt, even if the carrier sense condition "
3010                       "fluctuates during a transmission attempt."),
3011                      Mappingstrings {
3012                       "MIB.IETF|EtherLike-MIB.dot3StatsCarrierSenseErrors"}, 
3013                      Counter ] 
3014                   uint32 CarrierSenseErrors;
3015                     [Description (
3016 karl  1.1.2.1         "A count of frames received on a particular interface that "
3017                       "exceed the maximum permitted frame size. The count "
3018                       "represented by an instance of this object is incremented "
3019                       "when the FrameTooLong status is returned by the MAC layer "
3020                       "to the LLC (or other MAC user). Received frames for which "
3021                       "multiple error conditions obtain are, according to the "
3022                       "conventions of IEEE 802.3 Layer Management, counted "
3023                       "exclusively according to the error status presented to "
3024                       "the LLC."),
3025                      Mappingstrings {
3026                      "MIB.IETF|EtherLike-MIB.dot3StatsFrameTooLongs"}, 
3027                      Counter ] 
3028                   uint32 FrameTooLongs;
3029 karl  1.1     };
3030               
3031               
3032               // ===================================================================
3033 karl  1.1.2.1 // TokenRingAdapter
3034 karl  1.1     // ===================================================================
3035 karl  1.1.2.1    [Description ("Capabilities and management of a TokenRingAdapter.") ]
3036               class CIM_TokenRingAdapter : CIM_NetworkAdapter {
3037                     [Override ("NetworkAddresses"), Description (
3038                       "Token Ring/802.5 MAC addresses formatted as twelve "
3039                       "hexadecimal digits (e.g. \"010203040506\"), with each pair "
3040                       "representing one of the six octets of the MAC address in "
3041                       "\"canonical\" bit order.  (Thus, the Group address bit is "
3042                       "found in the low order bit of the first character of the "
3043                       "string.)"),
3044                      ArrayType ("Indexed") ]
3045                   string NetworkAddresses[];
3046 karl  1.1           [Description (
3047 karl  1.1.2.1         "The maximum size of the INFO (non-MAC) field that will be "
3048                       "received or transmitted."), 
3049                      Mappingstrings {"MIB.IETF|BRIDGE-MIB.dot1dTpPortMaxInfo"} ]
3050                   uint32 MaxDataSize;
3051 karl  1.1           [Description (
3052 karl  1.1.2.1         "Capabilities of the TokenRingAdapter. For example, the Device "
3053                       "may support AlertOnLan, WakeOnLan, Load Balancing and/or "
3054                       "Failover. If failover or load balancing capabilities are "
3055                       "listed, a SpareGroup (failover) or ExtraCapacityGroup (load "
3056                       "balancing) should also be defined to completely describe the "
3057                       "capability."), 
3058                      ArrayType ("Indexed"), 
3059                      Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
3060                              "FailOver", "LoadBalancing"}, 
3061 karl  1.1            ModelCorrespondence {
3062 karl  1.1.2.1         "CIM_TokenRingAdapter.CapabilityDescriptions"} ]
3063                  uint16 Capabilities[];
3064 karl  1.1           [Description (
3065 karl  1.1.2.1         "An array of free-form strings providing more detailed "
3066                       "explanations for any of the TokenRingAdapter features "
3067                       "indicated in the Capabilities array. Note, each entry of "
3068                       "this array is related to the entry in the Capabilities array "
3069                       "that is located at the same index."), 
3070                      ArrayType ("Indexed"), 
3071                      ModelCorrespondence {"CIM_TokenRingAdapter.Capabilities"} ]
3072                  string CapabilityDescriptions[];
3073 karl  1.1           [Description (
3074 karl  1.1.2.1         "Specifies which of the capabilities from the \"Capabilities\" "
3075                       "property are currently enabled."), 
3076                      Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
3077                              "FailOver", "LoadBalancing"}, 
3078                      ModelCorrespondence {"CIM_TokenRingAdapter.Capabilities"} ]
3079                  uint16 EnabledCapabilities[];
3080 karl  1.1           [Description (
3081 karl  1.1.2.1         "The current status which can be used to diagnose fluctuating "
3082                       "problems that can occur on token rings, after a station has "
3083                       "successfully been added to the ring. Before an open is completed, "
3084                       "this object contains the value indicating \"no status\" (131072). "
3085                       "(The RingState and RingOpenStatus properties are also provided "
3086                       "for debugging problems when the station can not even enter the "
3087                       "ring.) The property's value is a sum of values, one for each "
3088                       "currently applicable condition. The following values are defined "
3089                       "for various conditions:\n"
3090                       "0 = No Problems Detected, 32 = Ring Recovery, "
3091                       "64 = Single Station, 256 = Remove Received, 512 = Reserved, "
3092                       "1024 = Auto-Removal Error, 2048 = Lobe Wire Fault, "
3093                       "4096 = Transmit Beacon, 8192 = Soft Error, 16384 = Hard Error, "
3094                       "32768 = Signal Loss, 131072 = No Status, Open Not Completed."), 
3095                      MappingStrings {
3096                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingStatus"} ]
3097                  uint32 RingStatus;
3098 karl  1.1           [Description (
3099 karl  1.1.2.1         "The current Device state with respect to entering or leaving "
3100                       "the ring." ), 
3101                      Values {"Opened", "Closed", "Opening", "Closing", "Open Failure", 
3102                              "Ring Failure"}, 
3103                      MappingStrings {"MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingState"} ]
3104                  uint16 RingState;
3105 karl  1.1           [Description (
3106 karl  1.1.2.1         "This property indicates the success, or the reason for failure, "
3107                       "of the station's most recent attempt to enter the ring." ), 
3108                      Values {"No Open Attempted", "Bad Parameter", "Lobe Failed", 
3109                              "Signal Loss", "Insertion Timeout", "Ring Failed", "Beaconing", 
3110                              "Duplicate MAC", "Request Failed", "Remove Received", 
3111                              "Last Open Successful"}, 
3112                      MappingStrings {
3113                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingOpenStatus"} ]
3114                  uint16 RingOpenStatus;
3115                     [Description ("The ring's bandwidth."), 
3116                      Values {"Unknown", "Other", "One Megabit", "Four Megabit", 
3117                              "Sixteen Megabit"}, 
3118                      MappingStrings {"MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingSpeed"} ]
3119                  uint16 RingSpeed;
3120 karl  1.1           [Description (
3121 karl  1.1.2.1         "This counter is incremented when a station detects the absence "
3122                       "of transitions for five half-bit timers (burst-five errors)."), 
3123                      MappingStrings {
3124                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsBurstErrors"}, 
3125                      Counter ] 
3126                  uint32 BurstErrors;
3127 karl  1.1           [Description (
3128 karl  1.1.2.1         "This counter is incremented when a station receives an AMP or "
3129                       "SMP frame in which A is equal to C is equal to 0, and then "
3130                       "receives another SMP frame with A equal to C equal to 0 without "
3131                       "first receiving an AMP frame. It denotes a station that cannot "
3132                       "set the AC bits properly."), 
3133                      MappingStrings {
3134                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsACErrors"}, 
3135                      Counter ] 
3136                  uint32 ACErrors;
3137 karl  1.1           [Description (
3138 karl  1.1.2.1         "This counter is incremented when a station transmits an abort "
3139                       "delimiter while transmitting data."), 
3140                      MappingStrings {
3141                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsAbortTransErrors"}, 
3142                      Counter ] 
3143                  uint32 AbortTransErrors;
3144 karl  1.1           [Description (
3145 karl  1.1.2.1         "This counter is incremented when a station recognizes an "
3146                       "internal error."), 
3147                      MappingStrings {
3148                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsInternalErrors"}, 
3149                      Counter ] 
3150                  uint32 InternalErrors;
3151 karl  1.1           [Description (
3152 karl  1.1.2.1         "This counter is incremented when a station is transmitting "
3153                       "and its TRR timer expires. This denotes a condition where a "
3154                       "transmitting station in strip mode does not receive the "
3155                       "trailer of the frame before the TRR timer goes off."), 
3156                      MappingStrings {
3157                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsLostFrameErrors"}, 
3158                      Counter ] 
3159                  uint32 LostFrameErrors;
3160 karl  1.1           [Description (
3161 karl  1.1.2.1         "This counter is incremented when a station recognizes a frame "
3162                       "addressed to its specific address, but has no available buffer "
3163                       "space - indicating that the station is congested."), 
3164                     MappingStrings {
3165                      "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsReceiveCongestions"}, 
3166                      Counter ] 
3167                  uint32 ReceiveCongestions;
3168 karl  1.1           [Description (
3169 karl  1.1.2.1         "This counter is incremented when a station recognizes a frame "
3170                       "addressed to its specific address and detects that the FS field "
3171                       "A bits are set to 1 indicating a possible line hit or duplicate "
3172                       "address."), 
3173                      MappingStrings {
3174                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsFrameCopiedErrors"}, 
3175                      Counter ] 
3176                  uint32 FrameCopiedErrors;
3177 karl  1.1           [Description (
3178 karl  1.1.2.1         "This counter is incremented when a station acting as the active "
3179                       "monitor recognizes an error condition that needs a token "
3180                       "transmitted."), 
3181                      MappingStrings {
3182                      "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsTokenErrors"}, 
3183                      Counter ]
3184                  uint32 TokenErrors;
3185 karl  1.1           [Description (
3186 karl  1.1.2.1         "The number of Soft Errors that the Device has detected. It "
3187                       "directly corresponds to the number of Report Error MAC frames "
3188                       "that this Device has transmitted. Soft Errors are those which "
3189                       "are recoverable by the MAC layer protocols."), 
3190                      MappingStrings {
3191                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSoftErrors"}, 
3192                      Counter ]
3193                  uint32 SoftErrors;
3194 karl  1.1           [Description (
3195 karl  1.1.2.1         "The number of times this Device has detected an immediately "
3196                       "recoverable fatal error. It denotes the number of times this "
3197                       "Device is either transmitting or receiving beacon MAC frames. "), 
3198                      MappingStrings {
3199                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsHardErrors"}, 
3200                      Counter ]
3201                  uint32 HardErrors;
3202 karl  1.1           [Description (
3203 karl  1.1.2.1         "The number of times this Device has detected the loss of "
3204                       "signal condition from the ring."), 
3205                      MappingStrings {
3206                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSignalLoss"}, 
3207                      Counter ]
3208                  uint32 SignalLossCount;
3209 karl  1.1           [Description (
3210 karl  1.1.2.1         "The number of times this Device has transmitted a beacon "
3211                       "frame."), 
3212                      MappingStrings {
3213                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsTransmitBeacons"}, 
3214                      Counter ]
3215                  uint32 TransmittedBeacons;
3216 karl  1.1           [Description (
3217 karl  1.1.2.1         "The number of Claim Token MAC frames received or transmitted "
3218                       "after the Device has received a Ring Purge MAC frame. This "
3219                       "counter signifies the number of times the ring has been purged "
3220                       "and is being recovered back into a normal operating state."), 
3221                      MappingStrings {
3222                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsRecoverys"}, 
3223                      Counter ]
3224                  uint32 Recoverys;
3225 karl  1.1           [Description (
3226 karl  1.1.2.1         "The number of times the Device has detected an open or short "
3227                       "circuit in the lobe data path. The adapter will be closed and "
3228                       "RingState will signify this condition."), 
3229                      MappingStrings {
3230                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsLobeWires"}, 
3231                      Counter ]
3232                  uint32 LobeWires;
3233 karl  1.1           [Description (
3234 karl  1.1.2.1         "The number of times the Device has received a Remove Ring "
3235                       "Station MAC frame request. When this frame is received, the "
3236                       "Device will enter the close state and RingState will "
3237                       "signify this condition."), 
3238                      MappingStrings {
3239                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsRemoves"}, 
3240                      Counter ]
3241                  uint32 Removes;
3242 karl  1.1           [Description (
3243 karl  1.1.2.1         "The number of times the Device has sensed that it is the "
3244                       "only station on the ring. This will happen if the Device "
3245                       "is the first one up on a ring, or if there is a hardware "
3246                       "problem."), 
3247                     MappingStrings {
3248                      "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSingles"}, 
3249                      Counter ]
3250                  uint32 Singles;
3251 karl  1.1           [Description (
3252 karl  1.1.2.1         "The number of times the Device has detected that the "
3253                       "frequency of the incoming signal differs from the expected "
3254                       "frequency by more than that specified by the IEEE 802.5 "
3255                       "standard."), 
3256                      MappingStrings {
3257                       "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsFreqErrors"}, 
3258                      Counter ]
3259                  uint32 FrequencyErrors;
3260 karl  1.1     };
3261               
3262 karl  1.1.2.1 // ==================================================================
3263               // FibreChannelAdapter 
3264               // ==================================================================
3265 karl  1.1        [Description (
3266 karl  1.1.2.1      "Capabilities and management of a Fibre Channel Adapter.") ]
3267               class CIM_FibreChannelAdapter : CIM_NetworkAdapter {
3268 karl  1.1           [Description (
3269 karl  1.1.2.1         "The maximum frame size, in bytes, supported by the Adapter."), 
3270                      Units ("Bytes") ]
3271                  uint64 MaxFrameSize;
3272                     [Description (
3273                       "The Fibre Channel Classes of Service that are supported by "
3274                       "the Adapter, on its Ports. The currently negotiated COS for a "
3275                       "connection is a property (NegotiatedCOS) on the FibrePort"
3276                       "ActiveLogin association."), 
3277                      Values {"Unknown", "1", "2", "3", "4", "6", "F"} ]
3278                  uint16 SupportedCOS[];
3279                     [Description (
3280                       "An array of integers indicating the Fibre Channel FC-4 "
3281                       "protocols supported by the Adapter. The protocols that are "
3282                       "active and running are indicated in the CurrentFC4Types "
3283                       "property. The values used in this array are taken from the "
3284                       "FC-GS2 (bitmapped) field defined in Table 11 of the standard. "
3285                       "Also, FC-SB-2 codes are included from the T11 document, "
3286                       "236V0. If the FC4 Type is \"Vendor Unique\" (value=255), "
3287                       "then the specific vendor values (in the range, 0xE0 to 0xFF) "
3288                       "should be listed in the FC4VendorUniqueTypes property."), 
3289                      ValueMap {"0", "1", "4", "5", "8", "9", "17", "18", "19", "21", 
3290 karl  1.1.2.1                  "22", "23", "25", "26", "27", "28", "32", "34", "36", 
3291                                "64", "80", "81", "82", "88", "96", "255"}, 
3292                      Values {"Unknown", "Other", "ISO/IEC 8802 - 2 LLC", 
3293                              "IP over FC", "SCSI - FCP", "SCSI - GPP", 
3294                              "IPI - 3 Master", "IPI - 3 Slave", "IPI - 3 Peer", 
3295                              "CP IPI - 3 Master", "CP IPI - 3 Slave", 
3296                              "CP IPI - 3 Peer", "SBCCS Channel", 
3297                              "SBCCS Control Unit", "FC-SB-2 Channel", 
3298                              "FC-SB-2 Control Unit", 
3299                              "Fibre Channel Services (FC-GS, FC-GS-2, FC-GS-3)", 
3300                              "FC-SW", "FC - SNMP", "HIPPI - FP", "BBL Control", 
3301                              "BBL FDDI Encapsulated LAN PDU", 
3302                              "BBL 802.3 Encapsulated LAN PDU", "FC - VI", "FC - AV", 
3303                              "Vendor Unique"}, 
3304                      ModelCorrespondence {
3305                       "CIM_FibreChannelAdapter.FC4VendorUniqueTypes"} ]
3306                  uint16 FC4TypesSupported[];
3307                     [MinValue (240), MaxValue (255), Description (
3308                       "When the FC4TypesSupported array contains the value 255 "
3309                       "(\"Vendor Unique\"), then the property, FC4VendorUniqueTypes, "
3310                       "lists of all the vendor specific protocols supported by the "
3311 karl  1.1.2.1         "Adapter. These values are in the range, 0xE0 to 0xFF.") ]
3312                  uint16 FC4VendorUniqueTypes[];
3313                     [Description (
3314                       "An array of integers indicating the Fibre Channel FC-4 "
3315                       "protocols currently running on the Adapter. A list of all "
3316                       "protocols supported by the Adapter is indicated in the "
3317                       "FC4TypesSupported property. The values used in this array "
3318                       "are taken from the FC-GS2 (bitmapped) field defined in "
3319                       "Table 11 of the standard. Also, FC-SB-2 codes are included "
3320                       "from the T11 document, 236V0. If the FC4 Type is \"Vendor "
3321                       "Unique\" (value=255), then the specific vendor values "
3322                       "(in the range, 0xE0 to 0xFF) that are currently running "
3323                       "should be listed in the CurrentFC4VendorTypes property."), 
3324                      ValueMap {"0", "1", "4", "5", "8", "9", "17", "18", "19", "21", 
3325                                "22", "23", "25", "26", "27", "28", "32", "34", "36", 
3326                                "64", "80", "81", "82", "88", "96", "255"}, 
3327                      Values {"Unknown", "Other", "ISO/IEC 8802 - 2 LLC", 
3328                              "IP over FC", "SCSI - FCP", "SCSI - GPP", 
3329                              "IPI - 3 Master", "IPI - 3 Slave", "IPI - 3 Peer", 
3330                              "CP IPI - 3 Master", "CP IPI - 3 Slave", 
3331                              "CP IPI - 3 Peer", "SBCCS Channel", 
3332 karl  1.1.2.1                "SBCCS Control Unit", "FC-SB-2 Channel", 
3333                              "FC-SB-2 Control Unit", 
3334                              "Fibre Channel Services (FC-GS, FC-GS-2, FC-GS-3)", 
3335                              "FC-SW", "FC - SNMP", "HIPPI - FP", "BBL Control", 
3336                              "BBL FDDI Encapsulated LAN PDU", 
3337                              "BBL 802.3 Encapsulated LAN PDU", "FC - VI", "FC - AV", 
3338                              "Vendor Unique"}, 
3339                      ModelCorrespondence {
3340                       "CIM_FibreChannelAdapter.FC4TypesSupported", 
3341                       "CIM_FibreChannelAdapter.CurrentFC4VendorTypes"} ]
3342                  uint16 CurrentFC4Types[];
3343                     [MinValue (240), MaxValue (255), Description (
3344                       "When the CurrentFC4Types array contains the value 255 "
3345                       "(\"Vendor Unique\"), then the property, CurrentFC4VendorTypes, "
3346                       "lists all the vendor specific protocols running on the "
3347                       "Adapter. These values are in the range, 0xE0 to 0xFF."), 
3348                      ModelCorrespondence {
3349                       "CIM_FibreChannelAdapter.FC4VendorUniqueTypes"} ]
3350                  uint16 CurrentFC4VendorTypes[];
3351                     [Description (
3352                       "A list of the Capabilities of the Fibre Channel Adapter. "
3353 karl  1.1.2.1         "For example, that the Adapter utilizes the Directory Server, "
3354                       "or that it generates State Change Notifications can be "
3355                       "indicated using the values 2 and 12, respectively."), 
3356 karl  1.1            ArrayType ("Indexed"), 
3357 karl  1.1.2.1        Values {"Unknown", "Other", "Utilizes the Directory Server", 
3358                              "Utilizes the Time Server", 
3359                              "Utilizes the Management Server", 
3360                              "Utilizes the Alias Server", 
3361                              "Utilizes the Security Key Distribution Server", 
3362                              "Utilizes the Clock Synchronization Server", 
3363                              "Utilizes the Multicast Server", 
3364                              "Utilizes QoS Facilitator", 
3365                              "Utilizes Broadcast Services", 
3366                              "Supports Fabric Login Server", 
3367                              "Generates State Change Notifications", 
3368                              "Registers for State Change Notifications", 
3369                              "Responds to Read Connection Status", 
3370                              "Supports Third Party Process Logout"} ]
3371 karl  1.1        uint16 Capabilities[];
3372                     [Description (
3373                       "An array of free-form strings providing more detailed "
3374 karl  1.1.2.1         "explanations for any of the Adapter features indicated in "
3375                       "the Capabilities array. Note, each entry of this array "
3376 karl  1.1             "is related to the entry in the Capabilities array that "
3377 karl  1.1.2.1         "is located at the same index."),
3378                      ArrayType ("Indexed"),
3379                      ModelCorrespondence {"CIM_FibreChannelAdapter.Capabilities"} ]
3380 karl  1.1        string CapabilityDescriptions[];
3381                     [Description (
3382 karl  1.1.2.1         "The number of times that a frame was received but no "
3383                       "buffer was available."), 
3384                      Counter ]
3385                  uint64 ReceiveBufferErrors;
3386 karl  1.1           [Description (
3387 karl  1.1.2.1         "The number of times that a frame was received but no "
3388                       "end-to-end credit was available."), 
3389                      Counter ]
3390                  uint64 ReceiveEndErrors;
3391 karl  1.1           [Description (
3392 karl  1.1.2.1         "A 'long' timeout value (in milliseconds) for determining "
3393                       "when to reinstate a Recovery_Qualifier. The default value "
3394                       "is 120 seconds (120000 milliseconds). It is typically set "
3395                       "to the ErrorDetectTimeout value + 2*(fabric delay time)."), 
3396                      Units ("MilliSeconds") ]
3397                  uint64 ResourceAllocationTimeout;
3398 karl  1.1           [Description (
3399 karl  1.1.2.1         "A 'short' timeout value (in milliseconds) for determining "
3400                       "that an error has occurred. The default value is 10 "
3401                       "seconds (10000 milliseconds)."), 
3402                      Units ("MilliSeconds") ]
3403                  uint64 ErrorDetectTimeout;
3404 karl  1.1           [Description (
3405 karl  1.1.2.1         "Number of Class 1 sequences sent since last reset of the "
3406                       "Device."), 
3407                      Counter ]
3408                  uint64 Class1SequencesSent;
3409 karl  1.1           [Description (
3410 karl  1.1.2.1         "Number of Class 2 sequences sent since last reset of the "
3411                       "Device."),
3412                      Counter ]
3413                  uint64 Class2SequencesSent;
3414 karl  1.1           [Description (
3415 karl  1.1.2.1         "Number of Class 3 sequences sent since last reset of the "
3416                       "Device."),
3417                      Counter ]
3418                  uint64 Class3SequencesSent;
3419 karl  1.1           [Description (
3420 karl  1.1.2.1         "Number of Class 4 sequences sent since last reset of the "
3421                       "Device."),
3422                      Counter ]
3423                  uint64 Class4SequencesSent;
3424 karl  1.1           [Description (
3425 karl  1.1.2.1         "Number of octets received by the Adapter when running "
3426                       "Class 2 service."),
3427                      Counter ]
3428                  uint64 Class2OctetsReceived;
3429 karl  1.1           [Description (
3430 karl  1.1.2.1         "Number of octets transmitted by the Adapter when running "
3431                       "Class 2 service."),
3432                      Counter ]
3433                  uint64 Class2OctetsTransmitted;
3434 karl  1.1           [Description (
3435 karl  1.1.2.1         "Number of frames received by the Adapter when running "
3436                       "Class 2 service."), 
3437                      Counter ]
3438                  uint64 Class2FramesReceived;
3439 karl  1.1           [Description (
3440 karl  1.1.2.1         "Number of frames transmitted by the Adapter when running "
3441                       "Class 2 service."),
3442                      Counter ]
3443                  uint64 Class2FramesTransmitted;
3444 karl  1.1           [Description (
3445 karl  1.1.2.1         "Number of frames discarded by the Adapter when running "
3446                       "Class 2 service."),
3447                      Counter ]
3448                  uint64 Class2DiscardFrames;
3449 karl  1.1           [Description (
3450 karl  1.1.2.1         "Number of octets received by the Adapter when running "
3451                       "Class 3 service."),
3452                      Counter ]
3453                  uint64 Class3OctetsReceived;
3454 karl  1.1           [Description (
3455 karl  1.1.2.1         "Number of octets transmitted by the Adapter when running "
3456                       "Class 3 service."),
3457                      Counter ]
3458                  uint64 Class3OctetsTransmitted;
3459 karl  1.1           [Description (
3460 karl  1.1.2.1         "Number of frames received by the Adapter when running "
3461                       "Class 3 service."), 
3462                      Counter ]
3463                  uint64 Class3FramesReceived;
3464 karl  1.1           [Description (
3465 karl  1.1.2.1         "Number of frames transmitted by the Adapter when running "
3466                       "Class 3 service."),
3467                      Counter ]
3468                  uint64 Class3FramesTransmitted;
3469 karl  1.1           [Description (
3470 karl  1.1.2.1         "Number of frames discarded by the Adapter when running "
3471                       "Class 3 service."),
3472                      Counter ]
3473                  uint64 Class3DiscardFrames;
3474 karl  1.1           [Description (
3475 karl  1.1.2.1         "Number of parity errors detected somewhere in the "
3476                       "data path."),
3477                      Counter ]
3478                  uint64 ParityErrors;
3479 karl  1.1           [Description (
3480 karl  1.1.2.1         "Number of Class 1 or 2 frames that are not ACKed "
3481                       "within the time indicated by ErrorDetectTimeout."), 
3482                      Counter ]
3483                  uint64 FrameTimeouts;
3484 karl  1.1           [Description (
3485 karl  1.1.2.1         "Number of times that the Device has been without a "
3486                       "buffer credit for a time longer than ErrorDetectTimeout."), 
3487                      Counter ]
3488                  uint64 BufferCreditErrors;
3489 karl  1.1           [Description (
3490 karl  1.1.2.1         "Number of times that the Device has been without an end "
3491                       "credit for a time longer than ErrorDetectTimeout."), 
3492                      Counter ]
3493                  uint64 EndCreditErrors;
3494                     [Description ("Number of frames received out of order."), 
3495                      Counter ]
3496                  uint64 OutOfOrderFramesReceived;
3497               };
3498               
3499               
3500               // ==================================================================
3501               // FibrePort 
3502               // ==================================================================
3503                  [Description (
3504                    "Capabilities and management of a Fibre Channel Port Device.") ]
3505               class CIM_FibrePort : CIM_LogicalPort {
3506 karl  1.1           [Description (
3507 karl  1.1.2.1         "An address value used to identify the source (S_ID) or "
3508                       "destination (D_ID) of a frame. The FC-SW standard includes a "
3509                       "table of special address identifier values and their "
3510                       "meanings. Consult the FC-SW documentation for additional "
3511                       "information.") ]
3512                  uint32 AddressIdentifier;
3513 karl  1.1           [Description (
3514 karl  1.1.2.1         "An array indicating the modes in which the Port can operate. "
3515                       "PortType values describe the role and behavior of the Fibre "
3516                       "Channel entity: \"N\" = Node Port, \"NL\" = Node Port "
3517                       "supporting FC arbitrated loop, \"E\" = Expansion Port "
3518                       "connecting fabric elements (for example, FC switches), "
3519                       "\"F\" = Fabric (element) Port, \"FL\" = Fabric (element) "
3520                       "Port supporting FC arbitrated loop, and \"B\" = Bridge "
3521                       "Port. PortTypes are defined in the ANSI X3 standards.\n\n"
3522                       "A particular mode may be listed multiple times in the "
3523                       "SupportedPortTypes array in order to define that multiple, "
3524                       "unique version levels are supported. Version information is "
3525                       "defined in the PortTypeVersions property. Note that each "
3526                       "entry of the SupportedPortTypes array is related to the entry "
3527                       "in PortTypeVersions that is located at the same index."), 
3528                      ArrayType ("Indexed"), 
3529                      Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", 
3530                              "FL", "B"}, 
3531                      ModelCorrespondence {"CIM_FibrePort.PortTypeVersions"} ]
3532                  uint16 SupportedPortTypes[];
3533 karl  1.1           [Description (
3534 karl  1.1.2.1         "Version information for each of the SupportedPortTypes. A "
3535                       "particular PortType (mode) may be listed multiple times in "
3536                       "the SupportedPortTypes array in order to define multiple, "
3537                       "unique version levels. Note that each entry of this array "
3538                       "is related to the entry in SupportedPortTypes that is "
3539                       "located at the same index."), 
3540                      ArrayType ("Indexed"), 
3541                      ModelCorrespondence {"CIM_FibrePort.SupportedPortTypes"} ]
3542                  string PortTypeVersions[];
3543 karl  1.1           [Description (
3544 karl  1.1.2.1         "The specific modes currently enabled for the Port. The "
3545                       "values are equal to, or a subset of the values in the Supported"
3546                       "PortTypes array."), 
3547                      Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", 
3548                              "FL", "B"}, 
3549                      ModelCorrespondence {"CIM_FibrePort.SupportedPortTypes", 
3550                       "CIM_FibrePort.EnabledVersions"} ]
3551                  uint16 EnabledPortTypes[];
3552 karl  1.1           [Description (
3553 karl  1.1.2.1         "Version information for each of the EnabledPortTypes. A "
3554                       "particular PortType (mode) may be listed multiple times in "
3555                       "the EnabledPortTypes array in order to define multiple, "
3556                       "unique version levels. Note that each entry of this array "
3557                       "is related to the entry in EnabledPortTypes that is located "
3558                       "at the same index."), 
3559                      ArrayType ("Indexed"), 
3560                      ModelCorrespondence {"CIM_FibrePort.EnabledPortTypes"} ]
3561                  string EnabledVersions[];
3562 karl  1.1           [Description (
3563 karl  1.1.2.1         "The specific mode in which the Port is currently running. The "
3564                       "value is one of the entries in the EnabledPortTypes array. The "
3565                       "current port type/mode is dependent on the fibre technology. "
3566                       "For example, in a public loop network, you might indicate a "
3567                       "port type of \"FL\" (value=6) or \"NL\" (value=2)."), 
3568                      Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", 
3569                              "FL", "B"}, 
3570                      ModelCorrespondence {"CIM_FibrePort.EnabledPortTypes", 
3571                       "CIM_FibrePort.CurrentVersion"} ]
3572                  uint16 CurrentPortType;
3573 karl  1.1           [Description (
3574 karl  1.1.2.1         "Version information for the CurrentPortType that is active."), 
3575                      ModelCorrespondence {"CIM_FibrePort.CurrentPortType"} ]
3576                  string CurrentVersion;
3577 karl  1.1           [Description (
3578 karl  1.1.2.1         "One or more address identifiers that may be recognized by "
3579                       "the Port, in addition to its port-specific identifier. "
3580                       "Multicast or hunt group addresses that are recognized by "
3581                       "the Port would be identified in this array.") ]
3582                  uint32 AliasAddresses[];
3583 karl  1.1           [Description (
3584 karl  1.1.2.1         "Number of times that signal is lost on the Port since last "
3585                       "reset of the Device."), 
3586                      Counter ]
3587                  uint64 LossOfSignalCounter;
3588 karl  1.1           [Description (
3589 karl  1.1.2.1         "Number of times that synchronization is lost on the Port "
3590                       "since last reset of the Device. Synchronization is assumed "
3591                       "lost after a timeout period identified by the Receiver"
3592                       "TransmitterTimeout property."), 
3593                      Counter ]
3594                  uint64 LossOfSyncCounter;
3595 karl  1.1           [Description (
3596 karl  1.1.2.1         "Number of times that the CRC in a frame does not match the "
3597                       "CRC computed by the receiver."), 
3598                      Counter ]
3599                  uint64 CRCErrors;
3600 karl  1.1           [Description (
3601 karl  1.1.2.1         "The number of transmission words that had an 8b10b code "
3602                       "violation in one or more of its characters, had a "
3603                       "K28.5 in its second, third or fourth character positions, "
3604                       "and/or was an ordered set that had an incorrect Beginning "
3605                       "Running Disparity."), 
3606                      Counter ]
3607                  uint64 InvalidTransmissionWords;
3608 karl  1.1           [Description (
3609 karl  1.1.2.1         "The number of frames received that were shorter than 28 "
3610                       "octets. The value of 28 is calculated based on an "
3611                       "assumption of 24 header bytes plus 4 CRC bytes. The "
3612                       "count does not include SOF/EOF bytes which are not data."), 
3613                      Counter ]
3614                  uint64 FramesTooShort;
3615 karl  1.1           [Description (
3616 karl  1.1.2.1         "The number of frames received that were longer than 2140 "
3617                       "octets. The value of 2140 is calculated based on an "
3618                       "assumption of 24 header bytes plus 4 CRC bytes and 2112 "
3619                       "bytes of payload."), 
3620                      Counter ]
3621                  uint64 FramesTooLong;
3622 karl  1.1           [Description (
3623 karl  1.1.2.1         "The number of times that a fill word could not be "
3624                       "inserted, when required. The Elasticity Buffer is defined "
3625                       "in FC-AL. This event might cause data corruption and may "
3626                       "indicate a configuration error or a device out of spec."), 
3627                      Counter ]
3628                  uint64 ElasticityBufferUnderruns;
3629 karl  1.1           [Description (
3630 karl  1.1.2.1         "The number of times that a fill word could not be deleted, "
3631                       "when required. The Elasticity Buffer is defined in FC-AL. "
3632                       "This event might cause data corruption and may indicate a "
3633                       "configuration error or a device out of spec."), 
3634                      Counter ]
3635                  uint64 ElasticityBufferOverruns;
3636 karl  1.1           [Description (
3637 karl  1.1.2.1         "Timeout value in milliseconds used to determine when "
3638                       "loss of synchronization has occurred. The typical default "
3639                       "is 100 msec."), 
3640                     Units ("Milliseconds") ]
3641                  uint64 ReceiverTransmitterTimeout;
3642 karl  1.1           [Description (
3643 karl  1.1.2.1         "Indication of whether the Port is currently bypassed "
3644                       "(value=2) or not (value=1). A value of 3 (\"Forced Insert\") "
3645                       "describes that the Port is forced active, when it would "
3646                       "otherwise be \"Bypassed\"."), 
3647                      Values {"Unknown", "Not Bypassed", "Bypassed", 
3648                              "Forced Insert"} ]
3649                  uint16 BypassedState;
3650                      [Description (
3651                        "The type of cabling as sensed by the Port. Not all FibrePorts "
3652                        "are capable of providing this information. In this case, a "
3653                        "value of 0, \"Unknown\", will be returned. Also, when single or "
3654                        "multi-mode fiber cabling can not be distinguished, the more "
3655                        "general value - 4, \"Fiber-optic\" - can be specified."), 
3656                      Values {"Unknown", "Other", "No Media", "Copper/Twinaxial", 
3657                              "Fiber-optic", "Fiber Single Mode", "Fiber Multimode"}] 
3658                  uint16 ConnectedMedia;
3659 karl  1.1     };
3660               
3661 karl  1.1.2.1 
3662 karl  1.1     // ===================================================================
3663 karl  1.1.2.1 // FibrePortOnFCAdapter
3664 karl  1.1     // ===================================================================
3665 karl  1.1.2.1    [Association, Description (
3666                    "FibrePortOnFCAdapter associates a FibrePort with a FibreChannel"
3667                    "Adapter. Cardinalities are defined as Max(1) to indicate the "
3668                    "intent and usage of the model - that an Adapter is synonymous "
3669                    "with its Port (connection point). Where you have a multi-Port "
3670                    "Adapter and more than one Port may be active at a time, "
3671                    "individual Adapters with individual operating data and "
3672                    "characteristics really exist. If you have multiple connection "
3673                    "points, but they exist only to provide multiple physical form "
3674                    "factors (only one connection may be active at a time), then one "
3675                    "FibreChannelAdapter and one FibrePort (the active one) exist. "
3676                    "On the hardware side, the realizations of these entities "
3677                    "in PhysicalElements may be as a CIM_Card (for example) with "
3678                    "multiple CIM_PhysicalConnectors.") ]
3679               class CIM_FibrePortOnFCAdapter : CIM_PortOnDevice {
3680                     [Override ("Antecedent"), Max (1), 
3681                      Description (
3682                       "The FibreChannelAdapter that includes the Port.") ]
3683                  CIM_FibreChannelAdapter REF Antecedent;
3684                     [Override ("Dependent"), Max (1), 
3685                      Description ("The FibrePort on the Adapter.") ]
3686 karl  1.1.2.1    CIM_FibrePort REF Dependent;
3687               };
3688               
3689               
3690               // ==================================================================
3691               // FibrePortActiveLogin
3692               // ==================================================================
3693                  [Association, Description (
3694                    "FibrePortActiveLogin indicates that two FibrePorts are "
3695                    "connected via a login and have negotiated their Class Of "
3696                    "Service, frame size and other link characteristics, as "
3697                    "specified by an instance of this class.\n"
3698                    "The class' key is composed of the login originator's and "
3699                    "responder's keys plus the Class Of Service. This combination "
3700                    "is unique and prevents subclassing FibrePortActiveLogin "
3701                    "from its reasonable superclass, DeviceConnection.") ]
3702               class CIM_FibrePortActiveLogin  {
3703                     [Key, Description ("The originator of the login.") ]
3704                  CIM_FibrePort REF LoginOriginator;
3705                     [Key, Description ("The responder to the login.") ]
3706                  CIM_FibrePort REF LoginResponder;
3707 karl  1.1.2.1       [Key, Description (
3708                       "The Fibre Channel Class of Service that is currently running "
3709                       "between the Ports. Since two Ports can be simultaneously "
3710                       "connected at different Classes of Service, this property had "
3711                       "to be part of the object's key and therefore, an instance's "
3712                       "identity."), 
3713                      Values {"Unknown", "1", "2", "3", "4", "6", "F"}, 
3714                      ModelCorrespondence {"CIM_FibreChannelAdapter.SupportedCOS"},
3715                      MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.5"}  ]
3716                  uint16 NegotiatedCOS;
3717 karl  1.1           [Description (
3718 karl  1.1.2.1         "The Fibre Channel frame size, in bytes, that is currently "
3719                       "negotiated between the two Ports."), 
3720                      Units ("Bytes") ]
3721                  uint64 NegotiatedFrameSize;
3722 karl  1.1           [Description (
3723 karl  1.1.2.1         "The speed for communications that is currently negotiated "
3724                       "between the two Ports. Speed is specified in bits per second. "
3725                       "If this information is not available, the property should be "
3726                       "set to 0."), 
3727                      Units ("Bits per Second") ]
3728                  uint64 NegotiatedSpeed;
3729 karl  1.1           [Description (
3730 karl  1.1.2.1         "Acknowledgement model negotiated during Port login. For "
3731                       "example, ACK-1 indicates that each frame should be "
3732                       "acknowledged."), 
3733                      Values {"Unknown", "ACK-0", "ACK-1", "ACK-N"},
3734                      MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.6"} ]
3735                  uint16 ACKModel;
3736 karl  1.1           [Description (
3737 karl  1.1.2.1         "The buffer-to-buffer model negotiated during Port login. "
3738                       "Either the model defined by the FC-PH standard is used "
3739                       "(value=1, \"Regular\"), or an \"Alternate\" model is "
3740                       "negotiated."), 
3741                      Values {"Unknown", "Regular", "Alternate"} ]
3742                  uint16 BufferToBufferModel;
3743 karl  1.1           [Description (
3744 karl  1.1.2.1         "OriginatorBufferCredit reflects the buffer credit of the "
3745                       "Port defined as the LoginOriginator. It is the number of "
3746                       "frame buffers made available BY the originating Port, TO "
3747                       "the responder Port. Buffer credits are used in point to "
3748                       "point connections, when an NL-Local Port is logged into "
3749                       "another NL-Local Port, and when Nx Ports are logged into "
3750                       "Fx Ports. In other scenarios, this value is undefined."),
3751                       MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.3"}  ]
3752                  uint64 OriginatorBufferCredit;
3753 karl  1.1           [Description (
3754 karl  1.1.2.1         "ResponderBufferCredit reflects the buffer credit of the "
3755                       "Port defined as the LoginResponder. It is the number of "
3756                       "frame buffers made available BY the responder Port, TO "
3757                       "the originating Port. Buffer credits are used in point to "
3758                       "point connections, when an NL-Local Port is logged into "
3759                       "another NL-Local Port, and when Nx Ports are logged into "
3760                       "Fx Ports. In other scenarios, this value is undefined."),
3761                       MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.3"}  ]
3762                  uint64 ResponderBufferCredit;
3763 karl  1.1           [Description (
3764 karl  1.1.2.1         "OriginatorEndCredit reflects the end credit of the Port "
3765                       "defined as the LoginOriginator. It is the number of frame "
3766                       "buffers made available BY the originating Port, TO the "
3767                       "responder Port. End credits are used in point to point "
3768                       "connections, when an NL-Local Port is logged into another "
3769                       "NL-Local Port, and when Nx Ports are logged into remote "
3770                       "Nx Ports. In other scenarios, this value is undefined."),
3771                       MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.2"}  ]
3772                  uint64 OriginatorEndCredit;
3773 karl  1.1           [Description (
3774 karl  1.1.2.1         "ResponderEndCredit reflects the end credit of the Port "
3775                       "defined as the LoginResponder. It is the number of frame "
3776                       "buffers made available BY the responder Port, TO the "
3777                       "originating Port. End credits are used in point to point "
3778                       "connections, when an NL-Local Port is logged into another "
3779                       "NL-Local Port, and when Nx Ports are logged into remote "
3780                       "Nx Ports. In other scenarios, this value is undefined."),
3781                       MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.2"}  ]
3782                  uint64 ResponderEndCredit;
3783 karl  1.1     };
3784               
3785 karl  1.1.2.1 
3786 karl  1.1     // ===================================================================
3787 karl  1.1.2.1 // Controller
3788 karl  1.1     // ===================================================================
3789 karl  1.1.2.1    [Abstract, Description (
3790                    "Controller is a superclass for grouping the miscellaneous "
3791                    "control-related Devices that exist. Examples of Controllers "
3792                    "are SCSIControllers, USBControllers, SerialControllers, ... "
3793                    "The Controller class is an abstraction for Devices with a "
3794                    "single protocol stack, which exist primarily for communication "
3795                    "to, and control or reset of downstream (ControlledBy) Devices.") ] 
3796               class CIM_Controller : CIM_LogicalDevice {
3797                     [Description ("Time of last reset of the Controller.") ]
3798                  datetime TimeOfLastReset;
3799                     [Description (
3800                       "The protocol used by the Controller to access 'controlled' "
3801                       "Devices."),
3802                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
3803                                "11", "12", "13", "14", "15", "16", "17", "18", "19",
3804                                "20", "21", "22", "23", "24", "25", "26", "27", "28",
3805                                "29", "30", "31", "32", "33", "34", "35", "36", "37",
3806                                "38", "39", "40", "41", "42", "43", "44", "45", "46", 
3807                                "47"},
3808                      Values {"Other", "Unknown", "EISA", "ISA", "PCI", "ATA/ATAPI",
3809                              "Flexible Diskette", "1496", "SCSI Parallel Interface",
3810 karl  1.1.2.1                "SCSI Fibre Channel Protocol", "SCSI Serial Bus Protocol",
3811                              "SCSI Serial Bus Protocol-2 (1394)", 
3812                              "SCSI Serial Storage Architecture", "VESA", "PCMCIA",        
3813                              "Universal Serial Bus", "Parallel Protocol", "ESCON",
3814                              "Diagnostic", "I2C", "Power", "HIPPI", "MultiBus", "VME",
3815                              "IPI", "IEEE-488", "RS232", "IEEE 802.3 10BASE5",
3816                              "IEEE 802.3 10BASE2", "IEEE 802.3 1BASE5",
3817                              "IEEE 802.3 10BROAD36", "IEEE 802.3 100BASEVG",
3818                              "IEEE 802.5 Token-Ring", "ANSI X3T9.5 FDDI", "MCA", 
3819                              "ESDI", "IDE", "CMD", "ST506", "DSSI", "QIC2", 
3820                              "Enhanced ATA/IDE", "AGP", "TWIRP (two-way infrared)", 
3821                              "FIR (fast infrared)", "SIR (serial infrared)", 
3822                              "IrBus"}, 
3823                      MappingStrings {"MIF.DMTF|Bus Port|003",
3824                       "MIF.DMTF|Disks|003.3"},
3825                      ModelCorrespondence {"CIM_Controller.ProtocolDescription"} ]
3826                  uint16 ProtocolSupported;
3827                     [Description (
3828                       "Maximum number of directly addressable entities supported "
3829                       "by this Controller.  A value of 0 should be used if the "
3830                       "number is unknown or unlimited."),
3831 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Bus Port|003"} ]
3832                  uint32 MaxNumberControlled;  
3833                     [Description (
3834                       "A free form string providing more information related "
3835                       "to the ProtocolSupported by the Controller."),
3836                      ModelCorrespondence {"CIM_Controller.ProtocolSupported"},
3837                      MappingStrings {"MIF.DMTF|Bus Port|003"} ]
3838                   string ProtocolDescription;
3839 karl  1.1     };
3840               
3841 karl  1.1.2.1 
3842 karl  1.1     // ===================================================================
3843 karl  1.1.2.1 // ControlledBy
3844 karl  1.1     // ===================================================================
3845 karl  1.1.2.1    [Association, Description (
3846                    "The ControlledBy relationship indicates which Devices are "
3847                    "commanded by or accessed through the Controller LogicalDevice.") ] 
3848               class CIM_ControlledBy : CIM_DeviceConnection {
3849                     [Override ("Antecedent"),
3850                      Description ("The Controller.") ]
3851                  CIM_Controller REF Antecedent;
3852                     [Override ("Dependent"),
3853                      Description ("The controlled Device.") ]
3854                  CIM_LogicalDevice REF Dependent;
3855 karl  1.1           [Description (
3856 karl  1.1.2.1         "The State property indicates whether the Controller is "
3857                       "actively commanding or accessing the Device (value=1) or "
3858                       "not (value=2).  Also, the value, \"Unknown\" (0), can be "
3859                       "defined. This information is necessary when a LogicalDevice "
3860                       "can be commanded by, or accessed through, multiple "
3861                       "Controllers."),
3862                      Values {"Unknown", "Active", "Inactive"} ]
3863                  uint16 AccessState;
3864 karl  1.1           [Description (
3865 karl  1.1.2.1         "The time that the downstream Device was last reset by "
3866                       "the Controller.") ]
3867                  datetime TimeOfDeviceReset;
3868 karl  1.1           [Description (
3869 karl  1.1.2.1         "Number of hard resets issued by the Controller. A hard reset "
3870                       "returns the Device to its initialization or 'boot-up' state. "
3871                       "All internal Device state information and data are lost."), 
3872                      Counter ]
3873                  uint32 NumberOfHardResets;
3874                     [Description (
3875                       "Number of soft resets issued by the Controller. A soft "
3876                       "reset does not completely clear current Device state and/or "
3877                       "data. Exact semantics are dependent on the Device, and on "
3878                       "the protocols and mechanisms used to communicate to it."), 
3879                      Counter ]
3880                  uint32 NumberOfSoftResets;
3881 karl  1.1     };
3882               
3883 karl  1.1.2.1 
3884 karl  1.1     // ===================================================================
3885 karl  1.1.2.1 // SerialController
3886 karl  1.1     // ===================================================================
3887 karl  1.1.2.1    [Description (
3888                    "Capabilities and management of the SerialController.") ]
3889               class CIM_SerialController : CIM_Controller {
3890 karl  1.1           [Description (
3891 karl  1.1.2.1         "The Capabilities property defines chip level compatibility "
3892                       "for the SerialController.  Therefore, this property describes "
3893                       "the buffering and other capabilities of the SerialController, "
3894                       "that may be inherent in the chip hardware. The property is "
3895                       "an enumerated integer."),
3896                      ArrayType ("Indexed"),
3897                      ValueMap {"1", "2", "3", "4", "5", "6", "160", "161"},      
3898                      Values {"Other", "Unknown", "XT/AT Compatible", 
3899                              "16450 Compatible", "16550 Compatible", 
3900                              "16550A Compatible", "8251 Compatible",
3901                              "8251FIFO Compatible"},
3902                      MappingStrings {"MIF.DMTF|Serial Ports|004.7"},
3903                      ModelCorrespondence {
3904                       "CIM_SerialController.CapabilityDescriptions"} ]
3905                  uint16 Capabilities[];
3906                     [Description (
3907                       "An array of free-form strings providing more detailed "
3908                       "explanations for any of the SerialController features "
3909                       "indicated in the Capabilities array. Note, each entry of "
3910                       "this array is related to the entry in the Capabilities "
3911                       "array that is located at the same index."),
3912 karl  1.1.2.1        ArrayType ("Indexed"),
3913                      ModelCorrespondence {"CIM_SerialController.Capabilities"} ]
3914                  string CapabilityDescriptions[];
3915                     [Description (
3916                       "Maximum baud rate in Bits per Second supported by the "
3917                       "SerialController."),
3918                      Units ("Bits per Second"),
3919                      MappingStrings {"MIF.DMTF|Serial Ports|004.6"} ]
3920                  uint32 MaxBaudRate; 
3921                     [Description (
3922                       "An enumeration indicating the operational security for the "
3923                       "Controller. For example, information that the Device's "
3924                       "external interface is locked out (value=4) or \"Boot "
3925                       "Bypass\" (value=6) can be described using this property."), 
3926                      ValueMap {"1", "2", "3", "4", "5", "6"}, 
3927                      Values {"Other", "Unknown", "None", 
3928                              "External Interface Locked Out", 
3929                              "External Interface Enabled", "Boot Bypass"}, 
3930                      MappingStrings {"MIF.DMTF|Serial Ports|004.9"} ]
3931                  uint16 Security;
3932 karl  1.1     };
3933               
3934 karl  1.1.2.1 
3935 karl  1.1     // ===================================================================
3936 karl  1.1.2.1 // SerialInterface
3937 karl  1.1     // ===================================================================
3938 karl  1.1.2.1    [Association, Description (
3939                    "SerialInterface is a ControlledBy relationship indicating "
3940                    "which Devices are accessed through the SerialController and "
3941                    "the characteristics of this access.") ] 
3942               class CIM_SerialInterface : CIM_ControlledBy {
3943                     [Override ("Antecedent"),  Description (
3944                       "The SerialController.") ]
3945                  CIM_SerialController REF Antecedent;  
3946                     [Override ("NegotiatedDataWidth"), Description (
3947                       "For the SerialInterface, NegotiatedDataWidth is the number "
3948                       "of data bits to be transmitted, without stop bits or parity."),
3949                      Units ("Bits") ]
3950                  uint32 NegotiatedDataWidth;
3951                     [Description ("Number of stop bits to be transmitted."),
3952                      Units ("Bits") ]     
3953                  uint16 NumberOfStopBits;
3954 karl  1.1           [Description (
3955 karl  1.1.2.1         "Information on the parity setting for transmitted data. "
3956                       "No parity (value=1), even (2) or odd (3) can be specified."),
3957                      Values {"Unknown", "None", "Even", "Odd"} ]
3958                  uint16 ParityInfo;
3959                     [Description (
3960                       "An integer enumeration indicating the flow control "
3961                       "(Xon-Xoff and/or RTS/CTS) for transmitted data."),
3962                      Values {"Unknown", "Not Supported", "None", "XonXoff", 
3963                              "RTS/CTS", "Both XonXoff and RTS/CTS"} ]
3964                  uint16 FlowControlInfo;
3965 karl  1.1     };
3966               
3967 karl  1.1.2.1 
3968 karl  1.1     // ===================================================================
3969 karl  1.1.2.1 // SCSIController
3970 karl  1.1     // ===================================================================
3971 karl  1.1.2.1    [Description (
3972                    "Capabilities and management of the SCSIController.") ] 
3973               class CIM_SCSIController : CIM_Controller   {
3974                     [Description (
3975                       "An integer enumeration indicating whether or not the "
3976                       "SCSIController provides redundancy or protection against "
3977                       "device failures."),
3978                      ValueMap {"1", "2", "3", "4", "5", "6"},
3979                      Values {"Other", "Unknown", "Unprotected", "Protected", 
3980                              "Protected through SCC (SCSI-3 Controller Command)",
3981                              "Protected through SCC-2 (SCSI-3 Controller Command)"},
3982                      MappingStrings {"MIF.DMTF|Storage Controller|001.3"} ]
3983                  uint16 ProtectionManagement;
3984                     [Description (
3985                       "Maximum data width (in bits) supported by the SCSI"
3986                       "Controller."),
3987                      Units ("Bits"), 
3988                      MappingStrings {"MIF.DMTF|Bus Port|003"} ]
3989                  uint32 MaxDataWidth;
3990                     [Description (
3991                       "Maximum transfer rate (in Bits per Second) supported by the "
3992 karl  1.1.2.1         "SCSIController."),
3993                      Units ("Bits per Second"), 
3994                      MappingStrings {"MIF.DMTF|Bus Port|003"} ]
3995                  uint64 MaxTransferRate;
3996                     [Description (
3997                       "Number of SCSIController timeouts that have occurred since "
3998                       "the TimeOfLastReset."), 
3999                      Counter ]  
4000                  uint32 ControllerTimeouts;
4001                     [Description (
4002                       "Signal capabilities that can be supported by the SCSI"
4003                       "Controller. For example, the Controller may support "
4004                       "\"Single Ended\" and \"Differential\". In this case, the "
4005                       "values 3 and 4 would be written to the Signal"
4006                       "Capabilities array."), 
4007                      ValueMap {"1", "2", "3", "4", "5", "6"}, 
4008                      Values {"Other", "Unknown", "Single Ended", "Differential", 
4009                              "Low Voltage Differential", "Optical"}, 
4010                      ModelCorrespondence {"CIM_SCSIInterface.SCSISignal"} ]
4011                  uint16 SignalCapabilities[];
4012 karl  1.1     };
4013               
4014 karl  1.1.2.1 
4015 karl  1.1     // ===================================================================
4016 karl  1.1.2.1 // SCSIInterface
4017 karl  1.1     // ===================================================================
4018 karl  1.1.2.1    [Association, Description (
4019                    "SCSIInterface is a ControlledBy relationship indicating "
4020                    "which Devices are accessed through a SCSIController and "
4021                    "the characteristics of this access.") ] 
4022               class CIM_SCSIInterface : CIM_ControlledBy {
4023                     [Override ("Antecedent"),
4024                      Description ("The SCSIController.") ]
4025                  CIM_SCSIController REF Antecedent;  
4026 karl  1.1           [Description (
4027 karl  1.1.2.1         "Number of SCSI timeouts that have occurred since last hard "
4028                       "or soft reset related to the controlled Device. The time of "
4029                       "last reset is indicated in the TimeOfDeviceReset property, "
4030                       "inherited from the ControlledBy association."), 
4031                      Counter ]
4032                  uint32 SCSITimeouts;
4033                     [Description (
4034                       "Number of SCSI retries that have occurred since last hard "
4035                       "or soft reset related to the controlled Device. The time of "
4036                       "last reset is indicated in the TimeOfDeviceReset property, "
4037                       "inherited from the ControlledBy association."), 
4038                      Counter,
4039                      MappingStrings {"MIF.DMTF|Mass Storage Statistics|001.18"}  ]
4040                  uint32 SCSIRetries;
4041                     [Description ("The SCSI Initiator ID."), 
4042                      MappingStrings {"MIF.DMTF|Bus Port|003"} ]
4043                  uint32 InitiatorId;
4044                     [Description ("The SCSI Target ID."), 
4045                      MappingStrings {"MIF.DMTF|Bus Port|003"} ]
4046                  uint32 TargetId;
4047                     [Description ("The SCSI Target LUN."), 
4048 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Storage Devices|001.4"} ]
4049                  uint64 TargetLUN;
4050                     [Description (
4051                       "SCSIReservation indicates the type of SCSI reservation "
4052                       "that currently exists between the source and destination."), 
4053                      Values {"Unknown", "None", "Simple", "Persistent"} ]
4054                  uint16 SCSIReservation;
4055                     [Description (
4056                       "The SCSI signal characteristics being used for this "
4057                       "connection. The value listed here must also be listed in "
4058                       "the SCSIController's SignalCapabilities field."), 
4059                      ValueMap {"1", "2", "3", "4", "5", "6"}, 
4060                      Values {"Other", "Unknown", "Single Ended", "Differential", 
4061                              "Low Voltage Differential", "Optical"}, 
4062                      MappingStrings {"MIF.DMTF|Bus Port|003"}, 
4063                      ModelCorrespondence {"CIM_SCSIController.SignalCapabilities"} ]
4064                  uint16 SCSISignal;
4065                     [Description (
4066                       "Maximum number of Command Descriptor Blocks (CDBs) that "
4067                       "can be supported by the target. This data can not be "
4068                       "obtained under all circumstances.") ]
4069 karl  1.1.2.1    uint32 MaxQueueDepth;
4070                     [Description (
4071                       "The maximum number of concurrent Command Descriptor Blocks "
4072                       "(CDBs) that the initiator will send to the target. This "
4073                       "value should never be greater than MaxQueueDepth.") ]
4074                  uint32 QueueDepthLimit;
4075 karl  1.1     };
4076               
4077 karl  1.1.2.1 
4078 karl  1.1     // ===================================================================
4079 karl  1.1.2.1 // VideoController
4080 karl  1.1     // ===================================================================
4081 karl  1.1.2.1    [Description (
4082                    "Capabilities and management of the VideoController.") ]
4083               class CIM_VideoController : CIM_Controller   {
4084               // Override is used to define the MappingString qualifier 
4085                     [Override ("Description"), 
4086                      MappingStrings {"MIF.DMTF|Video|004.18"} ]
4087                  string Description;
4088                     [Description (
4089                       "A free-form string describing the video processor/Controller.") ]     
4090                  string VideoProcessor;
4091                     [Description (
4092                       "An integer enumeration indicating the type of video memory."),
4093                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
4094                                "11", "12", "13"},
4095                      Values {"Other", "Unknown", "VRAM", "DRAM", "SRAM", "WRAM",
4096                              "EDO RAM", "Burst Synchronous DRAM", 
4097                              "Pipelined Burst SRAM", "CDRAM", "3DRAM", "SDRAM",
4098                              "SGRAM"},
4099                      MappingStrings {"MIF.DMTF|Video|004.6"} ]
4100                  uint16 VideoMemoryType;
4101                     [Description (
4102 karl  1.1.2.1         "Number of video pages supported given the current resolutions "
4103                       "and available memory.") ]  
4104                  uint32 NumberOfVideoPages;
4105                     [Description ("Maximum amount of memory supported in bytes."),
4106                      Units ("Bytes") ]
4107                  uint32 MaxMemorySupported;
4108                     [Description (
4109                       "An array of integers indicating the graphics and 3D "
4110                       "capabilities of the VideoController."),
4111                      Values {"Unknown", "Other", "Graphics Accelerator",
4112                              "3D Accelerator"},
4113                    ModelCorrespondence {
4114                     "CIM_VideoController.CapabilityDescriptions"} ]
4115                  uint16 AcceleratorCapabilities[];
4116                     [Description (
4117                       "An array of free-form strings providing more detailed "
4118                       "explanations for any of the video Accelerator features "
4119                       "indicated in the Capabilities array. Note, each entry "
4120                       "of this array is related to the entry in the Capabilities "
4121                       "array that is located at the same index."),
4122                      ArrayType ("Indexed"),
4123 karl  1.1.2.1        ModelCorrespondence {
4124                       "CIM_VideoController.AcceleratorCapabilities"} ]
4125                  string CapabilityDescriptions[];
4126                     [Description ("The number of bits used to display each pixel."), 
4127                      Units ("Bits"),
4128                      MappingStrings {"MIF.DMTF|Video|004.12"} ]
4129                  uint32 CurrentBitsPerPixel;
4130                     [Description ("Current number of horizontal pixels."),
4131                      Units ("Pixels"),
4132                      MappingStrings {"MIF.DMTF|Video|004.11"} ]
4133                  uint32 CurrentHorizontalResolution;
4134                     [Description ("Current number of vertical pixels."),
4135                      Units ("Pixels"),
4136                      MappingStrings {"MIF.DMTF|Video|004.10"} ]
4137                  uint32 CurrentVerticalResolution;
4138                     [Description (
4139                       "Maximum refresh rate of the VideoController in Hertz."),
4140                      Units ("Hertz"),
4141                      MappingStrings {"MIF.DMTF|Video|004.5"} ]
4142                  uint32 MaxRefreshRate;
4143                     [Description (
4144 karl  1.1.2.1         "Minimum refresh rate of the Video Controller in Hertz."),
4145                      Units ("Hertz"),
4146                      MappingStrings {"MIF.DMTF|Video|004.4"} ]
4147                  uint32 MinRefreshRate;
4148                     [Description ("Current refresh rate in Hertz."),
4149                      Units ("Hertz"),
4150                      MappingStrings {"MIF.DMTF|Video|004.15"} ]
4151                  uint32 CurrentRefreshRate;
4152                     [Description (
4153                       "Current scan mode. \"Interlaced\" (value=3) or "
4154                       "\"Non Interlaced\" (4) can be defined using this property."),
4155                      ValueMap {"1", "2", "3", "4"},
4156                      Values {"Other", "Unknown", "Interlaced", "Non Interlaced"},
4157                      MappingStrings {"MIF.DMTF|Video|004.8"} ]
4158                  uint16 CurrentScanMode;
4159                     [Description (
4160                       "If in character mode, number of rows for this Video"
4161                       "Controller. Otherwise, enter 0."),
4162                      MappingStrings {"MIF.DMTF|Video|004.13"} ]
4163                  uint32 CurrentNumberOfRows;
4164                     [Description (
4165 karl  1.1.2.1         "If in character mode, number of columns for this "
4166                       "VideoController. Otherwise, enter 0."),
4167                      MappingStrings {"MIF.DMTF|Video|004.14"} ]
4168                  uint32 CurrentNumberOfColumns;
4169                     [Description (
4170                       "Number of colors supported at the current resolutions.") ]
4171                  uint64 CurrentNumberOfColors;
4172               }; 
4173               
4174 karl  1.1     
4175               // ===================================================================
4176 karl  1.1.2.1 // PCVideoController
4177 karl  1.1     // ===================================================================
4178 karl  1.1.2.1    [Description (
4179                    "Capabilities and management of a PCVideoController, a subtype "
4180                    "of VideoController.") ] 
4181               class CIM_PCVideoController : CIM_VideoController   {
4182                     [Description (
4183                       "The video architecture.  For example, VGA (value=5) or "
4184                       "PC-98 (160) may be specified."),
4185                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
4186                                "11", "12", "160"},
4187                      Values {"Other", "Unknown", "CGA", "EGA", "VGA", "SVGA", "MDA",
4188                              "HGC", "MCGA", "8514A", "XGA", "Linear Frame Buffer",
4189                              "PC-98"},
4190                      MappingStrings {"MIF.DMTF|Video|004.2"} ]
4191                  uint16 VideoArchitecture;
4192                     [Description ("Current video mode."),
4193                      MappingStrings {"MIF.DMTF|Video|004.3"} ]
4194                  uint16 VideoMode;
4195                     [Description (
4196                       "Current number of color planes.  If this value is not "
4197                       "applicable for the current video configuration, enter 0.") ]
4198                  uint16 NumberOfColorPlanes;
4199 karl  1.1     };
4200               
4201 karl  1.1.2.1 
4202 karl  1.1     // ===================================================================
4203 karl  1.1.2.1 // AGPVideoController
4204 karl  1.1     // ===================================================================
4205 karl  1.1.2.1    [Description (
4206                    "Capabilities and management of an AGPVideoController.") ]
4207               class CIM_AGPVideoController: CIM_VideoController {
4208 karl  1.1           [Description (
4209 karl  1.1.2.1         "Capabilities of the AGP Graphics Controller. For example, "
4210                       "the Device may support multiple monitors, PCI Mastering and "
4211                       "large memory addresses. In this case, the values 3, 4 and 6 "
4212                       "would be written to the Capabilities array."), 
4213                      ArrayType("Indexed"), 
4214                      Values { "Unknown", "Other", "PCI Fast Write", 
4215                               "MultiMonitor Support", "PCI Mastering", 
4216                               "Second Monochrome Adapter Support", 
4217                               "Large Memory Address Support"}, 
4218                      ModelCorrespondence{
4219                       "CIM_AGPVideoController.CapabilityDescriptions"} ]
4220 karl  1.1        uint16 Capabilities[];
4221                     [Description (
4222 karl  1.1.2.1         "An array of free form strings providing more detailed "
4223                       "explanations for any of the entries in the Capabilities "
4224                       "array. Note, each entry of this array is related to the "
4225                       "entry in the Capabilities array that is located at the "
4226                       "same index."), 
4227                      ArrayType("Indexed"), 
4228                      ModelCorrespondence{"CIM_AGPVideoController.Capabilities"} ]
4229 karl  1.1        string CapabilityDescriptions[];
4230 karl  1.1.2.1       [Description ("Size of the non-local video memory in KB."), 
4231                      Units ("KiloBytes") ]
4232                  uint32 NonlocalVideoMemorySize;
4233 karl  1.1           [Description (
4234 karl  1.1.2.1         "Width of the internal bus in the graphics Controller, in bits."), 
4235                      Units ("Bits") ]
4236                  uint32 LocalBusWidth;
4237 karl  1.1           [Description (
4238 karl  1.1.2.1         "An integer enumeration indicating the usage model of the "
4239                       "graphics Controller. Usage model indicates how the Controller "
4240                       "does manipulations of graphics surfaces, textures, etc. in "
4241                       "memory. DMA indicates that the graphics Controller brings "
4242                       "structures from the system memory to its local memory to "
4243                       "perform needed manipulations or renderings. Execute specifies "
4244                       "that the graphics Controller can directly access a specified "
4245                       "region in main memory (called the graphics aperture) using GART "
4246                       "- Graphics Aperture Remapping Table. It then performs "
4247                       "manipulations in that range as if that whole graphics aperture "
4248                       "were part of its local memory. A value of \"Both\" DMA and "
4249                       "Execute models may also be specified."), 
4250                      Values {"Unknown", "Other", "Execute", "DMA", "Both"} ]
4251                  uint16 UsageModel;
4252                     [Description (
4253                       "An integer enumeration indicating the data transfer rate of "
4254                       "the graphics Controller."), 
4255                      Values {"Unknown", "Other", "1X", "2X", "4X"} ]
4256                  uint16 DataTransferRate;
4257                     [Description (
4258                       "An integer enumeration indicating the addressing mode of the "
4259 karl  1.1.2.1         "graphics Controller."), 
4260                      Values {"Unknown", "Other", "Sideband", "Pipeline"} ]
4261                  uint16 AddressingMode;
4262                     [Description (
4263                       "The maximum number of AGP Transaction requests that the master "
4264                       "(AGP Graphics Controller) is allowed to enqueue into the target.") ]
4265                  uint32 MaximumAGPCommandQueuePath;
4266                     [Description (
4267                       "The number of AGP Transaction that the core logic (chipset) can "
4268                       "accept into its transaction request queue from the Controller.") ]
4269                  uint32 MaxNumberOfPipelinedAGPTransactions;
4270                     [Description ("Size of the graphics aperture in KB."), 
4271                      Units ("KiloBytes") ]
4272                  uint32 GraphicsApertureSize;
4273                     [Description (
4274                       "A string containing the AGP specification version to which this "
4275                       "graphics Controller conforms.") ]
4276                  string AGPSpecificationVersionConformance;
4277 karl  1.1     };
4278               
4279 karl  1.1.2.1 
4280 karl  1.1     // ===================================================================
4281 karl  1.1.2.1 // ParallelController
4282 karl  1.1     // ===================================================================
4283 karl  1.1.2.1    [Description (
4284                    "Capabilities and management of the ParallelController.") ]
4285               class CIM_ParallelController : CIM_Controller {
4286 karl  1.1           [Description (
4287 karl  1.1.2.1         "Set to true if the ParallelController supports DMA."),
4288                      MappingStrings {"MIF.DMTF|Parallel Ports|003.7"} ]     
4289                  boolean DMASupport;
4290                     [Description (
4291                       "An integer enumeration indicating the capabilities of the "
4292                       "ParallelController."),
4293                      ArrayType ("Indexed"),
4294                      Values {"Unknown", "Other", "XT/AT Compatible", 
4295                              "PS/2 Compatible", "ECP", "EPP", "PC-98", 
4296                              "PC-98-Hireso", "PC-H98"},
4297                      MappingStrings {"MIF.DMTF|Parallel Ports|003.8"},
4298 karl  1.1            ModelCorrespondence {
4299 karl  1.1.2.1         "CIM_ParallelController.CapabilityDescriptions"} ]
4300 karl  1.1        uint16 Capabilities[];
4301                     [Description (
4302                       "An array of free-form strings providing more detailed "
4303 karl  1.1.2.1         "explanations for any of the ParallelController features "
4304 karl  1.1             "indicated in the Capabilities array. Note, each entry of "
4305 karl  1.1.2.1         "this array is related to the entry in the Capabilities "
4306                       "array that is located at the same index."),
4307                      ArrayType ("Indexed"),
4308                      ModelCorrespondence {"CIM_ParallelController.Capabilities"} ]
4309 karl  1.1        string CapabilityDescriptions[];
4310                     [Description (
4311 karl  1.1.2.1         "An enumeration indicating the operational security for the "
4312                       "Controller. For example, information that the Device's "
4313                       "external interface is locked out (value=4) or \"Boot "
4314                       "Bypass\" (value=6) can be described using this property."), 
4315                      ValueMap {"1", "2", "3", "4", "5", "6"}, 
4316                      Values {"Other", "Unknown", "None", 
4317                              "External Interface Locked Out", 
4318                              "External Interface Enabled", "Boot Bypass"}, 
4319                      MappingStrings {"MIF.DMTF|Parallel Ports|003.10"} ]
4320                  uint16 Security;
4321               };
4322               
4323               
4324               // ===================================================================
4325               // SSAController 
4326               // ===================================================================
4327                  [Description (
4328                    "Capabilities and management of an SSAController (Serial "
4329                    "Storage Architecture).") ]
4330               class CIM_SSAController : CIM_Controller {
4331               };
4332 karl  1.1.2.1 
4333               
4334               
4335               // ===================================================================
4336               // ManagementController
4337               // ===================================================================
4338                  [Description (
4339                    "Capabilities and managment of a ManagementController.  An I2C "
4340                    "microcontroller is a type of ManagementController.") ] 
4341               class CIM_ManagementController : CIM_Controller {
4342               };
4343               
4344               
4345               // ===================================================================
4346               // IDEController 
4347               // ===================================================================
4348                  [Description (
4349                    "Capabilities and management of an IDEController.") ]
4350               class CIM_IDEController : CIM_Controller {
4351               };
4352               
4353 karl  1.1.2.1 
4354               // ===================================================================
4355               // InfraredController 
4356               // ===================================================================
4357                  [Description (
4358                    "Capabilities and management of an InfraredController.") ]
4359               class CIM_InfraredController : CIM_Controller {
4360               };
4361               
4362               
4363               // ===================================================================
4364               // PCIController
4365               // ===================================================================
4366                  [Description (
4367                    "PCIController is a superclass for the PCIBridge and PCIDevice "
4368                    "classes. These classes model adapters and bridges on a PCI "
4369                    "bus. The properties in PCIController and its subclasses are "
4370                    "defined in the various PCI Specifications published by the "
4371                    "PCI SIG.") ]
4372               class CIM_PCIController : CIM_Controller {
4373 karl  1.1           [Description (
4374 karl  1.1.2.1         "Current contents of the register that provides basic "
4375                       "control over the device's ability to respond "
4376                       "to, and/or perform PCI accesses.") ]
4377                  uint16 CommandRegister;
4378 karl  1.1           [Description (
4379 karl  1.1.2.1         "An array of integers indicating controller capabilities. "
4380                       "Information such as \"Supports 66MHz\" (value=2) is "
4381                       "specified in this property. The data in the Capabilities array "
4382                       "is gathered from the PCI Status Register and the PCI "
4383                       "Capabilities List as defined in the PCI Specification."),
4384                      ArrayType ("Indexed"), 
4385                      Values {"Unknown", "Other", "Supports 66MHz", 
4386                              "Supports User Definable Features", 
4387                              "Supports Fast Back-to-Back Transactions", 
4388                              "PCI-X Capable", "PCI Power Management Supported", 
4389                              "Message Signaled Interrupts Supported", 
4390                              "Parity Error Recovery Capable", 
4391                              "AGP Supported", "Vital Product Data Supported", 
4392                              "Provides Slot Identification", "Hot Swap Supported"}, 
4393                      ModelCorrespondence {"CIM_PCIController.CapabilityDescriptions"} ]
4394                  uint16 Capabilities[];
4395 karl  1.1           [Description (
4396 karl  1.1.2.1         "An array of free-form strings providing more detailed "
4397                       "explanations for any of the PCIController features indicated "
4398                       "in the Capabilities array. Note, each entry of this array "
4399                       "is related to the entry in the Capabilities array that "
4400                       "is located at the same index."),
4401                      ArrayType ("Indexed"), 
4402                      ModelCorrespondence {"CIM_PCIController.Capabilities"} ]
4403                  string CapabilityDescriptions[];
4404 karl  1.1           [Description (
4405 karl  1.1.2.1         "The slowest device select timing for a target device."), 
4406                      Values {"Unknown", "Other", "Fast", "Medium", "Slow", 
4407                              "Reserved"} ]
4408                  uint16 DeviceSelectTiming;
4409 karl  1.1           [Description (
4410 karl  1.1.2.1         "Register of 8 bits that identifies the basic function of the "
4411                       "PCI device. This is only the upper byte (offset 0Bh) of the "
4412                       "3 byte ClassCode field. Note that the property's ValueMap "
4413                       "array specifies the decimal representation of this "
4414                       "information."), 
4415                      ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
4416                                "10", "11", "12", "13", "14", "15", "16", "17", 
4417                                "255"}, 
4418                                // values 18-254 reserved for expansion by PCI
4419                      Values {"Pre 2.0", "Mass Storage", "Network", "Display", 
4420                              "Multimedia", "Memory", "Bridge", "Simple Communications", 
4421                              "Base Peripheral", "Input", "Docking Station", "Processor", 
4422                              "Serial Bus", "Wireless", "Intelligent I/O", 
4423                              "Satellite Communication", "Encryption/Decryption", 
4424                              "Data Acquisition and Signal Processing", "Other"} ]
4425                  uint8 ClassCode;
4426 karl  1.1           [Description (
4427 karl  1.1.2.1         "Specifies the system cache line size in doubleword increments "
4428                       "(e.g., a 486-based system would store the value 04h, "
4429                       "indicating a cache line size of four doublewords."), 
4430                      Units ("DoubleWords") ]
4431                  uint8 CacheLineSize;
4432 karl  1.1           [Description (
4433 karl  1.1.2.1         "Defines the minimum amount of time, in PCI clock cycles, that "
4434                       "the bus master can retain ownership of the bus."), 
4435                      Units ("PCI clock cycles") ]
4436                  uint8 LatencyTimer;
4437 karl  1.1           [Description (
4438 karl  1.1.2.1         "Defines the PCI interrupt request pin (INTA# to "
4439                       "INTD#) to which a PCI functional device is connected."), 
4440                      Values {"None", "INTA#", "INTB#", "INTC#", "INTD#", "Unknown"} ]
4441                  uint16 InterruptPin;
4442 karl  1.1           [Description (
4443 karl  1.1.2.1         "Doubleword Expansion ROM base memory address."), 
4444                      Units ("DoubleWords") ]
4445                  uint32 ExpansionROMBaseAddress;
4446 karl  1.1           [Description (
4447 karl  1.1.2.1         "Reports if the PCI device can perform the self test "
4448                       "function. Returns bit 7 of the BIST register as a boolean.") ]
4449                  boolean SelfTestEnabled;
4450 karl  1.1           [Description (
4451 karl  1.1.2.1         "Method to invoke PCI device self-test. This method sets bit "
4452                       "6 of the BIST register. The return result is the lower "
4453                       "four bits of the BIST register where 0 indicates success and "
4454                       "non-zero is a device dependent failure. Support for this "
4455                       "method is optional in the PCI Specification.") ]
4456                  uint8 BISTExecution( );
4457 karl  1.1     };
4458               
4459 karl  1.1.2.1 
4460               // ===================================================================
4461               // PCIDevice
4462               // ===================================================================
4463 karl  1.1        [Description (
4464 karl  1.1.2.1      "Capabilities and management of a PCI device controller "
4465                    "on an adapter card.") ]
4466               class CIM_PCIDevice : CIM_PCIController {
4467                     [Description ("Array of doubleword base memory addresses.") ]
4468                  uint32 BaseAddress[6];
4469                     [Description ("Subsystem identifier code.") ]
4470                  uint16 SubsystemID;
4471 karl  1.1           [Description (
4472 karl  1.1.2.1         "Subsystem vendor ID. ID information is reported from a "
4473                       "PCIDevice via protocol-specific requests. The correct place "
4474                       "in the CIM Schema for this information is in CIM_Physical"
4475                       "Element (the Manufacturer property) for hardware, and "
4476                       "CIM_Product (the Vendor property) if the information is "
4477                       "related to Product acquisition. This data is also reported "
4478                       "here since it is part of the standard output from the "
4479                       "Device, and as an optimization.") ]
4480                  uint16 SubsystemVendorID;
4481 karl  1.1           [Description (
4482 karl  1.1.2.1         "Register indiating how long the master would like to "
4483                       "retain PCI bus ownership whenever it initiates a "
4484                       "transaction. A zero value indicates no requirement."), 
4485                      Units ("250 nanoseconds") ]
4486                  uint8 MinGrantTime;
4487 karl  1.1           [Description (
4488 karl  1.1.2.1         "Register specifying how often the device needs access to "
4489                       "the PCI bus in 250ns. A zero value indicates no "
4490                       "requirement."), 
4491                      Units ("250 nanoseconds") ]
4492                  uint8 MaxLatency;
4493               };
4494               
4495               
4496               // ===================================================================
4497               // PCIBridge
4498               // ===================================================================
4499                  [Description (
4500                    "Capabilities and management of a PCI controller providing "
4501                    "bridge to bridge capability.") ]
4502               class CIM_PCIBridge : CIM_PCIController {
4503                     [Description ("Array of doubleword base memory addresses.") ]
4504                  uint32 BaseAddress[2];
4505 karl  1.1           [Description (
4506 karl  1.1.2.1         "The type of bridge. Except for \"Host\" (value=0), the type "
4507                       "of bridge is PCI to <value>. For type \"Host\", the device is "
4508                       "a Host to PCI bridge."), 
4509                      ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "128"}, 
4510                      Values {"Host", "ISA", "EISA", "Micro Channel", "PCI", 
4511                              "PCMCIA", "NuBus", "CardBus", "RACEway", "Other"} ]
4512                  uint16 BridgeType;
4513 karl  1.1           [Description (
4514 karl  1.1.2.1         "The timeslice for the secondary interface when the bridge "
4515                       "is acting as an initiator. A zero value indicates no "
4516                       "requirement."), 
4517                      Units ("PCI clock cycles") ]
4518                  uint8 SecondaryLatencyTimer;
4519 karl  1.1           [Description (
4520 karl  1.1.2.1         "The number of the highest numbered bus that exists behind "
4521                       "the bridge.") ]
4522                  uint8 SubordinateBusNumber;
4523 karl  1.1           [Description (
4524 karl  1.1.2.1         "The number of the PCI bus segment to which the secondary "
4525                       "interface of the bridge is connected.") ]
4526                  uint8 SecondayBusNumber;
4527 karl  1.1           [Description (
4528 karl  1.1.2.1         "The number of the PCI bus segment to which the primary "
4529                       "interface of the bridge is connected.") ]
4530                  uint8 PrimaryBusNumber;
4531 karl  1.1           [Description (
4532 karl  1.1.2.1         "The contents of the Bridge's SecondaryStatusRegister. "
4533                       "For more information on the contents of this register, refer "
4534                       "to the PCI-to-PCI Bridge Architecture Specification.") ]
4535                  uint16 SecondaryStatusRegister;
4536 karl  1.1           [Description (
4537 karl  1.1.2.1         "The slowest device select timing for a target device on the "
4538                       "secondary bus."), 
4539                      Values {"Unknown", "Other", "Fast", "Medium", "Slow", 
4540                              "Reserved"} ]
4541                  uint16 SecondaryBusDeviceSelectTiming;
4542 karl  1.1           [Description (
4543 karl  1.1.2.1         "End address of the I/O addresses supported by the bus. The "
4544                       "upper four bits of this property specify the address bits, "
4545                       "AD[15::12], of the I/O address. The remaining 12 bits of "
4546                       "the I/O address are assumed to be all 1's.") ]
4547                  uint8 IOLimit;
4548 karl  1.1           [Description (
4549 karl  1.1.2.1         "Base address of I/O addresses supported by the bus. The "
4550                       "upper four bits of this property specify the address bits, "
4551                       "AD[15::12], of the I/O address. The remaining 12 bits of "
4552                       "the I/O address are assumed to be 0.") ]
4553                  uint8 IOBase;
4554 karl  1.1           [Description (
4555 karl  1.1.2.1         "End address of the memory supported by the bus. The "
4556                       "upper twelve bits of this property specify the address bits, "
4557                       "AD[31::20], of a 32-bit memory address. The remaining 20 "
4558                       "bits of the address are assumed to be all 1's.") ]
4559                  uint16 MemoryLimit;
4560 karl  1.1           [Description (
4561 karl  1.1.2.1         "Base address of the memory supported by the bus. The "
4562                       "upper twelve bits of this property specify the address bits, "
4563                       "AD[31::20], of a 32-bit memory address. The remaining 20 "
4564                       "bits of the address are assumed to be 0.") ]
4565                  uint16 MemoryBase;
4566 karl  1.1           [Description (
4567 karl  1.1.2.1         "End address of the memory that can be prefetched by the bus. "
4568                       "The upper twelve bits of this property specify the address "
4569                       "bits, AD[31::20], of a 32-bit memory address. The remaining "
4570                       "20 bits of the address are assumed to be all 1's.") ]
4571                  uint16 PrefetchMemoryLimit;
4572 karl  1.1           [Description (
4573 karl  1.1.2.1         "Base address of the memory that can be prefetched by the bus. "
4574                       "The upper twelve bits of this property specify the address "
4575                       "bits, AD[31::20], of a 32-bit memory address. The remaining "
4576                       "20 bits of the address are assumed to be 0.") ]
4577                  uint16 PrefetchMemoryBase;
4578 karl  1.1           [Description (
4579 karl  1.1.2.1         "Upper 32 bits of the supported prefetch end address when "
4580                       "64-bit addressing is used. The lower 32 bits are assumed to "
4581                       "be all 1's.") ]
4582                  uint32 PrefetchLimitUpper32;
4583 karl  1.1           [Description (
4584 karl  1.1.2.1         "Upper 32 bits of the supported prefetch base address when "
4585                       "64-bit addressing is used. The lower 32 bits are assumed "
4586                       "to be 0.") ]
4587                  uint32 PrefetchBaseUpper32;
4588 karl  1.1           [Description (
4589 karl  1.1.2.1         "Upper 16 bits of the supported I/O end address when 32-bit "
4590                       "I/O addressing is used. The lower 16 bits are assumed to be "
4591                       "all 1's.") ]
4592                  uint16 IOLimitUpper16;
4593 karl  1.1           [Description (
4594 karl  1.1.2.1         "Upper 16 bits of the supported I/O base address when 32-bit "
4595                       "I/O addressing is used. The lower 16 bits are assumed to be "
4596                       "0.") ]
4597                  uint16 IOBaseUpper16;
4598               };
4599               
4600               
4601               // ===================================================================
4602               // PCMCIAController 
4603               // ===================================================================
4604                  [Description (
4605                    "Capabilities and management of a PCMCIAController.") ]
4606               class CIM_PCMCIAController : CIM_Controller {
4607               };
4608               
4609               
4610               // ===================================================================
4611               // ESCONController 
4612               // ===================================================================
4613                  [Description (
4614                    "Capabilities and management of an ESCONController.") ]
4615 karl  1.1.2.1 class CIM_ESCONController : CIM_Controller {
4616               };
4617               
4618               
4619               // ===================================================================
4620               // USBController
4621               // ===================================================================
4622                  [Description (
4623                    "Capabilities and managment of a USB Host Controller.") ] 
4624               class CIM_USBController : CIM_Controller {
4625 karl  1.1           [Description (
4626 karl  1.1.2.1         "Indicates the latest USB Version supported by the Controller. "
4627                       "The property is expressed as a Binary-Coded Decimal (BCD) "
4628                       "where a decimal point is implied between the 2nd and 3rd "
4629                       "digits. For example, a value of 0x201 indicates that "
4630                       "version 2.01 is supported.") ]
4631                  uint16 USBVersion;
4632 karl  1.1           [Description (
4633 karl  1.1.2.1         "The type of interface used between the host system software "
4634                       "and the USBController."), 
4635                      Values {"Unknown", "Other", "UHCI", "OHCI"}, 
4636                      ModelCorrespondence {"CIM_USBController.ControllerVersion"} ]
4637                  uint16 InterfaceType;
4638 karl  1.1           [Description (
4639 karl  1.1.2.1         "Indicates the version of the USB Host Controller register "
4640                       "set, specific to the InterfaceType. The property is "
4641                       "expressed as a Binary-Coded Decimal (BCD) value where a "
4642                       "decimal point is implied between the 2nd and 3rd digits. "
4643                       "For example, a value of 0x103 indicates that version "
4644                       "1.03 is supported."), 
4645                      ModelCorrespondence {"CIM_USBController.InterfaceType"} ]
4646                  uint16 ControllerVersion;
4647 karl  1.1     };
4648               
4649 karl  1.1.2.1 
4650               // ===================================================================
4651               // USBDevice
4652               // ===================================================================
4653 karl  1.1        [Description (
4654 karl  1.1.2.1      "The management characterisitics of a USB Device. These ") ]
4655               class CIM_USBDevice: CIM_LogicalDevice {
4656 karl  1.1           [Description (
4657 karl  1.1.2.1         "Indicates the latest USB Version supported by the USB Device. "
4658                       "The property is expressed as a Binary-Coded Decimal (BCD) "
4659                       "where a decimal point is implied between the 2nd and 3rd "
4660                       "digits. For example, a value of 0x201 indicates that "
4661                       "version 2.01 is supported.") ]
4662                  uint16 USBVersion;
4663                     [Description ("Indicates the USB class code.") ]
4664                  uint8 ClassCode;
4665                     [Description ("Indicates the USB subclass code.") ]
4666                  uint8 SubclassCode;
4667                     [Description ("Indicates the USB protocol code.") ]
4668                  uint8 ProtocolCode;
4669 karl  1.1           [Description (
4670 karl  1.1.2.1         "Number of device configurations that are defined for the "
4671                       "Device.") ]
4672                  uint8 NumberOfConfigs;
4673 karl  1.1           [Description (
4674 karl  1.1.2.1         "Indicates the configuration currently selected for the "
4675                       "Device. If this value is zero, the Device is "
4676                       "unconfigured."), 
4677                      ModelCorrespondence {"CIM_USBDevice.CurrentAlternateSettings"} ]
4678                  uint8 CurrentConfigValue;
4679 karl  1.1           [Description (
4680 karl  1.1.2.1         "An array of USB 'alternate settings' for each interface "
4681                       "in the currently selected configuration (indicated by the "
4682                       "CurrentConfigValue property). This array has one entry for "
4683                       "each interface in the configuration. If the property, "
4684                       "CurrentConfigValue, is zero (indicating the Device is not "
4685                       "configured), the array is undefined. To understand how "
4686                       "to parse this octet string, refer to the USB Specification."), 
4687                      ModelCorrespondence {"CIM_USBDevice.CurrentConfigValue"} ]
4688                  uint8 CurrentAlternateSettings[];
4689 karl  1.1           [Description (
4690 karl  1.1.2.1         "This method returns the USBDevice Descriptor as specified by "
4691                       "the input parameters. Each parameter is briefly described here "
4692                       "with more detail in its Qualifier list. RequestType is an input "
4693                       "parameter that defines whether the request is for standard, "
4694                       "class or vendor-specific information, as well as specifying the "
4695                       "recipient. RequestValue is also an input parameter and defines "
4696                       "the USB Descriptor Type and Index. RequestIndex is an input "
4697                       "parameter which describes the language used to return a string "
4698                       "Descriptor. RequestLength is both an input and output parameter. "
4699                       "It specifies the length of the Descriptor that should be returned "
4700                       "(on input) and what is actually returned in the Buffer parameter "
4701                       "(on output). Buffer is an output parameter, containing the "
4702                       "Descriptor data. The GetDescriptor method returns an integer "
4703                       "value of 0 if the USB Descriptor is successfully returned, "
4704                       "1 if the request is not supported and any other number to "
4705                       "indicate an error.\n"
4706 karl  1.1             "In a subclass, the set of possible return codes could be "
4707                       "specified, using a ValueMap qualifier on the method. The "
4708 karl  1.1.2.1         "strings to which the ValueMap contents are 'translated' may "
4709                       "also be specified in the subclass as a Values array qualifier.") ]
4710                  uint32 GetDescriptor(
4711                     [IN, Description ("RequestType is bit-mapped and identifies the "
4712                          "type of Descriptor request and the recipient. The type of "
4713                          "request may be 'standard', 'class' or 'vendor-specific'. "
4714                          "The recipient may be 'device', 'interface', 'endpoint' "
4715                          "or 'other'. Refer to the USB Specification for the "
4716                          "appropriate values for each bit.") ] 
4717                      uint8 RequestType, 
4718                     [IN, Description ("RequestValue contains the Descriptor Type in "
4719                          "the high byte and the Descriptor Index (for example, index "
4720                          "or offset into the Descriptor array) in the low byte. "
4721                          "Refer to the USB Specification for more information.") ] 
4722                      uint16 RequestValue, 
4723                     [IN, Description ("RequestIndex defines the 2 byte Language ID "
4724                          "code used by the USBDevice when returning string Descriptor "
4725                          "data. The parameter is typically 0 for non-string "
4726                          "Descriptors. Refer to the USB Specification for more "
4727                          "information.") ] 
4728                      uint16 RequestIndex, 
4729 karl  1.1.2.1       [IN, OUT, Description ("On input, RequestLength is the length "
4730                          "(in octets) of the Descriptor that should be returned. "
4731                          "If this value is less than the actual length of the "
4732                          "Descriptor, only the requested length will be returned. "
4733                          "If it is more than the actual length, the actual length "
4734                          "is returned. On output, this parameter is the length, "
4735                          "in octets, of the Buffer being returned. If the requested "
4736                          "Descriptor does not exist, the contents of this parameter "
4737                          "are undefined.") ] 
4738                      uint16 RequestLength, 
4739                     [OUT, Description ("Buffer returns the requested Descriptor "
4740                           "information. If the Descriptor does not exist, the "
4741                           "contents of the Buffer are undefined.") ] 
4742                      uint8 Buffer[]); 
4743 karl  1.1     };
4744               
4745 karl  1.1.2.1 
4746               // ===================================================================
4747               // USBHub 
4748               // ===================================================================
4749                  [Description ("USB Hub Device.") ]
4750               class CIM_USBHub : CIM_USBDevice {
4751 karl  1.1           [Description (
4752 karl  1.1.2.1         "Indicates whether power to the Hub Ports is individually or "
4753                       "gang-switched. If this value is FALSE, power is switched "
4754                       "individually for each Port. If this value is TRUE, power is "
4755                       "switched to all Ports on the Hub at once.") ]
4756                  boolean GangSwitched;
4757 karl  1.1           [Description (
4758 karl  1.1.2.1         "Number of downstream Ports on the Hub, including those "
4759                       "embedded in the Hub's silicon. Individual USBPorts are "
4760                       "associated with the Hub using the USBPortOnHub association.") ]
4761                  uint8 NumberOfPorts;
4762               };
4763               
4764               
4765               // ===================================================================
4766               // USBPort 
4767               // ===================================================================
4768                  [Description ("A Port on a USBHub.") ]
4769               class CIM_USBPort : CIM_LogicalPort {
4770                     [Override ("Speed"), Description (
4771                       "USB Port Speed in bits per second. This speed is determined "
4772                       "and set by the attached Device. The 'attached Device' is "
4773                       "indicated using the USBConnection association. At this time, "
4774                       "only several Port speeds are valid. These are: 1.5Mbps and "
4775                       "12Mbps. The value 0 can also be specified to indicate that the "
4776                       "current speed is 'unknown' or 1 to indicate that the speed is "
4777                       "'other' than 1.5 or 12Mbps."), 
4778                      ValueMap {"0", "1", "1500000", "12000000"} ]
4779 karl  1.1.2.1    uint64 Speed;
4780                     [Override ("StatusInfo"), 
4781                      Description ("Indicates whether the Port is currently enabled."), 
4782                      ValueMap {"2", "3", "4"}, 
4783                      Values {"Unknown", "Enabled", "Disabled"} ]
4784                  uint16 StatusInfo;
4785                     [Override ("Availability"), 
4786                      Description ("Indicates whether the Port is currently Powered."), 
4787                      ValueMap {"2", "3", "7"}, 
4788                      Values {"Unknown", "Running/Full Power", "Power Off"} ]
4789                  uint16 Availability;
4790 karl  1.1           [Description (
4791 karl  1.1.2.1         "The USB Port's power capability. The current specification "
4792                       "defines that 1 or 5 loads can be supported (values 2 or 3 would "
4793                       "be specified, respectively)."), 
4794                      Values {"Unknown", "Other", "1 Unit Load", "5 Unit Loads"} ]
4795                  uint16 Power;
4796 karl  1.1           [Description (
4797 karl  1.1.2.1         "Indicates whether the Port is currently Suspended.") ]
4798                  boolean Suspended;
4799 karl  1.1           [Description (
4800 karl  1.1.2.1         "Indicates whether the Port is disabled due to an "
4801                       "overcurrent event.") ]
4802                  boolean Overcurrent;
4803 karl  1.1     };
4804               
4805               
4806               // ===================================================================
4807 karl  1.1.2.1 // USBPortOnHub
4808 karl  1.1     // ===================================================================
4809                  [Association, 
4810                   Description (
4811 karl  1.1.2.1        "USBPortOnHub associates a USBPort or connection point with the "
4812                      "USBHub that includes it.") ]
4813               class CIM_USBPortOnHub : CIM_PortOnDevice {
4814 karl  1.1           [Override ("Antecedent"), 
4815 karl  1.1.2.1        Min(1), Max(1), 
4816                      Description ("The Hub that includes the USBPort.") ]
4817                  CIM_USBHub REF Antecedent;
4818 karl  1.1           [Override ("Dependent"), 
4819 karl  1.1.2.1        Min(1), Description ("The Port on the USBHub.") ]
4820                  CIM_USBPort REF Dependent;
4821 karl  1.1     };
4822               
4823               
4824               // ===================================================================
4825 karl  1.1.2.1 // USBControllerHasHub
4826 karl  1.1     // ===================================================================
4827 karl  1.1.2.1    [Association, Description (
4828                    "USBControllerHasHub defines the Hub(s) that are downstream "
4829                    "of the USBController.") ]
4830               class CIM_USBControllerHasHub : CIM_ControlledBy {
4831                     [Override ("Antecedent"), Min(1), Max(1), 
4832                      Description ("The USBController.") ]
4833                  CIM_USBController REF Antecedent;
4834                     [Override ("Dependent"), Min(1), 
4835 karl  1.1            Description (
4836 karl  1.1.2.1         "The USBHub that is associated with the Controller.") ]
4837                  CIM_USBHub REF Dependent;
4838 karl  1.1     };
4839               
4840 karl  1.1.2.1 
4841 karl  1.1     // ===================================================================
4842 karl  1.1.2.1 // USBConnection 
4843 karl  1.1     // ===================================================================
4844 karl  1.1.2.1    [Association, Description (
4845                    "USBConnection associates a Device with the USBPort to which it "
4846                    "is connected.") ]
4847               class CIM_USBConnection: CIM_DeviceConnection {
4848                     [Override ("Antecedent"), Max(1), 
4849                      Description ("The USBPort.")  ]
4850                  CIM_USBPort REF Antecedent;
4851                     [Override ("Dependent"), Max(1), 
4852                      Description ("The USBDevice that is connected to the Port.") ]
4853                  CIM_USBDevice REF Dependent;
4854 karl  1.1     };
4855 karl  1.1.2.1 
4856               
4857 karl  1.1     // ===================================================================
4858 karl  1.1.2.1 //
4859               //    Modems
4860               //
4861 karl  1.1     // ===================================================================
4862               
4863               
4864               // ===================================================================
4865 karl  1.1.2.1 // Modem 
4866 karl  1.1     // ===================================================================
4867 karl  1.1.2.1    [Abstract, Description (
4868                    "CIM_Modem is the superclass for grouping the numerous types "
4869                    "of Modems.") ]
4870               class CIM_Modem : CIM_LogicalDevice {
4871 karl  1.1     };
4872               
4873 karl  1.1.2.1 
4874 karl  1.1     // ===================================================================
4875 karl  1.1.2.1 // ConnectionBasedModem 
4876 karl  1.1     // ===================================================================
4877 karl  1.1.2.1    [Abstract, Description (
4878                    "CIM_ConnectionBasedModem is the superclass for grouping the "
4879                    "numerous types of connection-based Modems. A CableModem is a "
4880                    "type of connection-based Modem.") ]
4881               class CIM_ConnectionBasedModem : CIM_Modem {
4882 karl  1.1           [Description (
4883 karl  1.1.2.1         "VendorID information is reported via Modem-specific requests. "
4884                       "For example, for ADSLModem Devices the VendorID is assigned by "
4885                       "T1E1.4 according to T1.413, Appendix D. The correct place in "
4886                       "the CIM Schema for this information is in PhysicalElement "
4887                       "(the Manufacturer property) for hardware and Product (the "
4888                       "Vendor property) if the information is related to Product "
4889                       "acquisition. This data is also reported here since it is part "
4890                       "of the standard output from the Device, and as an "
4891                       "optimization.") ]
4892                  string VendorID;
4893 karl  1.1     };
4894               
4895 karl  1.1.2.1 
4896 karl  1.1     // ===================================================================
4897 karl  1.1.2.1 // DSLModem 
4898 karl  1.1     // ===================================================================
4899                  [Description (
4900 karl  1.1.2.1      "The DSLModem class represents the superclass for Digital "
4901                    "Subscriber Line (DSL) Devices. Properties "
4902                    "will be defined in a future release of the model.")  ]
4903               class CIM_DSLModem : CIM_ConnectionBasedModem {
4904 karl  1.1     };
4905               
4906 karl  1.1.2.1 
4907 karl  1.1     // ===================================================================
4908 karl  1.1.2.1 // VDSLModem 
4909 karl  1.1     // ===================================================================
4910                  [Description (
4911 karl  1.1.2.1      "The VDSLmodem class represents Modems of the DSL type = "
4912                    "VDSL, Very high data rate Digital Subscriber Line. Properties "
4913                    "will be defined in a future release of the model.") ]
4914               class CIM_VDSLModem : CIM_DSLModem {
4915 karl  1.1     };
4916               
4917 karl  1.1.2.1 
4918 karl  1.1     // ===================================================================
4919 karl  1.1.2.1 // HDSLModem 
4920 karl  1.1     // ===================================================================
4921 karl  1.1.2.1    [Description (
4922                    "The HDSLModem class represents Modems of the DSL type = "
4923                    "HDSL, High data rate Digital Subscribe Line, capable of "
4924                    "delivering T1 or E1 speeds. Properties will be defined in a "
4925                    "future release of the model.") ]
4926               class CIM_HDSLModem : CIM_DSLModem {
4927 karl  1.1     };
4928               
4929 karl  1.1.2.1 
4930 karl  1.1     // ===================================================================
4931 karl  1.1.2.1 // SDSLModem 
4932 karl  1.1     // ===================================================================
4933                  [Description (
4934 karl  1.1.2.1      "The SDSLModem class represents Modems of the DSL type = "
4935                    "SDSL, Symmetric Digital Subscriber Line. Properties "
4936                    "will be defined in a future release of the model.") ]
4937               class CIM_SDSLModem : CIM_DSLModem {
4938 karl  1.1     };
4939               
4940 karl  1.1.2.1 
4941 karl  1.1     // ===================================================================
4942 karl  1.1.2.1 // ADSLModem 
4943 karl  1.1     // ===================================================================
4944 karl  1.1.2.1    [Description (
4945                    "The ADSLModem class represents Modems of the DSL type = ADSL, "
4946                    "Asymmetric Digital Subscriber Line.") ]
4947               class CIM_ADSLModem : CIM_DSLModem {
4948 karl  1.1           [Description (
4949 karl  1.1.2.1         "Noise Margin of this Modem with respect to its received signal, "
4950                       "in tenths of dB."), 
4951                      Units ("Tenths of Decibels") ]
4952                  uint32 NoiseMargin;
4953                     [Gauge, Description (
4954                       "Measured difference in the total power transmitted by the peer "
4955                       "Modem and the total power received by this Modem. This is "
4956                       "measured in tenths of dB."), 
4957                      Units ("Tenths of Decibels") ]
4958                  uint32 LineAttenuation;
4959 karl  1.1           [Description (
4960 karl  1.1.2.1         "Status indicates the current state of the connection (line). The "
4961                       "property holds a bitmap describing the possible conditions. "
4962                       "For example, 1) No Defect - There no defects on the line; "
4963                       "2) Loss Of Framing - ATUR failure due to not receiving valid frame; "
4964                       "4) Loss Of Signal - ATUR failure due to not receiving signal; "
4965                       "8) Loss Of Power - ATUR failure due to loss of power; "
4966                       "32) Loss Of Signal Quality - Loss of Signal Quality is declared "
4967                       "when the NoiseMargin falls below the minimum NoiseMargin, or the "
4968                       "bit-error-rate exceeds 10^-7."), 
4969                      ValueMap {"1", "2", "4", "8", "32"}, 
4970                      Values {"No Defect", "Loss Of Framing", "Loss Of Signal", 
4971                              "Loss Of Power", "Loss Of Signal Quality"} ]
4972                  uint32 LineState;
4973                     [Gauge, Description (
4974                       "Measured total output power (in tenths of dB) transmitted by "
4975                       "this Modem."), 
4976                      Units ("Tenths of Decibels") ]
4977                  uint32 TotalOutputPower;
4978 karl  1.1           [Description (
4979 karl  1.1.2.1         "Indicates the maximum currently attainable data rate for the Modem. "
4980                       "This value will be equal or greater than the current line rate."), 
4981                      Units ("Bits per Second") ]
4982                  uint32 MaxDataRate;
4983 karl  1.1     };
4984               
4985 karl  1.1.2.1 
4986 karl  1.1     // ===================================================================
4987 karl  1.1.2.1 // CableModem 
4988 karl  1.1     // ===================================================================
4989                  [Description (
4990 karl  1.1.2.1      "The CableModem class represents a device for transmission "
4991                    "across a cable infrastructure.") ]
4992               class CIM_CableModem: CIM_ConnectionBasedModem {
4993               };
4994               
4995               
4996               // ===================================================================
4997               // CallBasedModem 
4998               // ===================================================================
4999                  [Abstract, Description (
5000                    "CIM_CallBasedModem is the superclass for grouping the numerous "
5001                    "types of call-based modems. The POTSModem is a type of call-"
5002                    "based Modem.") ]
5003               class CIM_CallBasedModem : CIM_Modem {
5004 karl  1.1           [Description (
5005 karl  1.1.2.1         "Indicates whether online fallback is enabled, to be negotiated "
5006                       "by the Modem.") ]
5007                  boolean FallbackEnabled;
5008 karl  1.1           [Description (
5009 karl  1.1.2.1         "An array enumerating all the compression protocols supported "
5010                       "by the Modem."), 
5011                      Values {"Unknown", "Other", "No Compression", "MNP 5", "V.42bis", 
5012                              "MNP 3", "MNP 4", "V.58", "PEP", "HST"}, 
5013                      ModelCorrespondence {
5014                       "CIM_CallBasedModem.OtherCompressionDescription"} ]
5015                  uint16 CompressionSupported[];
5016 karl  1.1           [Description (
5017 karl  1.1.2.1         "Description of the compression type when \"Other \" (value=1) "
5018                       "is defined in the CompressionSupported array. If there are "
5019                       "multiple \"Other\" types, then combine their descriptions into "
5020                       "a single string."), 
5021                      ModelCorrespondence {"CIM_CallBasedModem.CompressionSupported"} ]
5022                  string OtherCompressionDescription;
5023 karl  1.1           [Description (
5024 karl  1.1.2.1         "Describes the current data compression characteristics of the "
5025                       "Modem. "),
5026                      Values {"Unknown", "Other", "No Compression", "MNP 5", "V.42bis", 
5027                              "MNP 3", "MNP 4", "V.58", "PEP", "HST"},
5028                      ModelCorrespondence {"CIM_CallBasedModem.CompressionSupported", 
5029                       "CIM_CallBasedModem.OtherCompressionInfoDescription"}  ]
5030                  uint16 CompressionInfo;
5031 karl  1.1           [Description (
5032 karl  1.1.2.1         "Description of the current compression type when \"Other\" "
5033                       "(value=1) is specified in the CompressionInfo property."), 
5034                      ModelCorrespondence {"CIM_CallBasedModem.CompressionInfo"} ]
5035                  string OtherCompressionInfoDescription;
5036 karl  1.1           [Description (
5037 karl  1.1.2.1         "An array enumerating all the modulation protocols supported by "
5038                       "the Modem. The beginning entries in the Values qualifier array "
5039                       "are mapped from the CIM_POTSModem ModulationScheme property."),
5040                      Values {"Unknown", "Other", "Not Supported", "Bell 103", 
5041                              "Bell 212A", "V.22bis", "V.32", "V.32bis", "V.terbo", 
5042                              "V.FC", "V.34", "V.34bis", "V.17 (G3 Fax Call)", "V.21", 
5043                              "V.22", "V.23 Constant Carrier (1200/75)", 
5044                              "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
5045                              "V.26ter", "V.27ter (G3 Fax Call)", 
5046                              "V.29 HD (G3 Fax Call)", "V.34 HD (G3 Fax Call)", 
5047                              "V.90 Issue 1 (Asymmetric)", "V.90 Issue 2 (Symmetric)", 
5048                              "V.58", "X2", "K56FLEX", "V.Fast", "PEP", "HST"}, 
5049                      ModelCorrespondence {
5050                       "CIM_CallBasedModem.OtherModulationDescription"} ]
5051                  uint16 ModulationSupported[];
5052 karl  1.1           [Description (
5053 karl  1.1.2.1         "Description of the current modulation type when \"Other\" "
5054                       "(value=1) is specified in the ModulationSupported property. "
5055                       "If there are multiple \"Other\" types, then combine their "
5056                       "descriptions into a single string."), 
5057                      ModelCorrespondence {"CIM_CallBasedModem.ModulationSupported"} ]
5058                  string OtherModulationDescription;
5059 karl  1.1           [Description (
5060 karl  1.1.2.1         "Describes the current modulation scheme of the Modem."),
5061                      Values {"Unknown", "Other", "Not Supported", "Bell 103", 
5062                              "Bell 212A", "V.22bis", "V.32", "V.32bis", "V.terbo", 
5063                              "V.FC", "V.34", "V.34bis", "V.17 (G3 Fax Call)", "V.21", 
5064                              "V.22", "V.23 Constant Carrier (1200/75)", 
5065                              "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
5066                              "V.26ter", "V.27ter (G3 Fax Call)", 
5067                              "V.29 HD (G3 Fax Call)", "V.34 HD (G3 Fax Call)", 
5068                              "V.90 Issue 1 (Asymmetric)", "V.90 Issue 2 (Symmetric)", 
5069                              "V.58", "X2", "K56FLEX", "V.Fast", "PEP", "HST"}, 
5070                      ModelCorrespondence {"CIM_CallBasedModem.ModulationSupported",
5071                       "CIM_CallBasedModem.OtherSchemeDescription"}  ]
5072                  uint16 ModulationScheme;
5073 karl  1.1           [Description (
5074 karl  1.1.2.1         "Description of the current modulation type when \"Other\" "
5075                       "(value=1) is specified in the ModulationScheme property."), 
5076                      ModelCorrespondence {"CIM_CallBasedModem.ModulationScheme"} ]
5077                  string OtherSchemeDescription;
5078 karl  1.1           [Description (
5079 karl  1.1.2.1         "An array enumerating the error control protocols supported "
5080                       "by the Modem. The beginning entries in the Values qualifier "
5081                       "array are mapped from the CIM_POTSModem ErrorControlInfo "
5082                       "property."), 
5083                      Values {"Unknown", "Other", "No Error Correction", "MNP 4", 
5084                              "LAPM", "V.58", "ECP Enhanced Cellular Protocol", 
5085                              "ETC Enhanced Throughput Cellular", "MNP 1", "MNP 2", 
5086                              "MNP 3", "MNP10", "PEP", "HST"}, 
5087                      ModelCorrespondence {
5088                       "CIM_CallBasedModem.OtherErrorControlDescription"} ]
5089                  uint16 ErrorControlSupported[];
5090 karl  1.1           [Description (
5091 karl  1.1.2.1         "Description of the error control type when \"Other\" (value="
5092                       "1) is specified in the ErrorControlSupported property. If "
5093                       "there are multiple \"Other\" types, then combine their "
5094                       "descriptions into a single string."), 
5095                      ModelCorrespondence {
5096                       "CIM_CallBasedModem.ErrorControlSupported"} ]
5097                  string OtherErrorControlDescription;
5098 karl  1.1           [Description (
5099 karl  1.1.2.1         "Describes the current error correction characteristics of the "
5100                       "Modem."),
5101                      Values {"Unknown", "Other", "No Error Correction", "MNP 4", 
5102                              "LAPM", "V.58", "ECP Enhanced Cellular Protocol", 
5103                              "ETC Enhanced Throughput Cellular", "MNP 1", "MNP 2", 
5104                              "MNP 3", "MNP10", "PEP", "HST"},
5105                      ModelCorrespondence {"CIM_CallBasedModem.ErrorControlSupported", 
5106                       "CIM_CallBasedModem.OtherErrorControlInfoDescription"}  ]
5107                  uint16 ErrorControlInfo;
5108 karl  1.1           [Description (
5109 karl  1.1.2.1         "Description of the error control when \"Other\" (value=1) "
5110                       "is defined as the value of the ErrorControlInfo property."), 
5111                      ModelCorrespondence {"CIM_CallBasedModem.ErrorControlInfo"} ]
5112                  string OtherErrorControlInfoDescription;
5113                     [Description ("Time of last reset of the Modem.") ]
5114                  datetime TimeOfLastReset;
5115 karl  1.1           [Description (
5116 karl  1.1.2.1         "The rate at which the receiver and transmitter are or were "
5117                       "last cooperating, on a call, before disconnection."), 
5118                      Units ("Bits per Second") ]
5119                  uint32 CallSpeed;
5120 karl  1.1           [Description (
5121 karl  1.1.2.1         "Status of the Modem. For example, information regarding "
5122                       "modem negotiation or whether the modem is connected (values "
5123                       "8 and 9, respectively) can be conveyed in this property."), 
5124                      Values {"Unknown", "Other", "Offline", "On Hook", "Dialing", 
5125                              "Waiting for Answer", "Ringing", "Modem Detected",  
5126                              "Negotiating", "Online", "Error"} ]
5127                  uint16 CallStatus;
5128 karl  1.1           [Description (
5129 karl  1.1.2.1         "Total number of characters sent by the Device on the last "
5130                       "or current call. That a call is in-progress is indicated by "
5131                       "the CallStatus property."), 
5132                      Counter ]
5133                  uint32 CharsSent;
5134 karl  1.1           [Description (
5135 karl  1.1.2.1         "Total number of characters received by the Device on the last "
5136                       "or current call. That a call is in-progress is indicated by the "
5137                       "CallStatus property."), 
5138                      Counter ]
5139                  uint32 CharsReceived;
5140 karl  1.1           [Description (
5141 karl  1.1.2.1         "Total number of characters lost by the Device on the last or "
5142                       "current call. That a call is in-progress is indicated by the "
5143                       "CallStatus property."), 
5144                      Counter ]
5145                  uint32 CharsLost;
5146 karl  1.1           [Description (
5147 karl  1.1.2.1         "Total number of blocks sent by the Device on the last or "
5148                       "current call. That a call is in-progress is indicated by the "
5149                       "CallStatus property."), 
5150                      Counter ]
5151                  uint32 BlocksSent;
5152 karl  1.1           [Description (
5153 karl  1.1.2.1         "Total number of blocks resent by the Device on the last or "
5154                       "current call. That a call is in-progress is indicated by the "
5155                       "CallStatus property."), 
5156                      Counter ]
5157                  uint32 BlocksResent;
5158 karl  1.1           [Description (
5159 karl  1.1.2.1         "Total number of blocks received by the Device on the last or "
5160                       "current call. That a call is in-progress is indicated by the "
5161                       "CallStatus property."), 
5162                      Counter ]
5163                  uint32 BlocksReceived;
5164 karl  1.1           [Description (
5165 karl  1.1.2.1         "Total number of block errors seen by the Device on the last "
5166                       "or current call. That a call is in-progress is indicated by the "
5167                       "CallStatus property."), 
5168                      Counter ]
5169                  uint32 BlockErrors;
5170 karl  1.1           [Description (
5171 karl  1.1.2.1         "Length of the last or current call. That a call is in-progress "
5172                       "is indicated by the CallStatus property. The 'interval' "
5173                       "format of the datetime data type should be used for the property "
5174                       "value.") ]
5175                  datetime CallLength;
5176 karl  1.1           [Description (
5177 karl  1.1.2.1         "Last or current number dialed to which the statistics apply, or "
5178                       "NULL if the call was incoming.") ]
5179                  string NumberDialed;
5180 karl  1.1     };
5181               
5182 karl  1.1.2.1 
5183 karl  1.1     // ===================================================================
5184 karl  1.1.2.1 // ISDNModem 
5185 karl  1.1     // ===================================================================
5186 karl  1.1.2.1    [Description (
5187                    "The ISDNModem class, a kind of call-based Modem. Properties "
5188                    "will be defined in a future release of the model.") ]
5189               class CIM_ISDNModem: CIM_CallBasedModem {
5190 karl  1.1     };
5191               
5192 karl  1.1.2.1 
5193 karl  1.1     // ===================================================================
5194 karl  1.1.2.1 // POTSModem
5195 karl  1.1     // ===================================================================
5196                  [Description (
5197 karl  1.1.2.1      "The POTSModem class represents a Device that translates "
5198                    "binary data into wave modulations for sound based "
5199                    "transmission.  It connects to the POTS (Plain Old Telephone "
5200                    "System) network.") ] 
5201               class CIM_POTSModem : CIM_CallBasedModem {
5202 karl  1.1           [Description (
5203 karl  1.1.2.1         "Capabilities of the POTSModem. For example, the Device "
5204                       "may support distinctive ring, caller ID, fax, voice, etc."), 
5205 karl  1.1            ArrayType ("Indexed"), 
5206 karl  1.1.2.1        Values {"Unknown", "Other", "Distinctive Ring", "Caller ID", 
5207                              "Voice", "Fax Class 1", "Fax Class 2", "WakeOnRing", 
5208                              "Fax Group 3", "GSM Support", "AMPS Support", 
5209                              "OOB Alerting", "Worldwide Country Support"}, 
5210                      ModelCorrespondence {"CIM_POTSModem.CapabilityDescriptions"} ]
5211 karl  1.1        uint16 Capabilities[];
5212                     [Description (
5213                       "An array of free-form strings providing more detailed "
5214 karl  1.1.2.1         "explanations for any of the POTSModem features indicated "
5215 karl  1.1             "in the Capabilities array. Note, each entry of this array "
5216                       "is related to the entry in the Capabilities array that "
5217 karl  1.1.2.1         "is located at the same index."), 
5218 karl  1.1            ArrayType ("Indexed"), 
5219 karl  1.1.2.1        ModelCorrespondence {"CIM_POTSModem.Capabilities"} ]
5220 karl  1.1        string CapabilityDescriptions[];
5221                     [Description (
5222 karl  1.1.2.1         "Specifies which capabilities are enabled from the list of "
5223                       "ones supported, defined in the Capabilities array."), 
5224                      Values {"Unknown", "Other", "Distinctive Ring", "Caller ID", 
5225                              "Voice", "Fax Class 1", "Fax Class 2", "WakeOnRing", 
5226                              "Fax Group 3", "GSM Support", "AMPS Support", 
5227                              "OOB Alerting", "Worldwide Country Support"}, 
5228                      ModelCorrespondence {"CIM_POTSModem.Capabilities"} ]
5229                  uint16 EnabledCapabilities[];
5230 karl  1.1           [Description (
5231 karl  1.1.2.1         "Defines the maximum settable communication speed "
5232                       "to the COM Port for an external modem.  Enter 0 if "
5233                       "not applicable."),
5234                      Units ("Bits per Second") ]
5235                  uint32 MaxBaudRateToSerialPort;
5236 karl  1.1           [Description (
5237 karl  1.1.2.1         "Defines the maximum settable communication speed "
5238                       "for accessing the phone system."), 
5239                      Units ("Bits per Second") ]
5240                  uint32 MaxBaudRateToPhone;
5241 karl  1.1           [Description (
5242 karl  1.1.2.1         "Boolean indicating that synchronous, as well as "
5243                       "asynchronous, communication is supported.") ]
5244                  boolean SupportsSynchronousConnect;
5245 karl  1.1           [Description (
5246 karl  1.1.2.1         "DialType is an integer indicating whether tone (value=1) or "
5247                       "pulse dialing (value=2) is used. \"Unknown\" (0) can also be "
5248                       "defined."),
5249                      Values {"Unknown", "Tone", "Pulse"} ]
5250                  uint16 DialType;
5251 karl  1.1           [Description (
5252 karl  1.1.2.1         "InactivityTimeout defines the time limit (in seconds) "
5253                       "for automatic disconnection of the phone line, if no data "
5254                       "is exchanged.  A value of 0 indicates that this "
5255                       "feature is present but not enabled."),
5256                      Units ("Seconds") ]
5257                  uint32 InactivityTimeout;
5258 karl  1.1           [Description (
5259 karl  1.1.2.1         "Describes the volume level of the audible tones from the "
5260                       "Modem. For example, high, medium or low volume can be "
5261                       "reported (values 3, 4 or 5, respectively)."),
5262                      Values {"Unknown", "Other", "Not Supported", "High", 
5263                              "Medium", "Low", "Off", "Auto"} ]
5264                  uint16 SpeakerVolumeInfo;
5265                     [MaxLen (64), Description (
5266                       "CountriesSupported is an array of strings defining the "
5267                       "countries in which the POTSModem operates.") ]
5268                  string CountriesSupported[];
5269                     [MaxLen (64), Description (
5270                       "CountrySelected is a string value defining the country "
5271                       "for which the Modem is currently programmed. When multiple "
5272                       "countries are supported, this property defines which one "
5273                       "is currently selected for use.") ] 
5274                  string CountrySelected;
5275 karl  1.1           [Description (
5276 karl  1.1.2.1         "Number of rings before the Modem answers an incoming call.") ]  
5277                  uint8 RingsBeforeAnswer;
5278 karl  1.1           [Description (
5279 karl  1.1.2.1         "MaxNumberOfPasswords specifies the number of passwords "
5280                       "definable in the Modem itself.  If this feature is not "
5281                       "supported, enter 0.") ] 
5282                  uint16 MaxNumberOfPasswords;
5283                     [MaxLen (24), Description (
5284                       "CurrentPasswords is an array containing the currently defined "
5285                       "passwords for the Modem.  This array may be left blank for "
5286                       "security reasons.") ] 
5287                  string CurrentPasswords[];
5288 karl  1.1           [Description (
5289 karl  1.1.2.1         "Indication of whether the Modem supports call-back.") ]
5290                  boolean SupportsCallback;
5291                     [Description (
5292                       "AnswerMode defines the current auto-answer/call-back "
5293                       "setting for the Modem."),
5294                      Values {"Unknown", "Other", "Disabled", "Manual Answer", 
5295                              "Auto Answer", "Auto Answer with Call-Back"} ]
5296                  uint16 AnswerMode;
5297                     [Description (
5298                       "The current equalization setting for the Modem."), 
5299                      Values {"Unknown", "Other", "Long", "Short"} ]
5300                  uint16 Equalization;
5301                     [Description ("List of black-listed numbers for the Modem.") ]
5302                  string BlackListedNumbers[];
5303 karl  1.1     };
5304               
5305 karl  1.1.2.1 
5306 karl  1.1     // ===================================================================
5307 karl  1.1.2.1 // Unimodem
5308 karl  1.1     // ===================================================================
5309                  [Description (
5310 karl  1.1.2.1      "Unimodem is a POTSModem that supports the Unimodem 1.0 "
5311                    "Specification.") ]
5312               class CIM_Unimodem : CIM_POTSModem {
5313                     [Description ("Current call setup result code."), 
5314                      Values {"No Previous Call", "No Dial Tone Detected", 
5315                              "Reorder Signal Detected, Network Busy", 
5316                              "Busy Signal Detected", "No Recognized Signal Detected", 
5317                              "Voice Detected", "Text Telephone Detected", 
5318                              "Data Answering Signal Detected", 
5319                              "Data Calling Signal Detected", 
5320                              "Fax Answering Signal Detected", 
5321                              "Fax Calling Signal Detected", "V.8bis Signal Detected"} ]
5322                  uint16 CallSetupResultCode;
5323                     [Description ("Current multi-media mode of the Unimodem."), 
5324                      Values {"Data Only", "Fax Only", "Voice Only", "Voice View", 
5325                              "ASVD V.61", "ASVD V.34Q", "DSVD Multi-Tech", "DSVD 1.2", 
5326                              "DSVD V.70", "Video Telephony H.324", "Other V.80 Call"} ]
5327                  uint16 MultiMediaMode;
5328 karl  1.1           [Description (
5329 karl  1.1.2.1         "Current DTE-DCE interface mode of the Unimodem, such as "
5330                       "asynchronous, v.80 transparent or framed synchronous modes."), 
5331                      Values {"Async Data", "V.80 Transparent Synchronous Mode", 
5332                              "V.80 Framed Synchronous Mode"} ]
5333                  uint16 DTEDCEInterfaceMode;
5334                     [Description ("The active transmit modulation scheme."), 
5335                      Values {"V.17 (G3 Fax Call)", "V.21", "V.22", "V.22bis", 
5336                              "V.23 Constant Carrier (1200/75)", 
5337                              "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
5338                              "V.26ter", "V.27ter (G3 Fax Call)", 
5339                              "V.29 HD (G3 Fax Call)", "V.32", "V.32bis", "V.34", 
5340                              "V.34 HD (G3 Fax Call)", "V.90 Issue 1 (Asymmetric)", 
5341                              "V.90 Issue 2 (Symmetric)", "Reserved (V.58)", "X2", 
5342                              "K56FLEX", "V.FC", "V.32terbo", "Bell 212A", 
5343                              "Bell 103", "Reserved for Mfgs"} ]
5344                  uint16 TransmitCarrierNegotiation;
5345                     [Description ("The active receive modulation scheme."), 
5346                      Values {"V.17 (G3 Fax Call)", "V.21", "V.22", "V.22bis", 
5347                              "V.23 Constant Carrier (1200/75)", 
5348                              "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
5349                              "V.26ter", "V.27ter (G3 Fax Call)", 
5350 karl  1.1.2.1                "V.29 HD (G3 Fax Call)", "V.32", "V.32bis", "V.34", 
5351                              "V.34 HD (G3 Fax Call)", "V.90 Issue 1 (Asymmetric)", 
5352                              "V.90 Issue 2 (Symmetric)", "Reserved (V.58)", "X2", 
5353                              "K56FLEX", "V.FC", "V.32terbo", "Bell 212A", 
5354                              "Bell 103", "Reserved for Mfgs"}  ]
5355                  uint16 ReceiveCarrierNegotiation;
5356 karl  1.1           [Description (
5357 karl  1.1.2.1         "Initial transmit carrier data rate for the current or "
5358                       "last call, in bits per second."), 
5359                      Units ("Bits per Second") ]
5360                  uint32 InitialTransmitCarrierDataRate;
5361 karl  1.1           [Description (
5362 karl  1.1.2.1         "Initial receive carrier data rate for the current or last "
5363                       "call, in bits per second."), 
5364                      Units ("Bits per Second") ]
5365                  uint32 InitialReceiveCarrierDataRate;
5366 karl  1.1           [Description (
5367 karl  1.1.2.1         "The number of carrier retrains requested during the current "
5368                       "or last call."), 
5369                      Counter ]
5370                  uint8 CarrierRetrainsRequested;
5371 karl  1.1           [Description (
5372 karl  1.1.2.1         "The number of carrier retrains granted during the current "
5373                       "or last call."), 
5374                      Counter ]
5375                  uint8 CarrierRetrainsGranted;
5376 karl  1.1           [Description (
5377 karl  1.1.2.1         "Final transmit carrier data rate of the current or last "
5378                       "call, in bits per second."), 
5379                      Units ("Bits per Second") ]
5380                  uint32 FinalTransmitCarrierDataRate;
5381 karl  1.1           [Description (
5382 karl  1.1.2.1         "Final receive carrier data rate of the current or last "
5383                       "call, in bits per second."), 
5384                      Units ("Bits per Second") ]
5385                  uint32 FinalReceiveCarrierDataRate;
5386                     [Description ("Cause of last call termination."), 
5387                      Values {"Cause Unidentified", "No Previous Call", 
5388                              "Call Is Still in Progress", "Call Waiting Signal Detected", 
5389                              "Delayed", "NMS Initiated Dial Call", 
5390                              "NMS Initiated Leased Line Restoral", "NMS Initiated Redial", 
5391                              "NMS Initiated Dial Disconnect", "Power Loss", 
5392                              "Equipment Failure", "Front Panel Disconnect Requested", 
5393                              "Front Panel Leased Line Restoral", 
5394                              "Automatic Leased Line Restoral", "Inactivity Timer Expired", 
5395                              "cct116 Restoral Request", "cct108 Is Off Inhibits Dial", 
5396                              "cct108 Turned Off", "No Number Provided", "Blacklisted Number", 
5397                              "Call Attempts Limit Exceeded", "Extension Phone Off Hook", 
5398                              "Call Setup Fail Timer Expired", "Incoming Call Detected", 
5399                              "Loop Current Interrupted", "No Dial Tone", "Voice Detected", 
5400                              "Reorder Tone", "Sit Tone", "Engaged Tone", 
5401                              "Long Space Disconnect", "Carrier Lost", "Training Failed", 
5402                              "No Modulation in Common", "Retrain Failed", 
5403 karl  1.1.2.1                "Retrain Attempt Count Exceeded", "GSTN Cleardown Received", 
5404                              "Fax Detected", "In Test Mode", 
5405                              "Intrusive Self Test Initiated", "Any Key Abort", 
5406                              "DTE Hangup Command", "DTE Reset Command", "Frame Reject", 
5407                              "No Error Control Established", "Protocol Violation", 
5408                              "n400 Exceeded", "Negotiation Failed", 
5409                              "Disconnect Frame Received", "Sabme Frame Received", 
5410                              "Loss Of Synchronization"} ]
5411                  uint16 TerminationCause;
5412 karl  1.1           [Description (
5413 karl  1.1.2.1         "Diagnostic Command Specification, Unimodem revision number.") ]
5414                  string UnimodemRevision;
5415                     [Gauge, Description (
5416                       "Estimated noise level for the last or current call in "
5417                       "-dBm. Values are in the range of 0-100."), 
5418                      Units ("-dBm") ]
5419                  uint32 EstimatedNoiseLevel;
5420 karl  1.1           [Description (
5421 karl  1.1.2.1         "Normalized mean squared error for the last or current call.") ]
5422                  uint32 NormalizedMeanSquaredError;
5423 karl  1.1           [Description (
5424 karl  1.1.2.1         "Temporary carrier loss event count for the last or current "
5425                       "call."), 
5426                      Counter ]
5427                  uint8 TemporaryCarrierLossEventCount;
5428 karl  1.1           [Description (
5429 karl  1.1.2.1         "Carrier Rate re-negotiation event count for the last or "
5430                       "current call."), 
5431                      Counter ]
5432                  uint8 CarrierRenegotiationEventCount;
5433 karl  1.1           [Description (
5434 karl  1.1.2.1         "Error Control frame size in bytes for the last or current call."), 
5435                      Units ("Bytes") ]
5436                  uint16 ErrorControlFrameSize;
5437 karl  1.1           [Description (
5438 karl  1.1.2.1         "Error control link timeouts in transmission for the last or "
5439                       "current call."), 
5440                      Counter ]
5441                  uint8 ErrorControlLinkTimeouts;
5442 karl  1.1           [Description (
5443 karl  1.1.2.1         "Error control link NAKs received for the last or current call."), 
5444                      Counter ]
5445                  uint8 ErrorControlLinkNAKs;
5446 karl  1.1           [Description (
5447 karl  1.1.2.1         "The flow control mechanism used in transmitting data."), 
5448                      Values {"Unknown", "Off", "DC1/DC3", "V.24 ckt 106/133"} ]
5449                  uint16 TransmitFlowControl;
5450 karl  1.1           [Description (
5451 karl  1.1.2.1         "The flow control mechanism used in receiving data."), 
5452                      Values {"Unknown", "Off", "DC1/DC3", "V.24 ckt 106/133"} ]
5453                  uint16 ReceiveFlowControl;
5454 karl  1.1           [Description (
5455 karl  1.1.2.1         "Number of transmit chars sent from the DTE for the last "
5456                       "or current call. A continuous connection may exceed this value, "
5457                       "given enough time. Typically these counters are implemented "
5458                       "as 32 bit counters, but additional bits may be provided and "
5459                       "are accounted for in this property. If these counters hit "
5460                       "maximum value, the DCE manufacturer may roll over to 0."), 
5461                      Counter ]
5462                  uint64 TransmitCharsSentFromDTE;
5463 karl  1.1           [Description (
5464 karl  1.1.2.1         "Number of receive chars sent to the DTE for the last or "
5465                       "current call. A continuous connection may exceed this value, "
5466                       "given enough time. Typically these counters are implemented "
5467                       "as 32 bit counters, but additional bits may be provided and "
5468                       "are accounted for in this property. If these counters hit "
5469                       "maximum value, the DCE manufacturer may roll over to 0."), 
5470                      Counter ]
5471                  uint64 ReceiveCharsSentToDTE;
5472 karl  1.1           [Description (
5473 karl  1.1.2.1         "Number of transmit characters lost for the last or current "
5474                       "call. A DCE may limit this counter to 16 bits, but additional "
5475                       "bits may be provided and are accounted for in this property."), 
5476                      Counter ]
5477                  uint64 TransmitCharsLost;
5478 karl  1.1           [Description (
5479 karl  1.1.2.1         "Number of receive characters lost for the last or current "
5480                       "call. A DCE may limit this counter to 16 bits, but additional "
5481                       "bits may be provided and are accounted for in this property."), 
5482                      Counter ]
5483                  uint64 ReceiveCharsLost;
5484                     [Description (
5485                       "Number of I-Frames transmitted for the last or current call. "
5486                       "A continuous connection may exceed this value, given enough "
5487                       "time. Typically these counters are implemented as 32 bit "
5488                       "counters, but additional bits may be provided and are accounted "
5489                       "for in this property. If these counters hit maximum value, the "
5490                       "DCE manufacturer may roll over to 0."), 
5491                      Counter ]
5492                  uint64 TransmitIFrameCount;
5493                     [Description (
5494                       "Number of I-Frames received for the last or current call. "
5495                       "A continuous connection may exceed this value, given enough "
5496                       "time. Typically these counters are implemented as 32 bit "
5497                       "counters, but additional bits may be provided and are "
5498                       "accounted for in this property. If these counters hit maximum "
5499                       "value, the DCE manufacturer may roll over to 0."), 
5500 karl  1.1.2.1        Counter ]
5501                  uint64 ReceiveIFrameCount;
5502                     [Description (
5503                       "Number of I-Frame errors detected for the last or current "
5504                       "call, if error control protocol is running. A DCE may limit "
5505                       "this counter to 16 bits, but additional bits may be provided "
5506                       "and are accounted for in this property."), 
5507                      Counter ]
5508                  uint64 TransmitIFrameErrorCount;
5509                     [Description (
5510                       "Number of I-Frame errors detected for the last or current "
5511                       "call, if error control protocol is running. A DCE may limit "
5512                       "this counter to 16 bits, but additional bits may be provided "
5513                       "and are accounted for in this property."), 
5514                      Counter ]
5515                  uint64 ReceivedIFrameErrorCount;
5516                     [Description (
5517                       "Number of Call waiting events detected for the last or "
5518                       "current call."), 
5519                      Counter ]
5520                  uint8 CallWaitingEventCount;
5521 karl  1.1     };
5522               
5523 karl  1.1.2.1 
5524 karl  1.1     // ===================================================================
5525 karl  1.1.2.1 //
5526               //    Storage
5527               //
5528 karl  1.1     // ===================================================================
5529               
5530               
5531               // ===================================================================
5532               // MediaAccessDevice
5533               // ===================================================================
5534                  [Description (
5535 karl  1.1.2.1      "A MediaAccessDevice represents the ability to access one or "
5536                    "more media and use this media to store and retrieve data.") ] 
5537               class CIM_MediaAccessDevice : CIM_LogicalDevice {
5538                     [Description (
5539                       "Capabilities of the MediaAccessDevice. For example, the " 
5540                       "Device may support \"Random Access\", removeable media and "
5541                       "\"Automatic Cleaning\". In this case, the values 3, 7 and 9 "
5542                       "would be written to the array.\n"
5543 karl  1.1             "Several of the enumerated values require some explanation: "
5544                       "1) Value 11, Supports Dual Sided Media, distinguishes a "
5545                       "Device that can access both sides of dual sided Media, from "
5546                       "a Device that reads only a single side and requires the "
5547                       "Media to be flipped; and, 2) Value 12, Predismount Eject "
5548                       "Not Required, indicates that Media does not have to be "
5549                       "explicitly ejected from the Device before being accessed "
5550                       "by a PickerElement."), 
5551 karl  1.1.2.1        ArrayType ("Indexed"),
5552                      Values {"Unknown", "Other", "Sequential Access", 
5553                              "Random Access", "Supports Writing", "Encryption",
5554                              "Compression", "Supports Removeable Media",
5555                              "Manual Cleaning", "Automatic Cleaning", 
5556                              "SMART Notification", "Supports Dual Sided Media", 
5557                              "Predismount Eject Not Required" }, 
5558 karl  1.1            MappingStrings {"MIF.DMTF|Storage Devices|001.9", 
5559 karl  1.1.2.1         "MIF.DMTF|Storage Devices|001.11", 
5560                       "MIF.DMTF|Storage Devices|001.12",
5561                       "MIF.DMTF|Disks|003.7", "MIF.DMTF|Host Disk|001.2",  
5562                       "MIF.DMTF|Host Disk|001.4"}, 
5563                      ModelCorrespondence {
5564                       "CIM_MediaAccessDevice.CapabilityDescriptions"} ]
5565 karl  1.1        uint16 Capabilities[];
5566 karl  1.1.2.1       [Description (
5567                       "An array of free-form strings providing more detailed "
5568                       "explanations for any of the AccessDevice features indicated "
5569                       "in the Capabilities array. Note, each entry of this array "
5570                       "is related to the entry in the Capabilities array that "
5571                       "is located at the same index."),
5572 karl  1.1            ArrayType ("Indexed"),
5573 karl  1.1.2.1        ModelCorrespondence {"CIM_MediaAccessDevice.Capabilities"} ]
5574 karl  1.1        string CapabilityDescriptions[];
5575                     [Description (
5576 karl  1.1.2.1         "ErrorMethodology is a free-form string describing "
5577                       "the type(s) of error detection and correction supported "
5578                       "by this Device.") ]
5579 karl  1.1        string ErrorMethodology;
5580 karl  1.1.2.1       [Description (      
5581                       "A free form string indicating the algorithm or tool used by "
5582                       "the device to support compression. "
5583                       "If it is not possible or not desired to describe the "
5584                       "compression scheme (perhaps because it is not known), "
5585                       "recommend using the following words: \"Unknown\" to "
5586                       "represent that it is not known whether the device supports "
5587                       "compression capabilities or not, \"Compressed\" to represent "
5588                       "that the device supports compression capabilities but either "
5589                       "its compression scheme is not known or not disclosed, and "
5590                       "\"Not Compressed\" to represent that the devices does not "
5591                       "support compression capabilities.")     ]
5592 karl  1.1        string CompressionMethod;
5593                     [Description (
5594 karl  1.1.2.1         "When the MediaAccessDevice supports multiple individual "
5595                       "Media, this property defines the maximum number which can "
5596                       "be supported or inserted.") ]
5597 karl  1.1        uint32 NumberOfMediaSupported;
5598                     [Description (
5599                       "Maximum size, in KBytes, of media supported by this Device. "
5600                       "KBytes is interpreted as the number of bytes multiplied by "
5601                       "1000 (NOT the number of bytes multiplied by 1024)."),
5602                      MappingStrings {"MIF.DMTF|Sequential Access Devices|001.2", 
5603 karl  1.1.2.1              "MIF.DMTF|Host Disk|001.5"} ]
5604 karl  1.1        uint64 MaxMediaSize;
5605                     [Description ("Default block size, in bytes, for this Device."),
5606 karl  1.1.2.1        Units ("Bytes") ]
5607 karl  1.1        uint64 DefaultBlockSize;
5608                     [Description (
5609 karl  1.1.2.1         "Maximum block size, in bytes, for media accessed by this "
5610                       "Device."),
5611                      Units ("Bytes") ]
5612 karl  1.1        uint64 MaxBlockSize;
5613                     [Description (
5614 karl  1.1.2.1         "Minimum block size, in bytes, for media accessed by this "
5615                       "Device."),
5616                      Units ("Bytes") ]
5617 karl  1.1        uint64 MinBlockSize;
5618 karl  1.1.2.1     [Description (
5619                       "Boolean indicating that the MediaAccessDevice needs cleaning. " 
5620                       "Whether manual or automatic cleaning is possible is indicated "
5621                       "in the Capabilities array property. ") ]
5622 karl  1.1        boolean NeedsCleaning;
5623                     [Description (
5624                       "True indicates that the media is locked in the Device "
5625                       "and can not be ejected. For non-removeable Devices, this "
5626 karl  1.1.2.1         "value should be true.") ]
5627 karl  1.1        boolean MediaIsLocked;
5628                     [Description (
5629                       "An enumeration indicating the operational security defined "
5630                       "for the MediaAccessDevice. For example, information that "
5631                       "the Device is \"Read Only\" (value=4) or \"Boot Bypass\" "
5632                       "(value=6) can be described using this property."), 
5633                      ValueMap {"1", "2", "3", "4", "5", "6", "7"}, 
5634                      Values {"Other", "Unknown", "None", "Read Only", "Locked Out", 
5635                            "Boot Bypass", "Boot Bypass and Read Only"}, 
5636 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Disks|003.22"} ]
5637 karl  1.1        uint16 Security;
5638                     [Description (
5639                       "The date and time on which the Device was last cleaned.") ]
5640                  datetime LastCleaned;
5641                     [Description (
5642                       "Time in milliseconds to move from the first location on "
5643                       "the Media to the location that is furthest with respect to "
5644                       "time. For a DiskDrive, this represents full seek + full "
5645                       "rotational delay. For TapeDrives, this represents a search "
5646                       "from the beginning of the tape to the most physically "
5647                       "distant point. (The end of a tape may be at its most "
5648                       "physically distant point, but this is not necessarily "
5649                       "true.)"), 
5650 karl  1.1.2.1        Units ("MilliSeconds") ]
5651 karl  1.1        uint64 MaxAccessTime;
5652                     [Description (
5653                       "The sustained data transfer rate in KB/sec that the "
5654                       "Device can read from and write to a Media. This is a "
5655                       "sustained, raw data rate. Maximum rates or rates "
5656                       "assuming compression should not be reported in this "
5657                       "property."), 
5658 karl  1.1.2.1        Units ("KiloBytes per Second") ]
5659 karl  1.1        uint32 UncompressedDataRate;
5660                     [Description (
5661                       "Time in milliseconds from 'load' to being able to read "
5662                       "or write a Media. For example, for DiskDrives, this is "
5663                       "the interval between a disk not spinning to the disk "
5664                       "reporting that it is ready for read/write (ie, the disk "
5665                       "spinning at nominal speeds). For TapeDrives, this is "
5666                       "the time from a Media being injected to reporting that "
5667                       "it is ready for an application. This is usually at the "
5668                       "tape's BOT area."), 
5669 karl  1.1.2.1        Units ("MilliSeconds") ]
5670 karl  1.1        uint64 LoadTime;
5671                     [Description (
5672                       "Time in milliseconds from being able to read or write a "
5673                       "Media to its 'unload'. For example, for DiskDrives, "
5674                       "this is the interval between a disk spinning at nominal "
5675                       "speeds and a disk not spinning. For TapeDrives, this is "
5676                       "the time for a Media to go from its BOT to being fully "
5677                       "ejected and accessible to a PickerElement or human "
5678                       "operator."), 
5679 karl  1.1.2.1        Units ("MilliSeconds") ]
5680 karl  1.1        uint64 UnloadTime;
5681                     [Description (
5682                       "For a MediaAccessDevice that supports removable Media, "
5683                       "the number of times that Media have been mounted for "
5684                       "data transfer or to clean the Device. For Devices "
5685                       "accessing nonremovable Media, such as hard disks, "
5686                       "this property is not applicable and should be set to 0."),
5687 karl  1.1.2.1        Counter ]
5688 karl  1.1        uint64 MountCount;
5689                     [Description (
5690                       "For a MediaAccessDevice that supports removable Media, "
5691                       "the most recent date and time that Media was mounted "
5692                       "on the Device. For Devices accessing nonremovable Media, "
5693                       "such as hard disks, this property has no meaning and is "
5694 karl  1.1.2.1         "not applicable.") ]
5695 karl  1.1        datetime TimeOfLastMount;
5696                     [Description (
5697                       "For a MediaAccessDevice that supports removable Media, "
5698                       "the total time (in seconds) that Media have been mounted "
5699                       "for data transfer or to clean the Device. For Devices "
5700                       "accessing nonremovable Media, such as hard disks, "
5701 karl  1.1.2.1         "this property is not applicable and should be set to 0.") ]
5702 karl  1.1        uint64 TotalMountTime;
5703                     [Description (
5704                       "Defines 'Units' relative to its use in the property, "
5705                       "MaxUnitsBeforeCleaning. This describes the criteria used "
5706                       "to determine when the MediaAccessDevice should be cleaned."),
5707                      ModelCorrespondence {
5708 karl  1.1.2.1         "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning",
5709                       "CIM_MediaAccessDevice.UnitsUsed"} ]
5710 karl  1.1        string UnitsDescription;
5711                     [Description (
5712                       "An unsigned integer indicating the maximum 'units' "
5713                       "that can be used, with respect to the AccessDevice, "
5714                       "before the Device should be cleaned. The property, "
5715                       "UnitsDescription, defines how 'units' should be "
5716                       "interpreted."),
5717                      ModelCorrespondence {
5718 karl  1.1.2.1         "CIM_MediaAccessDevice.UnitsDescription"} ]
5719 karl  1.1        uint64 MaxUnitsBeforeCleaning;
5720                     [Description (
5721                       "An unsigned integer indicating the currently used " 
5722                       "'units' of the AccessDevice, helpful to describe "
5723                       "when the Device may require cleaning. The property, "
5724                       "UnitsDescription, defines how 'units' should be "
5725                       "interpreted."),
5726                      Gauge,
5727                      ModelCorrespondence {
5728                       "CIM_MediaAccessDevice.UnitsDescription",
5729                       "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning"}]
5730                  uint64 UnitsUsed;
5731 karl  1.1.2.1       [Description (
5732                       "Method to lock and unlock the media in a removeable Access"
5733                       "Device. The method takes one parameter as input - a boolean "
5734                       "indicating whether to lock or unlock. TRUE indicates that "
5735                       "the media should be locked in the Device, FALSE indicates "
5736                       "that the media should be unlocked. The method returns 0 if "
5737                       "successful, 1 if not supported, and any other value if an "
5738                       "error occurred. The set of possible return codes should be "
5739                       "specified in a ValueMap qualifier on the method. The strings "
5740                       "to which the ValueMap contents are 'translated' should be "
5741                       "specified as a Values array qualifier on the method.") ]
5742                  uint32 LockMedia (
5743                     [IN] boolean Lock);
5744 karl  1.1     };
5745               
5746 karl  1.1.2.1 
5747 karl  1.1     // ===================================================================
5748               // DiskDrive
5749               // ===================================================================
5750                  [Description (
5751 karl  1.1.2.1      "Capabilities and managment of a DiskDrive, a subtype of "
5752                    "MediaAccessDevice.") ] 
5753               class CIM_DiskDrive : CIM_MediaAccessDevice {
5754 karl  1.1     };
5755               
5756 karl  1.1.2.1 
5757 karl  1.1     // ===================================================================
5758               // DisketteDrive
5759               // ===================================================================
5760                  [Description (
5761 karl  1.1.2.1      "Capabilities and managment of a DisketteDrive, a subtype of "
5762                    "MediaAccessDevice.") ] 
5763               class CIM_DisketteDrive : CIM_MediaAccessDevice {
5764 karl  1.1     };
5765               
5766 karl  1.1.2.1 
5767 karl  1.1     // ===================================================================
5768               // CDROMDrive
5769               // ===================================================================
5770                  [Description (
5771 karl  1.1.2.1      "Capabilities and managment of a CDROMDrive, a subtype of "
5772                    "MediaAccessDevice.") ] 
5773               class CIM_CDROMDrive : CIM_MediaAccessDevice {
5774               };
5775               
5776               
5777               // ===================================================================
5778               // DVDDrive 
5779               // ===================================================================
5780                  [Description (
5781                    "Capabilities and management of a DVDDrive, a subtype of "
5782                    "MediaAccessDevice.") ]
5783               class CIM_DVDDrive : CIM_MediaAccessDevice {
5784                     [Description (
5785                       "The CD and DVD formats that are supported by this Device. "
5786                       "For example, the Drive may support \"CD-ROM\" and "
5787                       "\"DVD-RAM\". In this case, the values 16 and 24 would be "
5788                       "written to the array. This property's values align with "
5789                       "those defined in PhysicalMedia.MediaType."), 
5790                      ValueMap {"0", "1", "16", "17", "18", "19", "22", "23", "24", 
5791                                "25", "26", "27", "33", "34", "35", "36", "37", "38", 
5792 karl  1.1.2.1                  "39", "40", "41", "42"}, 
5793                      Values {"Unknown", "Other", "CD-ROM", "CD-ROM/XA", 
5794                              "CD-I", "CD Recordable", "DVD", "DVD-RW+", 
5795                              "DVD-RAM", "DVD-ROM", "DVD-Video", "Divx", "CD-RW", 
5796                              "CD-DA", "CD+", "DVD Recordable", "DVD-RW", 
5797                              "DVD-Audio", "DVD-5", "DVD-9", "DVD-10", "DVD-18"},
5798                      ModelCorrespondence {"CIM_PhysicalMedia.MediaType"} ]
5799                  uint16 FormatsSupported[];
5800 karl  1.1     };
5801               
5802 karl  1.1.2.1 
5803 karl  1.1     // ===================================================================
5804               // WORMDrive
5805               // ===================================================================
5806                  [Description (
5807 karl  1.1.2.1      "Capabilities and managment of a WORMDrive, a subtype of "
5808                    "MediaAccessDevice.") ] 
5809               class CIM_WORMDrive : CIM_MediaAccessDevice {
5810 karl  1.1     };
5811               
5812 karl  1.1.2.1 
5813 karl  1.1     // ===================================================================
5814               // MagnetoOpticalDrive
5815               // ===================================================================
5816                  [Description (
5817 karl  1.1.2.1      "Capabilities and managment of a MagnetoOpticalDrive, a "
5818                    "subtype of MediaAccessDevice.") ] 
5819               class CIM_MagnetoOpticalDrive : CIM_MediaAccessDevice {
5820 karl  1.1     };
5821               
5822 karl  1.1.2.1 
5823 karl  1.1     // ===================================================================
5824               // TapeDrive
5825               // ===================================================================
5826                  [Description (
5827 karl  1.1.2.1      "Capabilities and managment of a TapeDrive, a subtype of "
5828                    "MediaAccessDevice.") ] 
5829               class CIM_TapeDrive : CIM_MediaAccessDevice {
5830                     [Description (
5831                       "EOTWarningZoneSize indicates the size, in bytes, of the "
5832                       "area designated as 'end of tape'. Access in this area "
5833                       "generates an 'end of tape' warning."),
5834                      Units ("Bytes") ]
5835 karl  1.1        uint32 EOTWarningZoneSize;
5836 karl  1.1.2.1       [Description ("Maximum partition count for the TapeDrive.") ]
5837 karl  1.1        uint32 MaxPartitionCount;
5838                     [Description (
5839 karl  1.1.2.1         "Padding indicates the number of bytes inserted between "
5840                       "blocks on a tape Media."),
5841                      Units ("Bytes") ]
5842 karl  1.1        uint32 Padding;
5843                     [Description (
5844                       "Time in milliseconds to move from the most physically distant "
5845                       "point on the tape to the beginning."), 
5846 karl  1.1.2.1        Units ("MilliSeconds") ]
5847 karl  1.1        uint64 MaxRewindTime;
5848               };
5849               
5850               
5851               // ===================================================================
5852 karl  1.1.2.1 // StorageExtent
5853 karl  1.1     // ===================================================================
5854                  [Description (
5855 karl  1.1.2.1      "StorageExtent describes the capabilities and management of "
5856                    "the various media that exist to store data and allow data "
5857                    "retrieval. This superclass could be used to represent the "
5858                    "various components of RAID (Hardware or Software) or as a "
5859                    "raw logical extent on top of physical media.") ] 
5860               class CIM_StorageExtent : CIM_LogicalDevice {
5861                     [Description ("Type of data organization used."), 
5862                      Values {"Other", "Unknown", "Fixed Block", "Variable Block", 
5863                              "Count Key Data"} ]
5864                  uint16 DataOrganization;
5865 karl  1.1           [Description (
5866 karl  1.1.2.1         "A free form string describing the media and/or its use."),
5867                      MappingStrings {
5868                       "MIB.IETF|HOST-RESOURCES-MIB.hrStorageDescr"} ]
5869                  string Purpose;
5870 karl  1.1           [Description (
5871 karl  1.1.2.1         "Access describes whether the media is readable (value=1), "
5872                       "writeable (value=2), or both (value=3). \"Unknown\" (0) "
5873                       "and \"Write Once\" (4) can also be defined."),
5874 karl  1.1            Values {"Unknown", "Readable", "Writeable", 
5875 karl  1.1.2.1                "Read/Write Supported", "Write Once"} ]
5876 karl  1.1        uint16 Access;
5877                     [Description (
5878 karl  1.1.2.1         "ErrorMethodology is a free-form string describing "
5879                       "the type of error detection and correction supported "
5880                       "by this StorageExtent.") ]
5881 karl  1.1        string ErrorMethodology;
5882                     [Description (
5883                       "Size in bytes of the blocks which form this StorageExtent. "
5884                       "If variable block size, then the maximum block size in bytes "
5885                       "should be specified. If the block size is unknown or if a "
5886                       "block concept is not valid (for example, for Aggregate Extents, "
5887                       "Memory or LogicalDisks), enter a 1."), 
5888                      Units ("Bytes"),
5889 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Host Storage|001.4", 
5890                       "MIB.IETF|HOST-RESOURCES-MIB.hrStorageAllocationUnits,"
5891                       "MIF.DMTF|Storage Devices|001.5"}  ]
5892 karl  1.1        uint64 BlockSize;
5893                     [Description (
5894 karl  1.1.2.1         "Total number of logically contiguous blocks, of size Block"
5895 karl  1.1             "Size, which form this Extent. The total size of the Extent "
5896                       "can be calculated by multiplying BlockSize by NumberOfBlocks. "
5897                       "If the BlockSize is 1, this property is the total size of the "
5898                       "Extent."),
5899 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Host Storage|001.5", 
5900                       "MIB.IETF|HOST-RESOURCES-MIB.hrStorageSize"} ]
5901 karl  1.1        uint64 NumberOfBlocks;
5902                     [Description ( 
5903                       "The maximum number of blocks, of size BlockSize, which are "
5904                       "available for consumption when layering StorageExtents "
5905                       "using the BasedOn association. This property only has meaning "
5906                       "when this StorageExtent is an Antecedent reference in a "
5907                       "BasedOn relationship. For example, a StorageExtent could be "
5908                       "composed of 120 blocks. However, the Extent itself may use 20 "
5909                       "blocks for redundancy data. If another StorageExtent is BasedOn "
5910                       "this Extent, only 100 blocks would be available to it. This "
5911                       "information ('100 blocks is available for consumption') is "
5912 karl  1.1.2.1         "indicated in the ConsumableBlocks property.")  ]
5913 karl  1.1        uint64 ConsumableBlocks;
5914                     [Description (
5915                       "True indicates that the underlying StorageExtent(s) "
5916 karl  1.1.2.1         "participate in a StorageRedundancyGroup.") ]
5917 karl  1.1        boolean IsBasedOnUnderlyingRedundancy;
5918                     [Description (
5919                       "Boolean set to TRUE if the Storage is sequentially accessed "
5920                       "by a MediaAccessDevice. A TapePartition is an example of a "
5921                       "sequentially accessed StorageExtent. StorageVolumes, Disk"
5922                       "Partitions and LogicalDisks represent randomly accessed "
5923 karl  1.1.2.1         "Extents.") ]
5924 karl  1.1        boolean SequentialAccess;
5925               };
5926               
5927 karl  1.1.2.1 
5928 karl  1.1     // ===================================================================
5929               // ResidesOnExtent
5930               // ===================================================================
5931 karl  1.1.2.1    [Association, Description (
5932                    "An association between a FileSystem and the StorageExtent "
5933                    "where it is located. Typically, a FileSystem ResidesOn "
5934                    "a LogicalDisk.") ] 
5935               class CIM_ResidesOnExtent : CIM_Dependency {
5936                     [Override ("Antecedent"), Description ("The StorageExtent.") ]
5937 karl  1.1        CIM_StorageExtent REF Antecedent;
5938 karl  1.1.2.1       [Override ("Dependent"), Description (
5939                     "The FileSystem that is located on the StorageExtent.") ]
5940 karl  1.1        CIM_FileSystem REF Dependent;
5941               };
5942               
5943               
5944               // ===================================================================
5945               // BasedOn
5946               // ===================================================================
5947 karl  1.1.2.1    [Association, Description (
5948                    "BasedOn is an association describing how StorageExtents can "
5949                    "be assembled from lower level Extents. For example, "
5950                    "ProtectedSpaceExtents are parts of PhysicalExtents, while "
5951                    "VolumeSets are assembled from one or more Physical or "
5952                    "ProtectedSpaceExtents. As another example, CacheMemory "
5953                    "can be defined independently and realized in a PhysicalElement "
5954                    "or can be 'based on' Volatile or NonVolatileStorageExtents.") ] 
5955               class CIM_BasedOn : CIM_Dependency {
5956                     [Override ("Antecedent"), Description (
5957                       "The lower level StorageExtent.") ]
5958 karl  1.1        CIM_StorageExtent REF Antecedent;
5959 karl  1.1.2.1       [Override ("Dependent"), Description (
5960                       "The higher level StorageExtent.") ]
5961 karl  1.1        CIM_StorageExtent REF Dependent;
5962                     [Description (
5963 karl  1.1.2.1         "StartingAddress indicates where in lower level storage, "
5964                       "the higher level Extent begins.") ] 
5965 karl  1.1        uint64 StartingAddress;
5966                     [Description (
5967 karl  1.1.2.1         "EndingAddress indicates where in lower level storage, "
5968                       "the higher level Extent ends. This property is useful when "
5969                       "mapping non-contiguous Extents into a higher level grouping.") ] 
5970 karl  1.1        uint64 EndingAddress;
5971                     [Description (
5972                       "If there is an order to the BasedOn associations that "
5973                       "describe how a higher level StorageExtent is assembled, the "
5974                       "OrderIndex property indicates this. When an order exists, "
5975                       "the instances of BasedOn with the same Dependent value "
5976                       "(i.e., the same higher level Extent) should place unique "
5977                       "values in the OrderIndex property. The lowest value implies "
5978                       "the first member of the collection of lower level Extents, "
5979                       "and increasing values imply successive members of the "
5980                       "collection. If there is no ordered relationship, a value "
5981                       "of zero should be specified. An example of the use of this "
5982                       "property is to define a RAID-0 striped array of 3 disks. "
5983                       "The resultant RAID array is a StorageExtent that is "
5984                       "dependent on (BasedOn) the StorageExtents that describe "
5985                       "each of the 3 disks. The OrderIndex of each BasedOn "
5986                       "association from the disk Extents to the RAID array could "
5987                       "be specified as 1, 2 and 3 to indicate the order in which "
5988 karl  1.1.2.1         "the disk Extents are used to access the RAID data.") ]
5989 karl  1.1        uint16 OrderIndex;
5990               };
5991               
5992 karl  1.1.2.1 
5993 karl  1.1     // ===================================================================
5994               // MediaPresent
5995               // ===================================================================
5996 karl  1.1.2.1    [Association, Description (
5997                    "Where a StorageExtent must be accessed through a MediaAccess"
5998                    "Device, this relationship is described by the MediaPresent "
5999                    "association."),
6000                   MappingStrings {"MIF.DMTF|Storage Devices|001.8"}  ] 
6001               class CIM_MediaPresent : CIM_Dependency {
6002 karl  1.1           [Override ("Antecedent"),
6003 karl  1.1.2.1        Description ("The MediaAccessDevice.") ]
6004 karl  1.1        CIM_MediaAccessDevice REF Antecedent;
6005 karl  1.1.2.1       [Override ("Dependent"), Description (
6006                       "The StorageExtent accessed using the MediaAccessDevice.") ]
6007 karl  1.1        CIM_StorageExtent REF Dependent;
6008                     [Description (
6009                       "Boolean indicating that the accessed StorageExtent is "
6010 karl  1.1.2.1         "fixed in the MediaAccessDevice and can not be ejected.") ]
6011 karl  1.1        boolean FixedMedia;
6012               };
6013               
6014 karl  1.1.2.1 
6015 karl  1.1     // ===================================================================
6016               // StorageError
6017               // ===================================================================
6018                  [Description (
6019 karl  1.1.2.1      "StorageError defines blocks of media or memory space that are "
6020                    "mapped 'out of use' due to errors. The Key of the class is "
6021                    "the StartingAddress of the bytes in error.") ] 
6022               class CIM_StorageError : CIM_ManagedElement {
6023 karl  1.1           [Propagated("CIM_StorageExtent.SystemCreationClassName"),
6024                      Key, MaxLen (256),
6025 karl  1.1.2.1        Description ("The scoping System's CreationClassName.") ]
6026 karl  1.1        string SystemCreationClassName;
6027                     [Propagated("CIM_StorageExtent.SystemName"),
6028                      Key, MaxLen (256),
6029 karl  1.1.2.1        Description ("The scoping System's Name.") ]
6030 karl  1.1        string SystemName;
6031                     [Propagated("CIM_StorageExtent.CreationClassName"),
6032                      Key, MaxLen (256),
6033 karl  1.1.2.1        Description ("The scoping StorageExtent's CreationClassName.") ]
6034 karl  1.1        string DeviceCreationClassName;
6035                     [Propagated("CIM_StorageExtent.DeviceID"),
6036                      Key, MaxLen (64),
6037 karl  1.1.2.1        Description ("The scoping StorageExtent's DeviceID.") ]
6038 karl  1.1        string DeviceID;
6039                     [Key,
6040 karl  1.1.2.1        Description ("The starting address of the bytes in error.") ]
6041 karl  1.1        uint64 StartingAddress;
6042 karl  1.1.2.1       [Description ("The ending address of the bytes in error.") ]
6043 karl  1.1        uint64 EndingAddress;
6044               };
6045               
6046 karl  1.1.2.1 
6047 karl  1.1     // ===================================================================
6048               // StorageDefect
6049               // ===================================================================
6050 karl  1.1.2.1    [Association, Aggregation, Description (
6051                    "The StorageDefect aggregation collects the StorageErrors for "
6052                    "a StorageExtent.") ] 
6053               class CIM_StorageDefect {
6054                     [Key, Aggregate, Min (1), Max (1), Description (
6055                       "The Extent reference defines the StorageExtent on which the "
6056                       "errors occurred.") ]
6057 karl  1.1        CIM_StorageExtent REF Extent;
6058 karl  1.1.2.1       [Key, Weak, Description (
6059                       "Error references the Error object, defining the starting "
6060                       "and ending addresses that are 'mapped out' of the Storage"
6061                       "Extent.") ]
6062 karl  1.1        CIM_StorageError REF Error;
6063               };
6064               
6065 karl  1.1.2.1 
6066 karl  1.1     // ===================================================================
6067               // PhysicalExtent
6068               // ===================================================================
6069                  [Description (
6070                    "A PhysicalExtent is used to model an SCC RAID "
6071                    "implementation. It defines the consecutive addressable "
6072                    "block addresses on a single storage device, that are "
6073                    "treated as a single StorageExtent and that are in the "
6074                    "same StorageRedundancyGroup. An alternate possibility, "
6075                    "if automatic configuration is used, is to instantiate or "
6076 karl  1.1.2.1      "extend the AggregatePExtent class.") ] 
6077               class CIM_PhysicalExtent : CIM_StorageExtent {
6078 karl  1.1     // Override is used to define the MappingString qualifier 
6079 karl  1.1.2.1       [Override ("BlockSize"),   
6080                      MappingStrings {"MIF.DMTF|Physical Extent|001.4"} ]
6081 karl  1.1        uint64 BlockSize;
6082               // Override is used to define the MappingString qualifier 
6083 karl  1.1.2.1       [Override ("NumberOfBlocks"),
6084                      MappingStrings {"MIF.DMTF|Physical Extent|001.3"} ]
6085 karl  1.1        uint64 NumberOfBlocks;
6086                     [Description (
6087 karl  1.1.2.1         "Number of bytes of user data to skip before "
6088                       "starting the check data interleave."),
6089                      Units ("Bytes"),
6090                      MappingStrings {"MIF.DMTF|Physical Extent|001.6"} ]
6091 karl  1.1        uint64 UnitsBeforeCheckDataInterleave;
6092                     [Description (
6093 karl  1.1.2.1         "Number of bytes to be reserved for check data."),
6094                      Units ("Bytes"), 
6095                      MappingStrings {"MIF.DMTF|Physical Extent|001.7"} ]
6096 karl  1.1        uint64 UnitsOfCheckData;
6097                     [Description (
6098 karl  1.1.2.1         "Number of bytes to be reserved for user data."),
6099                      Units ("Bytes"),
6100                      MappingStrings {"MIF.DMTF|Physical Extent|001.8"} ]
6101 karl  1.1        uint64 UnitsOfUserData;
6102               };
6103               
6104               
6105               // ===================================================================
6106               // ProtectedSpaceExtent
6107               // ===================================================================
6108                  [Description (
6109                    "A ProtectedSpaceExtent is used to model an SCC RAID "
6110                    "implementation. ProtectedSpaceExtent defines addressable logical "
6111                    "block addresses, treated as a single Extent, located on one or "
6112                    "more PhysicalExtents. ProtectedSpaceExtents exclude any logical "
6113                    "blocks mapped as check data and contain user data stripe depth "
6114                    "mapping information. An alternate possibility, if automatic "
6115                    "configuration is used, is to instantiate or extend the Aggregate"
6116 karl  1.1.2.1      "PSExtent class.") ] 
6117               class CIM_ProtectedSpaceExtent : CIM_StorageExtent {
6118 karl  1.1     // Override is used to define the MappingString qualifier 
6119 karl  1.1.2.1       [Override ("BlockSize"),
6120                      MappingStrings {"MIF.DMTF|Protected Space Extent|001.4"} ]
6121 karl  1.1        uint64 BlockSize;
6122                     [Override ("NumberOfBlocks"),
6123                      Description (
6124                       "The number of user data blocks contained in this Extent."),
6125 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Protected Space Extent|001.3"} ]
6126 karl  1.1        uint64 NumberOfBlocks;
6127 karl  1.1.2.1       [Description (
6128 karl  1.1             "For a ProtectedSpaceExtent that is allocated to a VolumeSet, "
6129                       "(i.e. is named in a CIM_VolumeSetBasedOnPSExtent "
6130                       "association), this property is the number of user data bytes "
6131 karl  1.1.2.1         "placed on this ProtectedSpaceExtent before moving on to the "
6132                       "next ProtectedSpaceExtent in the VolumeSet.  Otherwise, this "
6133                       "ProtectedSpaceExtent is considered to be unallocated and "
6134                       "this property shall be set to zero (0h.)"),
6135                      Units ("Bytes"),
6136                      MappingStrings {"MIF.DMTF|Protected Space Extent|001.6"} ]
6137                   uint64 UserDataStripeDepth;
6138 karl  1.1     };
6139               
6140 karl  1.1.2.1 
6141 karl  1.1     // ===================================================================
6142               // PSExtentBasedOnPExtent
6143               // ===================================================================
6144 karl  1.1.2.1    [Association, Description (
6145                    "ProtectedSpaceExtents are BasedOn a PhysicalExtent. This "
6146                    "relationship is made explicit in this association.") ] 
6147               class CIM_PSExtentBasedOnPExtent : CIM_BasedOn {
6148                     [Override ("Antecedent"), Description (
6149                       "The PhysicalExtent.") ]
6150 karl  1.1        CIM_PhysicalExtent REF Antecedent;
6151 karl  1.1.2.1       [Override ("Dependent"), Description (
6152                       "The ProtectedSpaceExtent which is built on the Physical"
6153                       "Extent.") ]
6154 karl  1.1        CIM_ProtectedSpaceExtent REF Dependent;
6155 karl  1.1.2.1       [Override ("StartingAddress"), Description (
6156 karl  1.1             "The starting logical block address of the PhysicalExtent "
6157                       "from which this ProtectedSpaceExtent is derived."), 
6158 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Protected Space Extent|001.2"} ]
6159 karl  1.1        uint64 StartingAddress;
6160               };
6161               
6162 karl  1.1.2.1 
6163 karl  1.1     // ===================================================================
6164               // StorageVolume 
6165               // ===================================================================
6166                  [Description (
6167                    "A StorageVolume is an Extent that is presented to the Operating"
6168                    "System (for example, by a hardware RAID cabinet), to a File"
6169                    "System (for example, by a software volume manager) or to another "
6170                    "entity. StorageVolumes do NOT participate in StorageRedundancy"
6171                    "Groups. They are directly Realized in hardware or are the end "
6172 karl  1.1.2.1      "result of assembling lower level Extents.") ]
6173               class CIM_StorageVolume : CIM_StorageExtent {
6174 karl  1.1     };
6175               
6176 karl  1.1.2.1 
6177 karl  1.1     // ===================================================================
6178               // VolumeSet
6179               // ===================================================================
6180                  [Description (
6181 karl  1.1.2.1      "A VolumeSet is used to model an SCC RAID implementation. "
6182                    "VolumeSets represent a contiguous range of logical blocks "
6183                    "presented to the operating environment. VolumeSets may overlap. "
6184                    "However, the underlying PhysicalExtents within the overlap "
6185                    "shall not contain any check data. They are BasedOn one or more "
6186                    "ProtectedSpaceExtents. These BasedOn associations should be "
6187                    "instantiated or subclassed as needed.") ] 
6188               class CIM_VolumeSet : CIM_StorageVolume {
6189 karl  1.1     // Override is used to define the MappingString qualifier 
6190 karl  1.1.2.1       [Override ("NumberOfBlocks"), 
6191                      MappingStrings {"MIF.DMTF|Volume Set|001.3"} ]
6192 karl  1.1        uint64 NumberOfBlocks;
6193                     [Description (
6194                       "Number of contiguous ProtectedSpaceExtents counted "
6195                       "before looping back to the first ProtectedSpaceExtent "
6196                       "of the current stripe. It is the number of Extents forming "
6197                       "the user data stripe."),
6198 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Volume Set|001.4"} ]
6199 karl  1.1        uint64 PSExtentStripeLength;
6200                     [Description (
6201                       "Number of ProtectedSpaceExtents to stripe as a collective "
6202                       "set. In SCC, this value is defined as the number of stripes "
6203                       "to count before continuing to map into the next contiguous "
6204                       "set of Extents, beyond the current stripe."), 
6205 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Volume Set|001.5"} ]
6206 karl  1.1        uint64 PSExtentInterleaveDepth;
6207                     [Description (
6208                       "VolumeSets in SCC have additional status information "
6209                       "beyond that captured in the Availability and StatusInfo "
6210                       "properties, inherited from ManagedSystemElement. This "
6211                       "additional information (for example, \"Protection Disabled\", "
6212                       "value=9) is captured in the VolumeStatus property."), 
6213                      Values {"Other", "Unknown", "None/Not Applicable", "Broken", 
6214 karl  1.1.2.1                "Data Lost", "Dynamic Reconfig", "Exposed", 
6215                              "Fractionally Exposed", "Partially Exposed", 
6216                              "Protection Disabled", "Readying", "Rebuild", 
6217                              "Recalculate", "Spare in Use", "Verify In Progress"} ]
6218 karl  1.1        uint16 VolumeStatus;
6219               };
6220               
6221 karl  1.1.2.1 
6222 karl  1.1     // ===================================================================
6223               // VolumeSetBasedOnPSExtent
6224               // ===================================================================
6225 karl  1.1.2.1    [Association, Description (
6226                    "VolumeSets are BasedOn on one or more ProtectedSpaceExtents. "
6227                    "This relationship is made explicit in this association.") ]
6228               class CIM_VolumeSetBasedOnPSExtent : CIM_BasedOn {
6229                     [Override ("Antecedent"), Min (1), 
6230                      Description ("The ProtectedSpaceExtent.") ]
6231 karl  1.1        CIM_ProtectedSpaceExtent REF Antecedent;
6232 karl  1.1.2.1       [Override ("Dependent"), Description (
6233                       "The VolumeSet which is built on the ProtectedSpaceExtent.") ]
6234 karl  1.1        CIM_VolumeSet REF Dependent;
6235                     [Description (
6236                       "True if logical blocks in the ProtectedSpaceExtent are mapped "
6237                       "in decrementing order. This property corresponds to the INCDEC "
6238 karl  1.1.2.1         "value in the SCC-2 Volume Set PS_Extent Descriptor.") ]
6239 karl  1.1        boolean LBAsMappedByDecrementing;
6240                     [Description (
6241                       "True if the logical block mapping algorithm includes check data "
6242                       "bytes. This property corresponds to the NOCHKSKIP attribute in "
6243 karl  1.1.2.1         "the SCC-2 Volume Set PS_Extent Descriptor.") ]
6244 karl  1.1        boolean LBAMappingIncludesCheckData;
6245               };
6246               
6247 karl  1.1.2.1 
6248 karl  1.1     // ===================================================================
6249               // MediaPartition
6250               // ===================================================================
6251                  [Description (
6252 karl  1.1.2.1      "A MediaPartition is a presentation of a contiguous range "
6253                    "of logical blocks and has identifying data written on/to it. "
6254                    "It may include a signature written by the OS or by "
6255                    "an application.  This class is a common superclass for Disk and "
6256                    "TapePartions. Partitions are directly realized by Physical"
6257                    "Media (indicated by the RealizesExtent association) or built "
6258                    "on StorageVolumes (indicated by the BasedOn association.") ] 
6259               class CIM_MediaPartition : CIM_StorageExtent {
6260 karl  1.1           [Description (
6261                       "Boolean indicating that the Partition is labeled as "
6262                       "bootable. (Note that this does not mean that an Operating"
6263                       "System is actually loaded on the Partition.) With the advent "
6264                       "of bootable Tape and other bootable media, this property is "
6265                       "included in the higher level MediaPartition class, rather "
6266 karl  1.1.2.1         "than in a subclass such as DiskPartition.") ]
6267 karl  1.1        boolean Bootable;
6268                     [Description (
6269                       "Boolean indicating that the Partition is available and "
6270 karl  1.1.2.1         "may be allocated for use.") ]
6271 karl  1.1        boolean Allocatable;
6272                     [Description (
6273                       "An identifying string written to the Partition. Additional "
6274                       "information related to this 'Signature' may be found in the "
6275                       "properties, SignatureState and SignatureAlgorithm."), 
6276                      ModelCorrespondence {"CIM_MediaPartition.SignatureState",
6277 karl  1.1.2.1         "CIM_MediaPartition.SignatureAlgorithm"} ]
6278 karl  1.1        string Signature;
6279                     [Description (
6280                       "A free-form string describing the algorithm used to "
6281                       "define the Partition Signature. The value of this property "
6282                       "is dependent on the Signature's State. "),
6283                      ModelCorrespondence {"CIM_MediaPartition.Signature", 
6284 karl  1.1.2.1         "CIM_MediaPartition.SignatureState"} ]
6285 karl  1.1        string SignatureAlgorithm;
6286                     [Description (
6287                       "An enumeration describing the state of the Partition's "
6288                       "identifying Signature string. Information such as "
6289                       "\"Uninitialized\" (value=2), or \"Assigned by Owning "
6290                       "Application\" (value=5) are possible entries. "),
6291                      Values {"Unknown", "Unimplemented", "Uninitialized",
6292 karl  1.1.2.1                "Calculated by Operating System", 
6293                              "Calculated by a Media Manager", 
6294                              "Assigned by Owning Application"},
6295 karl  1.1            ModelCorrespondence {"CIM_MediaPartition.Signature",
6296 karl  1.1.2.1         "CIM_MediaPartition.SignatureAlgorithm"} ]
6297 karl  1.1        string SignatureState;
6298 karl  1.1.2.1       [Description (
6299 karl  1.1             "Boolean indicating that the Partition can be grown/extended "
6300 karl  1.1.2.1         "without reformatting.") ]
6301 karl  1.1        boolean Extendable;
6302               };
6303               
6304 karl  1.1.2.1 
6305 karl  1.1     // ===================================================================
6306               // DiskPartition
6307               // ===================================================================
6308                  [Description (
6309 karl  1.1.2.1      "A DiskPartition is a presentation of a contiguous range "
6310                    "of logical blocks that is identifiable by the Operating"
6311                    "System via the Partition's type and subtype fields. Disk"
6312                    "Partitions should be directly realized by PhysicalMedia "
6313                    "(indicated by the RealizesDiskPartition association) or built "
6314                    "on StorageVolumes (indicated by the PartitionBasedOnVolume "
6315                    "association.") ] 
6316               class CIM_DiskPartition : CIM_MediaPartition {
6317                     [Description (
6318                       "Boolean indicating that the DiskPartition is labelled as "
6319                       "the primary partition for a ComputerSystem.") ]
6320 karl  1.1        boolean PrimaryPartition;
6321                     [Description ("The type of Partition."), 
6322 karl  1.1.2.1        Values {"Unknown", "Primary", "Extended", "Logical"} ]
6323 karl  1.1        uint16 PartitionType;
6324                     [Description (
6325                       "The 'sub' type of a primary, extended, or logical Partition. "
6326                       "The list of possible values corresponds to the decimal "
6327                       "representation of the typical values in the Partition record."), 
6328                      ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
6329 karl  1.1.2.1                  "10", "11", "12", "14", "15", "16", "17", "18", 
6330                                "20", "22", "23", "27", "28", "33", "35", "36", 
6331                                "38", "49", "51", "52", "53", "54", "55", "60", 
6332                                "64", "65", "66", "67", "80", "81", "82", "83", 
6333                                "84", "85", "86", "97", "99", "100", "101", "102", 
6334                                "103", "104", "105", "113", "115", "116", "117", 
6335                                "118", "119", "120", "121", "128", "129", "130", 
6336                                "131", "132", "134", "135", "147", "148", "161", 
6337                                "163", "164", "165", "166", "177", "179", "180", 
6338                                "182", "183", "184", "193", "196", "198", "199", 
6339                                "216", "219", "225", "227", "228", "229", "230", 
6340                                "239", "240", "241", "242", "243", "244", "246", 
6341                                "254", "255", "65535"}, 
6342 karl  1.1            Values {"Empty | Microsoft", "DOS 12-bit FAT", 
6343 karl  1.1.2.1                "XENIX root", "XENIX usr", "DOS 16-bit FAT", 
6344                              "DOS Extended", "DOS 16-bit FAT (> 32MB)", 
6345                              "OS/2 HPFS | Win NTFS | QNX Ver 2 | Adv UNIX", 
6346                              "AIX Boot | OS /2 | Dell (Array) | Commodore DOS", 
6347                              "AIX Data, Coherent", "OS/2 Boot Manager", 
6348                              "32-bit FAT", "32-bit FAT", "Microsoft 16-bit FAT", 
6349                              "Microsoft DOS Extended", "OPUS | OS/2 2.0", 
6350                              "OS/2 (MOSS) Inactive Type 1", 
6351                              "Compaq Diagnostics Partition | Microsoft", 
6352                              "OS/2 (MOSS) Inactive Type 4", 
6353                              "OS/2 (MOSS) Inactive Type 6", 
6354                              "OS/2 (MOSS) Inactive Type 7", 
6355                              "OS/2 (MOSS) Inactive Type B", 
6356                              "OS/2 (MOSS) Inactive Type C", "Microsoft", 
6357                              "Microsoft", "Microsoft", "Microsoft", "Microsoft", 
6358                              "Microsoft", "Microsoft", "OS/2 Logical Volume Manager", 
6359                              "Microsoft", "OS/2 JFS Log", "PowerQuest", 
6360                              "VENIX 80286 | Series/1 Disk", "Personal RISC Boot", 
6361                              "Veritas", "Veritas", "OnTrack Disk Manager Read Only DOS", 
6362                              "OnTrack Disk Manager Read/Write DOS", 
6363                              "CPM | Microport System V/386 | OnTrack Disk Mgr | Microsoft", 
6364 karl  1.1.2.1                "OnTrack Disk Manager", "OnTrack Disk Manager Non-DOS", 
6365                              "Micro House EZ-Drive Non-DOS", 
6366                              "Golden Bow Vfeature | Microsoft", 
6367                              "Storage Dimensions SpeedStor | Microsoft", 
6368                              "UNIX - AT&T System V/386 | SCO UNIX", 
6369                              "Novell NetWare | Speedstore", "Novell NetWare", 
6370                              "Novell NetWare", "Novell", "Novell", "Novell", 
6371                              "Microsoft", "Microsoft", "Microsoft", "PC/IX IBM", 
6372                              "Microsoft", "QNX POSIX", "QNX POSIX (Secondary)", 
6373                              "QNX POSIX (Secondary)", 
6374                              "Minix (<=1.4a) | Linux | Microsoft", 
6375                              "Minix (>=1.4b) | Microsoft", "Linux Swap | Prime", 
6376                              "Linux Native | Apple", "System Hibernation for APM", 
6377                              "Microsoft", "HPFS FT mirror", "Amoeba | Microsoft", 
6378                              "Amoeba BBT | Microsoft", "Microsoft", "Microsoft", 
6379                              "Microsoft", "BSD/386", "Microsoft", "Microsoft", 
6380                              "Microsoft", "Microsoft", "Microsoft", 
6381                              "BSDI fs | Microsoft", "BSDI Swap | Microsoft", 
6382                              "Microsoft", "Microsoft", "Microsoft", 
6383                              "Syrinx | HPFS FT Disabled Mirror", "CP/M 86", 
6384                              "Digital Research CPM-86 | Concurrent DOS | OUTRIGGER", 
6385 karl  1.1.2.1                "SpeedStor 12-bit FAT Extended", 
6386                              "DOS Read-Only | Storage Dimensions", 
6387                              "SpeedStor 16-bit FAT Extended", "Microsoft", 
6388                              "Microsoft", "Intel", "OS/2 Raw Data", 
6389                              "Storage Dimensions", "DOS (Secondary)", "Microsoft", 
6390                              "SpeedStor Large | Storage Dimensions", "Microsoft", 
6391                              "Lan Step | SpeedStor | IBM PS/2 IML", 
6392                              "Bad Block Tables", "Unknown"} ]
6393 karl  1.1        uint16 PartitionSubtype;
6394               };
6395               
6396 karl  1.1.2.1 
6397 karl  1.1     // ===================================================================
6398               // DiskPartitionBasedOnVolume
6399               // ===================================================================
6400 karl  1.1.2.1    [Association, Description (
6401                    "DiskPartitions should be BasedOn a single StorageVolume (for "
6402                    "example, exposed by a hardware RAID cabinet), an SCC VolumeSet, "
6403                    "or realized directly in PhysicalMedia. The first two "
6404                    "relationships are made explicit in this association. The latter "
6405                    "is conveyed by the RealizesDiskPartition association.") ]
6406               class CIM_DiskPartitionBasedOnVolume : CIM_BasedOn {
6407 karl  1.1           [Override ("Antecedent"), Max (1), 
6408                      Description ("The StorageVolume.") ]
6409                  CIM_StorageVolume REF Antecedent;
6410 karl  1.1.2.1       [Override ("Dependent"), Description (
6411                       "The DiskPartition which is built on the Volume.") ]
6412 karl  1.1        CIM_DiskPartition REF Dependent;
6413               };
6414               
6415 karl  1.1.2.1 
6416 karl  1.1     // ===================================================================
6417               // TapePartition
6418               // ===================================================================
6419                  [Description (
6420 karl  1.1.2.1      "Capabilities and management of a TapePartition StorageExtent. "
6421                    "Note that if a PhysicalTape is not partitioned, only a "
6422                    "generic StorageExtent that represents the entire Tape should "
6423                    "be instantiated. TapePartitions may be BasedOn other "
6424                    "StorageExtents or directly Realized on a PhysicalTape.") ]
6425               class CIM_TapePartition : CIM_MediaPartition {
6426 karl  1.1           [Gauge, Description (
6427                       "Number of blocks that are currently unused/not written on "
6428                       "the Partition. When this number is multiplied by the "
6429                       "BlockSize, inherited from StorageExtent, the total number "
6430 karl  1.1.2.1         "of bytes available for writing can be computed.") ]
6431 karl  1.1        uint64 UnusedBlocks;
6432               
6433               };
6434               
6435 karl  1.1.2.1 
6436 karl  1.1     // ===================================================================
6437               // TapePartitionOnSurface
6438               // ===================================================================
6439 karl  1.1.2.1    [Association, Description (
6440                    "TapePartitionOnSurface represents the ability to have one or "
6441                    "more TapePartitions on each surface of a PhysicalTape. The "
6442                    "individual surfaces are represented as instances of "
6443                    "CIM_StorageExtent.") ]
6444               class CIM_TapePartitionOnSurface : CIM_BasedOn {
6445                     [Override ("Antecedent"), Max (1), 
6446 karl  1.1            Description (
6447 karl  1.1.2.1         "The StorageExtent that represents the Tape's surface.") ]
6448 karl  1.1        CIM_StorageExtent REF Antecedent;
6449 karl  1.1.2.1       [Override ("Dependent"), Description (
6450                       "The TapePartition which is built on the Extent.") ]
6451 karl  1.1        CIM_TapePartition REF Dependent;
6452               };
6453               
6454 karl  1.1.2.1 
6455 karl  1.1     // ===================================================================
6456               // LogicalDisk
6457               // ===================================================================
6458                  [Description (
6459 karl  1.1.2.1      "A LogicalDisk is a presentation of a contiguous range of "
6460                    "logical blocks that is identifiable by a FileSystem via the "
6461                    "Disk's DeviceId (key) field. For example in a Windows "
6462                    "environment, the DeviceID field would contain a drive letter. "
6463                    "In a Unix environment, it would contain the access path; and in "
6464                    "a NetWare environment, DeviceID would contain the volume name. "
6465                    "LogicalDisks are typically built on a DiskPartition or Storage"
6466                    "Volume (for example, exposed by a software volume manager) "
6467                    "using the LogicalDiskBasedOnPartition or LogicalDiskBasedOn"
6468                    "Volume associations. However, it can be based on other "
6469                    "StorageExtents, like CIM_Memory, in the case of a RAM disk. "
6470                    "The latter is described using the LogicalDiskBasedOnExtent "
6471                    "relationship. (Indeed, the BasedOnExtent association is the "
6472                    "superclass for the BasedOnPartition and BasedOnVolume "
6473                    "relationships.)") ] 
6474               class CIM_LogicalDisk : CIM_StorageExtent {
6475 karl  1.1     };
6476               
6477 karl  1.1.2.1 
6478 karl  1.1     // ===================================================================
6479               // LogicalDiskBasedOnExtent 
6480               // ===================================================================
6481 karl  1.1.2.1    [Association, Description (
6482                    "LogicalDisks can be BasedOn a single StorageVolume, Memory "
6483                    "(in the case of a RAM Disk), a DiskPartition or other " 
6484                    "StorageExtent. These relationships are made explicit in this "
6485                    "association. Subclasses of the association, LogicalDiskBasedOn"
6486                    "Partition and LogicalDiskBasedOnVolume, detail the 'typical' "
6487                    "semantics.") ]
6488               class CIM_LogicalDiskBasedOnExtent : CIM_BasedOn {
6489 karl  1.1           [Override ("Antecedent"), Max (1), 
6490 karl  1.1.2.1        Description ("The StorageExtent.") ]
6491 karl  1.1        CIM_StorageExtent REF Antecedent;
6492 karl  1.1.2.1       [Override ("Dependent"), Description (
6493                       "The LogicalDisk which is built on the StorageExtent.") ]
6494 karl  1.1        CIM_LogicalDisk REF Dependent;
6495               };
6496               
6497 karl  1.1.2.1 
6498 karl  1.1     // ===================================================================
6499               // LogicalDiskBasedOnVolume
6500               // ===================================================================
6501 karl  1.1.2.1    [Association, Description (
6502                    "LogicalDisks can be BasedOn a single Volume (for example, "
6503                    "exposed by a software volume manager), or be BasedOn a Disk"
6504                    "Partition directly. The former relationship is made explicit "
6505                    "in this association.") ]
6506               class CIM_LogicalDiskBasedOnVolume : CIM_LogicalDiskBasedOnExtent {
6507 karl  1.1           [Override ("Antecedent"), Max (1), 
6508 karl  1.1.2.1        Description ("The StorageVolume.") ]
6509 karl  1.1     CIM_StorageVolume REF Antecedent; 
6510               };
6511               
6512 karl  1.1.2.1 
6513 karl  1.1     // ===================================================================
6514               // LogicalDiskBasedOnVolumeSet
6515               // ===================================================================
6516 karl  1.1.2.1    [Association, Description (
6517                    "LogicalDisks can be BasedOn a VolumeSet. This association is "
6518                    "an optimization where software RAID doesn't exist and the "
6519                    "LogicalDisk is built right on top of a VolumeSet presented by "
6520                    "an SCC cabinet. However, this would be better modeled by a "
6521                    "DiskPartition BasedOn the VolumeSet (described using the "
6522                    "DiskPartitionBasedOnVolume association) and then basing the "
6523                    "LogicalDisk on the DiskPartition (using the LogicalDisk"
6524                    "BasedOnPartition association).") ] 
6525               class CIM_LogicalDiskBasedOnVolumeSet : CIM_LogicalDiskBasedOnVolume {
6526                     [Override ("Antecedent"), Max (1),
6527                      Description ("The VolumeSet.") ]
6528 karl  1.1        CIM_VolumeSet REF Antecedent;
6529               };
6530               
6531 karl  1.1.2.1 
6532 karl  1.1     // ===================================================================
6533               // LogicalDiskBasedOnPartition
6534               // ===================================================================
6535 karl  1.1.2.1    [Association, Description (
6536                    "LogicalDisks can be BasedOn a DiskPartition. For example, a "
6537                    "personal computer's C: drive may be located on a Partition on "
6538                    "local PhysicalMedia. In this association of LogicalDisks to "
6539                    "Partitions, note that the cardinality of the Antecedent, Disk"
6540                    "Partition, is Max(1). This dictates that a LogicalDisk can not "
6541                    "span more than one Partition. However, there are cases where "
6542                    "this is true. When it occurs, the LogicalDisk is really based "
6543                    "on some kind of RAID configuration (for example, a mirror or "
6544                    "stripe set). In these scenarios, the LogicalDisk is more "
6545                    "correctly BasedOn a StorageVolume. To prevent incorrectly using "
6546                    "the LogicalDiskBasedOnPartition association, the Max(1) "
6547                    "qualifier was put on the Antecedent reference to the "
6548                    "DiskPartition.") ] 
6549               class CIM_LogicalDiskBasedOnPartition : CIM_LogicalDiskBasedOnExtent {
6550                     [Override ("Antecedent"), Max (1),
6551                      Description ("The DiskPartition.") ]
6552 karl  1.1        CIM_DiskPartition REF Antecedent;
6553               };
6554               
6555 karl  1.1.2.1 
6556 karl  1.1     // ===================================================================
6557               // AggregatePExtent
6558               // ===================================================================
6559                  [Description (
6560 karl  1.1.2.1      "An AggregatePExtent is used to model an SCC RAID "
6561                    "implementation. AggregatePExtents provide summary information "
6562                    "about the addressable logical blocks which are in the same "
6563                    "StorageRedundancyGroup and reside on the same storage device. "
6564                    "This is an alternative grouping for PhysicalExtents, when only "
6565                    "summary information is needed or when automatic configuration "
6566                    "is used.") ] 
6567               class CIM_AggregatePExtent : CIM_StorageExtent {
6568 karl  1.1           [Override ("NumberOfBlocks"),
6569                      Description (
6570 karl  1.1.2.1         "Total number of blocks (including the check data blocks) "
6571                       "contained in this AggregatePExtent.  The block size (an "
6572 karl  1.1             "inherited property) should be set to the same value as for "
6573 karl  1.1.2.1         "the MediaAccessDevice associated with this Extent."),
6574                      MappingStrings {"MIF.DMTF|Aggregate Physical Extent|001.2"} ]
6575 karl  1.1        uint64 NumberOfBlocks;
6576                     [Description (
6577 karl  1.1.2.1         "The number of blocks contained in this AggregatePExtent "
6578                       "to be used as check data. If this AggregatePExtent is "
6579                       "available, then this value shall be zero."), 
6580                      MappingStrings {"MIF.DMTF|Aggregate Physical Extent|001.3"} ]
6581                  uint64 BlocksOfCheckData;
6582               };
6583               
6584               
6585               // ===================================================================
6586               // AggregatePSExtent
6587               // ===================================================================
6588                  [Description (
6589                    "An AggregatePSExtent is used to model an SCC RAID "
6590                    "implementation. AggregatePSExtents define the number of "
6591                    "addressable logical blocks on a single storage device, "
6592                    "excluding any logical blocks mapped as check data. "
6593                    "This is an alternative grouping for ProtectedSpaceExtents, "
6594                    "when only summary information is needed or when automatic "
6595                    "configuration is used.") ] 
6596               class CIM_AggregatePSExtent : CIM_StorageExtent {
6597                     [Override ("NumberOfBlocks"), Description (
6598 karl  1.1.2.1         "Total number of user data blocks that are contained in this "
6599                       "Extent."),
6600                      MappingStrings {
6601                       "MIF.DMTF|Aggregate Protected Space Extent|001.2"} ]
6602                  uint64 NumberOfBlocks;   
6603               };
6604               
6605               
6606               // ===================================================================
6607               // AggregatePSExtentBasedOnPExtent
6608               // ===================================================================
6609                  [Association, Description (
6610                    "AggregatePSExtents are BasedOn a single PhysicalExtent. This "
6611                    "relationship is made explicit in this association.") ]
6612               class CIM_AggregatePSExtentBasedOnPExtent : CIM_BasedOn {
6613                     [Override ("Antecedent"), Max (1), 
6614                      Description ("The PhysicalExtent.")]
6615                  CIM_PhysicalExtent REF Antecedent;
6616                     [Override ("Dependent"),  Description (
6617                       "The AggregatePSExtent which is built on the "
6618                       "PhysicalExtent.") ]
6619 karl  1.1.2.1    CIM_AggregatePSExtent REF Dependent;
6620               };
6621               
6622               
6623               // ===================================================================
6624               // AggregatePSExtentBasedOnAggregatePExtent
6625               // ===================================================================
6626                  [Association, Description (
6627                    "AggregatePSExtents are BasedOn a single AggregatePExtent. This "
6628                    "relationship is made explicit in this association.") ]
6629               class CIM_AggregatePSExtentBasedOnAggregatePExtent : CIM_BasedOn {
6630                     [Override ("Antecedent"), Max (1),
6631                      Description ("The AggregatePExtent.")]
6632                  CIM_AggregatePExtent REF Antecedent;
6633                     [Override ("Dependent"), Description (
6634                       "The AggregatePSExtent which is built on the Aggregate"
6635                       "PExtent.") ]
6636                  CIM_AggregatePSExtent REF Dependent;
6637               };
6638               
6639               
6640 karl  1.1.2.1 // ===================================================================
6641               // Snapshot 
6642               // ===================================================================
6643                  [Description (
6644                    "The Snapshot class is an optional construct. It can be "
6645                    "used to represent an Extent that contains a full copy of "
6646                    "another Extent, or the changes to that Extent when performing "
6647                    "a delta-based (delta before or delta after) copy.\n"
6648                    "Snapshot's definition in CIM is not equivalent to the act "
6649                    "of creating a volume or file-based snapshot, or a point in "
6650                    "time copy. It is at a much lower level and represents the "
6651                    "use of storage to hold a copied image of an Extent, or to hold "
6652                    "changes to an Extent.  Use of the Snapshot object when making "
6653                    "a full copy is only recommended if the purpose is to describe "
6654                    "the existence of a copy. (This use will be very infrequent.) "
6655                    "The problem with describing an Extent solely as a 'snapshot' "
6656                    "is that when the snapshot/copy is broken, the object must be "
6657                    "destroyed. Typically, this object still holds valid data, and "
6658                    "would have to be reinstantiated. If the 'full copy' object "
6659                    "is to be treated as a StorageVolume or more general Extent, "
6660                    "then it should be modeled as such from the beginning - "
6661 karl  1.1.2.1      "i.e., not as an instance of Snapshot but as an instance of a "
6662                    "generic StorageExtent or StorageVolume. In this case, the "
6663                    "Synchronized association would be used to describe that one "
6664                    "StorageExtent is synchronized with another.\n"
6665                    "When describing a delta-based snapshot/point in time copy, "
6666                    "the Snapshot object represents the store holding the before/after "
6667                    "image changes to the original Extent. For example, when doing a "
6668                    "'delta before' Snapshot, the resultant target would be modeled "
6669                    "as a StorageExtent that is BasedOn the original Extent and the "
6670                    "instance of Snapshot (that holds the changes to the original Extent).") ]
6671               class CIM_Snapshot : CIM_StorageExtent {
6672                     [Description ("True indicates that the snapshot is synced.") ]
6673                  boolean IsSynced;
6674                     [Description (
6675                       "The time stamp indicating when the sync occurred.") ]
6676                  datetime SyncTime;
6677               };
6678               
6679               
6680               // ===================================================================
6681               // SnapshotOfExtent
6682 karl  1.1.2.1 // ===================================================================
6683                  [Association, Description (
6684                    "SnapshotOfExtent is an association between an Extent and "
6685                    "its Snapshot. This relationship is made explicit in this "
6686                    "association.") ]
6687               class CIM_SnapshotOfExtent : CIM_Dependency {
6688                     [Override ("Antecedent"), Max (1), 
6689                      Description ("The StorageExtent.") ]
6690                  CIM_StorageExtent REF Antecedent;
6691                     [Override ("Dependent"), 
6692                      Description ("The Snapshot.") ]
6693                  CIM_Snapshot REF Dependent;
6694                     [Description ("The type of snapshot."), 
6695                      Values {"Other", "Unknown", "Copy", "Before Delta", 
6696                              "After Delta"} ]
6697                  uint16 SnapshotType;
6698               };
6699               
6700               
6701               // ===================================================================
6702               // Memory
6703 karl  1.1.2.1 // ===================================================================
6704                  [Description (
6705                    "Capabilities and management of Memory-related LogicalDevices.") ] 
6706               class CIM_Memory : CIM_StorageExtent {
6707                     [Override ("ErrorMethodology"),
6708                      Description (
6709                       "ErrorMethodology for Memory is a string property that "
6710                       "indicates whether parity or CRC algorithms, ECC or other "
6711                       "mechanisms are used. Details on the algorithm can also "
6712                       "be supplied."),
6713                      MappingStrings {"MIF.DMTF|Physical Memory Array|001.7"} ]
6714                  string ErrorMethodology;
6715                     [Description (
6716                       "The beginning address, referenced by an application or "
6717                       "operating system and mapped by a memory controller, for "
6718                       "this Memory object. The starting address is specified in "
6719                       "KBytes."),
6720                      Units ("KiloBytes"),
6721                      MappingStrings {"MIF.DMTF|Memory Array Mapped Addresses|001.3",
6722                       "MIF.DMTF|Memory Device Mapped Addresses|001.4"} ]
6723                  uint64 StartingAddress;
6724 karl  1.1.2.1       [Description (
6725                       "The ending address, referenced by an application or "
6726                       "operating system and mapped by a memory controller, for "
6727                       "this Memory object. The ending address is specified in "
6728                       "KBytes."),
6729                      Units ("KiloBytes"),
6730                      MappingStrings {"MIF.DMTF|Memory Array Mapped Addresses|001.4",
6731                       "MIF.DMTF|Memory Device Mapped Addresses|001.5"} ]
6732                  uint64 EndingAddress;
6733                     [Description (
6734                       "An integer enumeration describing the type of error that "
6735                       "occurred most recently. For example, single (value=6) or "
6736                       "double bit errors (7) can be specified using this property. "
6737                       "The values, 12-14, are undefined in the CIM Schema since in "
6738                       "DMI, they mix the semantics of the type of error and whether "
6739                       "it was correctable or not.  The latter is indicated in the "
6740                       "property, CorrectableError."),
6741                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
6742                                "11", "12", "13", "14"},
6743                      Values {"Other", "Unknown", "OK", "Bad Read", "Parity Error",
6744                              "Single-Bit Error", "Double-Bit Error", "Multi-Bit Error",
6745 karl  1.1.2.1                "Nibble Error", "Checksum Error", "CRC Error", "Undefined",
6746                              "Undefined", "Undefined"}, 
6747                      MappingStrings {"MIF.DMTF|Memory Device|005",
6748                       "MIF.DMTF|Physical Memory Array|001.8"},
6749                      ModelCorrespondence {"CIM_Memory.OtherErrorDescription"} ]
6750                  uint16 ErrorInfo;
6751                     [Description (
6752                       "Free form string providing more information if the Error"
6753                       "Type property is set to 1, \"Other\". If not set to 1, this "
6754                       "string has no meaning."),
6755                      ModelCorrespondence {"CIM_Memory.ErrorInfo"} ]
6756                  string OtherErrorDescription;
6757                     [Description (
6758                       "Boolean indicating that the most recent error was "
6759                       "correctable. If the ErrorInfo property is equal to 3, " 
6760                       "\"OK\", then this property has no meaning."),
6761                      MappingStrings {"MIF.DMTF|Memory Device|005",
6762                       "MIF.DMTF|Physical Memory Array|001.8"} ]
6763                  boolean CorrectableError;
6764                     [Description (
6765                       "The time that the last memory error occurred. The type of "
6766 karl  1.1.2.1         "error is described by the ErrorInfo property. If the Error"
6767                       "Info property is equal to 3, \"OK\", then this property has "
6768                       "no meaning.") ]
6769                  datetime ErrorTime;
6770                     [Description (
6771                       "An integer enumeration indicating the memory access "
6772                       "operation that caused the last error. The type of error is "
6773                       "described by the ErrorInfo property. If the ErrorInfo "
6774                       "property is equal to 3, \"OK\", then this property "
6775                       "has no meaning."),
6776                      ValueMap {"1", "2", "3", "4", "5"}, 
6777                      Values {"Other", "Unknown", "Read", "Write", "Partial Write"},
6778                      MappingStrings {"MIF.DMTF|Memory Device|005",
6779                       "MIF.DMTF|Physical Memory Array|001.10"} ]
6780                  uint16 ErrorAccess;
6781                     [Description (
6782                       "The size of the data transfer in bits that caused the last "
6783                       "error. 0 indicates no error. If the ErrorInfo property "
6784                       "is equal to 3, \"OK\", then this property should be set "
6785                       "to 0."),
6786                      Units ("Bits"),       
6787 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Memory Device|005",
6788                       "MIF.DMTF|Physical Memory Array|001.11"} ]
6789                  uint32 ErrorTransferSize;
6790                     [OctetString, Description (
6791                       "Data captured during the last erroneous mebmory access. "
6792                       "The data occupies the first n octets of the array necessary "
6793                       "to hold the number of bits specified by the ErrorTransferSize "
6794                       "property. If ErrorTransferSize is 0, then this property "
6795                       "has no meaning."),
6796                      ArrayType ("Indexed"),   
6797                      MappingStrings {"MIF.DMTF|Memory Device|005",
6798                       "MIF.DMTF|Physical Memory Array|001.12"} ]
6799                  uint8 ErrorData[64];
6800                     [Description (
6801                       "The ordering for data stored in the ErrorData property. "
6802                       "\"Least Significant Byte First\" (value=1) or "
6803                       "\"Most Significant Byte First\" (2) can be specified. If "
6804                       "ErrorTransferSize is 0, then this property has no meaning."),
6805                      Values {"Unknown", "Least Significant Byte First",
6806                              "Most Significant Byte First"}       ]
6807                  uint16 ErrorDataOrder;
6808 karl  1.1.2.1       [Description (
6809                       "Specifies the address of the last memory error. The type "
6810                       "of error is described by the ErrorInfo property. "
6811                       "If the ErrorInfo property is equal to 3, \"OK\", then this "
6812                       "property has no meaning."),     
6813                      MappingStrings {"MIF.DMTF|Memory Device|005", 
6814                       "MIF.DMTF|Memory Device|005", 
6815                       "MIF.DMTF|Physical Memory Array|001.14"} ]
6816                  uint64 ErrorAddress;
6817                     [Description (
6818                       "Boolean indicating whether the address information in "
6819                       "the property, ErrorAddress, is a system-level address (TRUE) " 
6820                       "or a physical address (FALSE). If the ErrorInfo property is "
6821                       "equal to 3, \"OK\", then this property has no meaning.") ]
6822                  boolean SystemLevelAddress;
6823                     [Description (
6824                       "Specifies the range, in bytes, to which the last error can be "
6825                       "resolved. For example, if error addresses are resolved to bit "
6826                       "11 (ie, on a typical page basis), then errors can be "
6827                       "resolved to 4K boundaries and this property is set to 4000. "
6828                       "If the ErrorInfo property is equal to 3, \"OK\", then this "
6829 karl  1.1.2.1         "property has no meaning."),
6830                      Units ("Bytes"),
6831                      MappingStrings {"MIF.DMTF|Memory Device|005",
6832                      "MIF.DMTF|Physical Memory Array|001.15"} ]
6833                  uint64 ErrorResolution;
6834                     [OctetString, Description (
6835                       "An array of octets holding additional error information. "
6836                       "An example is ECC Syndrome or the return of the check bits "
6837                       "if a CRC-based ErrorMethodology is used. In the latter case, "
6838                       "if a single bit error is recognized and the CRC algorithm "
6839                       "is known, it is possible to determine the exact bit that "
6840                       "failed.  This type of data (ECC Syndrome, Check Bit or "
6841                       "Parity Bit data, or other vendor supplied information) is "
6842                       "included in this field. If the ErrorInfo property is "
6843                       "equal to 3, \"OK\", then AdditionalErrorData has no meaning."),
6844                      MappingStrings {"MIF.DMTF|Memory Device|005",
6845                       "MIF.DMTF|Physical Memory Array|001.13"} ]
6846                  uint8 AdditionalErrorData[64];
6847               };
6848               
6849               
6850 karl  1.1.2.1 // ===================================================================
6851               // AssociatedMemory
6852               // ===================================================================
6853                  [Association, Description (
6854                    "LogicalDevices may have Memory installed on them or "
6855                    "otherwise associated with them - such as CacheMemory. "
6856                    "This is made explicit in this association.") ] 
6857               class CIM_AssociatedMemory : CIM_Dependency {
6858                     [Override ("Antecedent"), Description (
6859                       "Memory installed on or associated with a Device.") ]
6860                  CIM_Memory REF Antecedent;
6861                     [Override ("Dependent"), Description (
6862                       "The LogicalDevice.") ]
6863                  CIM_LogicalDevice REF Dependent;
6864               };
6865               
6866               
6867               // ===================================================================
6868               // ComputerSystemMemory
6869               // ===================================================================
6870                  [Association, Aggregation, Description (
6871 karl  1.1.2.1      "Association indicating that memory is installed and required "
6872                    "for the UnitaryComputerSystem to operate. At least one "
6873                    "Memory StorageExtent is required. Note that this relationship "
6874                    "inherits from the SystemDevice association, and therefore, "
6875                    "the Memory StorageExtent is weak to the aggregating Unitary"
6876                    "ComputerSystem.") ] 
6877               class CIM_ComputerSystemMemory : CIM_SystemDevice {
6878                     [Override ("GroupComponent"), Aggregate,
6879                      Description ("The UnitaryComputerSystem.") ]
6880                  CIM_UnitaryComputerSystem REF GroupComponent;
6881                     [Override ("PartComponent"), Description (
6882                       "The Memory StorageExtent which is part of the "
6883                       "UnitaryComputerSystem.") ]
6884                  CIM_Memory REF PartComponent;
6885               };
6886               
6887               
6888               // ===================================================================
6889               // AssociatedProcessorMemory
6890               // ===================================================================
6891                  [Association, Description (
6892 karl  1.1.2.1      "Associates the Processor and system Memory, or a Processor's "
6893                    "Cache. ")  ]
6894               class CIM_AssociatedProcessorMemory : CIM_AssociatedMemory { 
6895                     [Override ("Dependent"), 
6896                      Description (
6897                       "The Processor that accesses the Memory or uses the Cache.") ]
6898                  CIM_Processor REF Dependent; 
6899                     [Description (
6900                       "Speed of the bus, in MHertz, between the Processor and "
6901                       "Memory. "), 
6902                      Units ("MegaHertz") ]
6903                  uint32 BusSpeed;
6904               };
6905               
6906               
6907               // ===================================================================
6908               // NonVolatileStorage
6909               // ===================================================================
6910                  [Description (
6911                    "Capabilities and management of NV Storage. Non-volatile memory "
6912                    "natively includes flash and ROM storage. In addition, NV memory "
6913 karl  1.1.2.1      "can be BasedOn VolatileStorage, if the volatile memory is backed "
6914                    "by a Battery. This scenario would be completely described by an "
6915                    "instance of the AssociatedBattery relationship, referencing the "
6916                    "NonVolatileStorage as the Dependent and the Battery as the "
6917                    "Antecedent, and an instance of the BasedOn relationship, "
6918                    "referencing the NonVolatileStorage as the Dependent and the "
6919                    "VolatileStorage as the Antecedent.") ]
6920               class CIM_NonVolatileStorage : CIM_Memory {
6921                     [Description ("Indicating that the NV storage is writeable.") ]
6922                  boolean IsWriteable;
6923                     [Description (
6924                       "Boolean indicating that at least some portion of the "
6925                       "NonVolatileStorage is writeable by applications.") ]
6926                  boolean ApplicationWriteable;
6927                     [Description (
6928                       "When at least some portion of the NonVolatileStorage is "
6929                       "writeable (ApplicationWriteable property = TRUE), StartAddress"
6930                       "forApplcationWrite indicates the starting address for "
6931                       "application data. If the ApplicationWriteable property is "
6932                       "FALSE, this property is undefined."), 
6933                      ModelCorrespondence {
6934 karl  1.1.2.1         "CIM_NonVolatileStorage.ApplicationWriteable"} ]
6935                  uint64 StartAddressForApplicationWrite;
6936                     [Description (
6937                       "When at least some portion of the NonVolatileStorage is "
6938                       "writeable (ApplicationWriteable property = TRUE), Application"
6939                       "WritableSize indicates the number of bits available for "
6940                       "application data. If the ApplicationWriteable property is "
6941                       "FALSE, this property is undefined."), 
6942                      Units ("Bits"), 
6943                      ModelCorrespondence {
6944                       "CIM_NonVolatileStorage.ApplicationWriteable"} ]
6945                  uint64 ApplicationWriteableSize;
6946               };
6947               
6948               
6949               // ===================================================================
6950               // BIOSLoadedInNV
6951               // ===================================================================
6952                  [Association, Description (
6953                    "A link between BIOSElement and NonVolatileStorage where "
6954                    "the BIOS is loaded.") ] 
6955 karl  1.1.2.1 class CIM_BIOSLoadedInNV : CIM_Dependency {
6956                     [Override ("Antecedent"),
6957                      Description ("The non-volatile storage.") ]
6958                  CIM_NonVolatileStorage REF Antecedent;
6959                     [Override ("Dependent"),
6960                      Description ("The BIOS stored in the NonVolatile Extent.") ]
6961                  CIM_BIOSElement REF Dependent;
6962                     [Description (
6963                       "The starting address where the BIOS is located in "
6964                       "non-volatile storage.") ]
6965                  uint64 StartingAddress;
6966                     [Description (
6967                       "The ending address where the BIOS is located in "
6968                       "non-volatile storage.") ]
6969                  uint64 EndingAddress;        
6970               };
6971               
6972               
6973               // ===================================================================
6974               // VolatileStorage
6975               // ===================================================================
6976 karl  1.1.2.1    [Description (
6977                    "Capabilities and management of Volatile Storage.") ] 
6978               class CIM_VolatileStorage : CIM_Memory {
6979                     [Description (
6980                       "Indicates whether this Memory can be cached or not."),
6981                      MappingStrings {"MIF.DMTF|System Resource Memory Info|002"} ]
6982                  boolean Cacheable;
6983                     [Description (
6984                       "An enumeration indicating the cache type that is "
6985                       "compatible with this Memory. For example, 4 indicates "
6986                       "write-through cache.  If the Cacheable property is "
6987                       "set to false, then this property does not have meaning and "
6988                       "should be set to 5, \"Not Applicable\"."),
6989                      Values {"Other", "Unknown", "Write-Back", "Write-Through",
6990                              "Not Applicable"},
6991                      MappingStrings {"MIF.DMTF|System Resource Memory Info|002"} ]
6992                  uint16 CacheType;
6993               };
6994               
6995               
6996               // ===================================================================
6997 karl  1.1.2.1 // CacheMemory
6998               // ===================================================================
6999                  [Description (
7000                    "Capabilities and management of Cache Memory. Cache memory is "
7001                    "dedicated or allocated RAM that a Processor searches first "
7002                    "for data, before going to 'regular' memory. CacheMemory is "
7003                    "used to speed up the delivery of data to a Processor. It is "
7004                    "usually described by its closeness to the Processor (for "
7005                    "example, Primary or Secondary Cache).\n"
7006                    "If a DiskDrive includes RAM allocated for holding the disk's "
7007                    "most recently read and/or adjacent data (in order to speed "
7008                    "up retrieval), this also would be modeled as CacheMemory. "
7009                    "Note that CacheMemory is NOT operating system or application "
7010                    "level buffers but actual RAM allocated for caching data for "
7011                    "a Processor, from a hard disk, etc.") ]
7012               class CIM_CacheMemory : CIM_Memory {
7013                     [Description (
7014                       "Defines whether this is the Primary (value=3), Secondary "
7015                       "(value=4) or Tertiary (value=5) Cache. Also, \"Other\" (1), "
7016                       "\"Unknown\" (2) and \"Not Applicable\" (6) can be defined."),
7017                      ValueMap {"1", "2", "3", "4", "5", "6"},
7018 karl  1.1.2.1        Values {"Other", "Unknown", "Primary", "Secondary", "Tertiary", 
7019                              "Not Applicable"},
7020                      MappingStrings {"MIF.DMTF|System Cache|006"} ]
7021                  uint16 Level;
7022                     [Description (
7023                       "Defines whether this is write-back (value=3) or write-through "
7024                       "(value=4) Cache, or whether this information \"Varies with "
7025                       "Address\" (5) or is defined individually for each I/O (6). "
7026                       "Also, \"Other\" (1) and \"Unknown\" (2) can be specified."),         
7027                      ValueMap {"1", "2", "3", "4", "5", "6"},
7028                      Values {"Other", "Unknown", "Write Back", "Write Through",
7029                              "Varies with Address", "Determination Per I/O"},
7030                      MappingStrings {"MIF.DMTF|System Cache|006"} ]
7031                  uint16 WritePolicy;
7032                     [Description (
7033                       "Defines whether this is for instruction caching (value=3), "
7034                       "data caching (value=4) or both (value=5, \"Unified\"). "
7035                       "Also, \"Other\" (1) and \"Unknown\" (2) can be defined."),
7036                      ValueMap {"1", "2", "3", "4", "5"},
7037                      Values {"Other", "Unknown", "Instruction", "Data", "Unified"},
7038                      MappingStrings {"MIF.DMTF|System Cache|006"} ]
7039 karl  1.1.2.1    uint16 CacheType;
7040                     [Description (
7041                       "Size, in bytes, of a single cache bucket or line."),
7042                      Units ("Bytes"),
7043                      MappingStrings {"MIF.DMTF|System Cache|006"} ]
7044                  uint32 LineSize;
7045                     [Description (
7046                       "An integer enumeration describing the algorithm to "
7047                       "determine which cache lines or buckets should be re-used."),
7048                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
7049                      Values {"Other", "Unknown", "Least Recently Used (LRU)",
7050                              "First In First Out (FIFO)", "Last In First Out (LIFO)",
7051                              "Least Frequently Used (LFU)", 
7052                              "Most Frequently Used (MFU)", 
7053                              "Data Dependent Multiple Algorithms"},
7054                      MappingStrings {"MIF.DMTF|System Cache|006"} ]
7055                  uint16 ReplacementPolicy;
7056                     [Description (
7057                       "Policy that shall be employed by the Cache for handling "
7058                       "read requests. For example, \"Read\", \"Read-Ahead\" or "
7059                       "both can be specified using the values, 3, 4 or 5, "
7060 karl  1.1.2.1         "respectively. If the read policy is determined individually "
7061                       "(ie, for each request), then the value 6 (\"Determination "
7062                       "per I/O\") should be specified. \"Other\" (1) and "
7063                       "\"Unknown\" (2) are also valid values."),         
7064                      ValueMap {"1", "2", "3", "4", "5", "6"},
7065                      Values {"Other", "Unknown", "Read", "Read-Ahead", 
7066                              "Read and Read-Ahead", "Determination Per I/O"},
7067                      MappingStrings {"MIF.DMTF|System Cache|006"} ]
7068                  uint16 ReadPolicy;
7069                     [Description (
7070                       "Maximum amount of time, in seconds, dirty lines or "
7071                       "buckets may remain in the Cache before they are flushed. "
7072                       "A value of zero indicated that a cache flush is not "
7073                       "controlled by a flushing timer."), 
7074                      Units ("Seconds"),
7075                      MappingStrings {"MIF.DMTF|System Cache|006"} ]
7076                  uint32 FlushTimer;
7077                     [Description (
7078                       "An integer enumeration defining the system cache "
7079                       "associativity. For example, 6 indicates a fully associative "
7080                       "cache."),
7081 karl  1.1.2.1        ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
7082                      Values {"Other", "Unknown", "Direct Mapped", 
7083                              "2-way Set-Associative",
7084                              "4-way Set-Associative", "Fully Associative",
7085                              "8-way Set-Associative", "16-way Set-Associative"},
7086                      MappingStrings {"MIF.DMTF|System Cache|006"} ]
7087                  uint16 Associativity;
7088               };
7089               
7090               
7091               // ===================================================================
7092               // MediaTransferDevice
7093               // ===================================================================
7094                  [Description (
7095                    "A MediaTransferDevice represents hardware that moves Physical"
7096                    "Media. It is a superclass for Devices like PickerElement, "
7097                    "ChangerDevice and InterLibraryPort.") ]
7098               class CIM_MediaTransferDevice : CIM_LogicalDevice {
7099               };
7100               
7101               // ===================================================================
7102 karl  1.1.2.1 // PickerElement
7103               // ===================================================================
7104                  [Description (
7105                    "PickerElements represent hardware used to pick or place "
7106                    "PhysicalMedia from/into StorageMediaLocations.") ]
7107               class CIM_PickerElement : CIM_MediaTransferDevice {
7108                     [Description (
7109                       "The maximum time in seconds for a PickerElement to grab "
7110                       "a PhysicalMedia from a StorageMediaLocation, once the "
7111                       "Picker has arrived at that Location. The maximum time "
7112                       "interval for moving a Media from one point to another is "
7113                       "the sum of the PickerElement's MaxPickTime, the Changer"
7114                       "Device's MaxTransitTime and the PickerElement's MaxPutTime."), 
7115                      Units ("Seconds") ]
7116                  uint32 MaxPickTime;
7117                     [Description (
7118                       "The maximum time in seconds for a PickerElement to place "
7119                       "a PhysicalMedia into a StorageMediaLocation, once the "
7120                       "Picker has arrived at that Location. The maximum time "
7121                       "interval for moving a Media from one point to another is "
7122                       "the sum of the PickerElement's MaxPickTime, the Changer"
7123 karl  1.1.2.1         "Device's MaxTransitTime and the PickerElement's MaxPutTime."), 
7124                      Units ("Seconds") ]
7125                  uint32 MaxPutTime;
7126                     [Description (
7127                       "String describing the location in the StorageLibrary "
7128                       "where the Picker is currently positioned.") ] 
7129                  string CellLocation;
7130               };
7131               
7132               
7133               // ===================================================================
7134               // ChangerDevice 
7135               // ===================================================================
7136                  [Description (
7137                    "ChangerDevices represent hardware that moves PhysicalMedia "
7138                    "within a System, such as a StorageLibrary.") ]
7139               class CIM_ChangerDevice : CIM_MediaTransferDevice {
7140                     [Description (
7141                       "The maximum time in seconds between a PickerElement pick "
7142                       "and place. It should be reported as the transit time "
7143                       "between the two most physically distant StorageMedia"
7144 karl  1.1.2.1         "Locations in a System. The maximum time interval for "
7145                       "moving a Media from one point to another is the sum of "
7146                       "the PickerElement's MaxPickTime, the ChangerDevice's Max"
7147                       "TransitTime and the PickerElement's MaxPutTime."), 
7148                      Units ("Seconds") ]
7149                  uint32 MaxTransitTime;
7150                     [Description (
7151                       "Boolean set to TRUE if the Changer supports media flipping. "
7152                       "Media needs to be flipped when multi-sided PhysicalMedia "
7153                       "are placed into a MediaAccessDevice that does NOT support "
7154                       "dual sided access.") ]
7155                  boolean MediaFlipSupported;
7156                     [Description (
7157                       "Boolean set to TRUE if an audit is currently being performed "
7158                       "by the Changer.") ]
7159                  boolean AuditInProgress;
7160                     [Description (
7161                       "A count of the number of audits performed by the Changer."), 
7162                      Counter ]
7163                  uint64 AuditsPerformed;
7164               };
7165 karl  1.1.2.1 
7166               
7167               // ===================================================================
7168               // PickerForChanger 
7169               // ===================================================================
7170                  [Association, Description (
7171                    "PickerForChanger indicates the PickerElement(s) that access "
7172                    "StorageMediaLocations and deliver PhysicalMedia to the Changer, "
7173                    "for movement through the System. A Changer may have several "
7174                    "Pickers for faster exchange of Media.") ]
7175               class CIM_PickerForChanger : CIM_Dependency {
7176                     [Override ("Antecedent"), Description (
7177                       "The PickerElement that accesses StorageMediaLocations "
7178                       "to deliver Media to the Changer.") ]
7179                  CIM_PickerElement REF Antecedent;
7180                     [Override ("Dependent"), Max (1), 
7181                      Description ("The ChangerDevice.") ]
7182                  CIM_ChangerDevice REF Dependent;
7183               };
7184               
7185               
7186 karl  1.1.2.1 // ===================================================================
7187               // LimitedAccessPort 
7188               // ===================================================================
7189                  [Description (
7190                    "LimitedAccessPorts represent hardware that transports Physical"
7191                    "Media into or out of a System, such as a StorageLibrary. They "
7192                    "are identified as 'limited' since these Ports do not provide "
7193                    "access to ALL the PhysicalMedia or StorageMediaLocations in a "
7194                    "Library, but only to a subset.") ]
7195               class CIM_LimitedAccessPort : CIM_MediaTransferDevice {
7196                     [Description (
7197                       "Boolean indicating that the Port is 'locked' (TRUE) or "
7198                       "'unlocked' (FALSE). When the Port is locked, access its Media "
7199                       "Locations is prevented without the use of a physical key, "
7200                       "front panel activity or the issuance of a software unlock "
7201                       "command.") ]
7202                  boolean Locked;
7203                     [Description (
7204                       "When a Port is 'Extended' or 'open' (value=TRUE), its Storage"
7205                       "MediaLocations are accessible to a human operator. If not "
7206                       "extended (value=FALSE), the Locations are accessible to a "
7207 karl  1.1.2.1         "PickerElement.") ]
7208                  boolean Extended;
7209                     [Description (
7210                       "When a LimitedAccessPort is 'Extended', all related media-"
7211                       "transfer componentry may be stopped. The ExtendTimeout "
7212                       "property provides a mechanism to event on a Port left open "
7213                       "for a period of time (in seconds) exceeding the property's "
7214                       "value."), 
7215                      Units ("Seconds") ]
7216                  uint32 ExtendTimeout;
7217                     [Description ("Date and time that the Port was last extended.") ]
7218                  datetime LastExtended;
7219                     [Counter, Description (
7220                       "The number of times that the LimitedAccessPort was used to "
7221                       "move a PhysicalMedia into the System/StorageLibrary.") ]
7222                  uint64 ImportCount;
7223                     [Counter, Description (
7224                       "The number of times that the LimitedAccessPort was used to "
7225                       "move a PhysicalMedia out of the System/StorageLibrary.") ]
7226                  uint64 ExportCount;
7227                     [Description (
7228 karl  1.1.2.1         "An enumeration expressing whether the Port is used for "
7229                       "import into the Library/System which scopes and names it " 
7230                       "(value=1), export from the Library/System (value=2), or "
7231                       "both (value=3)."),
7232                      Values {"Unknown", "Import", "Export", "Both Import and Export"} ]
7233                  uint16 Direction;
7234               };
7235               
7236               
7237               // ===================================================================
7238               // InterLibraryPort 
7239               // ===================================================================
7240                  [Description (
7241                    "InterLibraryPorts represent hardware that transports Physical"
7242                    "Media between connected StorageLibraries. The LibraryExchange "
7243                    "association identifies the connected Libraries, by identifying "
7244                    "the connected InterLibraryPorts.") ]
7245               class CIM_InterLibraryPort : CIM_MediaTransferDevice {
7246                     [Description (
7247                       "Date and time that the Port was last accessed by its "
7248                       "System/StorageLibrary. This value may be different "
7249 karl  1.1.2.1         "than that specified for the Port(s) to which this Inter"
7250                       "LibraryPort is connected. Connected Ports are identified "
7251                       "using the LibraryExchange association.") ]
7252                  datetime LastAccessed;
7253                     [Counter, Description (
7254                       "The number of times that the InterLibraryPort was used to "
7255                       "move a PhysicalMedia into the System/StorageLibrary.") ]
7256                  uint64 ImportCount;
7257                     [Counter, Description (
7258                       "The number of times that the InterLibraryPort was used to "
7259                       "move a PhysicalMedia out of the System/StorageLibrary.") ]
7260                  uint64 ExportCount;
7261                     [Description (
7262                       "An enumeration expressing whether the Port is used for "
7263                       "import into the Library/System which scopes and names it " 
7264                       "(value=1), export from the Library/System (value=2), or "
7265                       "both (value=3)."),
7266                      Values {"Unknown", "Import", "Export", "Both Import and Export"} ]
7267                  uint16 Direction;
7268               };
7269               
7270 karl  1.1.2.1 
7271               // ===================================================================
7272               // LibraryExchange 
7273               // ===================================================================
7274                  [Association, Description (
7275                    "LibraryExchange indicates that two StorageLibraries are "
7276                    "connected through their InterLibraryPorts.") ]
7277               class CIM_LibraryExchange : CIM_Dependency {
7278                     [Override ("Antecedent"), 
7279                      Description ("The InterLibraryPort of one StorageLibrary.") ]
7280                  CIM_InterLibraryPort REF Antecedent;
7281                     [Override ("Dependent"), 
7282                      Description ("The InterLibraryPort of the connected Library.") ]
7283                  CIM_InterLibraryPort REF Dependent;
7284                     [Description (
7285                       "Enumeration indicating whether the Antecedent (value=1), "
7286                       "Dependent (value=2), or neither Library (value=3) currently has "
7287                       "access to the Port."), 
7288                      Values {"Unknown", "Antecedent", "Dependent", "Neither"} ]
7289                  uint16 CurrentlyAccessingPort;
7290               };
7291 karl  1.1.2.1 
7292               
7293               // ===================================================================
7294               // LabelReader 
7295               // ===================================================================
7296                  [Description (
7297                    "LabelReaders represent hardware capable of scanning or reading "
7298                    "a physical label or the NonVolatileMemory on a PhysicalMedia. "
7299                    "Examples of labels include barcode and OCR tags.") ]
7300               class CIM_LabelReader : CIM_LogicalDevice {
7301                     [Description (
7302                       "An array of enumerated integers describing the formats of "
7303                       "the labels that can be read or scanned by the LabelReader. "
7304                       "The values specified for this property correspond to "
7305                       "those defined for CIM_PhysicalMedia.LabelFormats."), 
7306                      Values {"Barcode", "Radio Frequency Identification", 
7307                              "OCR (Optical Character Recognition)", 
7308                              "MICR (Magnetic Ink Character Recognition)",
7309                              "7 Character Barcode", "9 Character Barcode"},
7310                      ModelCorrespondence {"CIM_PhysicalMedia.LabelFormats"} ]
7311                  uint16 SupportedFormats[];
7312 karl  1.1.2.1       [Description (
7313                       "The technology used by the LabelReader. One entry of the "
7314                       "Values array requires some explanation - \"Memory Reader\". "
7315                       "The latter describes the ability to access memory in a Physical"
7316                       "Media's packaging (for example, memory on an AIT tape). The "
7317                       "existence of this Memory is indicated by the MemoryWithMedia "
7318                       "association on the physical side, or by AssociatedMemory on "
7319                       "the logical side."), 
7320                      Values {"Unknown", "Other", "Laser", "Infrared", "RF", 
7321                              "Camera", "Memory Reader"} ]
7322                  uint16 Technology;
7323               };
7324               
7325               
7326               // ===================================================================
7327               // AssociatedLabelReader
7328               // ===================================================================
7329                  [Association, Description (
7330                    "A LogicalDevice may use or require one or more LabelReaders, to "
7331                    "scan barcodes or otherwise identify entities. This relationship "
7332                    "is described by the AssociatedLabelReader dependency. ") ]
7333 karl  1.1.2.1 class CIM_AssociatedLabelReader : CIM_Dependency {
7334                     [Override ("Antecedent"), 
7335                      Description ("The LabelReader.") ]
7336                  CIM_LabelReader REF Antecedent;
7337                     [Override ("Dependent"), Description (
7338                       "The Device that is dependent on the Reader Device.") ]
7339                  CIM_LogicalDevice REF Dependent;
7340               };
7341               
7342               
7343               // ===================================================================
7344               // PickerLabelReader
7345               // ===================================================================
7346                  [Association, Description (
7347                    "PickerLabelReader is used to indicate that one or more Label"
7348                    "Readers works in conjunction with PickerElements, to identify "
7349                    "PhysicalMedia as they are being picked/placed.") ]
7350               class CIM_PickerLabelReader : CIM_AssociatedLabelReader {
7351                     [Override ("Dependent"), Description (
7352                       "The PickerElement that is dependent on the Reader Device.") ]
7353                  CIM_PickerElement REF Dependent;
7354 karl  1.1.2.1 };
7355               
7356                
7357               // ===================================================================
7358               // AccessLabelReader
7359               // ===================================================================
7360                  [Association, Description (
7361                    "AccessLabelReader is used to indicate that one or more Label"
7362                    "Readers works in conjunction with MediaAccessDevices, "
7363                    "to identify PhysicalMedia before read/write.") ]
7364               class CIM_AccessLabelReader : CIM_AssociatedLabelReader {
7365                     [Override ("Dependent"),  Description (
7366                       "The MediaAccessDevice that is dependent on the Reader "
7367                       "Device.") ]
7368                  CIM_MediaAccessDevice REF Dependent;
7369               };
7370               
7371               
7372               // ===================================================================
7373               //
7374               //    Services and Printing
7375 karl  1.1.2.1 //
7376               // ===================================================================
7377               
7378               
7379               // ===================================================================
7380               // DeviceServiceImplementation
7381               // ===================================================================
7382                  [Association, Description (
7383                    "An association between a Service and how it is implemented. "
7384                    "The cardinality of this association is many-to-many. "
7385                    "A Service may be provided by more than one Logical"
7386                    "Device, operating in conjunction.  And, any Device may "
7387                    "provide more than one Service.  When multiple Devices are "
7388                    "associated with a single Service, it is assumed that these "
7389                    "elements operate in conjunction to provide the Service.  If "
7390                    "different implementations of a Service exist, each of these "
7391                    "implementations would result in individual instantiations "
7392                    "of the Service object.  These individual instantiations "
7393                    "would then have associations to the unique implementations.") ]
7394               class CIM_DeviceServiceImplementation : CIM_Dependency {
7395                     [Override ("Antecedent"),
7396 karl  1.1.2.1        Description ("The LogicalDevice.") ]
7397                  CIM_LogicalDevice REF Antecedent;
7398                     [Override ("Dependent"),
7399                      Description ("The Service implemented using the LogicalDevice.") ]
7400                  CIM_Service REF Dependent;
7401               };
7402               
7403               
7404               // ===================================================================
7405               // DeviceSAPImplementation
7406               // ===================================================================
7407                  [Association, Description (
7408                    "An association between a ServiceAccessPoint and how "
7409                    "it is implemented. The cardinality of this association "
7410                    "is many-to-many.  A SAP may be provided by more "
7411                    "than one LogicalDevice, operating in conjunction.  And, any "
7412                    "Device may provide more than one ServiceAccessPoint. "
7413                    "When many LogicalDevices are associated with a single "
7414                    "SAP, it is assumed that these elements operate in "
7415                    "conjunction to provide the AccessPoint.  If different "
7416                    "implementations of a SAP exist, each of these implementations "
7417 karl  1.1.2.1      "would result in individual instantiations of the "
7418                    "ServiceAccessPoint object.  These individual instantiations "
7419                    "would then have associations to the unique implementations.") ]
7420               class CIM_DeviceSAPImplementation : CIM_Dependency {
7421                     [Override ("Antecedent"),
7422                      Description ("The LogicalDevice.") ]
7423                  CIM_LogicalDevice REF Antecedent;
7424                     [Override ("Dependent"),
7425                      Description (
7426                       "The ServiceAccessPoint implemented using the LogicalDevice.") ]
7427                  CIM_ServiceAccessPoint REF Dependent;
7428               };
7429               
7430               
7431               // ===================================================================
7432               // VideoBIOSFeature
7433               // ===================================================================
7434                  [Description (
7435                    "VideoBIOSFeature represents the capabilities of the low-level "
7436                    "software that is used to bring up, configure and use a "
7437                    "ComputerSystem's VideoController and Display.")  ] 
7438 karl  1.1.2.1 class CIM_VideoBIOSFeature : CIM_SoftwareFeature {
7439                     [Description (
7440                       "An array of integers that specify the features supported by "
7441                       "the VideoBIOS. For example, one could indicate support for "
7442                       "VESA power management (value=6) or video BIOS shadowing (8). "
7443                       "The value, 3, is not valid in the CIM Schema since in DMI it "
7444                       "represents that no BIOS Features are supported.  In this "
7445                       "case, the object should not be instantiated."),
7446                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9"},
7447                      Values {"Other", "Unknown", "Undefined", "Standard Video BIOS",
7448                              "VESA BIOS Extensions Supported", 
7449                              "VESA Power Management Supported", 
7450                              "VESA Display Data Channel Supported", 
7451                              "Video BIOS Shadowing Allowed", "Video BIOS Upgradeable"},
7452                      ArrayType ("Indexed"), 
7453                      MappingStrings {"MIF.DMTF|Video BIOS Characteristic|001.3"},
7454                      ModelCorrespondence {
7455                       "CIM_VideoBIOSFeature.CharacteristicDescriptions"} ]
7456                  uint16 Characteristics[];
7457                     [Description (
7458                       "An array of free-form strings providing more detailed "
7459 karl  1.1.2.1         "explanations for any of the VideoBIOS features indicated in "
7460                       "the Characteristics array. Note, each entry of this array "
7461                       "is related to the entry in the Characteristics array that "
7462                       "is located at the same index."),
7463                      ArrayType ("Indexed"),
7464                      MappingStrings {"MIF.DMTF|Video BIOS Characteristic|001.4"},
7465                      ModelCorrespondence {"CIM_VideoBIOSFeature.Characteristics"} ]
7466                  string CharacteristicDescriptions[];
7467               };
7468               
7469               
7470               // ===================================================================
7471               // VideoBIOSElement
7472               // ===================================================================
7473                  [Description (
7474                    "VideoBIOSElement represents the low-level software that is "
7475                    "loaded into non-volatile storage and used to bring up, "
7476                    "configure and access a ComputerSystem's VideoController and "
7477                    "Display.") ] 
7478               class CIM_VideoBIOSElement : CIM_SoftwareElement {
7479                     [Override ("Version"),
7480 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Video BIOS|001.3"} ]
7481                  string Version;
7482                     [Override ("Manufacturer"),
7483                      MappingStrings {"MIF.DMTF|Video BIOS|001.2"} ]
7484                  string Manufacturer; 
7485                     [Description (
7486                       "If true, indicates that the Video BIOS is shadowed."),
7487                      MappingStrings {"MIF.DMTF|Video BIOS|001.5"} ]
7488                  boolean IsShadowed;
7489                     [Description (
7490                       "Date that this BIOS was released."),
7491                      MappingStrings {"MIF.DMTF|Video BIOS|001.4"} ]
7492                  datetime ReleaseDate;
7493               };
7494               
7495               
7496               // ===================================================================
7497               // VideoBIOSFeatureVideoBIOSElements
7498               // ===================================================================
7499                  [Association, Aggregation, Description (
7500                    "A link between VideoBIOSFeature and its aggregated "
7501 karl  1.1.2.1      "VideoBIOSElements.") ] 
7502               class CIM_VideoBIOSFeatureVideoBIOSElements : 
7503                CIM_SoftwareFeatureSoftwareElements {
7504                     [Override ("GroupComponent"), Aggregate,
7505                      Description ("The VideoBIOSFeature.") ]
7506                  CIM_VideoBIOSFeature REF GroupComponent;
7507                     [Override ("PartComponent"),
7508                      Description (
7509                       "The VideoBIOSElement that implements the capabilities "
7510                       "described by VideoBIOSFeature.") ]
7511                  CIM_VideoBIOSElement REF PartComponent;
7512               };
7513               
7514               
7515               // ===================================================================
7516               // DeviceSoftware
7517               // ===================================================================
7518                  [Association, Description (
7519                    "The DeviceSoftware relationship identifies any software that "
7520                    "is associated with a Device - such as drivers, configuration "
7521                    "or application software, or firmware.") ] 
7522 karl  1.1.2.1 class CIM_DeviceSoftware : CIM_Dependency {
7523                     [Override ("Antecedent"),
7524                      Description ("The SoftwareElement.") ]
7525                  CIM_SoftwareElement REF Antecedent;
7526                     [Override ("Dependent"),
7527                      Description (
7528                       "The LogicalDevice that requires or uses the software.") ]
7529                  CIM_LogicalDevice REF Dependent;
7530                     [Description (
7531                       "An enumerated integer to indicate the role this software "
7532                       "plays in regards to its associated Device. For example, this "
7533                       "software could be instrumentation (value=5) or firmware (6)."),
7534                      Values {"Unknown", "Other", "Driver", "Configuration Software", 
7535                              "Application Software", "Instrumentation", "Firmware",
7536                              "BIOS", "Boot ROM"},
7537                      ModelCorrespondence {"CIM_DeviceSoftware.PurposeDescription"},
7538                      MappingStrings {"MIF.DMTF|SubComponent Software|001.2"}  ]
7539                  uint16 Purpose;
7540                     [Description (
7541                       "A free-form string to provide more information for "
7542                       "the Purpose property, e.g. \"Application Software\"."),
7543 karl  1.1.2.1        ModelCorrespondence {"CIM_DeviceSoftware.Purpose"} ] 
7544                  string PurposeDescription;
7545                     [Description (
7546                       "Boolean indicating that the software is 'burned into' or "
7547                       "otherwise located on the hardware of the LogicalDevice.") ]
7548                  boolean LoadedOnDevice; 
7549                     [Description (
7550                       "Boolean indicating whether the software is upgradeable, "
7551                       "when it is LoadedOnDevice. Software that is loaded as "
7552                       "part of the OperatingSystem is typically changeable and "
7553                       "upgradeable. However, when DeviceSoftware is burned into "
7554                       "EEPROM or a chip that Realizes the LogicalDevice, then "
7555                       "it may not be upgradeable. This property indicates the "
7556                       "ability to update and upgrade DeviceSoftware.") ]
7557                  boolean UpgradeableOnDevice;
7558               };
7559               
7560               
7561               // ===================================================================
7562               // Printer
7563               // ===================================================================
7564 karl  1.1.2.1    [Description (
7565                    "Capabilities and management of the Printer LogicalDevice.") ] 
7566               class CIM_Printer : CIM_LogicalDevice {   
7567                     [Description (
7568                       "Status information for a Printer, beyond that specified "
7569                       "in the LogicalDevice Availability property. Values include "
7570                       "\"Idle\" (3) and an indication that the Device is currently "
7571                       "printing (4)."),
7572                      ValueMap {"1", "2", "3", "4", "5", "6", "7"},
7573                      Values {"Other", "Unknown", "Idle", "Printing", "Warmup",
7574                              "Stopped Printing", "Offline"},
7575                      MappingStrings {"MIB.IETF|Printer-MIB.hrPrinterStatus"} ]
7576                  uint16 PrinterStatus;
7577                     [Description ("Printer error information."),
7578                      Values {"Unknown", "Other", "No Error", "Low Paper", 
7579                              "No Paper", "Low Toner", 
7580                              "No Toner", "Door Open", "Jammed", "Offline", 
7581                              "Service Requested", "Output Bin Full"}, 
7582                      ModelCorrespondence {"CIM_Printer.ErrorInformation"}, 
7583                      MappingStrings {
7584                       "MIB.IETF|Printer-MIB.hrPrinterDetectedErrorState"} ]
7585 karl  1.1.2.1    uint16 DetectedErrorState;
7586                     [Description (
7587                       "An array providing supplemental information for the "
7588                       "current error state, indicated in DetectedErrorState."),
7589                      ModelCorrespondence {"CIM_Printer.DetectedErrorState"} ]
7590                  string ErrorInformation[];
7591                     [Description (
7592                       "An integer array indicating the types of paper supported."),
7593                      Values {"Unknown", "Other", "A", "B", "C", "D", "E", 
7594                              "Letter", "Legal", "NA-10x13-Envelope", "NA-9x12-Envelope", 
7595                              "NA-Number-10-Envelope", "NA-7x9-Envelope", 
7596                              "NA-9x11-Envelope", "NA-10x14-Envelope",
7597                              "NA-Number-9-Envelope", "NA-6x9-Envelope",
7598                              "NA-10x15-Envelope", "A0", "A1", "A2", "A3", "A4", "A5",
7599                              "A6", "A7", "A8", "A9" "A10", "B0", "B1", "B2", "B3", "B4",
7600                              "B5", "B6", "B7", "B8", "B9", "B10", "C0", "C1", "C2" "C3",
7601                              "C4", "C5", "C6", "C7", "C8", "ISO-Designated", "JIS B0",
7602                              "JIS B1", "JIS B2", "JIS B3", "JIS B4", "JIS B5", "JIS B6",
7603                              "JIS B7", "JIS B8", "JIS B9", "JIS B10", 
7604                              "NA-Letter", "NA-Legal", "B4-Envelope", "B5-Envelope", 
7605                              "C3-Envelope", "C4-Envelope", "C5-Envelope", "C6-Envelope", 
7606 karl  1.1.2.1                "Designated-Long-Envelope", "Monarch-Envelope", 
7607                              "Executive", "Folio", "Invoice", "Ledger", "Quarto"} ]
7608                  uint16 PaperSizesSupported[];
7609                     [Description (
7610                       "An array of free-form strings specifying the types of "
7611                       "paper that are currently available on the Printer. Each "
7612                       "string should be expressed in the form specified by "
7613                       "ISO/IEC 10175 Document Printing Application (DPA) which "
7614                       "is also summarized in Appendix C of RFC 1759 (Printer MIB). "
7615                       "Examples of valid strings are \"iso-a4-colored\" and "
7616                       "\"na-10x14-envelope\". By definition a paper size that "
7617                       "is available and listed in PaperTypesAvailable should "
7618                       "also appear in the PaperSizesSupported property."), 
7619                      ArrayType ("Indexed"), 
7620                      ModelCorrespondence {"CIM_PrintJob.RequiredPaperType", 
7621                       "CIM_PrintService.PaperTypesAvailable"}, 
7622                      MappingStrings {"MIB.IETF|Printer-MIB.prtInputMediaName"} ]
7623                  string PaperTypesAvailable[];
7624                     [Description (
7625                       "Specifies the paper type that the Printer will use if a "
7626                       "PrintJob does not specify a particular type. The string "
7627 karl  1.1.2.1         "should be expressed in the form specified by ISO/IEC "
7628                       "10175 Document Printing Application (DPA) which is also "
7629                       "summarized in Appendix C of RFC 1759 (Printer MIB)."), 
7630                      ModelCorrespondence {"CIM_Printer.PaperTypesAvailable"} ]
7631                  string DefaultPaperType;
7632                     [Description (
7633                       "Specifies the paper type that the Printer is currently "
7634                       "using. The string should be expressed in the form specified "
7635                       "by ISO/IEC 10175 Document Printing Application (DPA) which "
7636                       "is also summarized in Appendix C of RFC 1759 (Printer MIB)."), 
7637                      ModelCorrespondence {"CIM_Printer.PaperTypesAvailable"} ]
7638                  string CurrentPaperType;
7639                     [Description (
7640                       "An array indicating the print languages natively supported."),
7641                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
7642                                "11", "12", "13", "14", "15", "16", "17", "18", "19",
7643                                "20", "21", "22", "23", "24", "25", "26", "27", "28", 
7644                                "29", "30", "31", "32", "33", "34", "35", "36", "37", 
7645                                "38", "39", "40", "41", "42", "43", "44", "45", "46", "47"},
7646                      Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
7647                              "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
7648 karl  1.1.2.1                "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
7649                              "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
7650                              "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
7651                              "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
7652                              "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
7653                              "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
7654                      MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"},
7655                      ModelCorrespondence {"CIM_Printer.MimeTypesSupported", 
7656                       "CIM_PrintJob.Language", 
7657                       "CIM_PrintService.LanguagesSupported"} ]
7658                  uint16 LanguagesSupported[];
7659                     [Description (
7660                       "An array of free-form strings providing more detailed "
7661                       "explanations of any mime types that are supported by "
7662                       "the Printer. If data is provided for this property, then "
7663                       "the value 47, \"Mime\", should be included in the Languages"
7664                       "Supported property."), 
7665                      ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
7666                       "CIM_PrintJob.MimeTypes", 
7667                       "CIM_PrintService.MimeTypesSupported"} ]
7668                  string MimeTypesSupported[];
7669 karl  1.1.2.1       [Description (
7670                       "Indicates the current printer language being used. A "
7671                       "language that is being used by the Printer should also be "
7672                       "listed in LanguagesSupported."), 
7673                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
7674                                "11", "12", "13", "14", "15", "16", "17", "18", "19",
7675                                "20", "21", "22", "23", "24", "25", "26", "27", "28", 
7676                                "29", "30", "31", "32", "33", "34", "35", "36", "37", 
7677                                "38", "39", "40", "41", "42", "43", "44", "45", "46", 
7678                                "47"},
7679                      Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
7680                              "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
7681                              "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
7682                              "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
7683                              "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
7684                              "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
7685                              "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
7686                              "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
7687                      ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
7688                       "CIM_Printer.CurrentMimeType"} ]
7689                  uint16 CurrentLanguage;
7690 karl  1.1.2.1       [Description (
7691                       "Specifies the mime type currently being used by the "
7692                       "Printer if the CurrentLanguage is set to indicate a "
7693                       "mime type is in use (value = 47)."), 
7694                      ModelCorrespondence {"CIM_Printer.CurrentLanguage"} ]
7695                  string CurrentMimeType;
7696                     [Description (
7697                       "Indicates the default printer language. A language that "
7698                       "is used as a default by the Printer should also be listed "
7699                       "in LanguagesSupported."), 
7700                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
7701                                "11", "12", "13", "14", "15", "16", "17", "18", "19",
7702                                "20", "21", "22", "23", "24", "25", "26", "27", "28", 
7703                                "29", "30", "31", "32", "33", "34", "35", "36", "37", 
7704                                "38", "39", "40", "41", "42", "43", "44", "45", "46", 
7705                                "47"},
7706                      Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
7707                              "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
7708                              "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
7709                              "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
7710                              "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
7711 karl  1.1.2.1                "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
7712                              "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
7713                              "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
7714                      ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
7715                       "CIM_Printer.DefaultMimeType"} ]
7716                  uint16 DefaultLanguage;
7717                     [Description (
7718                       "Specifies the default mime type used by the Printer if the "
7719                       "DefaultLanguage is set to indicate a mime type is in use "
7720                       "(value=47)."), 
7721                      ModelCorrespondence {"CIM_Printer.DefaultLanguage"} ]
7722                  string DefaultMimeType;
7723                     [Description (
7724                       "Printer jobs processed since last reset.  These jobs may be "
7725                       "processed from one or more PrintQueues."), 
7726                      Counter ] 
7727                  uint32 JobCountSinceLastReset;
7728                     [Description ("Time of last reset of the Printer Device.") ]
7729                  datetime TimeOfLastReset;
7730                     [Description (
7731                       "An array of integers indicating Printer capabilities. "
7732 karl  1.1.2.1         "Information such as \"Duplex Printing\" (value=3) or "
7733                       "\"Transparency Printing\" (7) is specified in this "
7734                       "property."),
7735                    ArrayType ("Indexed"), 
7736                      Values {"Unknown", "Other", "Color Printing", 
7737                              "Duplex Printing", "Copies", "Collation", "Stapling", 
7738                              "Transparency Printing", "Punch", "Cover", "Bind", 
7739                              "Black and White Printing", "One Sided", 
7740                              "Two Sided Long Edge", "Two Sided Short Edge", 
7741                              "Portrait", "Landscape", "Reverse Portrait", 
7742                              "Reverse Landscape", "Quality High", "Quality Normal", 
7743                              "Quality Low"}, 
7744                      ModelCorrespondence {"CIM_Printer.CapabilityDescriptions", 
7745                       "CIM_PrintJob.Finishing", 
7746                       "CIM_PrintService.Capabilities"} ]
7747                  uint16 Capabilities[];
7748                     [Description (
7749                       "An array of free-form strings providing more detailed "
7750                       "explanations for any of the Printer features indicated in "
7751                       "the Capabilities array. Note, each entry of this array "
7752                       "is related to the entry in the Capabilities array that "
7753 karl  1.1.2.1         "is located at the same index."),
7754                      ArrayType ("Indexed"),
7755                    ModelCorrespondence {"CIM_Printer.Capabilities"} ]
7756                  string CapabilityDescriptions[];
7757                     [Description (
7758                       "Specifies which finishings and other capabilities of "
7759                       "the Printer will be used by default. An entry in Default"
7760                       "Capabilities should also be listed in the Capabilities "
7761                       "array."), 
7762                      Values {"Unknown", "Other", "Color Printing", 
7763                              "Duplex Printing", "Copies", "Collation", "Stapling", 
7764                              "Transparency Printing", "Punch", "Cover", "Bind", 
7765                              "Black and White Printing", "One Sided", 
7766                              "Two Sided Long Edge", "Two Sided Short Edge", 
7767                              "Portrait", "Landscape", "Reverse Portrait", 
7768                              "Reverse Landscape", "Quality High", "Quality Normal", 
7769                              "Quality Low"}, 
7770                      ModelCorrespondence {"CIM_Printer.Capabilities"} ]
7771                  uint16 DefaultCapabilities[];
7772                     [Description (
7773                       "Specifies which finishings and other capabilities of "
7774 karl  1.1.2.1         "the Printer are currently being used. An entry in this "
7775                       "property should also be listed in the Capabilities array."), 
7776                      Values {"Unknown", "Other", "Color Printing", 
7777                              "Duplex Printing", "Copies", "Collation", "Stapling", 
7778                              "Transparency Printing", "Punch", "Cover", "Bind", 
7779                              "Black and White Printing", "One Sided", 
7780                              "Two Sided Long Edge", "Two Sided Short Edge", 
7781                              "Portrait", "Landscape", "Reverse Portrait", 
7782                              "Reverse Landscape", "Quality High", "Quality Normal", 
7783                              "Quality Low"}, 
7784                      ModelCorrespondence {"CIM_Printer.Capabilities"} ]
7785                  uint16 CurrentCapabilities[];
7786                     [Description (
7787                       "The maximum number of copies that can be produced by "
7788                       "the Printer from a single Job."), 
7789                      ModelCorrespondence {"CIM_PrintJob.Copies"} ]
7790                  uint32 MaxCopies;
7791                     [Description (
7792                       "The number of copies that will be produced for a "
7793                       "single Job unless otherwise specified.") ]
7794                  uint32 DefaultCopies;
7795 karl  1.1.2.1       [Description (
7796                       "The maximum number of print-stream pages that the "
7797                       "Printer can render onto a single media sheet."), 
7798                      ModelCorrespondence {"CIM_PrintJob.NumberUp"} ]
7799                  uint32 MaxNumberUp;
7800                     [Description (
7801                       "The number of print-stream pages that the Printer will "
7802                       "render onto a single media sheet unless a Job specifies "
7803                       "otherwise.") ]
7804                  uint32 DefaultNumberUp;
7805                     [Description (
7806                       "Printer's horizontal resolution in Pixels per Inch."),
7807                      Units ("Pixels per Inch"), 
7808                      ModelCorrespondence {"CIM_PrintJob.HorizontalResolution"} ]
7809                  uint32 HorizontalResolution;
7810                     [Description (
7811                       "Printer's vertical resolution in Pixels per Inch."),
7812                      Units ("Pixels per Inch"),
7813                      ModelCorrespondence {"CIM_PrintJob.HorizontalResolution"} ]
7814                  uint32 VerticalResolution;
7815                     [Description (
7816 karl  1.1.2.1         "Identifies the available character sets for the output "
7817                       "of text related to managing the Printer. Strings "
7818                       "provided in this property should conform to the "
7819                       "semantics and syntax specified by section 4.1.2 "
7820                       "(\"Charset parameter\") in RFC 2046 (MIME Part 2) and "
7821                       "contained in the IANA character-set registry. Examples "
7822                       "include \"utf-8\", \"us-ascii\" and \"iso-8859-1\"."), 
7823                      ArrayType ("Indexed"), 
7824                      ModelCorrespondence {"CIM_PrintJob.CharSet"}, 
7825                      MappingStrings {
7826                       "MIB.IETF|Printer-MIB.prtLocalizationCharacterSet"} ]
7827                  string CharSetsSupported[];
7828                     [Description (
7829                       "Specifies the current character set being used for "
7830                       "the output of text relating to management of the "
7831                       "Printer. The character set described by this property "
7832                       "should also be listed in CharsetsSupported. The string "
7833                       "specified by this property should conform to the "
7834                       "semantics and syntax specified by section 4.1.2 "
7835                       "(\"Charset parameter\") in RFC 2046 (MIME Part 2) and "
7836                       "contained in the IANA character-set registry. Examples "
7837 karl  1.1.2.1         "include \"utf-8\", \"us-ascii\" and \"iso-8859-1\"."), 
7838                      ModelCorrespondence {"CIM_Printer.CharSetsSupported"} ]
7839                  string CurrentCharSet;
7840                     [Description (
7841                       "Identifies the available languages for strings used by "
7842                       "the Printer for the output of management information. "
7843                       "The strings should conform to RFC 1766, for example "
7844                       "\"en\" is used for English."), 
7845                      ArrayType ("Indexed"), 
7846                      MappingStrings {
7847                          "MIB.IETF|Printer-MIB.prtLocalizationLanguage"}, 
7848                      ModelCorrespondence {"CIM_PrintJob.NaturalLanguage"} ]
7849                  string NaturalLanguagesSupported[];
7850                     [Description (
7851                       "Identifies the current language being used by the "
7852                       "Printer for management. The language listed in the "
7853                       "CurrentNaturalLanguage property should also be listed "
7854                       "in NaturalLanguagesSupported."), 
7855                      ModelCorrespondence {"CIM_Printer.NaturalLanguagesSupported"} ]
7856                  string CurrentNaturalLanguage;
7857                     [Description (
7858 karl  1.1.2.1         "Specifies the largest Job (as a byte stream) that the "
7859                       "Printer will accept in units of Kbytes. A value of zero "
7860                       "indicates that no limit has been set."), 
7861                      Units ("KiloBytes"), 
7862                      ModelCorrespondence {"CIM_PrintJob.JobSize"} ]
7863                  uint32 MaxSizeSupported;
7864                     [Description (
7865                       "Describes all of the job sheets that are available on "
7866                       "the Printer. This can also be used to describe the banner "
7867                       "that a Printer might provide at the beginning of each Job, "
7868                       "or can describe other user specified options."), 
7869                      ModelCorrespondence {"CIM_PrintJob.RequiredJobSheets"} ]
7870                  string AvailableJobSheets[];
7871                     [Description (
7872                       "Specifies the marking technology used by the Printer."), 
7873                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", 
7874                                "10", "11", "12", "13", "14", "15", "16", "17", 
7875                                "18", "19", "20", "21", "22", "23", "24", "25", 
7876                                "26", "27"}, 
7877                      Values {"Other", "Unknown", "Electrophotographic LED", 
7878                              "Electrophotographic Laser",  
7879 karl  1.1.2.1                "Electrophotographic Other", 
7880                              "Impact Moving Head Dot Matrix 9pin", 
7881                              "Impact Moving Head Dot Matrix 24pin", 
7882                              "Impact Moving Head Dot Matrix Other", 
7883                              "Impact Moving Head Fully Formed", 
7884                              "Impact Band", "Impact Other", "Inkjet Aqueous", 
7885                              "Inkjet Solid", "Inkjet Other", "Pen", 
7886                              "Thermal Transfer", "Thermal Sensitive", 
7887                              "Thermal Diffusion", "Thermal Other", 
7888                              "Electroerosion", "Electrostatic", 
7889                              "Photographic Microfiche", 
7890                              "Photographic Imagesetter", "Photographic Other", 
7891                              "Ion Deposition", "eBeam", "Typesetter"}, 
7892                      MappingStrings {"MIB.IETF|Printer-MIB.prtMarkerMarkTech"} ]
7893                  uint16 MarkingTechnology;
7894               };
7895               
7896               
7897               // ===================================================================
7898               // PrintQueue 
7899               // ===================================================================
7900 karl  1.1.2.1    [Description (
7901                    "Capabilities and management of a Printer Queue. A PrintQueue "
7902                    "holds PrintJobs - which are placed on the Queue by a Print"
7903                    "Service. Jobs can move from Queue to Queue.") ]
7904               class CIM_PrintQueue : CIM_JobDestination {
7905                     [Description (
7906                       "Indicates that Jobs on the Queue will be passed to a "
7907                       "Printer. When FALSE, a Job will remain on the Queue and "
7908                       "will not be passed to a Printer for output.") ]
7909                  boolean QueueEnabled;
7910                     [Description (
7911                       "When FALSE, no PrintService can place PrintJobs on the "
7912                       "PrintQueue. The ability of an individual PrintService "
7913                       "to place a Job on the Queue can be specified using the "
7914                       "QueueAcceptingFromService property in the QueueForPrint"
7915                       "Service association.") ]
7916                  boolean QueueAccepting;
7917                     [Description ("The current number of Jobs on the Queue."),
7918                      Gauge ]
7919                  uint32 NumberOnQueue;
7920                     [Description (
7921 karl  1.1.2.1         "Gives Queue-specific status information, beyond the "
7922                       "ManagedSystemElement.Status property. This may be used to "
7923                       "provide further qualification as to the status of the "
7924                       "Queue or to indicate a secondary condition (e.g. spool "
7925                       "area is full)."), 
7926                      Values {"Other", "Unknown", "No Additional Status", 
7927                              "QueueSpoolAreaFull"} ]
7928                  uint16 QueueStatus;
7929                     [Description (
7930                       "Provides a textual explanation for the status of the Queue. "
7931                       "The settings of both QueueStatus and the Status property "
7932                       "inherited from ManagedSystemElement may be described by "
7933                       "QueueStatusInfo. For example, if \"Stopping\" is the value "
7934                       "assigned to Status, then this property may contain an "
7935                       "explanation as to why the Queue is being stopped.") ]
7936                  string QueueStatusInfo;
7937                     [Description (
7938                       "Specifies the largest possible Job (in terms of a single "
7939                       "byte stream) that may be submitted to this Queue. A value "
7940                       "of zero indicates that no limit has been set. Units "
7941                       "are Kbytes."), 
7942 karl  1.1.2.1        Units ("KiloBytes"), 
7943                      ModelCorrespondence {"CIM_PrintJob.JobSize"} ]
7944                  uint32 MaxJobSize;
7945                     [Description (
7946                       "Specifies the priority that will be assigned to a new Job "
7947                       "being submitted to this Queue, if the Job does not "
7948                       "explicitly specify a priority. The range of valid priorities "
7949                       "and the interpretation of priorities may be determined from "
7950                       "the JobPriorityHigh and JobPriorityLow properties."), 
7951                      ModelCorrespondence {"CIM_PrintQueue.JobPriorityHigh", 
7952                       "CIM_PrintQueue.JobPriorityLow"} ]
7953                  uint32 DefaultJobPriority;
7954                     [Description (
7955                       "Specifies the numeric value that is used to represent the "
7956                       "highest priority Jobs that are submitted to this Queue. The "
7957                       "range of numeric values for priority may be inversed, e.g. "
7958                       "a high priority job is represented by a low integer value. "
7959                       "This is indicated by JobPriorityLow being greater than "
7960                       "JobPriorityHigh. If both values (PriorityLow and Priority"
7961                       "High) are assigned to zero, then the Queue does not support "
7962                       "Job priorities."), 
7963 karl  1.1.2.1        ModelCorrespondence {"CIM_PrintQueue.JobPriorityLow", 
7964                       "CIM_Job.Priority"} ]
7965                  uint32 JobPriorityHigh;
7966                     [Description (
7967                       "Specifies the numeric value that is used to represent the "
7968                       "lowest priority Jobs that are submitted to this Queue. The "
7969                       "range of numeric values for priority may be inversed, e.g. "
7970                       "a low priority job is represented by a high integer value. "
7971                       "This is indicated by JobPriorityLow being greater than "
7972                       "JobPriorityHigh. If both values (PriorityLow and PriorityHigh) "
7973                       "are assigned to zero, then the Queue does not support "
7974                       "Job priorities."), 
7975                      ModelCorrespondence {"CIM_PrintQueue.JobPriorityHigh", 
7976                       "CIM_Job.Priority"} ]
7977                  uint32 JobPriorityLow;
7978                     [Description (
7979                       "Specifies the job sheets that are supported by this Queue. "
7980                       "Typically the job sheets provided by a Queue will be the "
7981                       "union or aggregation of those provided by all the Printers "
7982                       "that it supports. However, a system administrator may choose "
7983                       "to restrict access to some job sheets on a particular Queue. "
7984 karl  1.1.2.1         "A Queue might also support additional job sheets through the "
7985                       "use of a filter that adds a banner or some other page when a "
7986                       "Job is taken from the Queue."), 
7987                      ModelCorrespondence {"CIM_PrintJob.RequiredJobSheets"} ]
7988                  string AvailableJobSheets[];
7989               };
7990               
7991               
7992               // ===================================================================
7993               // PrintJob
7994               // ===================================================================
7995                  [Description (
7996                    "Description of a print request that is either waiting on a "
7997                    "Queue for a Printer to become available, in the process of "
7998                    "being output on a Printer, or that has previously been "
7999                    "printed on a Printer. PrintJobs are weak to their current "
8000                    "Queue, or to the last Queue that held them.") ]
8001               class CIM_PrintJob : CIM_Job {
8002                     [Propagated ("CIM_PrintQueue.SystemCreationClassName"), 
8003                      Key, MaxLen (256),
8004                      Description ("The scoping System's CreationClassName.") ]
8005 karl  1.1.2.1    string SystemCreationClassName;
8006                     [Propagated ("CIM_PrintQueue.SystemName"), 
8007                      Key, MaxLen (256),
8008                      Description ("The scoping System's Name.") ] 
8009                  string SystemName;
8010                     [Propagated ("CIM_PrintQueue.CreationClassName"), 
8011                      Key, MaxLen (256),
8012                      Description ("The scoping Queue's CreationClassName.") ]
8013                  string QueueCreationClassName;
8014                     [Propagated ("CIM_PrintQueue.Name"), 
8015                      Key, MaxLen (256),
8016                      Description ("The scoping Queue's Name.") ]
8017                  string QueueName;
8018                     [Override("JobStatus"), 
8019                      Description (
8020                       "The inherited JobStatus is used to provide additional "
8021                       "information about the status of a PrintJob beyond that "
8022                       "enumerated by PrintJobStatus."), 
8023                      ModelCorrespondence {"CIM_PrintJob.PrintJobStatus"} ]
8024                  string JobStatus;
8025                     [Key, Description (
8026 karl  1.1.2.1         "Uniquely identifies this Job within its scoping Queue.")]
8027                  string JobID;
8028                     [Description (
8029                       "Provides additional textual descriptions of how this "
8030                       "Job should be scheduled.") ]
8031                  string SchedulingInformation;
8032                     [Description (
8033                       "Specifies the size of the PrintJob (as a byte stream) in "
8034                       "units of Kbytes."), 
8035                      Units ("KiloBytes"), 
8036                      ModelCorrespondence {"CIM_Printer.MaxSizeSupported", 
8037                       "CIM_PrintQueue.MaxJobSize"} ]
8038                  uint32 JobSize;
8039                     [Description (
8040                       "Specifies the print language used by this Job."), 
8041                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
8042                                "11", "12", "13", "14", "15", "16", "17", "18", "19", 
8043                                "20", "21", "22", "23", "24", "25", "26", "27", "28", 
8044                                "29", "30", "31", "32", "33", "34", "35", "36", "37", 
8045                                "38", "39", "40", "41", "42", "43", "44", "45", "46", 
8046                                "47"},
8047 karl  1.1.2.1        Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
8048                              "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
8049                              "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
8050                              "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
8051                              "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
8052                              "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
8053                              "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
8054                              "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"}, 
8055                      ArrayType ("Indexed"), 
8056                      MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"}, 
8057                      ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
8058                       "CIM_PrintService.LanguagesSupported", 
8059                       "CIM_PrintJob.MimeTypes"} ]
8060                  uint16 Language;
8061                     [Description (
8062                       "Specifies the mime types used by the PrintJob if "
8063                       "Language is set to indicate a mime type is in use (value=47)."), 
8064                      ModelCorrespondence {"CIM_PrintJob.Language", 
8065                       "CIM_Printer.MimeTypesSupported", 
8066                       "CIM_PrintService.MimeTypesSupported"} ]
8067                  string MimeTypes[];
8068 karl  1.1.2.1       [Description (
8069                       "A string specifying the type of paper that is required by "
8070                       "this PrintJob. Each string should be expressed in the form "
8071                       "specified by ISO/IEC 10175 Document Printing Application (DPA) "
8072                       "which is also summarized in Appendix C of RFC 1759 (Printer "
8073                       "MIB). Examples of valid strings are \"iso-a4-colored\" and "
8074                       "\"na-10x14-envelope\"."), 
8075                      ModelCorrespondence {"CIM_Printer.PaperTypesAvailable", 
8076                       "CIM_PrintService.PaperTypesAvailable"} ]
8077                  string RequiredPaperType;
8078                     [Description (
8079                       "An array of integers indicating the type of finishing "
8080                       "required by this Job. It is equivalent to the Capabilities "
8081                       "property provided by the Printer."), 
8082                      ArrayType ("Indexed"), 
8083                      Values {"Unknown", "Other", "Color Printing", 
8084                              "Duplex Printing", "Copies", "Collation", "Stapling", 
8085                              "Transparency Printing", "Punch", "Cover", "Bind", 
8086                              "Black and White Printing", "One Sided", 
8087                              "Two Sided Long Edge", "Two Sided Short Edge", 
8088                              "Portrait", "Landscape", "Reverse Portrait", 
8089 karl  1.1.2.1                "Reverse Landscape", "Quality High", "Quality Normal", 
8090                              "Quality Low"}, 
8091                      ModelCorrespondence {"CIM_Printer.Capabilities", 
8092                       "CIM_PrintService.Capabilities"} ]
8093                  uint16 Finishing[];
8094                     [Description (
8095                       "The number of physical copies of the output that will be "
8096                       "produced from this Job."), 
8097                      ModelCorrespondence {"CIM_Printer.MaxCopies"} ]
8098                  uint32 Copies;
8099                     [Description (
8100                       "The horizontal resolution in Pixels per Inch for the Job."), 
8101                      Units ("Pixels per Inch"), 
8102                      ModelCorrespondence {"CIM_Printer.HorizontalResolution"} ]
8103                  uint32 HorizontalResolution;
8104                     [Description (
8105                       "The vertical resolution in Pixels per Inch for the Job."), 
8106                      Units ("Pixels per Inch"), 
8107                      ModelCorrespondence {"CIM_Printer.VerticalResolution"} ]
8108                  uint32 VerticalResolution;
8109                     [Description (
8110 karl  1.1.2.1         "Specifies the character set and encoding method that "
8111                       "should be used by the Printer for the management of "
8112                       "this Job. The strings should conform to the semantics and "
8113                       "syntax specified by section 4.1.2 (\"Charset parameter\") "
8114                       "in RFC 2046 (MIME Part 2) and contained in the IANA "
8115                       "character-set registry. Examples include \"utf-8\", "
8116                       "\"us-ascii\" and \"iso-8859-1\"."), 
8117                      ModelCorrespondence {"CIM_Printer.CharSetsSupported"} ]
8118                  string CharSet;
8119                     [Description (
8120                       "Identifies the language that should be used by the Printer "
8121                       "for the management of this Job. The specified value should "
8122                       "conform to RFC 1766. For example, \"en\" is used for "
8123                       "English."), 
8124                      ModelCorrespondence {"CIM_Printer.NaturalLanguagesSupported"} ]
8125                  string NaturalLanguage;
8126                     [Description (
8127                       "The number of print-stream pages that should be rendered "
8128                       "onto a single media sheet when the Printer outputs this "
8129                       "PrintJob."), 
8130                      ModelCorrespondence {"CIM_Printer.MaxNumberUp"} ]
8131 karl  1.1.2.1    uint32 NumberUp;
8132                     [Description (
8133                       "Describes the current state of this Job with respect "
8134                       "to the PrintQueue and the Printer. Additional information "
8135                       "may be specified in JobStatus."), 
8136                      ValueMap {"1", "2", "3", "4", "5", "6", "7"}, 
8137                      Values {"Other", "Unknown", "Pending", "Blocked", 
8138                              "Complete", "Completed With Error", "Printing"}, 
8139                      ModelCorrespondence {"CIM_PrintJob.TimeCompleted", 
8140                       "CIM_PrintJob.JobStatus"} ]
8141                  uint16 PrintJobStatus;
8142                     [Description (
8143                       "Time when this Job was completed. This value is only "
8144                       "valid if the PrintJobStatus has been assigned to "
8145                       "\"Complete\" (value=5) or \"Completed With Error\" "
8146                       "(value=6)."), 
8147                      ModelCorrespondence {"CIM_PrintJob.PrintJobStatus"} ]
8148                  datetime TimeCompleted;
8149                     [Description (
8150                       "Describes the job sheets that should be used when this "
8151                       "Job is output on the Printer."), 
8152 karl  1.1.2.1        ModelCorrespondence {"CIM_Printer.AvailableJobSheets"} ]
8153                  string RequiredJobSheets[];
8154                     [Description (
8155                       "Provides additional information, beyond Job Owner "
8156                       "inherited from CIM_Job, to identify the origins of the "
8157                       "PrintJob. This property could include information such as "
8158                       "the System, application or Process that created the Job.") ]
8159                  string JobOrigination;
8160 karl  1.1     };
8161               
8162               
8163               // ===================================================================
8164 karl  1.1.2.1 // PrintSAP
8165 karl  1.1     // ===================================================================
8166 karl  1.1.2.1    [Description ("The ServiceAccessPoint for a printing Service.") ]
8167               class CIM_PrintSAP : CIM_ServiceAccessPoint {
8168 karl  1.1           [Description (
8169 karl  1.1.2.1         "Specifies the print procotols that this AccessPoint uses. "
8170                       "Note that each entry of this array is related to the entry in "
8171                       "the PrintProtocolInfo array that is located at the same "
8172                       "index."), 
8173                      ArrayType ("Indexed"), 
8174                      Values {"Unknown", "Other", "SMB", "BSD", "SYSV","HPNP", "IPP", 
8175                              "Local"}, 
8176                      ModelCorrespondence {"CIM_PrintSAP.PrintProtocolInfo"} ]
8177                  uint16 PrintProtocol[];
8178                     [Description (
8179                       "Provides clarifying or additional information about the "
8180                       "protocols supported by this AccessPoint. Note, each entry "
8181                       "of this array is related to the entry in the PrintProtocol "
8182                       "array that is located at the same index."), 
8183                      ArrayType ("Indexed"), 
8184                      ModelCorrespondence {"CIM_PrintSAP.PrintProtocol"} ]
8185                  string PrintProtocolInfo[];
8186 karl  1.1     };
8187               
8188               
8189               // ===================================================================
8190 karl  1.1.2.1 // PrintService
8191 karl  1.1     // ===================================================================
8192                  [Description (
8193 karl  1.1.2.1      "The Service that provides support for printing. The basic "
8194                    "assumption of the Printing Model is that a PrintService accepts "
8195                    "a PrintJob for processing, via its PrintSAP. The Job is then "
8196                    "placed on a PrintQueue (indicated by the QueueForPrintService "
8197                    "association). Printers take Jobs from Queues (indicated by the "
8198                    "PrinterServicingQueue association).") ]
8199               class CIM_PrintService : CIM_Service {
8200 karl  1.1           [Description (
8201 karl  1.1.2.1         "An array of free-form strings specifying the types of "
8202                       "paper that may be used by Jobs that are submitted to this "
8203                       "PrintService. This may be different than the paper types that "
8204                       "are installed on the Printer, because the PrintService may "
8205                       "include support for manually making other types available or "
8206                       "only a subset of paper types may be exported via this Service. "
8207                       "Each string should be expressed in the form specified by "
8208                       "ISO/IEC 10175 Document Printing Application (DPA) which is "
8209                       "also summarized in Appendix C of RFC 1759 (Printer MIB). "
8210                       "Examples of valid strings are \"iso-a4-colored\" and "
8211                       "\"na-10x14-envelope\"."), 
8212                      ModelCorrespondence {"CIM_Printer.PaperTypesAvailable", 
8213                       "CIM_PrintJob.RequiredPaperType"} ]
8214                  string PaperTypesAvailable[];
8215 karl  1.1           [Description (
8216 karl  1.1.2.1         "An array indicating the print languages supported by the "
8217                       "PrintService. A PrintService may support more languages "
8218                       "than those available on the underlying Printer through the "
8219                       "use of filters. An administrator may also choose to prevent "
8220                       "some languages from being exported by the PrintService."), 
8221                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
8222                                "11", "12", "13", "14", "15", "16", "17", "18", "19", 
8223                                "20", "21", "22", "23", "24", "25", "26", "27", "28", 
8224                                "29", "30", "31", "32", "33", "34", "35", "36", "37", 
8225                                "38", "39", "40", "41", "42", "43", "44", "45", "46", 
8226                                "47"},
8227                      Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
8228                              "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
8229                              "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
8230                              "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
8231                              "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
8232                              "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
8233                              "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
8234                              "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"}, 
8235                      ArrayType ("Indexed"), 
8236                      MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"}, 
8237 karl  1.1.2.1        ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
8238                       "CIM_PrintJob.Language", 
8239                       "CIM_PrintService.MimeTypesSupported"} ]
8240                  uint16 LanguagesSupported[];
8241 karl  1.1           [Description (
8242 karl  1.1.2.1         "An array of free-form strings providing more detailed "
8243                       "explanations for any mime types that are supported by "
8244                       "the PrintService. Support for mime types is indicated "
8245                       "by specifying a value of 47 in the LanguagesSupported array."), 
8246                      ModelCorrespondence {"CIM_Printer.MimeTypesSupported", 
8247                       "CIM_PrintJob.MimeTypes", 
8248                       "CIM_PrintService.LanguagesSupported"} ]
8249                  string MimeTypesSupported[];
8250 karl  1.1           [Description (
8251 karl  1.1.2.1         "An array of integers indicating the capabilities supported "
8252                       "by this service. Information such as \"Duplex Printing\" "
8253                       "(value=3) or \"Transparency Printing\" (7) is specified in "
8254                       "this property."), 
8255                      ArrayType ("Indexed"), 
8256                      Values {"Unknown", "Other", "Color Printing", "Duplex Printing", 
8257                              "Copies", "Collation", "Stapling", "Transparency Printing", 
8258                              "Punch", "Cover", "Bind", "Black and White Printing", 
8259                              "One Sided", "Two Sided Long Edge", "Two Sided Short Edge", 
8260                              "Portrait", "Landscape", "Reverse Portrait", 
8261                              "Reverse Landscape", "Quality High", "Quality Normal", 
8262                              "Quality Low"}, 
8263                      ModelCorrespondence {"CIM_Printer.Capabilities", 
8264                       "CIM_PrintJob.Finishing", 
8265                       "CIM_PrintService.CapabilityDescriptions"} ]
8266                  uint16 Capabilities[];
8267 karl  1.1           [Description (
8268 karl  1.1.2.1         "An array of free-form strings providing more detailed "
8269                       "explanations for any of the Printer features indicated in "
8270                       "the Capabilities array. Note, each entry of this array "
8271                       "is related to the entry in the Capabilities array that "
8272                       "is located at the same index."), 
8273                      ArrayType ("Indexed"), 
8274                      ModelCorrespondence {"CIM_PrintService.Capabilities"} ]
8275                  string CapabilityDescriptions[];
8276 karl  1.1           [Description (
8277 karl  1.1.2.1         "Describes the filters that are available within this Print"
8278                       "Service. For example, a PrintService may be able to convert "
8279                       "a Job submitted in one page description language to another, "
8280                       "so that it can be passed to an available Printer.") ]
8281                  string AvailableFilters[];
8282 karl  1.1     };
8283               
8284 karl  1.1.2.1 
8285 karl  1.1     // ===================================================================
8286 karl  1.1.2.1 // PrinterServicingQueue 
8287 karl  1.1     // ===================================================================
8288 karl  1.1.2.1    [Association, Description (
8289                    "This association indicates that a Printer can be passed "
8290                    "PrintJobs from a particular Queue.") ]
8291               class CIM_PrinterServicingQueue : CIM_Dependency {
8292                     [Override ("Antecedent"), Description (
8293                       "A destination Printer for Jobs enqueued on the Dependent "
8294                       "Queue.") ]
8295                  CIM_Printer REF Antecedent;
8296                     [Override ("Dependent"), Description (
8297                       "A Queue that is providing Jobs to the Printer.") ]
8298                  CIM_PrintQueue REF Dependent;
8299 karl  1.1     };
8300               
8301 karl  1.1.2.1 
8302 karl  1.1     // ===================================================================
8303 karl  1.1.2.1 // PrinterServicingJob 
8304 karl  1.1     // ===================================================================
8305 karl  1.1.2.1    [Association, Description (
8306                    "This association indicates that a Printer is currently "
8307                    "servicing a particular PrintJob.") ]
8308               class CIM_PrinterServicingJob : CIM_Dependency {
8309                     [Override ("Antecedent"), 
8310                      Description ("The destination Printer for a PrintJob.") ]
8311                  CIM_Printer REF Antecedent;
8312                     [Override ("Dependent"), Description ("The PrintJob.") ]
8313                  CIM_PrintJob REF Dependent;
8314 karl  1.1     };
8315               
8316 karl  1.1.2.1 
8317 karl  1.1     // ===================================================================
8318 karl  1.1.2.1 // PrintJobFile 
8319 karl  1.1     // ===================================================================
8320 karl  1.1.2.1    [Association, Aggregation, Description (
8321                    "This association indicates which files are associated with "
8322                    "a PrintJob.") ]
8323               class CIM_PrintJobFile : CIM_Component {
8324                     [Override ("GroupComponent"), Aggregate,
8325                      Description ("The PrintJob that is based on one or more Files.") ]
8326                  CIM_PrintJob REF GroupComponent;
8327                     [Override ("PartComponent"), 
8328                      Description ("The File(s) that make up a PrintJob.") ]
8329                  CIM_DataFile REF PartComponent;
8330 karl  1.1     };
8331               
8332 karl  1.1.2.1 
8333 karl  1.1     // ===================================================================
8334 karl  1.1.2.1 // QueueForPrintService 
8335 karl  1.1     // ===================================================================
8336 karl  1.1.2.1    [Association, Description (
8337                    "This association indicates that a PrintService utilizes a "
8338                    "particular PrintQueue.") ]
8339               class CIM_QueueForPrintService : CIM_Dependency {
8340                     [Override ("Antecedent"), 
8341                      Description ("The PrintQueue that the Service utilizes.") ]
8342                  CIM_PrintQueue REF Antecedent;
8343                     [Override ("Dependent"), 
8344                      Description ("The PrintService that puts Jobs on the Queue.") ]
8345                  CIM_PrintService REF Dependent;
8346                     [Description (
8347                       "Indicates that the PrintService can accept Jobs and "
8348                       "place them on the Queue.") ]
8349                  boolean QueueAcceptingFromService;
8350 karl  1.1     };
8351               
8352 karl  1.1.2.1 
8353 karl  1.1     // ===================================================================
8354 karl  1.1.2.1 // QueueForwardsToPrintSAP 
8355 karl  1.1     // ===================================================================
8356 karl  1.1.2.1    [Association, Description (
8357                    "This association indicates that the Jobs from a PrintQueue "
8358                    "can be sent to the referenced PrintSAP, to be handled by the "
8359                    "SAP's backing PrintService.") ]
8360               class CIM_QueueForwardsToPrintSAP : CIM_Dependency {
8361                     [Override ("Antecedent"), 
8362                      Description ("The PrintSAP for the PrintService.") ]
8363                  CIM_PrintSAP REF Antecedent;
8364                     [Override ("Dependent"), 
8365                      Description ("The PrintQueue that forwards Jobs to the SAP.") ]
8366                  CIM_PrintQueue REF Dependent;
8367 karl  1.1     };
8368               
8369 karl  1.1.2.1 
8370 karl  1.1     // ===================================================================
8371 karl  1.1.2.1 // OwningPrintQueue 
8372 karl  1.1     // ===================================================================
8373 karl  1.1.2.1    [Association, Description (
8374                    "This association indicates which Queue holds a PrintJob and "
8375                    "where the Job is located within that Queue. A Job may remain on "
8376                    "its final Queue once it has been printed with a PrintJobStatus "
8377                    "of \"Complete\" or \"Completed With Error\".") ]
8378               class CIM_OwningPrintQueue : CIM_JobDestinationJobs {
8379                     [Override ("Antecedent"), Min(1), Max(1),
8380                      Description ("The PrintQueue on which the Job is held.") ]
8381                  CIM_PrintQueue REF Antecedent;
8382                     [Override ("Dependent"), Weak,
8383                      Description ("The PrintJob.") ]
8384                  CIM_PrintJob REF Dependent;
8385 karl  1.1           [Description (
8386 karl  1.1.2.1         "The position of the PrintJob on the Queue. The top of the "
8387                       "Queue is indicated by a value of 1 with higher values being "
8388                       "used to represent Jobs that are further away from the top of "
8389                       "the Queue. A QueuePosition of zero indicate that the Job has "
8390                       "completed (either with or without error).") ]
8391                  uint32 QueuePosition;
8392 karl  1.1     };
8393               
8394 karl  1.1.2.1 
8395 karl  1.1     // ===================================================================
8396 karl  1.1.2.1 // CIM_OOBAlertService 
8397 karl  1.1     // ===================================================================
8398                  [Description (
8399 karl  1.1.2.1      "This Service is implemented by a LogicalDevice (e.g. a "
8400                    "NetworkAdapter or Modem) that is capable of sending alert "
8401                    "messages to a remote destination. The alert messages reflect "
8402                    "the state of one or more ManagedSystemElements. The Elements "
8403                    "for which alert messages are forwarded, are defined by "
8404                    "enumerating the ProvidesServiceToElement association for the "
8405                    "Service. Out of Band (OOB) refers to the mechanisms in use when "
8406                    "normal OS-based management mechanisms are not possible. This "
8407                    "occurs when the OS is down or not functioning properly.") ]
8408               class CIM_OOBAlertService : CIM_Service {
8409 karl  1.1           [Description (
8410 karl  1.1.2.1         "The type of the alert destination. For example, the alert "
8411                       "may be received by an application listening on a UDP Port on "
8412                       "a remote destination, or could be sent to a pager (values "
8413                       "4 or 2, respectively)."), 
8414                      Values {"Unknown", "Other", "Pager", "TCP Port", "UDP Port"}, 
8415                      ModelCorrespondence {
8416                       "CIM_OOBAlertService.OtherDestinationTypeDescription"} ]
8417                  uint16 DestinationType;
8418 karl  1.1           [Description (
8419 karl  1.1.2.1         "The description of the alert DestinationType. This is used "
8420                       "when the DestinationType is set to \"Other\" (value=1)."), 
8421                      ModelCorrespondence {"CIM_OOBAlertService.DestinationType"} ]
8422                  string OtherDestinationTypeDescription;
8423 karl  1.1           [Description (
8424 karl  1.1.2.1         "The address where this Service sends the alerts. The "
8425                       "format of this address depends on the DestinationType. For "
8426                       "example, if the DestinationType is a UDP Port (value=4), "
8427                       "then this property contains a string identifying the IP "
8428                       "address of the Port (for example, 111.222.333.444:4567). "
8429                       "If DestinationType is a pager (value=2), then the "
8430                       "address is a Pager number (for example, 18002257654).") ]
8431                  string DestinationAddress;
8432 karl  1.1           [Description (
8433 karl  1.1.2.1         "The format of the Alert Message sent by the Service."), 
8434                       Values {"Unknown", "Other", "Numeric", "AlphaNumeric", 
8435                               "Free Form Text", "Platform Event Trap"}, 
8436                       ModelCorrespondence {
8437                        "CIM_OOBAlertService.OtherMessageFormatDescription"} ]
8438                  uint16 MessageFormat;
8439 karl  1.1           [Description (
8440 karl  1.1.2.1         "The description of the format of the alert message used "
8441                       "by the Service when the AlertMessageFormat property is "
8442                       "set to \"Other\" (value=1)."), 
8443                      ModelCorrespondence {"CIM_OOBAlertService.MessageFormat"} ]
8444                  string OtherMessageFormatDescription;
8445 karl  1.1           [Description (
8446 karl  1.1.2.1         "If the AlertService only uses a fixed message to send "
8447                       "an alert, then this flag should be set to TRUE.") ]
8448                  boolean OnlySendsFixedMessage;
8449 karl  1.1           [Description (
8450 karl  1.1.2.1         "The AlertService may require some fixed data to send as "
8451                       "part of the message. This may include things like the "
8452                       "address or name of the System. This string contains the "
8453                       "complete message when the property, OnlySendsFixedMessage, "
8454                       "is set to TRUE.") ]
8455                  string FixedPartOfMessage;
8456                     [Description (
8457                       "If the destination is capable of sending an acknowledgement "
8458                       "to the alert, then this flag is set to TRUE. The format of "
8459                       "the acknowledgement is determined by the DestinationType "
8460                       "and the MessageFormat.") ]
8461                  boolean DestinationIsAckCapable;
8462                     [Description (
8463                       "The AlertService may retry and send an alert more than "
8464                       "once. The RetryCount identifies how often the operation will "
8465                       "be repeated. If DestinationIsAckCapable is set to TRUE, then "
8466                       "the retry will only be done if an Ack is not received. "
8467                       "Otherwise, the retries are done unconditionally.") ]
8468                  uint16 RetryCount;
8469                     [Description (
8470                       "The interval between each successive retry, in seconds. "
8471 karl  1.1.2.1         "If DestinationIsAckCapable is set to TRUE, then this "
8472                       "interval is used as a timeout interval, before the next "
8473                       "retry is done."), 
8474                      Units ("Seconds") ]
8475                  uint16 RetryInterval;
8476 karl  1.1     };
8477               
8478 karl  1.1.2.1 
8479               // ===================================================================
8480               // WakeUpService 
8481               // ===================================================================
8482 karl  1.1        [Description (
8483 karl  1.1.2.1      "WakeUpService allows a UnitaryComputerSystem to be woken up "
8484                    "from a low power sleep state. This Service is implemented "
8485                    "by a LogicalDevice (e.g. NetworkAdapter or Modem) that is "
8486                    "capable of receiving wakeup messages, and notifying the "
8487                    "System.") ]
8488               class CIM_WakeUpService : CIM_Service {
8489                     [Description ("The Type of the WakeUp Service."), 
8490                      Values {"Unknown", "Other", "Wake On LAN - Magic Packet", 
8491                              "Wake on LAN - Packet Filtering", "Wake On Ring"}, 
8492                      ModelCorrespondence {
8493                       "CIM_WakeUpServcice.OtherWakeUpTypeDescription"} ]
8494                  uint16 WakeUpType;
8495                     [Description (
8496                       "A description of the type of WakeUpService used when "
8497                       "WakeUpType is set to \"Other\" (value=1)."), 
8498                      ModelCorrespondence {"CIM_WakeUpService.WakeUpType"} ]
8499                  string OtherWakeUpTypeDescription;
8500                     [Description (
8501                       "The filter type on the packets/messages that trigger "
8502                       "the WakeUpService. This field is only used when the WakeUp"
8503                       "Type is set to \"Wake On LAN - Packet Filtering\" (value"
8504 karl  1.1.2.1         "=3)."), 
8505                      Values {"Unknown", "Other", "ARP Broadcast", 
8506                              "Neighbor Discovery Multicast", 
8507                              "IP Packet with Directed MAC Address", 
8508                              "IPX Diagnostic Responder", "NBT Name Query", 
8509                              "Binary Match"}, 
8510                      ModelCorrespondence {
8511                       "CIM_WakeUpService.OtherFilterTypeDescription"} ]
8512                  uint16 FilterType;
8513                     [OctetString, Description (
8514                       "The binary data that is used to compare the contents "
8515                       "of the received packet. This is used when the FilterType is "
8516                       "set to \"Binary Match\" (value=7). This could also be used "
8517                       "when the FilterType is set to \"Other\" (value=1).") ]
8518                  uint8 FilterData[];
8519                     [Description (
8520                       "The description of the format of the FilterType used by "
8521                       "the Service when the FilterType is set to \"Other\" "
8522                       "(value=1)."), 
8523                      ModelCorrespondence {"CIM_WakeUpService.FilterType"} ]
8524                  string OtherFilterTypeDescription;
8525 karl  1.1     };
8526               
8527 karl  1.1.2.1 
8528 karl  1.1     // ===================================================================
8529 karl  1.1.2.1 // OOBAlertServiceOnModem 
8530 karl  1.1     // ===================================================================
8531 karl  1.1.2.1    [Association, Description (
8532                    "OOBAlertServiceOnModem defines where the out of band alerting "
8533                    "Service is implemented. The Service can either employ a Modem "
8534                    "or NetworkAdapter to send alerts.") ]
8535               class CIM_OOBAlertServiceOnModem : CIM_DeviceServiceImplementation {
8536                     [Override ("Antecedent"), Max (1),
8537                      Description ("The Modem which implements the alerting Service.") ]
8538                  CIM_Modem REF Antecedent;
8539                     [Override ("Dependent"), 
8540                      Description ("The alerting Service provided on the Modem.") ]
8541                  CIM_OOBAlertService REF Dependent;
8542 karl  1.1     };
8543               
8544 karl  1.1.2.1 
8545 karl  1.1     // ===================================================================
8546 karl  1.1.2.1 // WakeUpServiceOnModem 
8547 karl  1.1     // ===================================================================
8548 karl  1.1.2.1    [Association, Description (
8549                    "WakeUpServiceOnModem defines where the WakeUpService is "
8550                    "implemented. The Service can either employ a Modem or "
8551                    "NetworkAdapter to receive a wakeup signal.") ]
8552               class CIM_WakeUpServiceOnModem : CIM_DeviceServiceImplementation {
8553                     [Override ("Antecedent"), Max (1), 
8554                      Description ("The Modem which implements the WakeUpService.") ]
8555                  CIM_Modem REF Antecedent;
8556                     [Override ("Dependent"), 
8557                      Description ("The wakeup Service provided on the Modem.") ]
8558                  CIM_WakeUpService REF Dependent;
8559 karl  1.1     };
8560               
8561 karl  1.1.2.1 
8562 karl  1.1     // ===================================================================
8563 karl  1.1.2.1 // OOBAlertServiceOnNetworkAdapter 
8564 karl  1.1     // ===================================================================
8565                  [Association, 
8566                   Description (
8567 karl  1.1.2.1        "OOBAlertServiceOnNetworkAdapter defines where the out of band "
8568                      "alerting Service is implemented. Currently, the Service can "
8569                      "either employ a Modem or a NetworkAdapter to send alerts.") ]
8570               class CIM_OOBAlertServiceOnNetworkAdapter : CIM_DeviceServiceImplementation {
8571                     [Override ("Antecedent"), Max (1), Description (
8572                       "The NetworkAdapter which implements the Service.") ]
8573                  CIM_NetworkAdapter REF Antecedent;
8574                     [Override ("Dependent"), Description (
8575                       "The alerting Service provided on the NetworkAdapter.") ]
8576                  CIM_OOBAlertService REF Dependent;
8577 karl  1.1     };
8578               
8579 karl  1.1.2.1 
8580               // ===================================================================
8581               // WakeUpServiceOnNetworkAdapter 
8582 karl  1.1     // ===================================================================
8583 karl  1.1.2.1    [Association, Description (
8584                    "WakeUpServiceOnNetworkAdapter defines where the WakeUpService "
8585                    "is implemented. Currently, the Service can either employ a Modem "
8586                    "or a NetworkAdapter for wakeup.") ]
8587               class CIM_WakeUpServiceOnNetworkAdapter : CIM_DeviceServiceImplementation {
8588                     [Override ("Antecedent"), Max (1), Description (
8589                       "The NetworkAdapter which implements the Service.") ]
8590                  CIM_NetworkAdapter REF Antecedent;
8591                     [Override ("Dependent"), Description (
8592                       "The wakeup Service provided on the NetworkAdapter.") ]
8593                  CIM_WakeUpService REF Dependent;
8594               };
8595               
8596               
8597               // ==================================================================
8598               // FibreProtocolService 
8599               // ==================================================================
8600 karl  1.1        [Description (
8601 karl  1.1.2.1      "FibreProtocolService abstracts and allows the management of "
8602                    "the Alias, Management, Time, Security, Directory (Naming) and "
8603                    "other services and functions available in a Fibre Channel "
8604                    "network. This class will be further defined in a later "
8605                    "release of CIM.") ]
8606               class CIM_FibreProtocolService : CIM_Service {
8607               };
8608               
8609               
8610               // ===================================================================
8611               // AGPSoftwareFeature
8612               // ===================================================================
8613                  [Description (
8614                    "AGPSoftwareFeature adds two attributes to SoftwareFeature "
8615                    "to represent the capabilities of an AGP device driver. An "
8616                    "instance of this class would be associated with the "
8617                    "Driver's SoftwareElement using the SoftwareFeatureSoftware"
8618                    "Elements relationship. The driver's SoftwareElement is "
8619                    "associated with the AGPVideoController via the Device"
8620                    "Software relationship.") ]
8621               class CIM_AGPSoftwareFeature : CIM_SoftwareFeature {
8622 karl  1.1           [Description (
8623 karl  1.1.2.1         "An array of integers indicating various capabilities and "
8624                       "characteristics of the AGPVideoController."), 
8625                      ArrayType ("Indexed"), 
8626                      Values {"Unknown", "Other", "OS support", 
8627                              "Hardware Acceleration", "Hardware Blit", 
8628                              "OpenGL Support", "Cache Coherency"}, 
8629                      ModelCorrespondence {
8630                       "CIM_AGPSoftwareFeature.CharacteristicDescriptions"} ]
8631                  uint16 Characteristics[];
8632 karl  1.1           [Description (
8633 karl  1.1.2.1         "An array of free-form strings providing more detailed "
8634                       "explanations for any of the features indicated in the "
8635                       "Characteristics array. Each entry in this array is "
8636                       "related to the Characteristics array entry located at "
8637                       "the same index."), 
8638                     ArrayType ("Indexed"), 
8639                     ModelCorrespondence {"CIM_AGPSoftwareFeature.Characteristics"} ]
8640                  string CharacteristicDescriptions[];
8641 karl  1.1     };
8642               
8643 karl  1.1.2.1 
8644 karl  1.1     // ===================================================================
8645 karl  1.1.2.1 //
8646               //    Settings, Logs, and Redundancy
8647               //
8648 karl  1.1     // ===================================================================
8649 karl  1.1.2.1 
8650 karl  1.1     
8651               // ===================================================================
8652 karl  1.1.2.1 // RedundancyGroup
8653 karl  1.1     // ===================================================================
8654                  [Description (
8655 karl  1.1.2.1      "A class derived from LogicalElement that is a special "
8656                    "collection of ManagedSystemElements. This collection indicates "
8657                    "that the aggregated components together provide redundancy. "
8658                    "All elements aggregated in a RedundancyGroup should be "
8659                    "instantiations of the same object class.") ] 
8660               class CIM_RedundancyGroup : CIM_LogicalElement {
8661                     [Key, MaxLen (256), Description (
8662                       "CreationClassName indicates the name of the class or "
8663                       "the subclass used in the creation of an instance. When "
8664                       "used with the other key properties of this class, this "
8665                       "property allows all instances of this class and its "
8666                       "subclasses to be uniquely identified.")  ]
8667                  string CreationClassName;
8668                     [Override("Name"), 
8669                      Key, MaxLen (256), Description (
8670                     "The RedundancyGroup Name serves as the key for the "
8671                     "Group's instance in an enterprise environment.") ]
8672                  string Name;
8673 karl  1.1           [Description (
8674 karl  1.1.2.1         "RedundancyStatus provides information on the state of the "
8675                       "RedundancyGroup. \"Fully Redundant\" (value=2) means that "
8676                       "all of the configured redundancy is still available; "
8677                       "\"Degraded Redundancy\" (3) means that some failures have "
8678                       "been experienced but some reduced amount of redundancy is "
8679                       "still available; \"Redundancy Lost\" (4) means that a "
8680                       "sufficient number of failures have been experienced such "
8681                       "that no redundancy is available and the next failure "
8682                       "experienced will cause overall failure. Also, the values, "
8683                       "\"Other\" (1) and \"Unknown\" (0), are defined."),
8684                      Values {"Unknown", "Other", "Fully Redundant", 
8685                              "Degraded Redundancy", "Redundancy Lost"} ]
8686                  uint16 RedundancyStatus;
8687 karl  1.1     };
8688               
8689               
8690               // ===================================================================
8691 karl  1.1.2.1 // RedundancyComponent
8692 karl  1.1     // ===================================================================
8693 karl  1.1.2.1    [Association, Aggregation, Description (
8694                    "A RedundancyGroup aggregates Managed System Elements and "
8695                    "indicates that these elements, taken together, provide "
8696                    "redundancy. All elements aggregated in a RedundancyGroup "
8697                    "should be instantiations of the same object class.") ] 
8698               class CIM_RedundancyComponent : CIM_Component {
8699                     [Override ("GroupComponent"), Aggregate,
8700                      Description (
8701                       "The RedundancyComponent association indicates that "
8702                       "'this set of fans' or 'these physical extents' participate "
8703                       "in a single RedundancyGroup.") ]
8704                  CIM_RedundancyGroup REF GroupComponent;
8705 karl  1.1     };
8706               
8707 karl  1.1.2.1 
8708 karl  1.1     // ===================================================================
8709 karl  1.1.2.1 // SpareGroup
8710 karl  1.1     // ===================================================================
8711                  [Description (
8712 karl  1.1.2.1      "A class derived from RedundancyGroup indicating that one or "
8713                    "more of the aggregated elements can be spared. (The actual "
8714                    "Spares are defined using the ActsAsSpare association.) An "
8715                    "example is the use of redundant NICs in a ComputerSystem - "
8716                    "where one NIC is primary and the other is Spare. The 'primary' "
8717                    "NIC would be a member of the SpareGroup (associated using the "
8718                    "RedundancyComponent class) and the 'other' NIC would be "
8719                    "associated using the ActsAsSpare relationship.") ] 
8720               class CIM_SpareGroup : CIM_RedundancyGroup {
8721                     [Description (
8722                       "This method is forces a failover from one ManagedSystemElement "
8723                       "to another.  There are two parameters to the Failover method, " 
8724                       "FailoverFrom and FailoverTo. The FailoverFrom parameter is a "
8725                       "reference to the primary ManagedSystemElement that will become "
8726                       "inactive after the method. This Element should be associated "
8727                       "with the SpareGroup through the RedundancyComponent relationship. "
8728                       "The FailoverTo parameter is a reference to the ManagedSystem"
8729                       "Element that will take over for the primary. This Element "
8730                       "should be associated with the SpareGroup through the ActsAsSpare "
8731                       "association. Once the failover has occurred, the SpareGroup and "
8732                       "the RedundancyComponent and ActsAsSpare associations will be "
8733 karl  1.1.2.1         "updated with current status.  For example, the ActsAsSpare "
8734                       "association that contained the FailoverTo Element will "
8735                       "be deleted and a new RedundancyComponent association instantiated "
8736                       "in its place. The method should return 0 if successful, 1 if "
8737                       "the request is not supported, and some other value if any other "
8738                       "error occurred. In a subclass, the set of possible return codes "
8739                       "could be specified, using a ValueMap qualifier on the method. "
8740                       "The strings to which the ValueMap contents are 'translated' may "
8741                       "also be specified in the subclass as a Values array qualifier.") ]
8742                  uint32 Failover(
8743                      [IN] CIM_ManagedSystemElement REF FailoverFrom, 
8744                      [IN] CIM_ManagedSystemElement REF FailoverTo);      
8745 karl  1.1     };
8746               
8747 karl  1.1.2.1 
8748 karl  1.1     // ===================================================================
8749 karl  1.1.2.1 // ActsAsSpare
8750 karl  1.1     // ===================================================================
8751 karl  1.1.2.1    [Association,
8752                   Description (
8753                    "The ActsAsSpare association indicates which elements can spare "
8754                    "or replace the other aggregated elements.  The fact that a "
8755                    "spare can operate in \"hot standby\" mode is specified on an "
8756                    "element by element basis.") ]
8757               class CIM_ActsAsSpare  {
8758                     [Key, Description ("The SpareGroup") ]
8759                  CIM_SpareGroup REF Group;
8760                     [Key, Description (
8761                       "A ManagedSystemElement acting as a spare and participating "
8762                       "in the SpareGroup.") ]
8763                  CIM_ManagedSystemElement REF Spare; 
8764 karl  1.1           [Description (
8765 karl  1.1.2.1         "HotStandby is a boolean indicating that the spare is "
8766                       "operating as a hot standby.") ]
8767                  boolean HotStandby;   
8768 karl  1.1     };
8769               
8770 karl  1.1.2.1 
8771 karl  1.1     // ===================================================================
8772 karl  1.1.2.1 // StorageRedundancyGroup
8773 karl  1.1     // ===================================================================
8774                  [Description (
8775 karl  1.1.2.1      "A class derived from RedundancyGroup containing mass "
8776                    "storage-related redundancy information. StorageRedundancy"
8777                    "Groups are used to protect user data.  They are made up of one "
8778                    "or more PhysicalExtents, or one or more AggregatePExtents. "
8779                    "StorageRedundancyGroups may overlap.  However, the "
8780                    "underlying Extents within the overlap should not contain "
8781                    "any check data.") ] 
8782               class CIM_StorageRedundancyGroup : CIM_RedundancyGroup  {
8783 karl  1.1           [Description (
8784 karl  1.1.2.1         "The TypeOfAlgorithm specifies the algorithm used for data "
8785                       "redundancy and reconstruction. For example, \"P+Q\" (value"
8786                       "=5) or \"P+S\" (7) may be specified. The value of 0, is "
8787                       "defined as \"None\" to indicate that data redundancy is not "
8788                       "active. An inactive redundancy should only be instantiated "
8789                       "if data striping or concatenation are active. These are "
8790                       "indicated by the IsStriped or IsConcatentated boolean "
8791                       "properties of this RedundancyGroup."), 
8792                      Values {"None", "Other", "Unknown", "Copy", "XOR", "P+Q", 
8793                              "S", "P+S"}, 
8794                      MappingStrings {"MIF.DMTF|Redundancy Group|001.2"} ]
8795                  uint16 TypeOfAlgorithm;
8796 karl  1.1           [Description (
8797 karl  1.1.2.1         "StorageRedundancy provides additional information on the "
8798                       "state of the RedundancyGroup, beyond the RedundancyStatus "
8799                       "property. Information like \"Reconfig In Progress\" (value"
8800                       "=1) or \"Redundancy Disabled\" can be specified using "
8801                       "this property."), 
8802                      Values {"No Additional Status", "Reconfig In Progress", 
8803                              "Data Lost", "Not Currently Configured", 
8804                              "Protected Rebuild", "Redundancy Disabled", 
8805                              "Unprotected Rebuild", "Recalculating", "Verifying"} ]
8806                  uint16 StorageRedundancy;
8807 karl  1.1           [Description (
8808 karl  1.1.2.1         "True indicates that the data is striped across the various "
8809                       "StorageExtents in the Group.") ]
8810                  boolean IsStriped;
8811 karl  1.1           [Description (
8812 karl  1.1.2.1         "True indicates that the data is concatenated across the "
8813                       "various StorageExtents in the Group.") ]
8814                  boolean IsConcatenated;
8815 karl  1.1     };
8816               
8817 karl  1.1.2.1 
8818 karl  1.1     // ===================================================================
8819 karl  1.1.2.1 // ExtraCapacityGroup
8820 karl  1.1     // ===================================================================
8821 karl  1.1.2.1    [Description (
8822                    "A class derived from RedundancyGroup indicating that the "
8823                    "aggregated elements have more capacity or capability than is "
8824                    "needed.  An example of this type of redundancy is the "
8825                    "installation of N+1 power supplies or fans in a system.") ] 
8826               class CIM_ExtraCapacityGroup : CIM_RedundancyGroup {
8827                     [Description (
8828                       "MinNumberNeeded indicates the smallest number of elements "
8829                       "that must be operational in order to have redundancy.  "
8830                       "For example, in an N+1 redundancy relationship, "
8831                       "the MinNumberNeeded property should be set equal to N.") ]
8832                  uint32 MinNumberNeeded;
8833                     [Description (
8834                       "Boolean indicating whether load balancing is supported by "
8835                       "the ExtraCapacityGroup.") ]
8836                  boolean LoadBalancedGroup; 
8837 karl  1.1     };
8838               
8839 karl  1.1.2.1 
8840 karl  1.1     // ===================================================================
8841 karl  1.1.2.1 // MonitorResolution
8842 karl  1.1     // ===================================================================
8843                  [Description (
8844 karl  1.1.2.1      "MonitorResolution describes the relationship between "
8845                    "horizontal and vertical resolutions, refresh rate and scan "
8846                    "mode for a DesktopMonitor. The actual resolutions, etc. that "
8847                    "are in use, are the values specified in the VideoController "
8848                    "object.") ] 
8849               class CIM_MonitorResolution : CIM_Setting {
8850                     [Override ("SettingID"),
8851                      Key, MaxLen (256),
8852                      Description (
8853                       "The inherited SettingID serves as part of the key for a "
8854                       "MonitorResolution instance.") ]
8855                  string SettingID; 
8856                     [Description ("Monitor's horizontal resolution in Pixels."),
8857                      Units ("Pixels"),
8858                      ModelCorrespondence {
8859                       "CIM_VideoController.CurrentHorizontalResolution"},
8860                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.2"} ]
8861                  uint32 HorizontalResolution;
8862                     [Description ("Monitor's vertical resolution in Pixels."),
8863                      Units ("Pixels"),
8864                      ModelCorrespondence {
8865 karl  1.1.2.1         "CIM_VideoController.CurrentVerticalResolution"},
8866                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.3"} ]
8867                  uint32 VerticalResolution;
8868 karl  1.1           [Description (
8869 karl  1.1.2.1         "Monitor's refresh rate in Hertz. If a range of rates is "
8870                       "supported, use the MinRefreshRate and MaxRefreshRate "
8871                       "properties, and set RefreshRate (this property) to 0."), 
8872                      Units ("Hertz"),
8873                      ModelCorrespondence {
8874                       "CIM_VideoController.CurrentRefreshRate"},
8875                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.4"} ]
8876                  uint32 RefreshRate;
8877 karl  1.1           [Description (
8878 karl  1.1.2.1         "Monitor's minimum refresh rate in Hertz, when a range of "
8879                       "rates is supported at the specified resolutions."),
8880                      Units ("Hertz"),
8881                      ModelCorrespondence {
8882                       "CIM_VideoController.MinRefreshRate"},
8883                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.6"} ]
8884                  uint32 MinRefreshRate;
8885 karl  1.1           [Description (
8886 karl  1.1.2.1         "Monitor's maximum refresh rate in Hertz, when a range of "
8887                       "rates is supported at the specified resolutions."),
8888                      Units ("Hertz"),
8889                      ModelCorrespondence {
8890                       "CIM_VideoController.MaxRefreshRate"},
8891                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.7"} ]
8892                  uint32 MaxRefreshRate;
8893 karl  1.1           [Description (
8894 karl  1.1.2.1         "Integer indicating whether the monitor operates in "
8895                       "interlaced (value=5) or non-interlaced (4) mode."),
8896                      ValueMap {"1", "2", "3", "4", "5"},
8897                      Values {"Other", "Unknown", "Not Supported",
8898                              "Non-Interlaced Operation", "Interlaced Operation"},
8899                      ModelCorrespondence {
8900                       "CIM_VideoController.CurrentScanMode"},
8901                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.5"} ]
8902                  uint16 ScanMode;
8903               };
8904 karl  1.1     
8905 karl  1.1.2.1 
8906               // ===================================================================
8907               // MonitorSetting
8908               // ===================================================================
8909                  [Association, Description (
8910                    "MonitorSetting associates the MonitorResolution Setting object "
8911                    "with the DesktopMonitor to which it applies.") ] 
8912               class CIM_MonitorSetting : CIM_ElementSetting {
8913                     [Override ("Element"), Description (
8914                       "The DesktopMonitor.") ] 
8915                  CIM_DesktopMonitor REF Element;
8916                     [Override ("Setting"), Description (
8917                       "The MonitorResolution associated with the DesktopMonitor.") ]   
8918                  CIM_MonitorResolution REF Setting;
8919 karl  1.1     };
8920               
8921 karl  1.1.2.1 
8922 karl  1.1     // ===================================================================
8923 karl  1.1.2.1 // NetworkAdapterRedundancyComponent
8924 karl  1.1     // ===================================================================
8925 karl  1.1.2.1    [Association, Description (
8926                    "CIM_NetworkAdapterRedundancyComponent indicates the role that "
8927                    "a NetworkAdapter plays in a ExtraCapacityGroup, providing "
8928                    "load balancing.") ]
8929               class CIM_NetworkAdapterRedundancyComponent : CIM_RedundancyComponent {
8930                     [Override("GroupComponent"), Aggregate,
8931                      Description (
8932                       "The RedundancyGroup representing a set of load balanced "
8933                       "NetworkAdapters.") ]
8934                  CIM_ExtraCapacityGroup REF GroupComponent;
8935                     [Override("PartComponent"), 
8936                      Description (
8937                       "The Network Adapter(s) belonging to the RedundancyGroup.") ]
8938                  CIM_NetworkAdapter REF PartComponent;
8939 karl  1.1           [Description (
8940 karl  1.1.2.1         "Indicates the scope of load balancing for the NetworkAdapters "
8941                       "involved in the RedundancyGroup. Load balancing may be "
8942                       "restricted to transmitting data only (value=1), "
8943                       "receiving data only (value=2), or used for both transmit "
8944                       "and receive (value=3)."), 
8945                      Values {"Unknown", "Load Balancing - Transmit Only",
8946                              "Load Balancing - Receive Only", "Full Load Balancing"} ]
8947                  uint16 ScopeOfBalancing;
8948                     [Description (
8949                       "Boolean indicating whether the Network Adapter is an original "
8950                       "primary adapter (value=1), a preferred primary adapter (2), "
8951                       "or both (3). Values of \"Unknown\" and \"Not Applicable\" may "
8952                       "also be specified."),
8953                      Values {"Unknown", "Original Primary", "Preferred Primary", 
8954                              "Both", "Not Applicable"} ]
8955                  uint16 PrimaryAdapter;
8956 karl  1.1     };
8957               
8958 karl  1.1.2.1 
8959 karl  1.1     // ===================================================================
8960 karl  1.1.2.1 // NetworkVirtualAdapter
8961 karl  1.1     // ===================================================================
8962 karl  1.1.2.1    [Association, Description (
8963                    "NetworkVirtualAdapter describes that an instance of Network"
8964                    "Adapter is actually the result of several Adapters "
8965                    "participating in a load balanced RedundancyGroup.") ]
8966               class CIM_NetworkVirtualAdapter : CIM_LogicalIdentity {
8967                     [Override ("SystemElement"), 
8968                      Description ("The 'virtual' NetworkAdapter.") ]
8969                  CIM_NetworkAdapter REF SystemElement;
8970                     [Override ("SameElement"), 
8971                      Description (
8972                       "The ExtraCapacity RedundancyGroup that describes the load "
8973                       "balancing. The result of the load balancing is the 'virtual' "
8974                       "Adapter.")  ]
8975                  CIM_ExtraCapacityGroup REF SameElement;
8976 karl  1.1     };
8977               
8978 karl  1.1.2.1  
8979 karl  1.1     // ===================================================================
8980 karl  1.1.2.1 // VideoControllerResolution
8981 karl  1.1     // ===================================================================
8982                  [Description (
8983 karl  1.1.2.1      "VideoControllerResolution describes the various video modes "
8984                    "that a VideoController can support. Video modes are defined by "
8985                    "the possible horizontal and vertical resolutions, refresh "
8986                    "rate, scan mode and number of colors settings supported by a "
8987                    "Controller. The actual resolutions, etc. that are in use, are "
8988                    "the values specified in the VideoController object.") ]
8989               class CIM_VideoControllerResolution : CIM_Setting {
8990                     [Override ("SettingID"), 
8991                      Key, MaxLen (256), Description (
8992                       "The inherited SettingID serves as part of the key for a "
8993                       "VideoControllerResolution instance.") ]
8994                  string SettingID;
8995                     [Description ("Controller's horizontal resolution in Pixels."), 
8996                      Units ("Pixels"), 
8997                      ModelCorrespondence {
8998                       "CIM_VideoController.CurrentHorizontalResolution"}, 
8999                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.2"} ]
9000                  uint32 HorizontalResolution;
9001                     [Description ("Controller's vertical resolution in Pixels."), 
9002                      Units ("Pixels"), 
9003                      ModelCorrespondence {
9004 karl  1.1.2.1         "CIM_VideoController.CurrentVerticalResolution"}, 
9005                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.3"} ]
9006                  uint32 VerticalResolution;
9007 karl  1.1           [Description (
9008 karl  1.1.2.1         "Refresh rate in Hertz. If a range of rates is supported, use "
9009                       "the MinRefreshRate and MaxRefreshRate properties, and set "
9010                       "RefreshRate (this property) to 0."), 
9011                      Units ("Hertz"), 
9012                      ModelCorrespondence {"CIM_VideoController.CurrentRefreshRate"}, 
9013                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.4"} ]
9014                  uint32 RefreshRate;
9015 karl  1.1           [Description (
9016 karl  1.1.2.1         "Minimum refresh rate in Hertz, when a range of rates is "
9017                       "supported at the specified resolutions."), 
9018                      Units ("Hertz"), 
9019                      ModelCorrespondence {"CIM_VideoController.MinRefreshRate"}, 
9020                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.6"} ]
9021                  uint32 MinRefreshRate;
9022                     [Description (
9023                       "Maximum refresh rate in Hertz, when a range of rates is "
9024                       "supported at the specified resolutions."), 
9025                      Units ("Hertz"), 
9026                      ModelCorrespondence {"CIM_VideoController.MaxRefreshRate"}, 
9027                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.7"} ]
9028                  uint32 MaxRefreshRate;
9029                     [Description (
9030                       "Integer indicating whether the Controller operates in "
9031                       "interlaced (value=5) or non-interlaced (4) mode."), 
9032                      ValueMap {"1", "2", "3", "4", "5"}, 
9033                      Values {"Other", "Unknown", "Not Supported", 
9034                              "Non-Interlaced Operation", "Interlaced Operation"}, 
9035                      ModelCorrespondence {"CIM_VideoController.CurrentScanMode"}, 
9036                      MappingStrings {"MIF.DMTF|Monitor Resolutions|002.5"} ]
9037 karl  1.1.2.1    uint16 ScanMode;
9038                     [Description (
9039                       "Number of colors supported at the current resolutions."), 
9040                      ModelCorrespondence {
9041                       "CIM_VideoController.CurrentNumberOfColors"} ]
9042                  uint64 NumberOfColors;
9043 karl  1.1     };
9044               
9045 karl  1.1.2.1 
9046 karl  1.1     // ===================================================================
9047 karl  1.1.2.1 // VideoSetting
9048 karl  1.1     // ===================================================================
9049 karl  1.1.2.1    [Association, Description (
9050                    "VideoSetting associates the VideoControllerResolution Setting "
9051                    "with the Controller(s) to which it applies.") ]
9052               class CIM_VideoSetting : CIM_ElementSetting {
9053                     [Override ("Element"), 
9054                      Description ("The VideoController.") ]
9055                  CIM_VideoController REF Element;
9056                     [Override ("Setting"), 
9057 karl  1.1            Description (
9058 karl  1.1.2.1         "The resolutions, refresh rates, scan mode and number of colors "
9059                       "that can be set for the Controller.") ]
9060                  CIM_VideoControllerResolution REF Setting;
9061 karl  1.1     };
9062               
9063 karl  1.1.2.1 
9064 karl  1.1     // ===================================================================
9065 karl  1.1.2.1 // ExtentRedundancyComponent
9066 karl  1.1     // ===================================================================
9067 karl  1.1.2.1    [Association, Aggregation, Description (
9068                    "Describes the StorageExtents participating in a Storage"
9069                    "RedundancyGroup.") ]
9070               class CIM_ExtentRedundancyComponent : CIM_RedundancyComponent {
9071                     [Override ("GroupComponent"), Aggregate, 
9072                      Description ("The StorageRedundancyGroup.") ]
9073                  CIM_StorageRedundancyGroup REF GroupComponent;
9074                     [Override ("PartComponent"),  Description (
9075                       "The StorageExtent participating in the RedundancyGroup.") ]
9076                  CIM_StorageExtent REF PartComponent;
9077 karl  1.1     };
9078 karl  1.1.2.1 
9079               
9080 karl  1.1     // ===================================================================
9081 karl  1.1.2.1 // PExtentRedundancyComponent
9082 karl  1.1     // ===================================================================
9083 karl  1.1.2.1    [Association, Aggregation, Description (
9084                    "Describes the PhysicalExtents participating in a Storage"
9085                    "RedundancyGroup.") ] 
9086               class CIM_PExtentRedundancyComponent : CIM_ExtentRedundancyComponent {
9087                     [Override ("GroupComponent"), Aggregate,
9088                      Description ("The StorageRedundancyGroup.")   ]
9089                  CIM_StorageRedundancyGroup REF GroupComponent;
9090                     [Override ("PartComponent"), Description (
9091                       "The PhysicalExtent participating in the RedundancyGroup.") ]
9092                  CIM_PhysicalExtent REF PartComponent;
9093 karl  1.1     };
9094               
9095 karl  1.1.2.1 
9096 karl  1.1     // ===================================================================
9097 karl  1.1.2.1 // AggregateRedundancyComponent
9098 karl  1.1     // ===================================================================
9099 karl  1.1.2.1    [Association, Aggregation, Description (
9100                    "Describes the AggregatePExtent in a StorageRedundancyGroup.") ] 
9101               class CIM_AggregateRedundancyComponent : CIM_ExtentRedundancyComponent {
9102                     [Override ("GroupComponent"), Aggregate,
9103                      Description ("The StorageRedundancyGroup.")  ]
9104                  CIM_StorageRedundancyGroup REF GroupComponent;
9105                     [Override ("PartComponent"), Description (
9106                     "The AggregatePExtent participating in the RedundancyGroup.") ]
9107                  CIM_AggregatePExtent REF PartComponent;
9108               };
9109               
9110               
9111               // ==============================================================
9112               // DiskGroup 
9113               // ==============================================================
9114 karl  1.1        [Description (
9115 karl  1.1.2.1      "A DiskGroup is a named collection of DiskDrives and the "
9116                    "StorageExtent(s) accessed via those Drives. The "
9117                    "collection is used to limit the BasedOn relationships of "
9118                    "the Extents in the DiskGroup. Extents in the Group can NOT "
9119                    "be BasedOn storage accessed from Drives outside of the "
9120                    "Group. For example, a SoftwareVolume created 'within the "
9121                    "DiskGroup' is restricted to be completely accessed using "
9122                    "Drives in the Group. Actions such as 'replicate' or "
9123                    "'migrate' on an Extent must operate within the scope of "
9124                    "the Extents present in the DiskGroup.") ]
9125               class CIM_DiskGroup : CIM_CollectionOfMSEs {
9126                     [Override ("CollectionID"), Key]
9127                  string CollectionID;
9128 karl  1.1     };
9129               
9130 karl  1.1.2.1 
9131 karl  1.1     // ===================================================================
9132 karl  1.1.2.1 // DriveInDiskGroup
9133 karl  1.1     // ===================================================================
9134 karl  1.1.2.1    [Association, Aggregation, Description (
9135                    "CIM_DriveInDiskGroup defines the DiskDrive(s) that participate "
9136                    "in the Group.") ]
9137               class CIM_DriveInDiskGroup : CIM_CollectedMSEs {
9138                     [Override ("Collection"), Aggregate, Max (1), 
9139                      Description (
9140                       "The DiskGroup. A Drive is a member of at most one "
9141                       "DiskGroup.") ]
9142                  CIM_DiskGroup REF Collection;
9143                     [Override ("Member"), Description (
9144                       "The DiskDrive in the Group.") ]
9145                  CIM_DiskDrive REF Member;
9146 karl  1.1     };
9147               
9148 karl  1.1.2.1 
9149 karl  1.1     // ===================================================================
9150 karl  1.1.2.1 // ExtentInDiskGroup
9151 karl  1.1     // ===================================================================
9152 karl  1.1.2.1    [Association, Aggregation, Description (
9153                    "CIM_ExtentInDiskGroup defines the StorageExtent(s) that are "
9154                    "located within and restricted by the Group.") ]
9155               class CIM_ExtentInDiskGroup : CIM_CollectedMSEs {
9156                     [Override ("Collection"), Aggregate, Max (1), 
9157                      Description (
9158                       "The DiskGroup. An Extent is defined within at most one "
9159                       "DiskGroup.") ]
9160                  CIM_DiskGroup REF Collection;
9161                     [Override ("Member"), Description (
9162                       "The StorageExtent restricted by and participating in the "
9163                       "Group.") ]
9164                  CIM_StorageExtent REF Member;
9165               };
9166               
9167               
9168               // ===================================================================
9169               // GroupInDiskGroup
9170               // ===================================================================
9171                  [Association, Aggregation, Description (
9172                    "CIM_GroupInDiskGroup describes that a DiskGroup may be "
9173 karl  1.1.2.1      "divided into smaller named Collections.") ]
9174               class CIM_GroupInDiskGroup : CIM_CollectedCollections {
9175                     [Override ("Collection"), Aggregate, Max (1), 
9176                      Description (
9177                       "The DiskGroup that is subsetted into smaller "
9178                       "Collections.") ]
9179                  CIM_DiskGroup REF Collection;
9180                     [Override ("CollectionInCollection"), Description (
9181                       "The DiskGroup that is a subset of the larger Group.") ]
9182                  CIM_DiskGroup REF CollectionInCollection;
9183 karl  1.1     };
9184               
9185 karl  1.1.2.1 
9186 karl  1.1     // ===================================================================
9187               // MessageLog
9188               // ===================================================================
9189                  [Description (
9190 karl  1.1.2.1      "MessageLog represents any type of event, error or informational "
9191                    "register or chronicle. The object describes the existence of "
9192                    "the log and its characteristics. Several methods are defined "
9193                    "for retrieving, writing and deleting log entries, and "
9194                    "maintaining the log.") ] 
9195               class CIM_MessageLog : CIM_LogicalElement {
9196 karl  1.1           [Key, MaxLen (256),
9197                      Description (
9198                       "CreationClassName indicates the name of the class or "
9199                       "the subclass used in the creation of an instance. When "
9200                       "used with the other key properties of this class, this "
9201                       "property allows all instances of this class and its "
9202 karl  1.1.2.1         "subclasses to be uniquely identified.")  ]
9203 karl  1.1        string CreationClassName;
9204                     [Override ("Name"), 
9205                      Key, MaxLen (256), 
9206                      Description (
9207                       "The inherited Name serves as part of the key (a unique "
9208 karl  1.1.2.1         "identifier) for the MessageLog instance.") ] 
9209 karl  1.1        string Name; 
9210                     [Description (
9211                       "An array of integers indicating the Log capabilities. "
9212                       "Information such as \"Write Record Supported\" (value="
9213                       "2) or \"Variable Length Records Supported\" (8) is "
9214                       "specified in this property."),
9215                      ArrayType ("Indexed"),
9216                      Values {"Unknown", "Other", "Write Record Supported", 
9217 karl  1.1.2.1                "Delete Record Supported", 
9218                              "Can Move Backward in Log", "Freeze Log Supported", 
9219                              "Clear Log Supported", 
9220                              "Supports Addressing by Ordinal Record Number",
9221                              "Variable Length Records Supported", 
9222                              "Variable Formats for Records", 
9223                              "Can Flag Records for Overwrite"}, 
9224 karl  1.1            ModelCorrespondence {
9225 karl  1.1.2.1         "CIM_MessageLog.CapabilitiesDescriptions"}  ]
9226 karl  1.1        uint16 Capabilities[];
9227                     [Description (
9228                       "An array of free-form strings providing more detailed "
9229                       "explanations for any of the Log features indicated in "
9230                       "the Capabilities array. Note, each entry of this array "
9231                       "is related to the entry in the Capabilities array that "
9232                       "is located at the same index."),
9233                      ArrayType ("Indexed"),
9234 karl  1.1.2.1        ModelCorrespondence {"CIM_MessageLog.Capabilities"} ]
9235 karl  1.1        string CapabilitiesDescriptions[];
9236                     [Description (
9237                       "The maximum size, in bytes, to which the Log can grow. "
9238                       "If there is no maximum, then MaxLogSize should be set "
9239                       "to 0."),
9240 karl  1.1.2.1        Units ("Bytes") ]
9241 karl  1.1        uint64 MaxLogSize;
9242                     [Description (
9243                       "The size of the Log header, in bytes, if one is "
9244                       "present. If there is no Log header, then this property "
9245                       "should be set to 0. Headers may include general "
9246                       "information about the Log such as the current number of "
9247                       "records, time of last update, or a pointer to the location "
9248                       "of the first Log entry. Note that this property is NOT the "
9249                       "size of the header for an individual Log entry. The latter "
9250                       "is described by the property, SizeOfRecordHeader."), 
9251 karl  1.1.2.1        Units ("Bytes") ]
9252 karl  1.1        uint64 SizeOfHeader;
9253                     [Description (
9254                       "If the SizeOfHeader property is non-zero, this property "
9255                       "describes the structure and format of the Log header. It "
9256                       "is a free-form string. If the SizeOfHeader property is 0, "
9257 karl  1.1.2.1         "then the information in this property is undefined.") ]
9258 karl  1.1        string HeaderFormat;
9259                     [Description (
9260                       "Maximum size, in bytes, to which an individual Log "
9261                       "entry (record) can grow - if the Capabilities array "
9262                       "includes a value of 7 (\"Variable Length Records "
9263                       "Supported\"). If the Capabilities array does not "
9264                       "include a 7, then the Log only supports fixed length "
9265                       "entries. The size of these entries is described by "
9266                       "this property."), 
9267 karl  1.1.2.1        Units ("Bytes") ]
9268 karl  1.1        uint64 MaxRecordSize;
9269                     [Description (
9270                       "The size of the header for the Log's individual entries, "
9271                       "in bytes, if record headers are defined. If there are no "
9272                       "record headers, then this property should be set to 0. "
9273                       "Record headers may include information such as the type of "
9274                       "the Log entry, the date/time that the entry was last "
9275                       "updated, or a pointer to the start of optional data. Note "
9276                       "that this property defines the header size for individual "
9277                       "records in the Log, while the SizeOfHeader property "
9278                       "describes the Log's overall header, typically located at "
9279                       "the start of the MessageLog."), 
9280 karl  1.1.2.1        Units ("Bytes") ]
9281 karl  1.1        uint64 SizeOfRecordHeader;
9282                     [Description (
9283                       "If the SizeOfRecordHeader property is non-zero, this "
9284                       "property describes the structure and format of the "
9285                       "record headers. It is a free-form string. If the "
9286                       "SizeOfRecordHeader property is 0, then the information "
9287 karl  1.1.2.1         "in this property is undefined.") ]
9288 karl  1.1        string RecordHeaderFormat;
9289                     [Description (
9290                       "Maximum number of records that can be captured in "
9291                       "the Log. If undefined, a value of zero should be "
9292                       "specified. Note that when the Capabilities array "
9293                       "indicates that variable length records are supported "
9294                       "(value=7), then it is possible that this maximum may "
9295 karl  1.1.2.1         "not be achieved.") ]
9296 karl  1.1        uint64 MaxNumberOfRecords;
9297                     [Description (
9298                       "Current number of entries (records) in the Log."),
9299 karl  1.1.2.1        Gauge ]
9300 karl  1.1        uint64 CurrentNumberOfRecords;
9301                     [Description (
9302                       "An enumeration describing the behavior of the Log, when "
9303                       "it becomes full or near full. For example, the Log may "
9304                       "wrap (value=2) or may simply stop recording entries (value"
9305                       "=7).\n\n"
9306                       "Some of the property's possible values need further "
9307                       "explanation:\n"
9308                       "3=\"Clear When Near Full\" indicates that all of the Log's "
9309                       "entries will be deleted when a specified record capacity is "
9310                       "reached. The capacity is specified in percentage, using the "
9311                       "property, PercentageNearFull. 'Near Full' may be less than "
9312                       "100% if the Log takes time to clear, and a position should "
9313                       "always be available for new records.\n"
9314                       "4=\"Overwrite Outdated When Needed\" describes that Log "
9315                       "entries (timestamped later than the date/time specified in "
9316                       "the property, TimeWhenOutdated) can be overwritten.\n"
9317                       "5=\"Remove Outdated Records\" specifies that records "
9318                       "(timestamped later than the date/time specified in the "
9319                       "property, TimeWhenOutdated) are logically and/or physically "
9320                       "removed from the Log.\n"
9321 karl  1.1             "6=\"Overwrite Specific Records\" indicates that specially "
9322                       "flagged records may be overwritten. This property only makes "
9323                       "sense when the Capabilities array includes a value of 10, "
9324                       "\"Can Flag Records for Overwrite\"."),
9325                      Values {"Unknown", "Other", "Wraps When Full",
9326 karl  1.1.2.1                "Clear When Near Full", 
9327                              "Overwrite Outdated When Needed", 
9328                              "Remove Outdated Records",
9329                              "Overwrite Specific Records", 
9330                              "Never Overwrite"},
9331 karl  1.1            ModelCorrespondence {"CIM_MessageLog.OtherPolicyDescription", 
9332 karl  1.1.2.1         "CIM_MessageLog.TimeWhenOutdated", 
9333                       "CIM_MessageLog.PercentageNearFull"} ]
9334 karl  1.1        uint16 OverwritePolicy;
9335                     [Description (
9336                       "When the OverwritePolicy specifies a value of 1 "
9337                       "(\"Other\"), the Log's behavior can be explained "
9338                       "using this property. If OverwritePolicy is not 1, "
9339                       "then this property's contents are undefined."), 
9340 karl  1.1.2.1        ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"} ]
9341 karl  1.1        string OtherPolicyDescription;
9342                     [Description (
9343                       "If the OverwritePolicy is based on 'outdated' records "
9344                       "(values 4 or 5), this property defines when a Log entry "
9345                       "is considered to be outdated - either by time interval or "
9346                       "at a specific date and time."), 
9347 karl  1.1.2.1        ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"} ]
9348 karl  1.1        datetime TimeWhenOutdated;
9349                     [Description (
9350                       "If the OverwritePolicy is based on clearing records "
9351                       "when the Log is near full (value=3), this property defines "
9352                       "the record capacity (in percentage) that is considered to "
9353                       "be 'near full'."),
9354                      Units ("Percent"), 
9355 karl  1.1.2.1        ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"} ]
9356 karl  1.1        uint8 PercentageNearFull;
9357                     [Description (
9358                       "An enumeration describing the last change to the "
9359                       "MessageLog."), 
9360 karl  1.1.2.1        Values {"Unknown", "Add", "Delete", "Modify", "Log Cleared"} ]
9361 karl  1.1        uint16 LastChange;
9362                     [Description (
9363                       "When a change is made to the Log, the date/time of "
9364                       "that modification is captured. This property could be "
9365 karl  1.1.2.1         "used to event against any update to the MessageLog.") ]
9366 karl  1.1        datetime TimeOfLastChange;
9367                     [Description (
9368                       "When a change is made to the Log, the record number that "
9369 karl  1.1.2.1         "was modified is captured.") ]
9370 karl  1.1        uint64 RecordLastChanged;
9371                     [Description (
9372                       "Boolean indicating that the Log is currently frozen and "
9373 karl  1.1.2.1         "modifications are not allowed.") ]
9374 karl  1.1        boolean IsFrozen;
9375                     [Description (
9376                       "An enumeration describing the character set used to record "
9377                       "data in the individual Log entries. For example, the "
9378                       "Log records may contain ASCII data (value=2), or be raw octet "
9379                       "strings (value=10)."), 
9380                      Values {"Unknown", "Other", "ASCII", "Unicode", "ISO2022", 
9381 karl  1.1.2.1                "ISO8859", "Extended UNIX Code", "UTF-8", "UCS-2", 
9382                              "Bitmapped Data", "OctetString", 
9383                              "Defined by Individual Records"} ]
9384 karl  1.1        uint16 CharacterSet; 
9385                     [Description (
9386                       "Requests that the MessageLog be cleared of all entries. "
9387                       "The return value should be 0 if the request was successfully "
9388                       "executed, 1 if the request is not supported and some other "
9389                       "value if an error occurred. If the request is not supported, "
9390                       "check the Capabilities array that a value of 6 (\"Clear Log "
9391                       "Supported\") is specified.\n\n"
9392                       "Note: In a subclass, the set of possible return codes could "
9393                       "be described using a ValueMap qualifier on the method. The "
9394                       "strings to which the ValueMap contents are 'translated' may "
9395                       "also be specified in the subclass as a Values array "
9396 karl  1.1.2.1         "qualifier.")  ]
9397 karl  1.1        uint32 ClearLog();
9398                     [Description (
9399                       "Requests that an iteration of the MessageLog be established "
9400                       "and that the iterator be set to the first entry in the Log. "
9401                       "An identifier for the iterator is returned as an output "
9402                       "parameter of the method.\n\n"
9403                       "Regarding iteration, you have 2 choices:  1) Embed iteration "
9404                       "data in the method call, and allow implementations to track/"
9405                       "store this data manually; or, 2) Iterate using a separate "
9406                       "object (for example, class ActiveIterator) as an iteration "
9407                       "agent. The first approach is used here for interoperability. "
9408                       "The second requires an instance of the Iterator object for "
9409                       "EACH iteration in progress. 2's functionality could be "
9410                       "implemented underneath 1.\n\n"
9411                       "The return value from PositionToFirstRecord should be 0 if "
9412                       "the request was successfully executed, 1 if the request is "
9413                       "not supported and some other value if an error occurred. In "
9414                       "a subclass, the set of possible return codes could be specified, "
9415                       "using a ValueMap qualifier on the method. The strings to which "
9416                       "the ValueMap contents are 'translated' may also be specified "
9417 karl  1.1.2.1         "in the subclass as a Values array qualifier.")  ]
9418                  uint32 PositionToFirstRecord (
9419                     [OUT] string IterationIdentifier);
9420 karl  1.1           [Description (
9421                       "Requests that the Log's iteration identifier be advanced or "
9422                       "retreated a specific number of records, or set to the "
9423                       "entry at a specified numeric location. These two different "
9424                       "behaviors are accomplished using the input parameters of the "
9425                       "method. Advancing or retreating is achieved by setting the "
9426                       "MoveAbsolute boolean to FALSE, and then specifying the number of "
9427                       "entries to advance or retreat as positive or negative values "
9428                       "in the RecordNumber parameter. Moving to a specific record "
9429                       "number is accomplished by setting the MoveAbsolute input "
9430                       "parameter to TRUE, and then placing the record number into "
9431                       "the RecordNumber parameter. This can only be done if the "
9432                       "Capabilities array includes a value of 7, \"Supports "
9433                       "Addressing by Ordinal Record Number\".\n\n"
9434                       "After the method completes and if ordinal record numbers are "
9435                       "supported (the Capabilities array includes a 7), the current "
9436                       "record number is returned in the RecordNumber output parameter. "
9437                       "Otherwise, the value of the parameter is undefined.\n\n"
9438                       "IterationIdentifier is defined as an Input/Output method "
9439                       "parameter to allow the Log to embed state information in "
9440                       "the Identifier and potentially let the identifier be "
9441 karl  1.1             "maintained by the using application.\n\n"
9442                       "The return value from PositionAtRecord should be 0 if "
9443                       "the request was successfully executed, 1 if the request is "
9444                       "not supported and some other value if an error occurred. If "
9445                       "the request is not supported, check the Capabilities array "
9446                       "regarding support for ordinal record number addressing and "
9447                       "backward movement in the Log (values 7 and 4, respectively).\n\n"
9448                       "Note: In a subclass, the set of possible return codes could "
9449                       "be described using a ValueMap qualifier on the method. The "
9450                       "strings to which the ValueMap contents are 'translated' may "
9451                       "also be specified in the subclass as a Values array "
9452 karl  1.1.2.1         "qualifier.")  ]
9453 karl  1.1        uint32 PositionAtRecord (
9454 karl  1.1.2.1       [IN, OUT] string IterationIdentifier, 
9455                     [IN, Description ("Advancing or retreating the IterationIdentifier "
9456                          "is achieved by setting the MoveAbsolute boolean to FALSE, and "
9457                          "specifying the number of entries to advance or retreat as "
9458                          "positive or negative values in the RecordNumber parameter. "
9459                          "Moving to a specific record number is accomplished by setting "
9460                          "the MoveAbsolute parameter to TRUE, and placing the record "
9461                          "number into the RecordNumber parameter.") ] 
9462                      boolean MoveAbsolute, 
9463                     [IN, OUT] sint64 RecordNumber);
9464 karl  1.1           [Description (
9465                       "Requests that the record indicated by the IterationIdentifier "
9466                       "be retrieved from the MessageLog. After retrieval, the Iteration"
9467                       "Identifier may be advanced to the next record by setting the "
9468                       "PositionToNext input parameter to TRUE. Two output parameters "
9469                       "are defined for the method - RecordData which holds the contents "
9470                       "of the Log entry (as an array of bytes that can be recast to an "
9471                       "appropriate format), and RecordNumber which returns the current "
9472                       "record number addressed via the IterationIdentifier. The "
9473                       "RecordNumber parameter is only defined/valid when the "
9474                       "Capabilities array indicates that ordinal record number "
9475                       "addressing is supported (a value of 7).\n\n"
9476                       "IterationIdentifier is defined as an Input/Output method "
9477                       "parameter to allow the Log to embed state information in "
9478                       "the Identifier and potentially let the identifier be "
9479                       "maintained by the using application.\n\n"
9480                       "The return value from GetRecord should be 0 if the request "
9481                       "was successfully executed, 1 if the request is not supported, "
9482                       "and some other value if an error occurred. In a subclass, the "
9483                       "set of possible return codes could be specified, using a "
9484                       "ValueMap qualifier on the method. The strings to which the "
9485 karl  1.1             "ValueMap contents are 'translated' may also be specified in "
9486 karl  1.1.2.1         "the subclass as a Values array qualifier.")  ]
9487 karl  1.1        uint32 GetRecord (
9488 karl  1.1.2.1       [IN, OUT] string IterationIdentifier, 
9489                     [IN, Description ("Boolean indicating that the Iteration"
9490                          "Identifier should be advanced to the next record, after "
9491                          "retrieving the current Log entry.") ] 
9492                      boolean PositionToNext, 
9493                     [OUT] uint64 RecordNumber,
9494                     [OUT] uint8 RecordData[]); 
9495 karl  1.1           [Description (
9496                       "Requests that the record indicated by the IterationIdentifier "
9497                       "be deleted from the MessageLog. After deletion, the Iteration"
9498                       "Identifier may be advanced to the next record by setting the "
9499                       "PositionToNext input parameter to TRUE. If set to FALSE, then "
9500                       "the IterationIdentifier will be positioned at the previous "
9501                       "record. Two output parameters are defined for the method - "
9502                       "RecordData which holds the contents of the deleted Log entry "
9503                       "(as an array of bytes that can be recast to an appropriate "
9504                       "format or discarded), and RecordNumber which returns the current "
9505                       "record number addressed via the IterationIdentifier. The "
9506                       "RecordNumber parameter is only defined/valid when the "
9507                       "Capabilities array indicates that ordinal record number "
9508                       "addressing is supported (a value of 7).\n\n"
9509                       "IterationIdentifier is defined as an Input/Output method "
9510                       "parameter to allow the Log to embed state information in "
9511                       "the Identifier and potentially let the identifier be "
9512                       "maintained by the using application.\n\n"
9513                       "The return value from DeleteRecord should be 0 if the request "
9514                       "was successfully executed, 1 if the request is not supported, "
9515                       "and some other value if an error occurred. If the request is "
9516 karl  1.1             "not supported, check the Capabilities array that a value of 3 "
9517                       "(\"Delete Record Supported\") is specified.\n\n"
9518                       "Note: In a subclass, the set of possible return codes could "
9519                       "be described using a ValueMap qualifier on the method. The "
9520                       "strings to which the ValueMap contents are 'translated' may "
9521                       "also be specified in the subclass as a Values array "
9522 karl  1.1.2.1         "qualifier.")  ]
9523 karl  1.1        uint32 DeleteRecord (
9524 karl  1.1.2.1        [IN, OUT] string IterationIdentifier, 
9525                      [IN, Description ("Boolean that when set to TRUE requests the "
9526                           "IterationIdentifier to be advanced to the next record, "
9527                           "after the current entry is deleted. If set to FALSE, "
9528                           "IterationIdentifier is set to the previous record.") ]
9529                      boolean PositionToNext, 
9530                     [OUT] uint64 RecordNumber,
9531                     [OUT] uint8 RecordData[]); 
9532 karl  1.1           [Description (
9533                       "Requests that a record be inserted at the Log position "
9534                       "indicated by the IterationIdentifier. The entry's data is "
9535                       "provided in the RecordData input parameter. After insertion, "
9536                       "the IterationIdentifier may be advanced to the next record "
9537                       "by setting the PositionToNext input parameter to TRUE. "
9538                       "The output parameter, RecordNumber, returns the current "
9539                       "record number addressed via the IterationIdentifier. This "
9540                       "parameter is only defined/valid when the Capabilities array "
9541                       "indicates that ordinal record number addressing is supported " 
9542                       "(a value of 7).\n\n"
9543                       "IterationIdentifier is defined as an Input/Output method "
9544                       "parameter to allow the Log to embed state information in "
9545                       "the Identifier and potentially let the identifier be "
9546                       "maintained by the using application.\n\n"
9547                       "The return value from WriteRecord should be 0 if the request "
9548                       "was successfully executed, 1 if the request is not supported, "
9549                       "and some other value if an error occurred. If the request is "
9550                       "not supported, check the Capabilities array that a value of 2 "
9551                       "(\"Write Record Supported\") is specified.\n\n"
9552                       "Note: In a subclass, the set of possible return codes could "
9553 karl  1.1             "be described using a ValueMap qualifier on the method. The "
9554                       "strings to which the ValueMap contents are 'translated' may "
9555                       "also be specified in the subclass as a Values array "
9556 karl  1.1.2.1         "qualifier.")  ]
9557 karl  1.1        uint32 WriteRecord (
9558 karl  1.1.2.1       [IN, OUT] string IterationIdentifier, 
9559                     [IN, Description ("Boolean indicating that the Iteration"
9560                          "Identifier should be advanced to the next record, after "
9561                          "writing the Log entry.") ] boolean PositionToNext, 
9562                     [IN] uint8 RecordData[],
9563                     [OUT] uint64 RecordNumber); 
9564 karl  1.1           [Description (
9565                       "Requests that an iteration of the Log, identified by the "
9566                       "IterationIdentifier input parameter, be stopped. The "
9567                       "return value from CancelIteration should be 0 if the "
9568                       "request was successfully executed, 1 if the request is "
9569                       "not supported and some other value if an error occurred. In "
9570                       "a subclass, the set of possible return codes could be "
9571                       "specified, using a ValueMap qualifier on the method. The "
9572                       "strings to which the ValueMap contents are 'translated' "
9573                       "may also be specified in the subclass as a Values array "
9574 karl  1.1.2.1         "qualifier.")  ]
9575                  uint32 CancelIteration (
9576                     [IN] string IterationIdentifier);
9577 karl  1.1           [Description (
9578                       "Requests that the MessageLog be placed in a frozen state "
9579                       "(\"Freeze\" input parameter = TRUE) or 'unfrozen' (= FALSE). "
9580                       "If frozen, modifications to the Log will not be allowed. "
9581                       "If successful, the Log's IsFrozen boolean property will "
9582                       "be updated to reflect the desired state.\n\n"
9583                       "The method's return code should be 0 if the request was "
9584                       "successfully executed, 1 if the request is not supported "
9585                       "and some other value if an error occurred. If the request "
9586                       "is not supported, check the Capabilities array that a value "
9587                       "of 5 (\"Freeze Log Supported\") is specified.\n\n"
9588                       "Note: In a subclass, the set of possible return codes could "
9589                       "be described using a ValueMap qualifier on the method. The "
9590                       "strings to which the ValueMap contents are 'translated' may "
9591                       "also be specified in the subclass as a Values array "
9592 karl  1.1.2.1         "qualifier.")  ]
9593                  uint32 FreezeLog(
9594                     [IN] boolean Freeze);
9595 karl  1.1           [Description (
9596                       "Requests that the record indicated by the IterationIdentifier "
9597                       "be flagged as overwriteable. This method is only supported "
9598                       "when the Capabilities array includes a value of 10, \"Can Flag "
9599                       "Records for Overwrite\". After updating the entry, the Iteration"
9600                       "Identifier may be advanced to the next record by setting the "
9601                       "PositionToNext input parameter to TRUE. One output parameter "
9602                       "is defined for the method RecordNumber. It returns the "
9603                       "current record number addressed via the Iteration"
9604                       "Identifier. This parameter is only defined/valid when the "
9605                       "Capabilities array indicates that ordinal record number "
9606                       "addressing is supported (a value of 7).\n\n"
9607                       "IterationIdentifier is defined as an Input/Output method "
9608                       "parameter to allow the Log to embed state information in "
9609                       "the Identifier and potentially let the identifier be "
9610                       "maintained by the using application.\n\n"
9611                       "The return value from FlagRecordForOverwrite should be 0 if "
9612                       "the request was successfully executed, 1 if the request is not "
9613                       "supported, and some other value if an error occurred. In a "
9614                       "subclass, the set of possible return codes could be specified, "
9615                       "using a ValueMap qualifier on the method. The strings to which "
9616 karl  1.1             "the ValueMap contents are 'translated' may also be specified "
9617 karl  1.1.2.1         "in the subclass as a Values array qualifier.")  ]
9618 karl  1.1        uint32 FlagRecordForOverwrite (
9619 karl  1.1.2.1       [IN, OUT] string IterationIdentifier, 
9620                     [IN, Description ("Boolean indicating that the Iteration"
9621                          "Identifier should be advanced to the next record, after "
9622                          "updating the current Log entry.") ] 
9623                      boolean PositionToNext, 
9624                     [OUT] uint64 RecordNumber); 
9625 karl  1.1     };
9626 karl  1.1.2.1 
9627 karl  1.1      
9628               // ===================================================================
9629               // LogRecord
9630               // ===================================================================
9631                  [Description (
9632 karl  1.1.2.1      "The LogRecord object can describe the definitional format for "
9633                    "entries in a MessageLog, or can be used to instantiate the "
9634                    "actual records in the Log. The latter approach provides a "
9635                    "great deal more semantic definition and management control over "
9636                    "the individual entries in a MessageLog, than do the record "
9637                    "manipulation methods of the Log class. It is recommended that "
9638                    "the data in individual Log entries be modeled using subclasses "
9639                    "of LogRecord, to avoid the creation of LogRecords with one "
9640                    "property (such as RecordData) without semantics.\n"
9641                    "Definitional formats for LogRecords could be specified by "
9642                    "establishing a naming convention for the RecordID and Message"
9643                    "Timestamp key properties.")  ] 
9644               class CIM_LogRecord : CIM_ManagedElement {
9645                     [Propagated("CIM_MessageLog.CreationClassName"), 
9646                      Key, MaxLen (256),
9647                      Description ("The scoping Log's CreationClassName.") ]
9648 karl  1.1        string LogCreationClassName;
9649 karl  1.1.2.1       [Propagated("CIM_MessageLog.Name"),
9650                      Key, MaxLen (256),
9651                      Description ("The scoping Log's Name.") ]
9652 karl  1.1        string LogName;
9653                     [Key, MaxLen (256),
9654                      Description (
9655                       "CreationClassName indicates the name of the class or "
9656                       "the subclass used in the creation of an instance. When "
9657                       "used with the other key properties of this class, this "
9658                       "property allows all instances of this class and its "
9659 karl  1.1.2.1         "subclasses to be uniquely identified.")  ]
9660 karl  1.1        string CreationClassName;
9661                     [Key, MaxLen (256), 
9662                      Description (
9663                       "RecordID, with the MessageTimestamp property, serve to "
9664                       "uniquely identify the LogRecord within a MessageLog. Note "
9665                       "that this property is different than the RecordNumber "
9666                       "parameters of the MessageLog methods. The latter are ordinal "
9667                       "values only, useful to track position when iterating through "
9668                       "a Log. On the other hand, RecordID is truly an identifier "
9669                       "for an instance of LogRecord. It may be set to the record's "
9670 karl  1.1.2.1         "ordinal position, but this is not required.") ] 
9671 karl  1.1        string RecordID; 
9672                     [Key, Description (
9673                       "A LogRecord's key structure includes a timestamp for "
9674 karl  1.1.2.1         "the entry.") ]
9675 karl  1.1        datetime MessageTimestamp;
9676                     [Description (
9677 karl  1.1.2.1         "A free-form string describing the LogRecord's data structure.") ]
9678 karl  1.1        string DataFormat;
9679               };
9680 karl  1.1.2.1 
9681 karl  1.1      
9682               // ===================================================================
9683               // RecordInLog
9684               // ===================================================================
9685 karl  1.1.2.1    [Association, Aggregation, Description (
9686                    "RecordInLog describes the aggregation or location of Log "
9687                    "entries within a MessageLog.") ]
9688               class CIM_RecordInLog  {
9689 karl  1.1           [Key, Aggregate, Min (1), Max (1), 
9690 karl  1.1.2.1        Description ("The Message Log.")  ]
9691 karl  1.1        CIM_MessageLog REF MessageLog;
9692                     [Key, Weak, Description (
9693 karl  1.1.2.1         "The Log entry contained within the MessageLog.") ]
9694 karl  1.1        CIM_LogRecord REF LogRecord;
9695               };
9696                
9697 karl  1.1.2.1 
9698 karl  1.1     // ===================================================================
9699               // LogInDeviceFile
9700               // ===================================================================
9701                  [Association, Description (
9702 karl  1.1.2.1      "MessageLogs can reside in data files, on specially allocated "
9703                    "storage areas such as disks or memory, or output as raw I/O "
9704                    "streams. In fact, a single Log may use each of these mechanisms "
9705                    "to output or capture its contents. The LogInDeviceFile "
9706                    "association describes a Log outputting to a raw I/O stream "
9707                    "DeviceFile - for example, a serial port on a UNIX system.") ]
9708               class CIM_LogInDeviceFile : CIM_Dependency {
9709 karl  1.1           [Override ("Antecedent"), Description (
9710 karl  1.1.2.1         "The I/O stream DeviceFile.") ]
9711 karl  1.1        CIM_DeviceFile REF Antecedent;
9712                     [Override ("Dependent"),
9713 karl  1.1.2.1        Description ("The MessageLog outputting to the DeviceFile.") ]
9714 karl  1.1        CIM_MessageLog REF Dependent;
9715               };
9716               
9717               
9718               // ===================================================================
9719               // LogInDataFile
9720               // ===================================================================
9721                  [Association, Description (
9722 karl  1.1.2.1      "MessageLogs can reside in data files, on specially allocated "
9723                    "storage areas such as disks or memory, or output as raw I/O "
9724                    "streams. In fact, a single Log may use each of these mechanisms "
9725                    "to output or capture its contents. The LogInDataFile "
9726                    "association describes a Log stored as a DataFile.") ]
9727               class CIM_LogInDataFile : CIM_Dependency {
9728 karl  1.1           [Override ("Antecedent"), Description (
9729 karl  1.1.2.1         "The DataFile.") ]
9730 karl  1.1        CIM_DataFile REF Antecedent;
9731                     [Override ("Dependent"),
9732 karl  1.1.2.1        Description ("The MessageLog residing in the DataFile.") ]
9733 karl  1.1        CIM_MessageLog REF Dependent;
9734               };
9735 karl  1.1.2.1 
9736 karl  1.1      
9737               // ===================================================================
9738               // LogInStorage
9739               // ===================================================================
9740                  [Association, Description (
9741 karl  1.1.2.1      "MessageLogs can reside in data files, on specially allocated "
9742                    "storage areas such as disks or memory, or output as raw I/O "
9743                    "streams. In fact, a single Log may use each of these mechanisms "
9744                    "to output or capture its contents. The LogInStorage "
9745                    "association describes a Log located in a specially allocated "
9746                    "portion of a StorageExtent. The offset of the Log, within "
9747                    "the Extent, is defined using a property of the association, "
9748                    "StartingOffset.") ]
9749               class CIM_LogInStorage : CIM_Dependency {
9750 karl  1.1           [Override ("Antecedent"), Description ("The StorageExtent.") ]
9751                  CIM_StorageExtent REF Antecedent;
9752                     [Override ("Dependent"),
9753 karl  1.1.2.1        Description ("The MessageLog located within the Extent.") ]
9754 karl  1.1        CIM_MessageLog REF Dependent;
9755                     [Description (
9756                       "StartingOffset indicates where in the Extent that the Log "
9757 karl  1.1.2.1         "begins.") ] 
9758 karl  1.1        uint64 StartingOffset;
9759               };
9760 karl  1.1.2.1 
9761 karl  1.1      
9762               // ===================================================================
9763               // UseOfMessageLog
9764               // ===================================================================
9765                  [Association, Description (
9766 karl  1.1.2.1      "ManagedSystemElements may record their event, error or "
9767                    "informational data within MessageLogs. The use of a Log to "
9768                    "hold a ManagedSystemElement's data is described by this "
9769                    "association. The type of Element data captured by the Log "
9770                    "can be specified using the RecordedData string property.") ]
9771               class CIM_UseOfMessageLog : CIM_Dependency {
9772 karl  1.1           [Override ("Antecedent"), Description ("The MessageLog.") ]
9773                  CIM_MessageLog REF Antecedent;
9774                     [Override ("Dependent"), Description (
9775                       "The ManagedSystemElement whose information is recorded in "
9776 karl  1.1.2.1         "the MessageLog.") ]
9777 karl  1.1        CIM_ManagedSystemElement REF Dependent;
9778                     [Description (
9779                       "A free-form string describing the use of the Log by the "
9780 karl  1.1.2.1         "ManagedSystemElement.") ] 
9781 karl  1.1        string RecordedData;
9782               };
9783               
9784               // ===================================================================
9785               // end of file
9786               // ===================================================================
9787               

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2