(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           // Date:        12/19/2000
    6           // Release:     0
    7           // Description: The object classes below are listed in an order that
    8           //              avoids forward references. Required objects, defined 
    9           //				by other working groups, are omitted.
   10           // ==================================================================
   11           // Author:		DMTF System and Devices Working Group
   12           // Editor:      Michael A. Thatcher
   13           // ==================================================================
   14           // Date:  04/14/1998 - Version 2.0
   15           //        06/23/1998 - V2.0 Errata
   16           //		- CR222, References to the "Resource" component in 
   17           //			CIM_ComputerSystemResource association and its
   18           //			subclasses incorrect - Should be PartComponent
   19           //		- CR225, Antecedent reference should be CIM_CurrentSensor
   20           //			in the AssociatedSupplyCurrentSensor relationship
   21           //		- CR226, Add ArrayType("Indexed") and update descriptions
   22 karl  1.1 //			for CIM_NetworkAdapter.NetworkAddresses and its
   23           //			overrides
   24           //		- CR227, UninterruptablePowerSupply should be 
   25           //			Uninterruptible
   26           //		- CR235, Format for specifying propagated value uses
   27           //                period, not colon
   28           //	    09/29/1998 - Version 2.1
   29           //		- CR236, Add ModelCorrespondence qualifier to properties
   30           //			of CIM_MonitorResolution 
   31           //		- CR243, Add AutoSense and MaxSpeed properties to 
   32           //			CIM_NetworkAdapter
   33           //		- CR244a, Extend the enumeration of CIM_Processor.Family, 
   34           //			Add a new Processor property, OtherFamilyDescription
   35           //		- CR245, Add CIM_AllocatedDMA association
   36           //		- CR254, Add CIM_DeviceErrorCounts object and related
   37           //			association, CIM_ErrorCountersForDevice
   38           //		- CR259, Add DesiredSpeed property and SetSpeed method 
   39           //			to CIM_Fan
   40           //		- CR261a, Add two properties to CIM_Battery, ExpectedLife
   41           //			and MaxRechargeTime
   42           //		- CR265, Address "cleaning" related to a CIM_Media
   43 karl  1.1 //			AccessDevice
   44           //		- CR266, Add CIM_AlarmDevice and association
   45           //		- CR274, Remove repetition of the Values array from 
   46           //			property Descriptions
   47           //		- CR275, Update DMI Master.MIF mappings
   48           //		- CR288a, Add AssociatedProcessorMemory relationship
   49           //		- CR292, Add ModelCorrespondence to 'linked' properties
   50           //          - CR294, Remove key-qualifier from 'StartingAddress' in
   51           //                CIM_BIOSLoadedInNV
   52           //	    10/14/1998 - Version 2.1.1
   53           //		- Missed CR271a, Add Stepping property to CIM_Processor
   54           //	    06/11/1999 - Version 2.2
   55           //		- CR297, Add Sparc processors to the enum, Processor.Family
   56           //		- CR308a, Create DeviceIdentity relationship
   57           //		- CR316, Add OrderIndex to BasedOn
   58           //		- CR318c, Add processors to the enum, Processor.Family
   59           //		- CR325, Load balancing (Add LoadBalancedGroup boolean to
   60           //			ExtraCapacityGroup, Create new NetworkAdapter
   61           //			RedundancyComponent and NetworkVirtualAdapter 
   62           //                associations)
   63           //		- CR326, Add properties, LoadedOnDevice and UpgradeableOn
   64 karl  1.1 //			Device to DeviceSoftware
   65           //		- CR327b, Update the PCIController class and add new 
   66           //			subclasses, PCIDevice and PCIBridge
   67           //		- CR328, New MappingStrings, Descriptions and properties in 
   68           //			SCSIController and SCSIInterface
   69           //		- CR329a, Add to the MediaAccessDevice Capabilities array,
   70           //			(enum) / Also, add a MediaIsLocked property and 
   71           //                LockMedia method / Create subclass, DVDDevice
   72           //		- CR330a, Add properties and methods to AlarmDevice
   73           //		- CR331, Create IDE, PCMCIA and InfraredController 
   74           //                subclasses of Controller / Add to the enum for 
   75           //                Controller.ProtocolSupported
   76           //		- CR332, Add PartitionType and PartitionSubtype properties
   77           //			to DiskPartition / Update class Description
   78           //		- CR333a, Extensions to and clarifications of StorageExtent
   79           //		- CR334, Clarify the StorageRedundancyGroup.TypeOfAlgorithm
   80           //			enum and add properties to the class / Create an
   81           //			ExtentRedundancyComponent association
   82           //		- CR335a, Updates to the Printer object
   83           //		- CR336, New Printer-related classes and associations
   84           //		- CR341, Create new Modem classes, properties and 
   85 karl  1.1 //			associations
   86           //		- CR342, Create OOBAlert and WakeUpServices and 
   87           //                associations to NetworkAdapter 
   88           //		- CR343, Create new NetworkAdapter classes, properties 
   89           //			and associations
   90           //		- CR344, Changes to POTSModem and movement of some 
   91           //			properties up to CIM_Modem
   92           //		- CR345b, Changes to Sensor and its subclasses
   93           //		- CR346, Add WatchDog object
   94           //		- CR347, Add a UniqueID property to Processor
   95           //		- CR348, Create AGPVideoController and AGPSoftware
   96           //			Feature classes
   97           //		- CR351, Add TimeOfDeviceReset to ControlledBy
   98           //		- CR355a, Use Values-ValueMap qualifiers in DeviceError
   99           //                Counts.ResetCounter and AlarmDevice.SetUrgency / 
  100           //			Update the method descriptions indicating that 
  101           //                Values-ValueMap qualifiers can be defined for 
  102           //                return codes
  103           //		- CR356a, Keys on all associations either explicitly or
  104           //			via inheritance
  105           //		- CR357, Remove company references
  106 karl  1.1 //		- CR360, Add VendorID to ConnectionBasedModem
  107           //		- CR366, Clarify the Description for ResidesOnExtent
  108           //          - CR372, Create LogicalPort and PortOnDevice 
  109           //		- CR373, Define the USB Model
  110           //		- CR375, Update descriptions and enumerations / Add new
  111           //			classes - SuppliesPower, VideoControllerResolution,
  112           //			VideoSetting / Create new properties - IRQ.Hardware,
  113           //			Security in MediaAccessDevice, ParallelController and
  114           //			SerialController, VideoController.CurrentNumberOf
  115           //			Colors, ScreenHeight and Width in DesktopMonitor, 
  116           //			NetworkAdapter.FullDuplex, Processor.CPUStatus,
  117           //                MemoryMappedIO.MappedResource and 3 'storage is 
  118           //                writeable' properties in NonVolatileStorage
  119           //		- CR377, Add "video processor" to Processor.Family
  120           //		- CR379a, Update the DMI MappingStrings
  121           //		- CR380a, Define the Fibre Channel Adapter and Port models
  122           //		- CR381, Update MediaAccessDevice's enumerations and add new
  123           //			properties - LastCleaned, MaxAccessTime, 
  124           //                UncompressedDataRate, LoadTime, UnloadTime / Create
  125           //			MediaPresent.FixedMedia / Update StorageExtent's 
  126           //			enumerations and add a SequentialAccess property /
  127 karl  1.1 //			Create TapeDrive.MaxRewindTime
  128           //		- CR382, Create a DiskGroup class and its supporting
  129           //			associations
  130           //		- CR384, Update Processor.UpgradeMethod / Create an
  131           //			ESCONController
  132           //		- CR393a, Define the Tape Library Device Model
  133           //		- CR394, Update Descriptions / Add VolumeSet.VolumeStatus
  134           //			and properties to VolumeSetBasedOnPSExtent (from
  135           //			CR333a)
  136           //		- CR399, Remove SubmitsRequest from CR336
  137           //		- CR405, Add Counter and Gauge qualifiers as appropriate
  138           //		- CR406, Update PartitionSubtype enumeration from CR332
  139           //		- CR407, Add DoorAccessToPhysicalElement and Changer.
  140           //			AuditInProgress
  141           //		- CR408, Update the Description for StorageExtent.
  142           //			ConsumableBlocks (from CR333a)
  143           //		- CR410, Updates to the Fibre Channel Model submitted in
  144           //			CR380a
  145           //		- CR414, Add "Mouse-Optical Sensor" to PointingDevice.
  146           //			PointingType
  147           //		- CR415, Remove OrderOfQueue from QueueForPrintService
  148 karl  1.1 //			(added in CR336)
  149           //		- CR417a, Add "N/A" to CacheMemory.Level
  150           //		- CR418a, Add to the enum for CacheMemory.Read and Write
  151           //			Policy / Update Descriptions related to Storage
  152           //			Volume (from CR333a) / Change the association,
  153           //			LogicalDiskBasedOnSoftwareVolume (CR333a) to 
  154           //			LogicalDiskBasedOnVolume
  155           //		- CR420, Miscellaneous syntax and semantic issues
  156           //		- CR421, Defer including some properties of Unimodem from
  157           //			CR341
  158           //	    07/06/1999 - Version 2.2.1
  159           //		- CR422, Cut & paste errors (Remove Association qualifier 
  160           //			from LabelReader, MediaAccess and PickerStatInfo; 
  161           //			Add Association qualifier to CIM_VideoSetting)
  162           //		- CR423, Locale should be specified as en_US
  163           //		- CR424, Add CIM_ to the class name for PCIDevice and 
  164           //			PCIBridge / Add Overrides to xxxInDiskGroup 
  165           //			aggregations / Update the Descriptions for Cache
  166           //			Memory Read and WritePolicy
  167           //		- CR425, Update the DMI MappingStrings using the June
  168           //			release of the master.mif
  169 karl  1.1 //	    07/27/1999 - Version 2.2.2
  170           //		- CR428, Remove underscores from two properties of 
  171           //			PCIDevice 
  172           //	Date  02/18/2000 - Version 2.3
  173           //		- CR429	Modify Description of UserDataStripeDepth in 
  174           //			CIM_ProtectedSpaceExtent
  175           //		- CR431 Update MappingStrings
  176           //		- CR432 Create subclasses of MemoryMappedIO
  177           //		- CR433 Add new properties and enums from Master.MIF and new 
  178           //			ModelCorrespondences 
  179           //		- CR436 Add a place holder for SSA Controller
  180           //		- CR438 Change Intel Processor types to meet Intel legal requirements 
  181           //			in CIM_Processor.Family
  182           //		- CR445e Modify the SpareGroup class to add a Failover method
  183           //		- CR449 Add Itanium processors to CIM_Processor.Family
  184           //		- CR452a Updates to FibrePort
  185           //		- CR457 Miscellaneous StorageExtent and MediaAccessDevice 
  186           //			clarifications
  187           //		- CR460a Add Counter, OctetString and Gauge qualifiers
  188           //		- CR461 Subclass from CIM_ManagedElement StorageError
  189           //		- CR463b Define the necessary classes and associations to 
  190 karl  1.1 //			support Message Logs
  191           //		- CR471 Recommended qualifier for CIM_NumericSensor.CurrentReading
  192           //		- CR474 Add Processor types to CIM_Processor.Family
  193           //		- CR475 Add Processor types to CIM_Processor.Family
  194           //	Date 06/09/2000 - Version 2.4
  195           //		- CR479 Miscellaneous Device Model Additions to the Storage and 
  196           //			StorageLibrary Classes
  197           //			1. Add a new property, CellLocation, to the PickerElement class. 
  198           //			2. Add to the enumeration for LabelReader.SupportedFormats.
  199           //			3. Add a new property, Extendable, to TapePartition
  200           //			4. Add a new property, Direction, to BOTH LimitedAccessPort 
  201           //				and InterLibraryPort
  202           //			5. Add six new properties to MediaAccessDevice.
  203           //			6. Define a new association, AssociatedLabelReader
  204           //			7. Update the subclassing of PickerLabelReader and AccessLabelReader
  205           //				to use the association defined in #6.
  206           //			8. Update the description for LimitedAccessPort.
  207           //		- CR486, Further updates to the Storage and Storage Library Models
  208           //			1. Add seek and recovered R/W stats to the class, MediaAccessStatInfo
  209           //			2. Due to the changes in #1, must update the ResetCounters method 
  210           //				in MediaAccessStatInfo.
  211 karl  1.1 //			3. Create a new superclass of TapePartition and DiskPartition, 
  212           //				MediaPartition
  213           //			4. Change the subclassing of TapePartition and DiskPartition from 
  214           //				CIM_StorageExtent to CIM_MediaPartition.
  215           //			5. Remove the Bootable boolean from DiskPartition since it is now 
  216           //				found in the MediaPartition superclass.
  217           //		- CR494, Add to the enumerations in CIM_CacheMemory.Associativity
  218           //	Date 07/14/00 - Version 2.4
  219           //		- CR513a, Move Extendable Boolean up to the MediaPartition superclass
  220           //		- CR519 ERRATA CIM 2.3: correct ValueMap syntax errors in CIM_Processor.Family
  221           //	Date 12/01/2000 Version 2.5
  222           //		- CR527 Add AMD Duron  processors to CIM_Processor.Family
  223           //		- CR528 Add Socket 423 and Socket A (Socket 462) enumerations to 
  224           //			CIM_Processor.UpgradeMethod
  225           //		- CR530 Modify the enumerations in CIM_Processor.Family (Device MOF) 
  226           //		- CR531 Add Transmeta Crusoe  processors's names in CIM_Processor.Family
  227           //		- CR534 Update MappingStrings Qualifiers to stay in sync with updates to the MASTER.MIF.
  228           //		- CR535 Add "Service Processor" to CIM_Watchdog.MonitoredEntity and 
  229           //			CIM_Watchdog.MonitoredEntityOnLastExpiration enumeration.
  230           //
  231           // ===================================================================
  232 karl  1.1 
  233           
  234           // ===================================================================
  235           // Generic Pragmas
  236           // ===================================================================
  237           #pragma locale ("en_US")
  238           
  239           
  240           // ===================================================================
  241           // DeviceConnection
  242           // ===================================================================
  243              [Association,
  244               Description (
  245                  "The DeviceConnection relationship indicates that two or more "
  246                  "Device are connected together.")
  247              ] 
  248           class CIM_DeviceConnection : CIM_Dependency
  249           {
  250                 [Override ("Antecedent"),
  251                  Description ("A LogicalDevice.")
  252                 ]
  253 karl  1.1    CIM_LogicalDevice REF Antecedent;
  254                 [Override ("Dependent"),
  255                  Description (
  256           	  "A second LogicalDevice connected to the Antecedent Device.")
  257                 ]
  258              CIM_LogicalDevice REF Dependent;
  259                 [Description (
  260           	  "When several bus and/or connection speeds are possible, the "
  261           	  "NegotiatedSpeed property defines the one in use between the "
  262           	  "Devices.  Speed is specified in bits per second.  If "
  263           	  "connection or bus speeds are not negotiated, or if this "
  264           	  "information is not available/important to Device management, "
  265           	  "the property should be set to 0."), 
  266                  Units ("Bits per Second"),
  267           	   MappingStrings {"MIF.DMTF|Bus Port Association|001.2"} 
  268                 ]
  269              uint64 NegotiatedSpeed;
  270                 [Description (
  271           	  "When several bus and/or connection data widths are possible, "
  272           	  "the NegotiatedDataWidth property defines the one in use "
  273           	  "between the Devices.  Data width is specified in bits.  If "
  274 karl  1.1 	  "data width is not negotiated, or if this information is not "
  275           	  "available/important to Device management, the property should "
  276           	  "be set to 0."),
  277                  Units ("Bits"),
  278           	   MappingStrings {"MIF.DMTF|Bus Port Association|001.3"} 
  279                 ]
  280              uint32 NegotiatedDataWidth;
  281           };
  282           
  283           // ===================================================================
  284           // DeviceIdentity
  285           // ===================================================================
  286              [Association,
  287               Description (
  288                  "CIM_DeviceIdentity indicates that two LogicalDevices "
  289                  "represent different aspects of the same underlying entity. "
  290                  "This association refines the CIM_LogicalIdentity superclass "
  291                  "by restricting it to the Device level and defining its use in "
  292                  "well understood scenarios. One of these scenarios is to "
  293                  "represent that a Device is both a 'bus' entity and a "
  294                  "'functional' entity. For example, a Device could be both a PCI "
  295 karl  1.1        "Device (or a USB Device), as well as a CIM_Keyboard. The other "
  296                  "scenario is where a Device plays multiple functional roles "
  297                  "that can not be distinguished by their hardware realization "
  298                  "alone. For example, a Fibre Channel adapter might have aspects "
  299                  "of both a NetworkAdapter and a SCSIController.")
  300              ]
  301           class CIM_DeviceIdentity: CIM_LogicalIdentity
  302           {
  303                 [Override ("SystemElement"), 
  304                  Description (
  305                   "SystemElement represents one aspect of the Device.")
  306                 ]
  307              CIM_LogicalDevice ref SystemElement;
  308                 [Override ("SameElement"), 
  309                  Description (
  310                   "SameElement represents an alternate aspect of "
  311                   "the System entity.")
  312                 ]
  313              CIM_LogicalDevice ref SameElement;
  314           };
  315           
  316 karl  1.1 // ===================================================================
  317           // SystemResource
  318           // ===================================================================
  319              [Abstract,
  320               Description (
  321                  "An entity managed by BIOS and/or an OperatingSystem which is "
  322                  "available for use by software and/or LogicalDevices. Examples "
  323           	 "of Resources in the x86 environment are IRQs, DMA channels and "
  324           	 "memory mapped I/O.")
  325              ] 
  326           class CIM_SystemResource : CIM_LogicalElement
  327           {
  328                 [Description (
  329                   "Boolean indicating whether the Resource can be shared.")
  330                 ]
  331              boolean Shareable;
  332           };
  333           
  334           // ===================================================================
  335           // IRQ
  336           // ===================================================================
  337 karl  1.1    [Description ("Personal computer architecture IRQ.")] 
  338           class CIM_IRQ : CIM_SystemResource
  339           {
  340                 [Propagated("CIM_ComputerSystem.CreationClassName"),
  341                  Key, MaxLen (256),
  342                  Description ("The scoping ComputerSystem's CreationClassName.")
  343                 ]
  344              string CSCreationClassName;
  345                 [Propagated("CIM_ComputerSystem.Name"),
  346                  Key, MaxLen (256),
  347           	 Description ("The scoping ComputerSystem's Name.")
  348                 ]
  349              string CSName;
  350                 [Key, MaxLen (256),
  351                  Description (
  352                   "CreationClassName indicates the name of the class or "
  353                   "the subclass used in the creation of an instance. When "
  354                   "used with the other key properties of this class, this "
  355                   "property allows all instances of this class and its "
  356                   "subclasses to be uniquely identified.") 
  357                 ]
  358 karl  1.1    string CreationClassName;
  359                 [Key, 
  360           	 Description ("A part of the object's key value, IRQ Number."), 
  361                  MappingStrings {"MIF.DMTF|IRQ|002.1"}
  362                 ]
  363              uint32 IRQNumber;
  364                 [Description ("Availability of the IRQ."),
  365           	 ValueMap {"1", "2", "3", "4", "5"},
  366                  Values {"Other", "Unknown", "Available", 
  367           	       "In Use/Not Available", 
  368           	       "In Use and Available/Shareable"},
  369                  MappingStrings {"MIF.DMTF|IRQ|002.2"}
  370                 ]
  371              uint16 Availability;
  372                 [Description (
  373           	  "IRQ trigger type indicating whether edge (value=4) "
  374           	  "or level triggered (value=3) interrupts occur. Also, "
  375           	  "\"Other\" (1) and \"Unknown\" (2) may be defined."),
  376           	 ValueMap {"1", "2", "3", "4"},
  377                  Values {"Other", "Unknown", "Level", "Edge"},
  378                  MappingStrings {"MIF.DMTF|IRQ|002.3", 
  379 karl  1.1 	    "MIF.DMTF|System Resource IRQ Info|001.2"}
  380                 ]
  381              uint16 TriggerType;
  382                 [Description (
  383           	  "IRQ trigger level indicating whether the interrupt is "
  384           	  "triggered by the hardware signal going high (value=4) "
  385           	  "or low (value=3).  Also, \"Other\" (1) and "
  386           	  "\"Unknown\" (2) may be defined."),
  387           	 ValueMap {"1", "2", "3", "4"},
  388                  Values {"Other", "Unknown", "Active Low", "Active High"},
  389                  MappingStrings {"MIF.DMTF|System Resource IRQ Info|001.3"}
  390                 ]
  391              uint16 TriggerLevel; 
  392                 [Override ("Shareable"), 
  393           // Override is used to define the MappingString qualifier 
  394                  Description (
  395           	  "Boolean indicating whether the IRQ can be shared."),
  396                  MappingStrings {"MIF.DMTF|IRQ|002.4"}
  397                 ]
  398              boolean Shareable;
  399                 [Description (
  400 karl  1.1         "The Hardware property indicates whether the interrupt "
  401                   "is hardware or software based. (If TRUE, the interrupt is "
  402                   "hardware based.) On a personal computer, a hardware IRQ "
  403                   "is a physical wire to a programmable interrupt "
  404                   "controller (PIC) chip, through which the CPU can be "
  405                   "notified of time critical events. Some IRQ lines are "
  406                   "reserved for standard Devices such as the keyboard, floppy "
  407                   "disk drives, and the system clock. A software interrupt "
  408                   "is a programmatic mechanism to allow an application to "
  409                   "get the attention of the Processor.")
  410                 ]
  411              boolean Hardware;
  412           };
  413           
  414           // ===================================================================
  415           // MemoryMappedIO
  416           // ===================================================================
  417              [Description (
  418                  "Personal Computer architecture Memory Mapped I/O. This class "
  419                  "addresses both memory and port I/O resources. The property, "
  420                  "MappedResource, defines whether memory or I/O is mapped (and "
  421 karl  1.1        "for I/O whether the mapping is to a memory or a port space).")
  422              ]
  423           class CIM_MemoryMappedIO : CIM_SystemResource
  424           {
  425                 [Propagated("CIM_ComputerSystem.CreationClassName"),
  426                  Key, MaxLen (256),
  427                  Description ("The scoping ComputerSystem's CreationClassName.")
  428                 ]
  429              string CSCreationClassName;
  430                 [Propagated("CIM_ComputerSystem.Name"),
  431                  Key, MaxLen (256),
  432           	 Description ("The scoping ComputerSystem's Name.")
  433                 ]
  434              string CSName;
  435                 [Key, MaxLen (256),
  436                  Description (
  437                   "CreationClassName indicates the name of the class or "
  438                   "the subclass used in the creation of an instance. When "
  439                   "used with the other key properties of this class, this "
  440                   "property allows all instances of this class and its "
  441                   "subclasses to be uniquely identified.") 
  442 karl  1.1       ]
  443              string CreationClassName;
  444                 [Key, Description (
  445           	  "A part of the object's key value, the starting address of "
  446           	  "memory mapped I/O."),
  447                  MappingStrings {"MIF.DMTF|Memory Mapped I/O|001.1"}
  448                 ]
  449              uint64 StartingAddress;
  450                 [Description ("Ending address of memory mapped I/O."),
  451                  MappingStrings {"MIF.DMTF|Memory Mapped I/O|001.2"}
  452                 ]
  453              uint64 EndingAddress;
  454                 [Description (
  455                   "Type of memory mapped I/O. MappedResource defines whether "
  456                   "memory or I/O is mapped, and for I/O, whether the mapping "
  457                   "is to a memory or a port space."), 
  458                  Values {"Other", "Mapped Memory", "I/O Mapped to Memory Space", 
  459                        "I/O Mapped to Port Space"}
  460                 ]
  461              uint16 MappedResource;
  462           };
  463 karl  1.1 
  464           // ===================================================================
  465           // MemoryResource
  466           // ===================================================================
  467           
  468           	[Description (
  469           	"Since the MemoryMappedIO class applies to memory AND port "
  470           	"resources, there is the potential for key conflict. For example, "
  471           	"both a memory resource and a port resource may be located at "
  472           	"address 0. Since StartingAddress is the distinguishing key of "
  473           	"MemoryMappedIO, two instances would be created with the same key. "
  474           	"This is prevented by defining memory and port resource subclasses "
  475           	"of MemoryMappedIO, and allowing the CreationClassName key property "
  476           	"to distinguish between them and force uniqueness in their keys.")
  477           	]
  478           class CIM_MemoryResource : CIM_MemoryMappedIO
  479           {
  480           };
  481           
  482           // ===================================================================
  483           // PortResource
  484 karl  1.1 // ===================================================================
  485           
  486           	[Description (
  487           	"Since the MemoryMappedIO class applies to memory AND port "
  488           	"resources, there is the potential for key conflict. For example, "
  489           	"both a memory resource and a port resource may be located at "
  490           	"address 0. Since StartingAddress is the distinguishing key of "
  491           	"MemoryMappedIO, two instances would be created with the same key. "
  492           	"This is prevented by defining memory and port resource subclasses "
  493           	"of MemoryMappedIO, and allowing the CreationClassName key property "
  494           	"to distinguish between them and force uniqueness in their keys.")
  495           	]
  496           class CIM_PortResource : CIM_MemoryMappedIO
  497           {
  498           };
  499           
  500           // ===================================================================
  501           // DMA
  502           // ===================================================================
  503              [Description ("Personal computer architecture DMA.")] 
  504           class CIM_DMA : CIM_SystemResource
  505 karl  1.1 {
  506                 [Propagated("CIM_ComputerSystem.CreationClassName"),
  507                  Key, MaxLen (256),
  508                  Description ("The scoping ComputerSystem's CreationClassName.")
  509                 ]
  510              string CSCreationClassName;
  511                 [Propagated("CIM_ComputerSystem.Name"),
  512                  Key, MaxLen (256),
  513           	 Description ("The scoping ComputerSystem's Name.")
  514                 ]
  515              string CSName;
  516                 [Key, MaxLen (256),
  517                  Description (
  518                   "CreationClassName indicates the name of the class or "
  519                   "the subclass used in the creation of an instance. When "
  520                   "used with the other key properties of this class, this "
  521                   "property allows all instances of this class and its "
  522                   "subclasses to be uniquely identified.") 
  523                 ]
  524              string CreationClassName;
  525                 [Key, Description (
  526 karl  1.1 	  "A part of the object's key value, the DMA Channel number."),
  527                  MappingStrings {"MIF.DMTF|DMA|001.1"}
  528                 ]
  529              uint32 DMAChannel;
  530                 [Description ("Availability of the DMA."),
  531           	 ValueMap {"1", "2", "3", "4", "5"},
  532                  Values {"Other", "Unknown", "Available", 
  533           	       "In Use/Not Available", 
  534           	       "In Use and Available/Shareable"},
  535                  MappingStrings {"MIF.DMTF|DMA|001.2"}
  536                 ]
  537              uint16 Availability;
  538                 [Description (
  539           	  "Indication that the DMA Channel supports burst mode."),
  540                  MappingStrings {"MIF.DMTF|DMA|001.3"}
  541                 ]
  542              boolean BurstMode; 
  543                 [Description (
  544           	  "An array indicating all the transfer widths (in bits) "
  545           	  "supported by this DMA Channel. Permissible values "
  546           	  "are 8, 16, 32, 64 or 128 bits.  If unknown, enter 0."),
  547 karl  1.1        Units ("Bits"),
  548           	 ValueMap {"0", "8", "16", "32", "64", "128"},
  549                  MappingStrings {"MIF.DMTF|System Resource DMA Info|001.2"}
  550                 ]
  551              uint16 TransferWidths[];
  552                 [Description (
  553           	  "An integer indicating the DMA Channel address size in "
  554           	  "bits. Permissible values are 8, 16, 32 or 64 bits. "
  555           	  "If unknown, enter 0."),
  556                   Units ("Bits"),
  557           	 ValueMap {"0", "8", "16", "32", "64"}, 
  558                  MappingStrings {"MIF.DMTF|System Resource DMA Info|001.3"}
  559                 ]
  560              uint16 AddressSize; 
  561                 [Description (
  562           	  "The maximum number of bytes that can be transferred by this "
  563           	  "DMA Channel. If unknown, enter 0."),
  564                  Units ("Bytes"),
  565                  MappingStrings {"MIF.DMTF|System Resource DMA Info|001.4"}
  566                 ]
  567              uint32 MaxTransferSize;
  568 karl  1.1       [Description (
  569           	  "Indicates whether DMA may execute in 'count by byte' mode "
  570           	  "(value=4) or not (value=3).  Also, \"Other\" (1) and "
  571           	  "\"Unknown\" (2) may be defined."),
  572           	 ValueMap {"1", "2", "3", "4"},
  573                  Values {"Other", "Unknown", 
  574           	       "Not execute in 'count by byte' mode", 
  575           	       "Execute in 'count by byte' mode"},
  576                  MappingStrings {"MIF.DMTF|System Resource DMA Info|001.7"}
  577                 ]
  578              uint16 ByteMode;
  579                 [Description (
  580           	  "Indicates whether DMA may execute in 'count by word' mode "
  581           	  "(value=4) or not (value=3).  Also, \"Other\" (1) and "
  582           	  "\"Unknown\" (2) may be defined."),
  583           	 ValueMap {"1", "2", "3", "4"},
  584                  Values {"Other", "Unknown", 
  585           	       "Not execute in 'count by word' mode",
  586           	       "Execute in 'count by word' mode"},
  587                  MappingStrings {"MIF.DMTF|System Resource DMA Info|001.8"}
  588                 ]
  589 karl  1.1    uint16 WordMode;
  590                 [Description (
  591           	  "DMA channel timing.  For example, \"Type A\" (value "
  592           	  "=4) or \"Type F\" (6) could be specified."),
  593           	 ValueMap {"1", "2", "3", "4", "5", "6"},
  594                  Values {"Other", "Unknown", "ISA Compatible", "Type A",
  595           	       "Type B", "Type F"},
  596                  MappingStrings {"MIF.DMTF|System Resource DMA Info|001.9"}
  597                 ]
  598              uint16 ChannelTiming;
  599                 [Description (
  600           	  "Indicates whether C type (burst) timing is supported "
  601           	  "(value=5) or not (value=4). Also, \"Other\" (1), "
  602           	  "\"Unknown\" (2) and \"ISA Compatible\" (3) are defined."),
  603           	 ValueMap {"1", "2", "3", "4", "5"},
  604                  Values {"Other", "Unknown", "ISA Compatible", "Not Supported",
  605           	       "Supported"},
  606                  MappingStrings {"MIF.DMTF|System Resource DMA Info|001.10"}
  607                 ]
  608              uint16 TypeCTiming;
  609           };
  610 karl  1.1 
  611           // ===================================================================
  612           // ComputerSystemResource
  613           // ===================================================================
  614              [Association, Aggregation,
  615               Description (
  616                  "An association between a ComputerSystem and the System"
  617                  "Resources available on it.")
  618              ]
  619           class CIM_ComputerSystemResource : CIM_SystemComponent
  620           {
  621                 [Override ("GroupComponent"), Aggregate,
  622                  Description ("The ComputerSystem."),
  623                  Min (1), Max (1)
  624                 ]
  625              CIM_ComputerSystem REF GroupComponent;
  626                 [Override ("PartComponent"),
  627                  Description ("A SystemResource of the ComputerSystem.")
  628                 ]
  629              CIM_SystemResource REF PartComponent;
  630           };
  631 karl  1.1 
  632           // ===================================================================
  633           // ComputerSystemIRQ
  634           // ===================================================================
  635              [Association, Aggregation,
  636               Description (
  637                  "An association between a ComputerSystem and the IRQs "
  638                  "available on it.")
  639              ]
  640           class CIM_ComputerSystemIRQ : CIM_ComputerSystemResource
  641           {
  642           	[Override ("PartComponent"),
  643                  Description ("An IRQ of the ComputerSystem."), 
  644           	 Weak
  645                 ]
  646              CIM_IRQ REF PartComponent;
  647           };
  648           
  649           // ===================================================================
  650           // ComputerSystemMappedIO
  651           // ===================================================================
  652 karl  1.1    [Association, Aggregation,
  653               Description (
  654                  "An association between a ComputerSystem and the Memory Mapped "
  655                  "I/O ports available on it.")
  656              ]
  657           class CIM_ComputerSystemMappedIO : CIM_ComputerSystemResource
  658           {
  659           	[Override ("PartComponent"),
  660                  Description (
  661             	  "A memory mapped I/O port of the ComputerSystem."), 
  662            	 Weak
  663                 ]
  664              CIM_MemoryMappedIO REF PartComponent;
  665           };
  666           
  667           // ===================================================================
  668           // ComputerSystemDMA
  669           // ===================================================================
  670              [Association, Aggregation,
  671               Description (
  672                  "An association between a ComputerSystem and the DMA channels "
  673 karl  1.1        "available on it.")
  674              ]
  675           class CIM_ComputerSystemDMA : CIM_ComputerSystemResource
  676           {
  677           	[Override ("PartComponent"),
  678                  Description ("A DMA channel of the ComputerSystem."), 
  679           	 Weak
  680                 ]
  681              CIM_DMA REF PartComponent;
  682           };
  683           
  684           // ===================================================================
  685           // AllocatedResource
  686           // ===================================================================
  687              [Association,
  688               Description (
  689                  "An association between LogicalDevices and SystemResources, "
  690                  "indicating that the Resource is assigned to the Device.")
  691              ]
  692           class CIM_AllocatedResource : CIM_Dependency
  693           {
  694 karl  1.1       [Override ("Antecedent"),
  695                  Description ("The Resource.")
  696                 ]
  697              CIM_SystemResource REF Antecedent;
  698                 [Override ("Dependent"),
  699                  Description (
  700           	  "The LogicalDevice to which the Resource is assigned.")
  701                 ]
  702              CIM_LogicalDevice REF Dependent;
  703           };
  704           
  705           // ===================================================================
  706           // AllocatedDMA
  707           // =================================================================== 
  708              [Association, 
  709               Description ( 
  710           	 "An association between a LogicalDevice and a DMA System" 
  711           	 "Resource indicating that the DMA Channel is assigned to the "
  712           	 "Device.")
  713              ]
  714           class CIM_AllocatedDMA : CIM_AllocatedResource
  715 karl  1.1 { 
  716           	[Override ("Antecedent"), 
  717           	 Description ("The DMA Channel.") 
  718           	] 
  719              CIM_DMA REF Antecedent; 
  720           	[Description ( 
  721           	  "Boolean indicating whether the LogicalDevice can act as a " 
  722           	  "bus master on the DMA Channel."),
  723           	 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.6"} 
  724           	] 
  725              boolean BusMaster;
  726           };
  727           
  728           // ===================================================================
  729           // DeviceServiceImplementation
  730           // ===================================================================
  731              [Association,
  732               Description (
  733                  "An association between a Service and how it is implemented. "
  734                  "The cardinality of this association is many-to-many. "
  735                  "A Service may be provided by more than one Logical"
  736 karl  1.1        "Device, operating in conjunction.  And, any Device may "
  737                  "provide more than one Service.  When multiple Devices are "
  738                  "associated with a single Service, it is assumed that these "
  739                  "elements operate in conjunction to provide the Service.  If "
  740                  "different implementations of a Service exist, each of these "
  741                  "implementations would result in individual instantiations "
  742                  "of the Service object.  These individual instantiations "
  743                  "would then have associations to the unique implementations.")
  744              ]
  745           class CIM_DeviceServiceImplementation : CIM_Dependency
  746           {
  747                 [Override ("Antecedent"),
  748                  Description ("The LogicalDevice.")
  749                 ]
  750              CIM_LogicalDevice REF Antecedent;
  751                 [Override ("Dependent"),
  752                  Description ("The Service implemented using the LogicalDevice.")
  753                 ]
  754              CIM_Service REF Dependent;
  755           };
  756           
  757 karl  1.1 // ===================================================================
  758           // DeviceSAPImplementation
  759           // ===================================================================
  760              [Association,
  761               Description (
  762                  "An association between a ServiceAccessPoint and how "
  763                  "it is implemented. The cardinality of this association "
  764                  "is many-to-many.  A SAP may be provided by more "
  765                  "than one LogicalDevice, operating in conjunction.  And, any "
  766                  "Device may provide more than one ServiceAccessPoint. "
  767                  "When many LogicalDevices are associated with a single "
  768                  "SAP, it is assumed that these elements operate in "
  769                  "conjunction to provide the AccessPoint.  If different "
  770                  "implementations of a SAP exist, each of these implementations "
  771                  "would result in individual instantiations of the "
  772                  "ServiceAccessPoint object.  These individual instantiations "
  773                  "would then have associations to the unique implementations.")
  774              ]
  775           class CIM_DeviceSAPImplementation : CIM_Dependency
  776           {
  777                 [Override ("Antecedent"),
  778 karl  1.1        Description ("The LogicalDevice.")
  779                 ]
  780              CIM_LogicalDevice REF Antecedent;
  781                 [Override ("Dependent"),
  782                  Description (
  783           	 "The ServiceAccessPoint implemented using the LogicalDevice.")
  784                 ]
  785              CIM_ServiceAccessPoint REF Dependent;
  786           };
  787           
  788           // ==================================================================
  789           // DeviceErrorCounts
  790           // ==================================================================
  791              [Description (
  792           	 "DeviceErrorCounts is a statistical class containing error-" 
  793           	 "related counters for a LogicalDevice. The types of errors " 
  794           	 "are as defined by CCITT (Rec X.733) and ISO (IEC 10164-4).")
  795              ]
  796           class CIM_DeviceErrorCounts : CIM_StatisticalInformation
  797           {
  798           	[Propagated ("CIM_LogicalDevice.SystemCreationClassName"), 
  799 karl  1.1 	 Key, MaxLen (256),
  800           	 Description ("The scoping System's CreationClassName. ")
  801           	]
  802              string SystemCreationClassName; 
  803           	[Propagated ("CIM_LogicalDevice.SystemName"), 
  804           	 Key, MaxLen (256),
  805           	 Description ("The scoping System's Name. ")
  806           	]
  807              string SystemName; 
  808           	[Propagated ("CIM_LogicalDevice.CreationClassName"), 
  809           	 Key, MaxLen (256),
  810           	 Description ("The scoping Device's CreationClassName. ")
  811           	]
  812              string DeviceCreationClassName; 
  813           	[Propagated ("CIM_LogicalDevice.DeviceID"), 
  814           	 Key, MaxLen (64),
  815           	 Description ("The scoping Device's ID. ")
  816           	]
  817              string DeviceID; 
  818           	[Override ("Name"), 
  819           	 Key, MaxLen (256), 
  820 karl  1.1 	 Description (
  821           	  "The inherited Name serves as part of the key for the " 
  822           	  "DeviceErrorCounts instance. The object is scoped by " 
  823           	  "the LogicalDevice to which the statistics apply. ")
  824           	] 
  825              string Name; 
  826           	[Description ("Count of the indeterminate errors. "),
  827                  Counter
  828                 ] 
  829              uint64 IndeterminateErrorCount; 
  830           	[Description ("Count of the critical errors. "), 
  831           	 MappingStrings {"MIF.DMTF|Operational State|006"}, 
  832                  Counter
  833                 ] 
  834              uint64 CriticalErrorCount; 
  835           	[Description ("Count of the major errors. "), 
  836           	 MappingStrings {"MIF.DMTF|Operational State|006"}, 
  837                  Counter
  838                 ] 
  839              uint64 MajorErrorCount; 
  840           	[Description ("Count of the minor errors. "), 
  841 karl  1.1        Counter
  842                 ] 
  843              uint64 MinorErrorCount; 
  844           	[Description ("Count of the warnings. "), 
  845           	 MappingStrings {"MIF.DMTF|Operational State|006"}, 
  846                  Counter
  847                 ] 
  848              uint64 WarningCount; 
  849           	[Description (
  850           	  "Method to reset the error and warning counters. The method " 
  851           	  "takes one parameter as input - an integer indicating which "
  852           	  "counter to reset. For this input parameter, 0 indicates all, "
  853           	  "1 indicates a reset of the indeterminate error counter, "
  854           	  "2 the critical error counter, 3 the major error counter, "
  855           	  "4 the minor error counter and 5 the warning counter. The "
  856           	  "method returns 0 if successful, 1 if not supported, and any " 
  857           	  "other value if an error occurred. A method is specified so "
  858           	  "that the LogicalDevice's instrumentation, which tabulates "
  859           	  "the errors and warnings, can also reset its internal "
  860           	  "processing and counters.\n"
  861                   "In a subclass, the set of possible return codes could be "
  862 karl  1.1         "specified, using a ValueMap qualifier on the method. The "
  863                   "strings to which the ValueMap contents are 'translated' "
  864                   "may also be specified in the subclass as a Values "
  865                   "array qualifier.")
  866           	]
  867              uint32 ResetCounter ([IN, Values {"All", 
  868               "Indeterminate Error Counter", "Critical Error Counter", 
  869               "Major Error Counter", "Minor Error Counter", 
  870               "Warning Counter"}] uint16 SelectedCounter);
  871           };
  872           
  873           // ==================================================================
  874           // ErrorCountersForDevice
  875           // ================================================================== 
  876              [Association, 
  877               Description (
  878                  "ErrorCountersForDevice relates the DeviceErrorCounts class "
  879           	 "to the LogicalDevice to which it applies. ")
  880              ]
  881           class CIM_ErrorCountersForDevice : CIM_Statistics
  882           { 
  883 karl  1.1 	[Override ("Stats"), 
  884           	 Description (
  885           	  "The statistical object - in this case, the error counter "
  886           	  "class. "), 
  887           	 Weak
  888           	]
  889              CIM_DeviceErrorCounts REF Stats; 
  890           	[Override ("Element"), 
  891           	 Description ("The Device to which the error counters apply. "), 
  892           	 Min(1), Max(1)
  893           	] 
  894              CIM_LogicalDevice REF Element;
  895           };
  896           
  897           // ===================================================================
  898           // VideoBIOSFeature
  899           // ===================================================================
  900              [Description (
  901                  "VideoBIOSFeature represents the capabilities of the low-level "
  902                  "software that is used to bring up, configure and use a "
  903                  "ComputerSystem's VideoController and Display.") 
  904 karl  1.1    ] 
  905           class CIM_VideoBIOSFeature : CIM_SoftwareFeature
  906           {
  907                 [Description (
  908           	  "An array of integers that specify the features supported by "
  909           	  "the VideoBIOS. For example, one could indicate support for "
  910           	  "VESA power management (value=6) or video BIOS shadowing (8). "
  911           	  "The value, 3, is not valid in the CIM Schema since in DMI it "
  912           	  "represents that no BIOS Features are supported.  In this "
  913           	  "case, the object should not be instantiated."),
  914           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9"},
  915                  Values {"Other", "Unknown", "Undefined", "Standard Video BIOS",
  916           	       "VESA BIOS Extensions Supported", 
  917           	       "VESA Power Management Supported", 
  918           	       "VESA Display Data Channel Supported", 
  919           	       "Video BIOS Shadowing Allowed", "Video BIOS Upgradeable"},
  920           	 ArrayType ("Indexed"), 
  921                  MappingStrings {"MIF.DMTF|Video BIOS Characteristic|001.3"},
  922           	 ModelCorrespondence {
  923           	       "CIM_VideoBIOSFeature.CharacteristicDescriptions"}
  924                 ]
  925 karl  1.1    uint16 Characteristics[];
  926                 [Description (
  927           	  "An array of free-form strings providing more detailed "
  928           	  "explanations for any of the VideoBIOS features indicated in "
  929           	  "the Characteristics array. Note, each entry of this array "
  930           	  "is related to the entry in the Characteristics array that "
  931           	  "is located at the same index."),
  932                  ArrayType ("Indexed"),
  933           	 MappingStrings {"MIF.DMTF|Video BIOS Characteristic|001.4"},
  934           	 ModelCorrespondence {"CIM_VideoBIOSFeature.Characteristics"}
  935                 ]
  936              string CharacteristicDescriptions[];
  937           };
  938           
  939           // ===================================================================
  940           // VideoBIOSElement
  941           // ===================================================================
  942              [Description (
  943                  "VideoBIOSElement represents the low-level software that is "
  944                  "loaded into non-volatile storage and used to bring up, "
  945                  "configure and access a ComputerSystem's VideoController and "
  946 karl  1.1        "Display.")
  947              ] 
  948           class CIM_VideoBIOSElement : CIM_SoftwareElement
  949           {
  950                 [Override ("Version"),
  951                  MappingStrings {"MIF.DMTF|Video BIOS|001.3"}
  952                 ]
  953              string Version;
  954                 [Override ("Manufacturer"),
  955                  MappingStrings {"MIF.DMTF|Video BIOS|001.2"}
  956                 ]
  957              string Manufacturer;	
  958                 [Description (
  959           	  "If true, indicates that the Video BIOS is shadowed."),
  960                  MappingStrings {"MIF.DMTF|Video BIOS|001.5"}
  961                 ]
  962              boolean IsShadowed;
  963              		[Description (
  964           		"Date that this BIOS was released."),
  965           		MappingStrings {"MIF.DMTF|Video BIOS|001.4"}
  966           		]
  967 karl  1.1 	datetime ReleaseDate;
  968           };
  969           
  970           // ===================================================================
  971           // VideoBIOSFeatureVideoBIOSElements
  972           // ===================================================================
  973              [Association,
  974               Aggregation,
  975               Description (
  976                  "A link between VideoBIOSFeature and its aggregated "
  977           	 "VideoBIOSElements.")
  978              ] 
  979           class CIM_VideoBIOSFeatureVideoBIOSElements : CIM_SoftwareFeatureSoftwareElements
  980           {
  981                 [Override ("GroupComponent"), Aggregate,
  982                  Description ("The VideoBIOSFeature.")
  983                 ]
  984              CIM_VideoBIOSFeature REF GroupComponent;
  985                 [Override ("PartComponent"),
  986                  Description (
  987           	  "The VideoBIOSElement that implements the capabilities "
  988 karl  1.1 	  "described by VideoBIOSFeature.")
  989                 ]
  990              CIM_VideoBIOSElement REF PartComponent;
  991           };
  992           
  993           // ===================================================================
  994           // DeviceSoftware
  995           // ===================================================================
  996              [Association,
  997               Description (
  998                  "The DeviceSoftware relationship identifies any software that "
  999                  "is associated with a Device - such as drivers, configuration "
 1000                  "or application software, or firmware.")
 1001              ] 
 1002           class CIM_DeviceSoftware : CIM_Dependency
 1003           {
 1004                 [Override ("Antecedent"),
 1005                  Description ("The SoftwareElement.")
 1006                 ]
 1007              CIM_SoftwareElement REF Antecedent;
 1008                 [Override ("Dependent"),
 1009 karl  1.1        Description (
 1010           	  "The LogicalDevice that requires or uses the software.")
 1011                 ]
 1012              CIM_LogicalDevice REF Dependent;
 1013                 [Description (
 1014           	  "An enumerated integer to indicate the role this software "
 1015           	  "plays in regards to its associated Device. For example, this "
 1016           	  "software could be instrumentation (value=5) or firmware (6)."),
 1017                  Values {"Unknown", "Other", "Driver", "Configuration Software", 
 1018           	       "Application Software", "Instrumentation", "Firmware",
 1019                        "BIOS", "Boot ROM"},
 1020           	 ModelCorrespondence {"CIM_DeviceSoftware.PurposeDescription"},
 1021           	 MappingStrings {"MIF.DMTF|SubComponent Software|001.2"} 
 1022                 ]
 1023              uint16 Purpose;
 1024                 [Description (
 1025           	  "A free-form string to provide more information for "
 1026           	  "the Purpose property, e.g. \"Application Software\"."),
 1027           	 ModelCorrespondence {"CIM_DeviceSoftware.Purpose"}
 1028                 ]	
 1029              string PurposeDescription;
 1030 karl  1.1       [Description (
 1031                   "Boolean indicating that the software is 'burned into' or "
 1032                   "otherwise located on the hardware of the LogicalDevice.")
 1033                 ]
 1034              boolean LoadedOnDevice; 
 1035                 [Description (
 1036                   "Boolean indicating whether the software is upgradeable, "
 1037                   "when it is LoadedOnDevice. Software that is loaded as "
 1038                   "part of the OperatingSystem is typically changeable and "
 1039                   "upgradeable. However, when DeviceSoftware is burned into "
 1040                   "EEPROM or a chip that Realizes the LogicalDevice, then "
 1041                   "it may not be upgradeable. This property indicates the "
 1042                   "ability to update and upgrade DeviceSoftware.")
 1043                 ]
 1044              boolean UpgradeableOnDevice;
 1045           };
 1046           
 1047           // ===================================================================
 1048           // RedundancyGroup
 1049           // ===================================================================
 1050              [Description (
 1051 karl  1.1        "A class derived from LogicalElement that is a special "
 1052                  "collection of ManagedSystemElements. This collection indicates "
 1053                  "that the aggregated components together provide redundancy. "
 1054                  "All elements aggregated in a RedundancyGroup should be "
 1055                  "instantiations of the same object class.")
 1056              ] 
 1057           class CIM_RedundancyGroup : CIM_LogicalElement
 1058           {
 1059                 [Key, MaxLen (256),
 1060                  Description (
 1061                   "CreationClassName indicates the name of the class or "
 1062                   "the subclass used in the creation of an instance. When "
 1063                   "used with the other key properties of this class, this "
 1064                   "property allows all instances of this class and its "
 1065                   "subclasses to be uniquely identified.") 
 1066                 ]
 1067              string CreationClassName;
 1068                 [Override("Name"), 
 1069                  Key, MaxLen (256),
 1070                  Description (
 1071           	  "The RedundancyGroup Name serves as the key for the "
 1072 karl  1.1 	  "Group's instance in an enterprise environment.")
 1073                 ]
 1074              string Name;
 1075                 [Description (
 1076           	  "RedundancyStatus provides information on the state of the "
 1077           	  "RedundancyGroup. \"Fully Redundant\" (value=2) means that "
 1078           	  "all of the configured redundancy is still available; "
 1079           	  "\"Degraded Redundancy\" (3) means that some failures have "
 1080           	  "been experienced but some reduced amount of redundancy is "
 1081           	  "still available; \"Redundancy Lost\" (4) means that a "
 1082           	  "sufficient number of failures have been experienced such "
 1083           	  "that no redundancy is available and the next failure "
 1084           	  "experienced will cause overall failure. Also, the values, "
 1085           	  "\"Other\" (1) and \"Unknown\" (0), are defined."),
 1086                  Values {"Unknown", "Other", "Fully Redundant", 
 1087           	       "Degraded Redundancy", "Redundancy Lost"}
 1088                 ]
 1089              uint16 RedundancyStatus;
 1090           };
 1091           
 1092           // ===================================================================
 1093 karl  1.1 // RedundancyComponent
 1094           // ===================================================================
 1095              [Association,
 1096               Aggregation,
 1097               Description (
 1098                  "A RedundancyGroup aggregates Managed System Elements and "
 1099                  "indicates that these elements, taken together, provide "
 1100                  "redundancy. All elements aggregated in a RedundancyGroup "
 1101                  "should be instantiations of the same object class.")
 1102              ] 
 1103           class CIM_RedundancyComponent : CIM_Component
 1104           {
 1105                 [Override ("GroupComponent"),
 1106                  Aggregate,
 1107                  Description (
 1108           	  "The RedundancyComponent association indicates that "
 1109           	  "'this set of fans' or 'these physical extents' participate "
 1110           	  "in a single RedundancyGroup.")
 1111                 ]
 1112              CIM_RedundancyGroup REF GroupComponent;
 1113           };
 1114 karl  1.1 
 1115           // ===================================================================
 1116           // SpareGroup
 1117           // ===================================================================
 1118              [Description (
 1119                  "A class derived from RedundancyGroup indicating that one or "
 1120                  "more of the aggregated elements can be spared. (The actual "
 1121                  "Spares are defined using the ActsAsSpare association.) An "
 1122                  "example is the use of redundant NICs in a ComputerSystem - "
 1123                  "where one NIC is primary and the other is Spare. The 'primary' "
 1124                  "NIC would be a member of the SpareGroup (associated using the "
 1125                  "RedundancyComponent class) and the 'other' NIC would be "
 1126                  "associated using the ActsAsSpare relationship.")
 1127              ] 
 1128           class CIM_SpareGroup : CIM_RedundancyGroup
 1129           {
 1130           		[Description (
 1131                    "This method is forces a failover from one ManagedSystemElement "
 1132                    "to another.  There are two parameters to the Failover method," 
 1133                    "FailoverFrom and FailoverTo. The FailoverFrom parameter is a "
 1134                    "reference to the primary ManagedSystemElement that will become "
 1135 karl  1.1          "inactive after the method. This Element should be associated with the "
 1136                    "SpareGroup through the RedundancyComponent relationship. The Failover"
 1137                    "To parameter is a reference to the ManagedSystemElement that will take "
 1138                    "over for the primary. This Element should be associated with the "
 1139                    "SpareGroup through the ActsAsSpare association. Once the failover has "
 1140                    "occurred, the SpareGroup and the RedundancyComponent and ActsAsSpare "
 1141                    "associations will be updated with current status.  For example, " 
 1142                    "the ActsAsSpare association that contained the FailoverTo Element will "
 1143                    "be deleted and a new RedundancyComponent association instantiated in "
 1144                    "its place. The method should return 0 if successful, 1 if the request "
 1145                    "is not supported, and some other value if any other error occurred. In "
 1146                    "a subclass, the set of possible return codes could be specified, using "
 1147                    "a ValueMap qualifier on the method. The strings to which the ValueMap "
 1148                    "contents are 'translated' may also be specified in the subclass as a "
 1149                    "Values array qualifier.") ]
 1150               uint32 Failover([IN] CIM_ManagedSystemElement REF FailoverFrom, 
 1151                               [IN] CIM_ManagedSystemElement REF FailoverTo);      
 1152           };
 1153           
 1154           // ===================================================================
 1155           // ActsAsSpare
 1156 karl  1.1 // ===================================================================
 1157              [Association,
 1158               Description (
 1159                  "The ActsAsSpare association indicates which elements can spare "
 1160                  "or replace the other aggregated elements.  The fact that a "
 1161                  "spare can operate in \"hot standby\" mode is specified on an "
 1162                  "element by element basis.")
 1163              ]
 1164           class CIM_ActsAsSpare 
 1165           {
 1166                 [Key, Description ("The SpareGroup")
 1167                 ]
 1168              CIM_SpareGroup REF Group;
 1169                 [Key, Description (
 1170           	  "A ManagedSystemElement acting as a spare and participating "
 1171           	  "in the SpareGroup.")
 1172                 ]
 1173              CIM_ManagedSystemElement REF Spare; 
 1174                 [Description (
 1175            	  "HotStandby is a boolean indicating that the spare is "
 1176           	  "operating as a hot standby.")
 1177 karl  1.1       ]
 1178              boolean HotStandby;   
 1179           };
 1180           
 1181           // ===================================================================
 1182           // StorageRedundancyGroup
 1183           // ===================================================================
 1184              [Description (
 1185                  "A class derived from RedundancyGroup containing mass "
 1186                  "storage-related redundancy information. StorageRedundancy"
 1187                  "Groups are used to protect user data.  They are made up of one "
 1188                  "or more PhysicalExtents, or one or more AggregatePExtents. "
 1189                  "StorageRedundancyGroups may overlap.  However, the "
 1190                  "underlying Extents within the overlap should not contain "
 1191                  "any check data.")
 1192              ] 
 1193           class CIM_StorageRedundancyGroup : CIM_RedundancyGroup 
 1194           {
 1195                 [Description (
 1196                   "The TypeOfAlgorithm specifies the algorithm used for data "
 1197                   "redundancy and reconstruction. For example, \"P+Q\" (value"
 1198 karl  1.1         "=5) or \"P+S\" (7) may be specified. The value of 0, is "
 1199                   "defined as \"None\" to indicate that data redundancy is not "
 1200                   "active. An inactive redundancy should only be instantiated "
 1201                   "if data striping or concatenation are active. These are "
 1202                   "indicated by the IsStriped or IsConcatentated boolean "
 1203                   "properties of this RedundancyGroup."), 
 1204                  Values {"None", "Other", "Unknown", "Copy", "XOR", "P+Q", 
 1205                        "S", "P+S"}, 
 1206                  MappingStrings {"MIF.DMTF|Redundancy Group|001.2"}
 1207                 ]
 1208              uint16 TypeOfAlgorithm;
 1209                 [Description (
 1210                   "StorageRedundancy provides additional information on the "
 1211                   "state of the RedundancyGroup, beyond the RedundancyStatus "
 1212                   "property. Information like \"Reconfig In Progress\" (value"
 1213                   "=1) or \"Redundancy Disabled\" can be specified using "
 1214                   "this property."), 
 1215                  Values {"No Additional Status", "Reconfig In Progress", 
 1216                        "Data Lost", "Not Currently Configured", 
 1217                        "Protected Rebuild", "Redundancy Disabled", 
 1218                        "Unprotected Rebuild", "Recalculating", "Verifying"}
 1219 karl  1.1       ]
 1220              uint16 StorageRedundancy;
 1221                 [Description (
 1222                   "True indicates that the data is striped across the various "
 1223                   "StorageExtents in the Group.")
 1224                 ]
 1225              boolean IsStriped;
 1226                 [Description (
 1227                   "True indicates that the data is concatenated across the "
 1228                   "various StorageExtents in the Group.")
 1229                 ]
 1230              boolean IsConcatenated;
 1231           };
 1232           
 1233           // ===================================================================
 1234           // ExtraCapacityGroup
 1235           // ===================================================================
 1236              [Description (
 1237                  "A class derived from RedundancyGroup indicating that the "
 1238                  "aggregated elements have more capacity or capability than is "
 1239                  "needed.  An example of this type of redundancy is the "
 1240 karl  1.1        "installation of N+1 power supplies or fans in a system.")
 1241              ] 
 1242           class CIM_ExtraCapacityGroup : CIM_RedundancyGroup
 1243           {
 1244                 [Description (
 1245           	  "MinNumberNeeded indicates the smallest number of elements "
 1246           	  "that must be operational in order to have redundancy.  "
 1247           	  "For example, in an N+1 redundancy relationship, "
 1248            	  "the MinNumberNeeded property should be set equal to N.")
 1249                 ]
 1250              uint32 MinNumberNeeded;
 1251                 [Description (
 1252                   "Boolean indicating whether load balancing is supported by "
 1253                   "the ExtraCapacityGroup.")
 1254                 ]
 1255              boolean LoadBalancedGroup; 
 1256           };
 1257           
 1258           // ===================================================================
 1259           // LogicalPort 
 1260           // ===================================================================
 1261 karl  1.1    [Description (
 1262                  "The abstraction of a port or connection point of a Device. "
 1263                  "This object should be instantiated when the Port has "
 1264                  "independent management characteristics from the Device that "
 1265                  "includes it. Examples are a Fibre Channel Port and a USB Port. "
 1266                  "This class would not be instantiated for an Ethernet Port which "
 1267                  "is not managed independently of the EthernetAdapter.")
 1268              ]
 1269           class CIM_LogicalPort : CIM_LogicalDevice
 1270           {
 1271                 [Description ("The speed of the Port in Bits per Second."), 
 1272                  Units ("Bits per Second")
 1273                 ]
 1274              uint64 Speed;
 1275                 [Description (
 1276                   "The max speed of the Port in Bits per Second."), 
 1277                  Units ("Bits per Second")
 1278                 ]
 1279              uint64 MaxSpeed;
 1280           };
 1281           
 1282 karl  1.1 // ===================================================================
 1283           // PortOnDevice 
 1284           // ===================================================================
 1285              [Association, 
 1286               Description (
 1287                  "PortOnDevice associates a Port or connection point with its "
 1288                  "Device.")
 1289              ]
 1290           class CIM_PortOnDevice : CIM_Dependency
 1291           {
 1292                 [Override ("Antecedent"), 
 1293                  Description ("The Device that includes the Port.")
 1294                 ]
 1295              CIM_LogicalDevice REF Antecedent;
 1296                 [Override ("Dependent"), 
 1297                  Description ("The Port on the Device.")
 1298                 ]
 1299              CIM_LogicalPort REF Dependent;
 1300           };
 1301           
 1302           // ===================================================================
 1303 karl  1.1 // Printer
 1304           // ===================================================================
 1305              [Description (
 1306                  "Capabilities and management of the Printer LogicalDevice.")
 1307              ] 
 1308           class CIM_Printer : CIM_LogicalDevice
 1309           {   
 1310                 [Description (
 1311           	  "Status information for a Printer, beyond that specified "
 1312           	  "in the LogicalDevice Availability property. Values include "
 1313           	  "\"Idle\" (3) and an indication that the Device is currently "
 1314           	  "printing (4)."),
 1315           	 ValueMap {"1", "2", "3", "4", "5", "6", "7"},
 1316                  Values {"Other", "Unknown", "Idle", "Printing", "Warmup",
 1317                        "Stopped Printing", "Offline"},
 1318                  MappingStrings {"MIB.IETF|Printer-MIB.hrPrinterStatus"}
 1319                 ]
 1320              uint16 PrinterStatus;
 1321                 [Description ("Printer error information."),
 1322                  Values {"Unknown", "Other", "No Error", "Low Paper", 
 1323           	       "No Paper", "Low Toner", 
 1324 karl  1.1 	       "No Toner", "Door Open", "Jammed", "Offline", 
 1325           	       "Service Requested", "Output Bin Full"}, 
 1326                  ModelCorrespondence {"CIM_Printer.ErrorInformation"}, 
 1327                  MappingStrings {
 1328                        "MIB.IETF|Printer-MIB.hrPrinterDetectedErrorState"}
 1329                 ]
 1330              uint16 DetectedErrorState;
 1331                 [Description (
 1332                   "An array providing supplemental information for the "
 1333                   "current error state, indicated in DetectedErrorState."),
 1334                  ModelCorrespondence {"CIM_Printer.DetectedErrorState"}
 1335                 ]
 1336              string ErrorInformation[];
 1337                 [Description (
 1338           	  "An integer array indicating the types of paper supported."),
 1339                  Values {"Unknown", "Other", "A", "B", "C", "D", "E", 
 1340           	       "Letter", "Legal", "NA-10x13-Envelope", "NA-9x12-Envelope", 
 1341           	       "NA-Number-10-Envelope", "NA-7x9-Envelope", 
 1342           	       "NA-9x11-Envelope", "NA-10x14-Envelope",
 1343           	       "NA-Number-9-Envelope", "NA-6x9-Envelope",
 1344           	       "NA-10x15-Envelope", "A0", "A1", "A2", "A3", "A4", "A5",
 1345 karl  1.1 	       "A6", "A7", "A8", "A9" "A10", "B0", "B1", "B2", "B3", "B4",
 1346           	       "B5", "B6", "B7", "B8", "B9", "B10", "C0", "C1", "C2" "C3",
 1347           	       "C4", "C5", "C6", "C7", "C8", "ISO-Designated", "JIS B0",
 1348           	       "JIS B1", "JIS B2", "JIS B3", "JIS B4", "JIS B5", "JIS B6",
 1349           	       "JIS B7", "JIS B8", "JIS B9", "JIS B10", 
 1350                        "NA-Letter", "NA-Legal", "B4-Envelope", "B5-Envelope", 
 1351                        "C3-Envelope", "C4-Envelope", "C5-Envelope", "C6-Envelope", 
 1352                        "Designated-Long-Envelope", "Monarch-Envelope", 
 1353                        "Executive", "Folio", "Invoice", "Ledger", "Quarto"}
 1354                 ]
 1355              uint16 PaperSizesSupported[];
 1356                 [Description (
 1357                   "An array of free-form strings specifying the types of "
 1358                   "paper that are currently available on the Printer. Each "
 1359                   "string should be expressed in the form specified by "
 1360                   "ISO/IEC 10175 Document Printing Application (DPA) which "
 1361                   "is also summarized in Appendix C of RFC 1759 (Printer MIB). "
 1362                   "Examples of valid strings are \"iso-a4-colored\" and "
 1363                   "\"na-10x14-envelope\". By definition a paper size that "
 1364                   "is available and listed in PaperTypesAvailable should "
 1365                   "also appear in the PaperSizesSupported property."), 
 1366 karl  1.1        ArrayType ("Indexed"), 
 1367                  ModelCorrespondence {"CIM_PrintJob.RequiredPaperType", 
 1368                        "CIM_PrintService.PaperTypesAvailable"}, 
 1369                  MappingStrings {"MIB.IETF|Printer-MIB.prtInputMediaName"}
 1370                 ]
 1371              string PaperTypesAvailable[];
 1372                 [Description (
 1373                   "Specifies the paper type that the Printer will use if a "
 1374                   "PrintJob does not specify a particular type. The string "
 1375                   "should be expressed in the form specified by ISO/IEC "
 1376                   "10175 Document Printing Application (DPA) which is also "
 1377                   "summarized in Appendix C of RFC 1759 (Printer MIB)."), 
 1378                  ModelCorrespondence {"CIM_Printer.PaperTypesAvailable"}
 1379                 ]
 1380              string DefaultPaperType;
 1381                 [Description (
 1382                   "Specifies the paper type that the Printer is currently "
 1383                   "using. The string should be expressed in the form specified "
 1384                   "by ISO/IEC 10175 Document Printing Application (DPA) which "
 1385                   "is also summarized in Appendix C of RFC 1759 (Printer MIB)."), 
 1386                  ModelCorrespondence {"CIM_Printer.PaperTypesAvailable"}
 1387 karl  1.1       ]
 1388              string CurrentPaperType;
 1389                 [Description (
 1390           	  "An array indicating the print languages natively supported."),
 1391           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 1392           	       "11", "12", "13", "14", "15", "16", "17", "18", "19",
 1393           	       "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 1394           	       "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 1395           	       "38", "39", "40", "41", "42", "43", "44", "45", "46", "47"},
 1396                  Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 1397           	       "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 1398           	       "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 1399           	       "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 1400           	       "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 1401           	       "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 1402           	       "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 1403           	       "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
 1404                  MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"},
 1405                  ModelCorrespondence {"CIM_Printer.MimeTypesSupported", 
 1406                        "CIM_PrintJob.Language", 
 1407                        "CIM_PrintService.LanguagesSupported"}
 1408 karl  1.1       ]
 1409              uint16 LanguagesSupported[];
 1410                 [Description (
 1411                   "An array of free-form strings providing more detailed "
 1412                   "explanations of any mime types that are supported by "
 1413                   "the Printer. If data is provided for this property, then "
 1414                   "the value 47, \"Mime\", should be included in the Languages"
 1415                   "Supported property."), 
 1416                  ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 1417                        "CIM_PrintJob.MimeTypes", 
 1418                        "CIM_PrintService.MimeTypesSupported"}
 1419                 ]
 1420              string MimeTypesSupported[];
 1421                 [Description (
 1422                   "Indicates the current printer language being used. A "
 1423                   "language that is being used by the Printer should also be "
 1424                   "listed in LanguagesSupported."), 
 1425           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 1426           	       "11", "12", "13", "14", "15", "16", "17", "18", "19",
 1427           	       "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 1428           	       "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 1429 karl  1.1 	       "38", "39", "40", "41", "42", "43", "44", "45", "46", "47"},
 1430                  Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 1431           	       "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 1432           	       "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 1433           	       "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 1434           	       "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 1435           	       "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 1436           	       "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 1437           	       "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
 1438                  ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 1439                        "CIM_Printer.CurrentMimeType"}
 1440                 ]
 1441              uint16 CurrentLanguage;
 1442                 [Description (
 1443                   "Specifies the mime type currently being used by the "
 1444                   "Printer if the CurrentLanguage is set to indicate a "
 1445                   "mime type is in use (value = 47)."), 
 1446                  ModelCorrespondence {"CIM_Printer.CurrentLanguage"}
 1447                 ]
 1448              string CurrentMimeType;
 1449                 [Description (
 1450 karl  1.1         "Indicates the default printer language. A language that "
 1451                   "is used as a default by the Printer should also be listed "
 1452                   "in LanguagesSupported."), 
 1453           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 1454           	       "11", "12", "13", "14", "15", "16", "17", "18", "19",
 1455           	       "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 1456           	       "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 1457           	       "38", "39", "40", "41", "42", "43", "44", "45", "46", "47"},
 1458                  Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 1459           	       "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 1460           	       "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 1461           	       "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 1462           	       "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 1463           	       "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 1464           	       "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 1465           	       "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"},
 1466                  ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 1467                        "CIM_Printer.DefaultMimeType"}
 1468                 ]
 1469              uint16 DefaultLanguage;
 1470                 [Description (
 1471 karl  1.1         "Specifies the default mime type used by the Printer if the "
 1472                   "DefaultLanguage is set to indicate a mime type is in use "
 1473                   "(value=47)."), 
 1474                  ModelCorrespondence {"CIM_Printer.DefaultLanguage"}
 1475                 ]
 1476              string DefaultMimeType;
 1477                 [Description (
 1478           	  "Printer jobs processed since last reset.  These jobs may be "
 1479           	  "processed from one or more PrintQueues."), 
 1480                  Counter
 1481                 ] 
 1482              uint32 JobCountSinceLastReset;
 1483                 [Description ("Time of last reset of the Printer Device.")]
 1484              datetime TimeOfLastReset;
 1485                 [Description (
 1486           	  "An array of integers indicating Printer capabilities. "
 1487           	  "Information such as \"Duplex Printing\" (value=3) or "
 1488           	  "\"Transparency Printing\" (7) is specified in this "
 1489           	  "property."),
 1490           	 ArrayType ("Indexed"), 
 1491                  Values {"Unknown", "Other", "Color Printing", 
 1492 karl  1.1 	       "Duplex Printing", "Copies", "Collation", "Stapling", 
 1493           	       "Transparency Printing", "Punch", "Cover", "Bind", 
 1494                        "Black and White Printing", "One Sided", 
 1495                        "Two Sided Long Edge", "Two Sided Short Edge", 
 1496                        "Portrait", "Landscape", "Reverse Portrait", 
 1497                        "Reverse Landscape", "Quality High", "Quality Normal", 
 1498                        "Quality Low"}, 
 1499                  ModelCorrespondence {"CIM_Printer.CapabilityDescriptions", 
 1500                        "CIM_PrintJob.Finishing", 
 1501                        "CIM_PrintService.Capabilities"}
 1502                 ]
 1503              uint16 Capabilities[];
 1504                 [Description (
 1505           	  "An array of free-form strings providing more detailed "
 1506           	  "explanations for any of the Printer features indicated in "
 1507           	  "the Capabilities array. Note, each entry of this array "
 1508           	  "is related to the entry in the Capabilities array that "
 1509           	  "is located at the same index."),
 1510                  ArrayType ("Indexed"),
 1511           	 ModelCorrespondence {"CIM_Printer.Capabilities"}
 1512                 ]
 1513 karl  1.1    string CapabilityDescriptions[];
 1514                 [Description (
 1515                   "Specifies which finishings and other capabilities of "
 1516                   "the Printer will be used by default. An entry in Default"
 1517                   "Capabilities should also be listed in the Capabilities "
 1518                   "array."), 
 1519                  Values {"Unknown", "Other", "Color Printing", 
 1520           	       "Duplex Printing", "Copies", "Collation", "Stapling", 
 1521           	       "Transparency Printing", "Punch", "Cover", "Bind", 
 1522                        "Black and White Printing", "One Sided", 
 1523                        "Two Sided Long Edge", "Two Sided Short Edge", 
 1524                        "Portrait", "Landscape", "Reverse Portrait", 
 1525                        "Reverse Landscape", "Quality High", "Quality Normal", 
 1526                        "Quality Low"}, 
 1527                  ModelCorrespondence {"CIM_Printer.Capabilities"}
 1528                 ]
 1529              uint16 DefaultCapabilities[];
 1530                 [Description (
 1531                   "Specifies which finishings and other capabilities of "
 1532                   "the Printer are currently being used. An entry in this "
 1533                   "property should also be listed in the Capabilities array."), 
 1534 karl  1.1        Values {"Unknown", "Other", "Color Printing", 
 1535           	       "Duplex Printing", "Copies", "Collation", "Stapling", 
 1536           	       "Transparency Printing", "Punch", "Cover", "Bind", 
 1537                        "Black and White Printing", "One Sided", 
 1538                        "Two Sided Long Edge", "Two Sided Short Edge", 
 1539                        "Portrait", "Landscape", "Reverse Portrait", 
 1540                        "Reverse Landscape", "Quality High", "Quality Normal", 
 1541                        "Quality Low"}, 
 1542                  ModelCorrespondence {"CIM_Printer.Capabilities"}
 1543                 ]
 1544              uint16 CurrentCapabilities[];
 1545                 [Description (
 1546                   "The maximum number of copies that can be produced by "
 1547                   "the Printer from a single Job."), 
 1548                  ModelCorrespondence {"CIM_PrintJob.Copies"}
 1549                 ]
 1550              uint32 MaxCopies;
 1551                 [Description (
 1552                   "The number of copies that will be produced for a "
 1553                   "single Job unless otherwise specified.")
 1554                 ]
 1555 karl  1.1    uint32 DefaultCopies;
 1556                 [Description (
 1557                   "The maximum number of print-stream pages that the "
 1558                   "Printer can render onto a single media sheet."), 
 1559                  ModelCorrespondence {"CIM_PrintJob.NumberUp"}
 1560                 ]
 1561              uint32 MaxNumberUp;
 1562                 [Description (
 1563                   "The number of print-stream pages that the Printer will "
 1564                   "render onto a single media sheet unless a Job specifies "
 1565                   "otherwise.")
 1566                 ]
 1567              uint32 DefaultNumberUp;
 1568                 [Description (
 1569           	  "Printer's horizontal resolution in Pixels per Inch."),
 1570                  Units ("Pixels per Inch"), 
 1571                  ModelCorrespondence {"CIM_PrintJob.HorizontalResolution"}
 1572                 ]
 1573              uint32 HorizontalResolution;
 1574                 [Description (
 1575           	  "Printer's vertical resolution in Pixels per Inch."),
 1576 karl  1.1        Units ("Pixels per Inch"),
 1577                  ModelCorrespondence {"CIM_PrintJob.HorizontalResolution"}
 1578                 ]
 1579              uint32 VerticalResolution;
 1580                 [Description (
 1581                   "Identifies the available character sets for the output "
 1582                   "of text related to managing the Printer. Strings "
 1583                   "provided in this property should conform to the "
 1584                   "semantics and syntax specified by section 4.1.2 "
 1585                   "(\"Charset parameter\") in RFC 2046 (MIME Part 2) and "
 1586                   "contained in the IANA character-set registry. Examples "
 1587                   "include \"utf-8\", \"us-ascii\" and \"iso-8859-1\"."), 
 1588                  ArrayType ("Indexed"), 
 1589                  ModelCorrespondence {"CIM_PrintJob.CharSet"}, 
 1590                  MappingStrings {
 1591                      "MIB.IETF|Printer-MIB.prtLocalizationCharacterSet"}
 1592                 ]
 1593              string CharSetsSupported[];
 1594                 [Description (
 1595                   "Specifies the current character set being used for "
 1596                   "the output of text relating to management of the "
 1597 karl  1.1         "Printer. The character set described by this property "
 1598                   "should also be listed in CharsetsSupported. The string "
 1599                   "specified by this property should conform to the "
 1600                   "semantics and syntax specified by section 4.1.2 "
 1601                   "(\"Charset parameter\") in RFC 2046 (MIME Part 2) and "
 1602                   "contained in the IANA character-set registry. Examples "
 1603                   "include \"utf-8\", \"us-ascii\" and \"iso-8859-1\"."), 
 1604                  ModelCorrespondence {"CIM_Printer.CharSetsSupported"}
 1605                 ]
 1606              string CurrentCharSet;
 1607                 [Description (
 1608                   "Identifies the available languages for strings used by "
 1609                   "the Printer for the output of management information. "
 1610                   "The strings should conform to RFC 1766, for example "
 1611                   "\"en\" is used for English."), 
 1612                  ArrayType ("Indexed"), 
 1613                  MappingStrings {
 1614                      "MIB.IETF|Printer-MIB.prtLocalizationLanguage"}, 
 1615                  ModelCorrespondence {"CIM_PrintJob.NaturalLanguage"}
 1616                 ]
 1617              string NaturalLanguagesSupported[];
 1618 karl  1.1       [Description (
 1619                   "Identifies the current language being used by the "
 1620                   "Printer for management. The language listed in the "
 1621                   "CurrentNaturalLanguage property should also be listed "
 1622                   "in NaturalLanguagesSupported."), 
 1623                  ModelCorrespondence {"CIM_Printer.NaturalLanguagesSupported"}
 1624                 ]
 1625              string CurrentNaturalLanguage;
 1626                 [Description (
 1627                   "Specifies the largest Job (as a byte stream) that the "
 1628                   "Printer will accept in units of Kbytes. A value of zero "
 1629                   "indicates that no limit has been set."), 
 1630                  Units ("KiloBytes"), 
 1631                  ModelCorrespondence {"CIM_PrintJob.JobSize"}
 1632                 ]
 1633              uint32 MaxSizeSupported;
 1634                 [Description (
 1635                   "Describes all of the job sheets that are available on "
 1636                   "the Printer. This can also be used to describe the banner "
 1637                   "that a Printer might provide at the beginning of each Job, "
 1638                   "or can describe other user specified options."), 
 1639 karl  1.1        ModelCorrespondence {"CIM_PrintJob.RequiredJobSheets"}
 1640                 ]
 1641              string AvailableJobSheets[];
 1642                 [Description (
 1643                   "Specifies the marking technology used by the Printer."), 
 1644                  ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", 
 1645                          "10", "11", "12", "13", "14", "15", "16", "17", 
 1646                          "18", "19", "20", "21", "22", "23", "24", "25", 
 1647                          "26", "27"}, 
 1648                  Values {"Other", "Unknown", "Electrophotographic LED", 
 1649                        "Electrophotographic Laser",  
 1650                        "Electrophotographic Other", 
 1651                        "Impact Moving Head Dot Matrix 9pin", 
 1652                        "Impact Moving Head Dot Matrix 24pin", 
 1653                        "Impact Moving Head Dot Matrix Other", 
 1654                        "Impact Moving Head Fully Formed", 
 1655                        "Impact Band", "Impact Other", "Inkjet Aqueous", 
 1656                        "Inkjet Solid", "Inkjet Other", "Pen", 
 1657                        "Thermal Transfer", "Thermal Sensitive", 
 1658                        "Thermal Diffusion", "Thermal Other", 
 1659                        "Electroerosion", "Electrostatic", 
 1660 karl  1.1              "Photographic Microfiche", 
 1661                        "Photographic Imagesetter", "Photographic Other", 
 1662                        "Ion Deposition", "eBeam", "Typesetter"}, 
 1663                  MappingStrings {"MIB.IETF|Printer-MIB.prtMarkerMarkTech"}
 1664                 ]
 1665              uint16 MarkingTechnology;
 1666           };
 1667           
 1668           // ===================================================================
 1669           // PrintQueue 
 1670           // ===================================================================
 1671              [Description (
 1672                  "Capabilities and management of a Printer Queue. A PrintQueue "
 1673                  "holds PrintJobs - which are placed on the Queue by a Print"
 1674                  "Service. Jobs can move from Queue to Queue.")
 1675              ]
 1676           class CIM_PrintQueue : CIM_JobDestination
 1677           {
 1678                 [Description (
 1679                   "Indicates that Jobs on the Queue will be passed to a "
 1680                   "Printer. When FALSE, a Job will remain on the Queue and "
 1681 karl  1.1         "will not be passed to a Printer for output.")
 1682                 ]
 1683              boolean QueueEnabled;
 1684                 [Description (
 1685                   "When FALSE, no PrintService can place PrintJobs on the "
 1686                   "PrintQueue. The ability of an individual PrintService "
 1687                   "to place a Job on the Queue can be specified using the "
 1688                   "QueueAcceptingFromService property in the QueueForPrint"
 1689                   "Service association.")
 1690                 ]
 1691              boolean QueueAccepting;
 1692                 [Description ("The current number of Jobs on the Queue."),
 1693                  Gauge
 1694                 ]
 1695              uint32 NumberOnQueue;
 1696                 [Description (
 1697                   "Gives Queue-specific status information, beyond the "
 1698                   "ManagedSystemElement.Status property. This may be used to "
 1699                   "provide further qualification as to the status of the "
 1700                   "Queue or to indicate a secondary condition (e.g. spool "
 1701                   "area is full)."), 
 1702 karl  1.1        Values {"Other", "Unknown", "No Additional Status", 
 1703                        "QueueSpoolAreaFull"}
 1704                 ]
 1705              uint16 QueueStatus;
 1706                 [Description (
 1707                   "Provides a textual explanation for the status of the Queue. "
 1708                   "The settings of both QueueStatus and the Status property "
 1709                   "inherited from ManagedSystemElement may be described by "
 1710                   "QueueStatusInfo. For example, if \"Stopping\" is the value "
 1711                   "assigned to Status, then this property may contain an "
 1712                   "explanation as to why the Queue is being stopped.")
 1713                 ]
 1714              string QueueStatusInfo;
 1715                 [Description (
 1716                   "Specifies the largest possible Job (in terms of a single "
 1717                   "byte stream) that may be submitted to this Queue. A value "
 1718                   "of zero indicates that no limit has been set. Units "
 1719                   "are Kbytes."), 
 1720                  Units ("KiloBytes"), 
 1721                  ModelCorrespondence {"CIM_PrintJob.JobSize"}
 1722                 ]
 1723 karl  1.1    uint32 MaxJobSize;
 1724                 [Description (
 1725                   "Specifies the priority that will be assigned to a new Job "
 1726                   "being submitted to this Queue, if the Job does not "
 1727                   "explicitly specify a priority. The range of valid priorities "
 1728                   "and the interpretation of priorities may be determined from "
 1729                   "the JobPriorityHigh and JobPriorityLow properties."), 
 1730                  ModelCorrespondence {"CIM_PrintQueue.JobPriorityHigh", 
 1731                        "CIM_PrintQueue.JobPriorityLow"}
 1732                 ]
 1733              uint32 DefaultJobPriority;
 1734                 [Description (
 1735                   "Specifies the numeric value that is used to represent the "
 1736                   "highest priority Jobs that are submitted to this Queue. The "
 1737                   "range of numeric values for priority may be inversed, e.g. "
 1738                   "a high priority job is represented by a low integer value. "
 1739                   "This is indicated by JobPriorityLow being greater than "
 1740                   "JobPriorityHigh. If both values (PriorityLow and Priority"
 1741                   "High) are assigned to zero, then the Queue does not support "
 1742                   "Job priorities."), 
 1743                  ModelCorrespondence {"CIM_PrintQueue.JobPriorityLow", 
 1744 karl  1.1              "CIM_Job.Priority"}
 1745                 ]
 1746              uint32 JobPriorityHigh;
 1747                 [Description (
 1748                   "Specifies the numeric value that is used to represent the "
 1749                   "lowest priority Jobs that are submitted to this Queue. The "
 1750                   "range of numeric values for priority may be inversed, e.g. "
 1751                   "a low priority job is represented by a high integer value. "
 1752                   "This is indicated by JobPriorityLow being greater than "
 1753                   "JobPriorityHigh. If both values (PriorityLow and PriorityHigh) "
 1754                   "are assigned to zero, then the Queue does not support "
 1755                   "Job priorities."), 
 1756                  ModelCorrespondence {"CIM_PrintQueue.JobPriorityHigh", 
 1757                        "CIM_Job.Priority"}
 1758                 ]
 1759              uint32 JobPriorityLow;
 1760                 [Description (
 1761                   "Specifies the job sheets that are supported by this Queue. "
 1762                   "Typically the job sheets provided by a Queue will be the "
 1763                   "union or aggregation of those provided by all the Printers "
 1764                   "that it supports. However, a system administrator may choose "
 1765 karl  1.1         "to restrict access to some job sheets on a particular Queue. "
 1766                   "A Queue might also support additional job sheets through the "
 1767                   "use of a filter that adds a banner or some other page when a "
 1768                   "Job is taken from the Queue."), 
 1769                  ModelCorrespondence {"CIM_PrintJob.RequiredJobSheets"}
 1770                 ]
 1771              string AvailableJobSheets[];
 1772           };
 1773           
 1774           // ===================================================================
 1775           // PrintJob
 1776           // ===================================================================
 1777              [Description (
 1778                  "Description of a print request that is either waiting on a "
 1779                  "Queue for a Printer to become available, in the process of "
 1780                  "being output on a Printer, or that has previously been "
 1781                  "printed on a Printer. PrintJobs are weak to their current "
 1782                  "Queue, or to the last Queue that held them.")
 1783              ]
 1784           class CIM_PrintJob : CIM_Job
 1785           {
 1786 karl  1.1       [Propagated ("CIM_PrintQueue.SystemCreationClassName"), Key, 
 1787                  Description ("The scoping System's CreationClassName."), 
 1788                  MaxLen (256)
 1789                 ]
 1790              string SystemCreationClassName;
 1791                 [Propagated ("CIM_PrintQueue.SystemName"), Key, 
 1792                  Description ("The scoping System's Name."), 
 1793                  MaxLen (256)
 1794                 ]
 1795              string SystemName;
 1796                 [Propagated ("CIM_PrintQueue.CreationClassName"), Key, 
 1797                  Description ("The scoping Queue's CreationClassName."), 
 1798                  MaxLen (256)
 1799                 ]
 1800              string QueueCreationClassName;
 1801                 [Propagated ("CIM_PrintQueue.Name"), Key, 
 1802                  Description ("The scoping Queue's Name."), 
 1803                  MaxLen (256)
 1804                 ]
 1805              string QueueName;
 1806                 [Description (
 1807 karl  1.1         "Uniquely identifies this Job within its scoping Queue."), 
 1808                  Key
 1809                 ]
 1810              string JobID;
 1811                 [Description (
 1812                   "Provides additional textual descriptions of how this "
 1813                   "Job should be scheduled.")
 1814                 ]
 1815              string SchedulingInformation;
 1816                 [Description (
 1817                   "Specifies the size of the PrintJob (as a byte stream) in "
 1818                   "units of Kbytes."), 
 1819                  Units ("KiloBytes"), 
 1820                  ModelCorrespondence {"CIM_Printer.MaxSizeSupported", 
 1821                        "CIM_PrintQueue.MaxJobSize"}
 1822                 ]
 1823              uint32 JobSize;
 1824                 [Description (
 1825                   "Specifies the print language used by this Job."), 
 1826                  ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 1827                          "11", "12", "13", "14", "15", "16", "17", "18", "19", 
 1828 karl  1.1                "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 1829                          "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 1830           	       "38", "39", "40", "41", "42", "43", "44", "45", "46", "47"},
 1831                  Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 1832           	       "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 1833           	       "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 1834           	       "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 1835           	       "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 1836           	       "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 1837           	       "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 1838           	       "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"}, 
 1839                  ArrayType ("Indexed"), 
 1840                  MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"}, 
 1841                  ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 1842                        "CIM_PrintService.LanguagesSupported", 
 1843                        "CIM_PrintJob.MimeTypes"}
 1844                 ]
 1845              uint16 Language;
 1846                 [Description (
 1847                   "Specifies the mime types used by the PrintJob if "
 1848                   "Language is set to indicate a mime type is in use (value=47)."), 
 1849 karl  1.1        ModelCorrespondence {"CIM_PrintJob.Language", 
 1850                        "CIM_Printer.MimeTypesSupported", 
 1851                        "CIM_PrintService.MimeTypesSupported"}
 1852                 ]
 1853              string MimeTypes[];
 1854                 [Description (
 1855                   "A string specifying the type of paper that is required by "
 1856                   "this PrintJob. Each string should be expressed in the form "
 1857                   "specified by ISO/IEC 10175 Document Printing Application (DPA) "
 1858                   "which is also summarized in Appendix C of RFC 1759 (Printer "
 1859                   "MIB). Examples of valid strings are \"iso-a4-colored\" and "
 1860                   "\"na-10x14-envelope\"."), 
 1861                  ModelCorrespondence {"CIM_Printer.PaperTypesAvailable", 
 1862                        "CIM_PrintService.PaperTypesAvailable"}
 1863                 ]
 1864              string RequiredPaperType;
 1865                 [Description (
 1866                   "An array of integers indicating the type of finishing "
 1867                   "required by this Job. It is equivalent to the Capabilities "
 1868                   "property provided by the Printer."), 
 1869                  ArrayType ("Indexed"), 
 1870 karl  1.1        Values {"Unknown", "Other", "Color Printing", 
 1871                        "Duplex Printing", "Copies", "Collation", "Stapling", 
 1872                        "Transparency Printing", "Punch", "Cover", "Bind", 
 1873                        "Black and White Printing", "One Sided", 
 1874                        "Two Sided Long Edge", "Two Sided Short Edge", 
 1875                        "Portrait", "Landscape", "Reverse Portrait", 
 1876                        "Reverse Landscape", "Quality High", "Quality Normal", 
 1877                        "Quality Low"}, 
 1878                  ModelCorrespondence {"CIM_Printer.Capabilities", 
 1879                        "CIM_PrintService.Capabilities"}
 1880                 ]
 1881              uint16 Finishing[];
 1882                 [Description (
 1883                   "The number of physical copies of the output that will be "
 1884                   "produced from this Job."), 
 1885                  ModelCorrespondence {"CIM_Printer.MaxCopies"}
 1886                 ]
 1887              uint32 Copies;
 1888                 [Description (
 1889                   "The horizontal resolution in Pixels per Inch for the Job."), 
 1890                  Units ("Pixels per Inch"), 
 1891 karl  1.1        ModelCorrespondence {"CIM_Printer.HorizontalResolution"}
 1892                 ]
 1893              uint32 HorizontalResolution;
 1894                 [Description (
 1895                   "The vertical resolution in Pixels per Inch for the Job."), 
 1896                  Units ("Pixels per Inch"), 
 1897                  ModelCorrespondence {"CIM_Printer.VerticalResolution"}
 1898                 ]
 1899              uint32 VerticalResolution;
 1900                 [Description (
 1901                   "Specifies the character set and encoding method that "
 1902                   "should be used by the Printer for the management of "
 1903                   "this Job. The strings should conform to the semantics and "
 1904                   "syntax specified by section 4.1.2 (\"Charset parameter\") "
 1905                   "in RFC 2046 (MIME Part 2) and contained in the IANA "
 1906                   "character-set registry. Examples include \"utf-8\", "
 1907                   "\"us-ascii\" and \"iso-8859-1\"."), 
 1908                  ModelCorrespondence {"CIM_Printer.CharSetsSupported"}
 1909                 ]
 1910              string CharSet;
 1911                 [Description (
 1912 karl  1.1         "Identifies the language that should be used by the Printer "
 1913                   "for the management of this Job. The specified value should "
 1914                   "conform to RFC 1766. For example, \"en\" is used for "
 1915                   "English."), 
 1916                  ModelCorrespondence {"CIM_Printer.NaturalLanguagesSupported"}
 1917                 ]
 1918              string NaturalLanguage;
 1919                 [Description (
 1920                   "The number of print-stream pages that should be rendered "
 1921                   "onto a single media sheet when the Printer outputs this "
 1922                   "PrintJob."), 
 1923                  ModelCorrespondence {"CIM_Printer.MaxNumberUp"}
 1924                 ]
 1925              uint32 NumberUp;
 1926                 [Override("JobStatus"), 
 1927                  Description (
 1928                   "The inherited JobStatus is used to provide additional "
 1929                   "information about the status of a PrintJob beyond that "
 1930                   "enumerated by PrintJobStatus."), 
 1931                  ModelCorrespondence {"CIM_PrintJob.PrintJobStatus"}
 1932                 ]
 1933 karl  1.1    string JobStatus;
 1934                 [Description (
 1935                   "Describes the current state of this Job with respect "
 1936                   "to the PrintQueue and the Printer. Additional information "
 1937                   "may be specified in JobStatus."), 
 1938                  ValueMap {"1", "2", "3", "4", "5", "6", "7"}, 
 1939                  Values {"Other", "Unknown", "Pending", "Blocked", 
 1940                        "Complete", "Completed With Error", "Printing"}, 
 1941                  ModelCorrespondence {"CIM_PrintJob.TimeCompleted", 
 1942                        "CIM_PrintJob.JobStatus"}
 1943                 ]
 1944              uint16 PrintJobStatus;
 1945                 [Description (
 1946                   "Time when this Job was completed. This value is only "
 1947                    "valid if the PrintJobStatus has been assigned to "
 1948                    "\"Complete\" (value=5) or \"Completed With Error\" "
 1949                    "(value=6)."), 
 1950                  ModelCorrespondence {"CIM_PrintJob.PrintJobStatus"}
 1951                 ]
 1952              datetime TimeCompleted;
 1953                 [Description (
 1954 karl  1.1         "Describes the job sheets that should be used when this "
 1955                   "Job is output on the Printer."), 
 1956                  ModelCorrespondence {"CIM_Printer.AvailableJobSheets"}
 1957                 ]
 1958              string RequiredJobSheets[];
 1959                 [Description (
 1960                   "Provides additional information, beyond Job Owner "
 1961                   "inherited from CIM_Job, to identify the origins of the "
 1962                   "PrintJob. This property could include information such as "
 1963                   "the System, application or Process that created the Job.")
 1964                 ]
 1965              string JobOrigination;
 1966           };
 1967           
 1968           // ===================================================================
 1969           // PrintSAP
 1970           // ===================================================================
 1971              [Description ("The ServiceAccessPoint for a printing Service.") ]
 1972           class CIM_PrintSAP : CIM_ServiceAccessPoint
 1973           {
 1974                 [Description (
 1975 karl  1.1         "Specifies the print procotols that this AccessPoint uses. "
 1976                   "Note that each entry of this array is related to the entry in "
 1977                   "the PrintProtocolInfo array that is located at the same "
 1978                   "index."), 
 1979                  ArrayType ("Indexed"), 
 1980                  Values {"Unknown", "Other", "SMB", "BSD", "SYSV","HPNP", "IPP", 
 1981                        "Local"}, 
 1982                  ModelCorrespondence {"CIM_PrintSAP.PrintProtocolInfo"}
 1983                 ]
 1984              uint16 PrintProtocol[];
 1985                 [Description (
 1986                   "Provides clarifying or additional information about the "
 1987                   "protocols supported by this AccessPoint. Note, each entry "
 1988                   "of this array is related to the entry in the PrintProtocol "
 1989                   "array that is located at the same index."), 
 1990                  ArrayType ("Indexed"), 
 1991                  ModelCorrespondence {"CIM_PrintSAP.PrintProtocol"}
 1992                 ]
 1993              string PrintProtocolInfo[];
 1994           };
 1995           
 1996 karl  1.1 // ===================================================================
 1997           // PrintService
 1998           // ===================================================================
 1999              [Description (
 2000                  "The Service that provides support for printing. The basic "
 2001                  "assumption of the Printing Model is that a PrintService accepts "
 2002                  "a PrintJob for processing, via its PrintSAP. The Job is then "
 2003                  "placed on a PrintQueue (indicated by the QueueForPrintService "
 2004                  "association). Printers take Jobs from Queues (indicated by the "
 2005                  "PrinterServicingQueue association).")
 2006              ]
 2007           class CIM_PrintService : CIM_Service
 2008           {
 2009                 [Description (
 2010                   "An array of free-form strings specifying the types of "
 2011                   "paper that may be used by Jobs that are submitted to this "
 2012                   "PrintService. This may be different than the paper types that "
 2013                   "are installed on the Printer, because the PrintService may "
 2014                   "include support for manually making other types available or "
 2015                   "only a subset of paper types may be exported via this Service. "
 2016                   "Each string should be expressed in the form specified by "
 2017 karl  1.1         "ISO/IEC 10175 Document Printing Application (DPA) which is "
 2018                   "also summarized in Appendix C of RFC 1759 (Printer MIB). "
 2019                   "Examples of valid strings are \"iso-a4-colored\" and "
 2020                   "\"na-10x14-envelope\"."), 
 2021                  ModelCorrespondence {"CIM_Printer.PaperTypesAvailable", 
 2022                        "CIM_PrintJob.RequiredPaperType"}
 2023                 ]
 2024              string PaperTypesAvailable[];
 2025                 [Description (
 2026                   "An array indicating the print languages supported by the "
 2027                   "PrintService. A PrintService may support more languages "
 2028                   "than those available on the underlying Printer through the "
 2029                   "use of filters. An administrator may also choose to prevent "
 2030                   "some languages from being exported by the PrintService."), 
 2031                  ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 2032                          "11", "12", "13", "14", "15", "16", "17", "18", "19", 
 2033                          "20", "21", "22", "23", "24", "25", "26", "27", "28", 
 2034                          "29", "30", "31", "32", "33", "34", "35", "36", "37", 
 2035           	       "38", "39", "40", "41", "42", "43", "44", "45", "46", "47"},
 2036                  Values {"Other", "Unknown", "PCL", "HPGL", "PJL", "PS",
 2037           	       "PSPrinter", "IPDS", "PPDS", "EscapeP", "Epson", "DDIF", 
 2038 karl  1.1 	       "Interpress", "ISO6429", "Line Data", "MODCA", "REGIS", 
 2039           	       "SCS", "SPDL", "TEK4014", "PDS", "IGP", "CodeV", "DSCDSE", 
 2040           	       "WPS", "LN03", "CCITT", "QUIC", "CPAP", "DecPPL", 
 2041           	       "Simple Text", "NPAP", "DOC", "imPress", "Pinwriter",
 2042           	       "NPDL", "NEC201PL", "Automatic", "Pages", "LIPS", "TIFF", 
 2043           	       "Diagnostic", "CaPSL", "EXCL", "LCDS", "XES", "MIME"}, 
 2044                  ArrayType ("Indexed"), 
 2045                  MappingStrings {"MIB.IETF|Printer-MIB.prtInterpreterLangFamily"}, 
 2046                  ModelCorrespondence {"CIM_Printer.LanguagesSupported", 
 2047                        "CIM_PrintJob.Language", 
 2048                        "CIM_PrintService.MimeTypesSupported"}
 2049                 ]
 2050              uint16 LanguagesSupported[];
 2051                 [Description (
 2052                   "An array of free-form strings providing more detailed "
 2053                   "explanations for any mime types that are supported by "
 2054                   "the PrintService. Support for mime types is indicated "
 2055                   "by specifying a value of 47 in the LanguagesSupported array."), 
 2056                  ModelCorrespondence {"CIM_Printer.MimeTypesSupported", 
 2057                        "CIM_PrintJob.MimeTypes", 
 2058                        "CIM_PrintService.LanguagesSupported"}
 2059 karl  1.1       ]
 2060              string MimeTypesSupported[];
 2061                 [Description (
 2062                   "An array of integers indicating the capabilities supported "
 2063                   "by this service. Information such as \"Duplex Printing\" "
 2064                   "(value=3) or \"Transparency Printing\" (7) is specified in "
 2065                   "this property."), 
 2066                  ArrayType ("Indexed"), 
 2067                  Values {"Unknown", "Other", "Color Printing", "Duplex Printing", 
 2068                        "Copies", "Collation", "Stapling", "Transparency Printing", 
 2069                        "Punch", "Cover", "Bind", "Black and White Printing", 
 2070                        "One Sided", "Two Sided Long Edge", "Two Sided Short Edge", 
 2071                        "Portrait", "Landscape", "Reverse Portrait", 
 2072                        "Reverse Landscape", "Quality High", "Quality Normal", 
 2073                        "Quality Low"}, 
 2074                  ModelCorrespondence {"CIM_Printer.Capabilities", 
 2075                        "CIM_PrintJob.Finishing", 
 2076                        "CIM_PrintService.CapabilityDescriptions"}
 2077                 ]
 2078              uint16 Capabilities[];
 2079                 [Description (
 2080 karl  1.1         "An array of free-form strings providing more detailed "
 2081                   "explanations for any of the Printer features indicated in "
 2082                   "the Capabilities array. Note, each entry of this array "
 2083                   "is related to the entry in the Capabilities array that "
 2084                   "is located at the same index."), 
 2085                  ArrayType ("Indexed"), 
 2086                  ModelCorrespondence {"CIM_PrintService.Capabilities"}
 2087                 ]
 2088              string CapabilityDescriptions[];
 2089                 [Description (
 2090                   "Describes the filters that are available within this Print"
 2091                   "Service. For example, a PrintService may be able to convert "
 2092                   "a Job submitted in one page description language to another, "
 2093                   "so that it can be passed to an available Printer.")
 2094                 ]
 2095              string AvailableFilters[];
 2096           };
 2097           
 2098           // ===================================================================
 2099           // PrinterServicingQueue 
 2100           // ===================================================================
 2101 karl  1.1    [Association, 
 2102               Description (
 2103                  "This association indicates that a Printer can be passed "
 2104                  "PrintJobs from a particular Queue.")
 2105              ]
 2106           class CIM_PrinterServicingQueue : CIM_Dependency
 2107           {
 2108                 [Override ("Antecedent"), 
 2109                  Description (
 2110                   "A destination Printer for Jobs enqueued on the Dependent "
 2111                   "Queue.")
 2112                 ]
 2113              CIM_Printer REF Antecedent;
 2114                 [Override ("Dependent"), 
 2115                  Description ("A Queue that is providing Jobs to the Printer.")
 2116                 ]
 2117              CIM_PrintQueue REF Dependent;
 2118           };
 2119           
 2120           // ===================================================================
 2121           // PrinterServicingJob 
 2122 karl  1.1 // ===================================================================
 2123              [Association, 
 2124               Description (
 2125                  "This association indicates that a Printer is currently "
 2126                  "servicing a particular PrintJob.")
 2127              ]
 2128           class CIM_PrinterServicingJob : CIM_Dependency
 2129           {
 2130                 [Override ("Antecedent"), 
 2131                  Description ("The destination Printer for a PrintJob.")
 2132                 ]
 2133              CIM_Printer REF Antecedent;
 2134                 [Override ("Dependent"), Description ("The PrintJob.") ]
 2135              CIM_PrintJob REF Dependent;
 2136           };
 2137           
 2138           // ===================================================================
 2139           // PrintJobFile 
 2140           // ===================================================================
 2141              [Association, Aggregation,  
 2142               Description (
 2143 karl  1.1        "This association indicates which files are associated with "
 2144                  "a PrintJob.")
 2145              ]
 2146           class CIM_PrintJobFile : CIM_Component
 2147           {
 2148                 [Override ("GroupComponent"), 
 2149                  Description ("The PrintJob that is based on one or more Files.")
 2150                 ]
 2151              CIM_PrintJob REF GroupComponent;
 2152                 [Override ("PartComponent"), 
 2153                  Description ("The File(s) that make up a PrintJob.")
 2154                 ]
 2155              CIM_DataFile REF PartComponent;
 2156           };
 2157           
 2158           // ===================================================================
 2159           // QueueForPrintService 
 2160           // ===================================================================
 2161              [Association, 
 2162               Description (
 2163                  "This association indicates that a PrintService utilizes a "
 2164 karl  1.1        "particular PrintQueue.")
 2165              ]
 2166           class CIM_QueueForPrintService : CIM_Dependency
 2167           {
 2168                 [Override ("Antecedent"), 
 2169                  Description ("The PrintQueue that the Service utilizes.")
 2170                 ]
 2171              CIM_PrintQueue REF Antecedent;
 2172                 [Override ("Dependent"), 
 2173                  Description ("The PrintService that puts Jobs on the Queue.")
 2174                 ]
 2175              CIM_PrintService REF Dependent;
 2176                 [Description (
 2177                   "Indicates that the PrintService can accept Jobs and "
 2178                   "place them on the Queue.")
 2179                 ]
 2180              boolean QueueAcceptingFromService;
 2181           };
 2182           
 2183           // ===================================================================
 2184           // QueueForwardsToPrintSAP 
 2185 karl  1.1 // ===================================================================
 2186              [Association, 
 2187               Description (
 2188                  "This association indicates that the Jobs from a PrintQueue "
 2189                  "can be sent to the referenced PrintSAP, to be handled by the "
 2190                  "SAP's backing PrintService.")
 2191              ]
 2192           class CIM_QueueForwardsToPrintSAP : CIM_Dependency
 2193           {
 2194                 [Override ("Antecedent"), 
 2195                  Description ("The PrintSAP for the PrintService.")
 2196                 ]
 2197              CIM_PrintSAP REF Antecedent;
 2198                 [Override ("Dependent"), 
 2199                  Description ("The PrintQueue that forwards Jobs to the SAP.")
 2200                 ]
 2201              CIM_PrintQueue REF Dependent;
 2202           };
 2203           
 2204           // ===================================================================
 2205           // OwningPrintQueue 
 2206 karl  1.1 // ===================================================================
 2207              [Association, 
 2208               Description (
 2209                  "This association indicates which Queue holds a PrintJob and "
 2210                  "where the Job is located within that Queue. A Job may remain on "
 2211                  "its final Queue once it has been printed with a PrintJobStatus "
 2212                  "of \"Complete\" or \"Completed With Error\".")
 2213              ]
 2214           class CIM_OwningPrintQueue : CIM_JobDestinationJobs
 2215           {
 2216                 [Override ("Antecedent"), 
 2217                  Description ("The PrintQueue on which the Job is held."), 
 2218                  Min(1), Max(1)
 2219                 ]
 2220              CIM_PrintQueue REF Antecedent;
 2221                 [Override ("Dependent"), 
 2222                  Description ("The PrintJob."), 
 2223                  Weak
 2224                 ]
 2225              CIM_PrintJob REF Dependent;
 2226                 [Description (
 2227 karl  1.1         "The position of the PrintJob on the Queue. The top of the "
 2228                   "Queue is indicated by a value of 1 with higher values being "
 2229                   "used to represent Jobs that are further away from the top of "
 2230                   "the Queue. A QueuePosition of zero indicate that the Job has "
 2231                   "completed (either with or without error).")
 2232                 ]
 2233              uint32 QueuePosition;
 2234           };
 2235           
 2236           // ===================================================================
 2237           // Sensor
 2238           // ===================================================================
 2239              [Abstract,
 2240               Description (
 2241                  "A Sensor is a hardware device capable of measuring the "
 2242                  "characteristics of some physical property - for example, the "
 2243                  "temperature or voltage characteristics of a UnitaryComputer"
 2244                  "System.")
 2245              ] 
 2246           class CIM_Sensor : CIM_LogicalDevice
 2247           {
 2248 karl  1.1       [Description (
 2249                   "The Type of the Sensor, e.g. Voltage or Temperature Sensor. "
 2250                   "If the type is set to \"Other\", then the OtherSensorType"
 2251                   "Description can be used to further identify the type, or if "
 2252                   "the Sensor has numeric readings, then the type of the Sensor "
 2253                   "can be implicitly determined by the Units. A description of "
 2254                   "the different Sensor types is as follows: A Temperature Sensor "
 2255                   "measures the environmental temperature. Voltage and Current "
 2256                   "Sensors measure electrical voltage and current readings. "
 2257                   "A Tachometer measures speed/revolutions of a Device. For example, "
 2258                   "a Fan Device can have an associated Tachometer which measures "
 2259                   "its speed. A Counter is a general purpose Sensor that measures "
 2260                   "some numerical property of a Device. A Counter value can be "
 2261                   "cleared, but it never decreases. A Switch Sensor has states like "
 2262                   "Open/Close, On/Off, or Up/Down. A Lock has states of Locked/"
 2263                   "Unlocked. Humidity, Smoke Detection and Air Flow Sensors measure "
 2264                   "the equivalent environmental characteristics. A Presence Sensor "
 2265                   "detects the presence of a PhysicalElement."), 
 2266                  Values {"Unknown", "Other", "Temperature", "Voltage", "Current", 
 2267                        "Tachometer", "Counter", "Switch", "Lock", "Humidity", 
 2268                        "Smoke Detection", "Presence", "Air Flow"},
 2269 karl  1.1        ModelCorrespondence {"CIM_Sensor.OtherSensorTypeDescription"}
 2270                 ]
 2271              uint16 SensorType;
 2272                 [MaxLen (128), 
 2273                  Description (
 2274                   "A string describing the Sensor type - used when the SensorType "
 2275                   "property is set to \"Other\"."), 
 2276                  ModelCorrespondence {"CIM_Sensor.SensorType"}
 2277                 ]
 2278              string OtherSensorTypeDescription;
 2279                 [MaxLen (128), 
 2280                  Description (
 2281                   "PossibleStates enumerates the string outputs of the Sensor. For "
 2282                   "example, a \"Switch\" Sensor may output the states \"On\", or \"Off\". "
 2283                   "Another implementation of the Switch may output the states \"Open\", "
 2284                   "and \"Close\". Another example is a NumericSensor supporting "
 2285                   "thresholds. This Sensor can report the states like \"Normal\", "
 2286                   "\"Upper Fatal\", \"Lower Non-Critical\", etc. A NumericSensor that "
 2287                   "does not publish readings and thresholds, but stores this data "
 2288                   "internally, can still report its states.")
 2289                 ]
 2290 karl  1.1    string PossibleStates[];
 2291                 [MaxLen (128), 
 2292                  Description (
 2293                   "The current state indicated by the Sensor. This is always one of "
 2294                   "the \"PossibleStates\".")
 2295                 ]
 2296              string CurrentState;
 2297                 [Description (
 2298                   "The polling interval that the Sensor hardware or the instrumentation "
 2299                   "uses to determine the current state of the Sensor."), 
 2300                  Units ("NanoSeconds")
 2301                 ]
 2302              uint64 PollingInterval;
 2303           };
 2304           
 2305           // ===================================================================
 2306           // AssociatedSensor
 2307           // ===================================================================
 2308              [Association,
 2309               Description (
 2310                  "Many Devices include Sensors or have Sensors installed "
 2311 karl  1.1        "nearby, in order to measure critical input and output "
 2312                  "properties.  This association indicates that relationship.")
 2313              ] 
 2314           class CIM_AssociatedSensor : CIM_Dependency
 2315           {
 2316                 [Override ("Antecedent"), 
 2317                  Description ("The Sensor.")
 2318                 ]
 2319              CIM_Sensor REF Antecedent;
 2320                 [Override ("Dependent"),
 2321                  Description (
 2322           	  "The LogicalDevice for which information is measured by "
 2323           	  "the Sensor.")
 2324                 ]
 2325              CIM_LogicalDevice REF Dependent;
 2326           };
 2327           
 2328           // ===================================================================
 2329           // BinarySensor
 2330           // ===================================================================
 2331              [Description (
 2332 karl  1.1        "A BinarySensor provides a boolean output. Given the addition "
 2333                  "of the CurrentState and PossibleStates properties to Sensor, "
 2334                  "the BinarySensor subclass is no longer necessary, but is "
 2335                  "retained for backward compatibility. A BinarySensor can be "
 2336                  "created by instantiating a Sensor with two PossibleStates.")
 2337              ]
 2338           class CIM_BinarySensor : CIM_Sensor
 2339           {
 2340                 [Description ("The current value indicated by the Sensor.")]
 2341              boolean CurrentReading;
 2342                 [Description (
 2343           	  "ExpectedReading indicates the 'normal' value for the Sensor.")
 2344                 ]
 2345              boolean ExpectedReading;
 2346                 [MaxLen (64),
 2347           	 Description (
 2348           	  "InterpretationOfTrue is a string indicating what a 'True' "
 2349           	  "value from the BinarySensor means.  This information could "
 2350           	  "be displayed to a user.")
 2351                 ]
 2352              string InterpretationOfTrue;
 2353 karl  1.1       [MaxLen (64),
 2354           	 Description (
 2355           	  "InterpretationOfFalse is a string indicating what a 'False' "
 2356           	  "value from the BinarySensor means.  This information could "
 2357           	  "be displayed to a user.")
 2358                 ]
 2359              string InterpretationOfFalse;
 2360           };
 2361           
 2362           // ===================================================================
 2363           // MultiStateSensor
 2364           // ===================================================================
 2365              [Description (
 2366                "A Multi-StateSensor is a multi-member set of Sensors.")
 2367              ] 
 2368           class CIM_MultiStateSensor : CIM_Sensor
 2369           {
 2370           };
 2371           
 2372           // ===================================================================
 2373           // CollectionOfSensors
 2374 karl  1.1 // ===================================================================
 2375              [Association,
 2376               Aggregation,
 2377               Description (
 2378                  "The CollectionOfSensors association indicates the "
 2379                  "Sensors that make up a MultiStateSensor.")
 2380              ] 
 2381           class CIM_CollectionOfSensors : CIM_Component
 2382           {
 2383                 [Override ("GroupComponent"),
 2384                  Aggregate,
 2385                  Description ("The MultiStateSensor."),
 2386                  Max (1)
 2387                 ]
 2388              CIM_MultiStateSensor REF GroupComponent;
 2389                 [Override ("PartComponent"),
 2390                  Description (
 2391           	  "A Sensor that is part of the MultiStateSensor."),
 2392                  Min (2)
 2393                 ]
 2394              CIM_Sensor REF PartComponent;
 2395 karl  1.1 };
 2396           
 2397           // ===================================================================
 2398           // DiscreteSensor
 2399           // ===================================================================
 2400              [Description (
 2401                  "A DiscreteSensor has a set of legal string values, "
 2402                  "that it can report.  These values are enumerated in the "
 2403                  "Sensor's PossibleValues property.  A DiscreteSensor will "
 2404                  "always have a 'current reading' that corresponds to one of "
 2405                  "the enumerated values.\n"
 2406                  "Given the addition of the CurrentState and PossibleStates "
 2407                  "properties to Sensor, the DiscreteSensor subclass is no longer "
 2408                  "necessary, but is retained for backward compatibility. "
 2409                  "Information in the CurrentReading and PossibleValues properties "
 2410                  "will typically have the same values and semantics as for the "
 2411                  "CurrentState and PossibleStates properties, inherited from "
 2412                  "Sensor.")
 2413              ]
 2414           class CIM_DiscreteSensor : CIM_Sensor
 2415           {
 2416 karl  1.1       [MaxLen (64),
 2417           	 Description ("The current value indicated by the Sensor.")]
 2418              string CurrentReading;
 2419                 [MaxLen (64),
 2420           	 Description (
 2421           	  "PossibleValues enumerates the string outputs that can be "
 2422           	  "reported by the DiscreteSensor.")
 2423                 ]
 2424              string PossibleValues[];
 2425                 [MaxLen (64),
 2426           	 Description (
 2427           	  "AcceptableValues details which of the PossibleValues strings "
 2428           	  "are considered 'acceptable' (ie, 'not an error').")
 2429                 ]
 2430              string AcceptableValues[];
 2431           };
 2432           
 2433           // ===================================================================
 2434           // NumericSensor
 2435           // ===================================================================
 2436              [Description (
 2437 karl  1.1         "A Numeric Sensor is capable of returning numeric readings "
 2438                   "and optionally supports thresholds settings.")
 2439              ] 
 2440           class CIM_NumericSensor : CIM_Sensor
 2441           {
 2442                 [Description (
 2443                   "The base unit of the values returned by this Sensor. All "
 2444                   "the values returned by this Sensor are represented in the units "
 2445                   "obtained by (BaseUnits * 10 raised to the power of the Unit"
 2446                   "Modifier). For example, if BaseUnits is Volts and the Unit"
 2447                   "Modifier is -6, then the units of the values returned are "
 2448                   "MicroVolts. However, if the RateUnits property is set to a "
 2449                   "value other than \"None\", then the units are further qualified "
 2450                   "as rate units. In the above example, if RateUnits is set to "
 2451                   "\"Per Second\", then the values returned by the Sensor "
 2452                   "are in MicroVolts/Second. The units apply to all numeric "
 2453                   "properties of the Sensor, unless explicitly overridden by the "
 2454                   "Units qualifier."), 
 2455                  Values {"Unknown", "Other", "Degrees C", "Degrees F", "Degrees K", 
 2456                        "Volts", "Amps", "Watts", "Joules", "Coulombs", "VA", "Nits", 
 2457                        "Lumens", "Lux", "Candelas", "kPa", "PSI", "Newtons", "CFM", 
 2458 karl  1.1              "RPM", "Hertz", "Seconds", "Minutes", "Hours", "Days", "Weeks", 
 2459                        "Mils", "Inches", "Feet", "Cubic Inches", "Cubic Feet", 
 2460                        "Meters", "Cubic Centimeters", "Cubic Meters", "Liters", 
 2461                        "Fluid Ounces", "Radians", "Steradians", "Revolutions", 
 2462                        "Cycles", "Gravities", "Ounces", "Pounds", "Foot-Pounds", 
 2463                        "Ounce-Inches", "Gauss", "Gilberts", "Henries", "Farads", 
 2464                        "Ohms", "Siemens", "Moles", "Becquerels", 
 2465                        "PPM (parts/million)", "Decibels", "DbA", "DbC", 
 2466                        "Grays", "Sieverts", "Color Temperature Degrees K", "Bits", 
 2467                        "Bytes", "Words (data)", "DoubleWords", "QuadWords", 
 2468                        "Percentage"},
 2469                  ModelCorrespondence {"CIM_NumericSensor.UnitModifier", 
 2470                       "CIM_NumericSensor.RateUnits"}
 2471                 ]
 2472              uint16 BaseUnits;
 2473                 [Description (
 2474                   "The unit multiplier for the values returned by this Sensor. All "
 2475                   "the values returned by this Sensor are represented in the units "
 2476                   "obtained by (BaseUnits * 10 raised to the power of the Unit"
 2477                   "Modifier). For example, if BaseUnits is Volts and the Unit"
 2478                   "Modifier is -6, then the units of the values returned are Micro"
 2479 karl  1.1         "Volts. However, if the RateUnits property is set to a value other "
 2480                   "than \"None\", then the units are further qualified as rate units. "
 2481                   "In the above example, if RateUnits is set to \"Per Second\", then "
 2482                   "the values returned by the Sensor are in MicroVolts/Second. The "
 2483                   "units apply to all numeric properties of the Sensor, unless "
 2484                   "explicitly overridden by the Units qualifier."),
 2485                  ModelCorrespondence {"CIM_NumericSensor.BaseUnits", 
 2486                       "CIM_NumericSensor.RateUnits"}
 2487                 ]
 2488              sint32 UnitModifier;
 2489                 [Description (
 2490                   "Specifies if the units returned by this Sensor are rate units. "
 2491                   "All the values returned by this Sensor are represented in the "
 2492                   "units obtained by (BaseUnits * 10 raised to the power of the Unit"
 2493                   "Modifier). This is true unless this property (RateUnits) has a "
 2494                   "value different than \"None\". For example, if BaseUnits is "
 2495                   "Volts and the UnitModifier is -6, then the units of the values "
 2496                   "returned are MicroVolts. But, if the RateUnits property is set "
 2497                   "to a value other than \"None\", then the units are further "
 2498                   "qualified as rate units. In the above example, if RateUnits is "
 2499                   "set to \"Per Second\", then the values returned by the Sensor are "
 2500 karl  1.1         "in MicroVolts/Second. The units apply to all numeric properties "
 2501                   "of the Sensor, unless explicitly overridden by the Units "
 2502                   "qualifier. Any implementation of CurrentReading should be qualified "
 2503           	"with either a Counter or a Gauge qualifier, depending on the "
 2504           	"characteristics of the sensor being modeled."), 
 2505                  Values {"None", "Per MicroSecond", "Per MilliSecond", "Per Second", 
 2506                        "Per Minute", "Per Hour", "Per Day", "Per Week", "Per Month", 
 2507                        "Per Year"},
 2508                  ModelCorrespondence {"CIM_NumericSensor.UnitModifier", 
 2509                       "CIM_NumericSensor.BaseUnits"}
 2510                 ]
 2511              uint16 RateUnits;
 2512                 [Description ("The current value indicated by the Sensor.")]
 2513              sint32 CurrentReading;
 2514                 [Description (
 2515           	  "NominalReading indicates the 'normal' or expected value "
 2516           	  "for the NumericSensor.")
 2517                 ]
 2518              sint32 NominalReading;
 2519                 [Description (
 2520           	  "NormalMax provides guidance for the user as to the "
 2521 karl  1.1 	  "normal maximum range for the NumericSensor.")
 2522                 ]
 2523              sint32 NormalMax;
 2524                 [Description (
 2525           	  "NormalMin provides guidance for the user as to the "
 2526           	  "normal minimum range for the NumericSensor.")
 2527                 ]
 2528              sint32 NormalMin;
 2529                 [Description (
 2530           	  "MaxReadable indicates the largest value of the measured "
 2531           	  "property that can be read by the NumericSensor.")
 2532                 ]	    
 2533              sint32 MaxReadable;
 2534                 [Description (
 2535           	  "MinReadable indicates the smallest value of the measured "
 2536           	  "property that can be read by the NumericSensor.")
 2537                 ]	    
 2538              sint32 MinReadable;
 2539                 [Description (
 2540           	  "Resolution indicates the ability of the Sensor to resolve "
 2541                   "differences in the measured property.  This value may vary "
 2542 karl  1.1 	  "depending on whether the Device is linear over its dynamic "
 2543           	  "range.")
 2544                 ]
 2545              uint32 Resolution;
 2546                 [Description (
 2547            	  "Indicates the tolerance of the Sensor for the measured "
 2548           	  "property. Tolerance, along with Resolution and Accuracy, "
 2549           	  "is used to calculate the actual value of the measured "
 2550           	  "physical property.  Tolerance may vary depending on "
 2551           	  "whether the Device is linear over its dynamic range.")
 2552                 ]
 2553              sint32 Tolerance;
 2554                 [Description (
 2555           	  "Indicates the accuracy of the Sensor for the measured "
 2556           	  "property. Its value is recorded as plus/minus hundredths "
 2557           	  "of a percent. Accuracy, along with Resolution and Tolerance, "
 2558           	  "is used to calculate the actual value of the measured "
 2559           	  "physical property. Accuracy may vary depending on whether "
 2560           	  "the Device is linear over its dynamic range."), 
 2561                  Units ("Hundredths of Percent")
 2562                 ]
 2563 karl  1.1    sint32 Accuracy;
 2564                 [Description (
 2565           	  "Indicates that the Sensor is linear over its dynamic range.")
 2566                 ]	
 2567              boolean IsLinear;
 2568                 [Description (
 2569                   "Indicates the margin built around the thresholds. This margin "
 2570                   "prevents unnecessary state changes when the Sensor reading may "
 2571                   "fluctuate very close to its thresholds. This could be due to "
 2572                   "the Sensor's tolerance/accuracy/resolution or due to "
 2573                   "environmental factors. Once a threshold is crossed, the state of "
 2574                   "the Sensor should change. However, the state should not "
 2575                   "fluctuate between the old and new states unless the Sensor's "
 2576                   "change in the reading exceeds the hysteresis value.")
 2577                 ]
 2578              uint32 Hysteresis;
 2579                 [Description (
 2580                   "The Sensor's threshold values specify the ranges (min and max "
 2581                   "values) for determining whether the Sensor is operating under "
 2582                   "Normal, NonCritical, Critical or Fatal conditions. If Current"
 2583                   "Reading is between LowerThresholdNonCritical and UpperThreshold"
 2584 karl  1.1         "NonCritical, then the Sensor is reporting a normal value. "
 2585                   "If CurrentReading is between LowerThresholdNonCritical and Lower"
 2586                   "ThresholdCritical, then the CurrentState is NonCritical.")
 2587                 ]
 2588              sint32 LowerThresholdNonCritical;
 2589                 [Description (
 2590                   "The Sensor's threshold values specify the ranges (min and max "
 2591                   "values) for determining whether the Sensor is operating under "
 2592                   "Normal, NonCritical, Critical or Fatal conditions. If the Current"
 2593                   "Reading is between LowerThresholdNonCritical and UpperThreshold"
 2594                   "NonCritical, then the Sensor is reporting a normal value. "
 2595                   "If the CurrentReading is between UpperThresholdNonCritical and "
 2596                   "UpperThresholdCritical, then the CurrentState is NonCritical.")
 2597                 ]
 2598              sint32 UpperThresholdNonCritical;
 2599                 [Description (
 2600                   "The Sensor's threshold values specify the ranges (min and max "
 2601                   "values) for determining whether the Sensor is operating under "
 2602                   "Normal, NonCritical, Critical or Fatal conditions. If the Current"
 2603                   "Reading is between LowerThresholdCritical and LowerThreshold"
 2604                   "Fatal, then the CurrentState is Critical.")
 2605 karl  1.1       ]
 2606              sint32 LowerThresholdCritical;
 2607                 [Description (
 2608                   "The Sensor's threshold values specify the ranges (min and max "
 2609                   "values) for determining whether the Sensor is operating under "
 2610                   "Normal, NonCritical, Critical or Fatal conditions. If the Current"
 2611                   "Reading is between UpperThresholdCritical and UpperThreshold"
 2612                   "Fatal, then the CurrentState is Critical.")
 2613                 ]
 2614              sint32 UpperThresholdCritical;
 2615                 [Description (
 2616                   "The Sensor's threshold values specify the ranges (min and max "
 2617                   "values) for determining whether the Sensor is operating under "
 2618                   "Normal, NonCritical, Critical or Fatal conditions. If the Current"
 2619                   "Reading is below LowerThresholdFatal, then the CurrentState is "
 2620                   "Fatal.")
 2621                 ]
 2622              sint32 LowerThresholdFatal;
 2623                [Description (
 2624                  "The Sensor's threshold values specify the ranges (min and max "
 2625                  "values) for determining whether the Sensor is operating under "
 2626 karl  1.1        "Normal, NonCritical, Critical or Fatal conditions. If the Current"
 2627                  "Reading is above UpperThresholdFatal, then the CurrentState is "
 2628                  "Fatal.")
 2629                 ]
 2630              sint32 UpperThresholdFatal;
 2631                 [Description (
 2632                   "An array representing the thresholds supported by this Sensor."), 
 2633                  Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
 2634                        "LowerThresholdCritical", "UpperThresholdCritical", 
 2635                        "LowerThresholdFatal", "UpperThresholdFatal"}
 2636                 ]
 2637              uint16 SupportedThresholds[];
 2638                 [Description (
 2639                   "An array representing the thresholds that are currently enabled "
 2640                   "for this Sensor."), 
 2641                  Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
 2642                        "LowerThresholdCritical", "UpperThresholdCritical", 
 2643                        "LowerThresholdFatal", "UpperThresholdFatal"}
 2644                 ]
 2645              uint16 EnabledThresholds[];
 2646                 [Description (
 2647 karl  1.1         "An array representing the writable thresholds supported by "
 2648                   "Sensor."), 
 2649                  Values {"LowerThresholdNonCritical", "UpperThresholdNonCritical", 
 2650                        "LowerThresholdCritical", "UpperThresholdCritical", 
 2651                        "LowerThresholdFatal", "UpperThresholdFatal"}
 2652                 ]
 2653              uint16 SettableThresholds[];
 2654                 [Description (
 2655                   "This method resets the values of the thresholds to hardware "
 2656                   "defaults. This method returns 0 if successful, 1 if "
 2657                   "unsupported and any other value if an error occurred. "
 2658                   "In a subclass, the set of possible return codes could be "
 2659                   "specified, using a ValueMap qualifier on the method. The "
 2660                   "strings to which the ValueMap contents are 'translated' "
 2661                   "may also be specified in the subclass as a Values "
 2662                   "array qualifier.")
 2663                 ]
 2664              uint32 RestoreDefaultThresholds();
 2665                 [Description (
 2666                   "For a non-linear Sensor, the resolution, accuracy, tolerance "
 2667                   "and hysteresis vary as the current reading moves. This method "
 2668 karl  1.1         "can be used to get these factors for a given reading. It "
 2669                   "returns 0 if successful, 1 if unsupported, and any other "
 2670                   "value if an error occurred. In a subclass, the set of "
 2671                   "possible return codes could be specified, using a ValueMap "
 2672                   "qualifier on the method. The strings to which the ValueMap "
 2673                   "contents are 'translated' may also be specified in the "
 2674                   "subclass as a Values array qualifier.")
 2675                 ]
 2676              uint32 GetNonLinearFactors([IN]sint32 SensorReading, 
 2677               [OUT]sint32 Accuracy, [OUT]uint32 Resolution, 
 2678               [OUT]sint32 Tolerance, [OUT]uint32 Hysteresis);
 2679           };
 2680           
 2681           // ===================================================================
 2682           // TemperatureSensor
 2683           // ===================================================================
 2684              [Description (
 2685                  "This class exists for backward compatibility to earlier "
 2686                  "CIM Schema definitions. With additions to Sensor and Numeric"
 2687                  "Sensor in V2.2, it is no longer necessary. A TempertatureSensor "
 2688                  "can be defined by setting the SensorType property, inherited "
 2689 karl  1.1        "from Sensor, to 2 (\"Temperature\"). Other properties of this "
 2690                  "class are hard-coded to constant values to correspond to "
 2691                  "definitions in the Sensor hierarchy.")
 2692              ] 
 2693           class CIM_TemperatureSensor : CIM_NumericSensor  
 2694           {
 2695                 [Override("SensorType") ]
 2696              uint16 SensorType = 2;
 2697                 [Override("BaseUnits") ]
 2698              uint16 BaseUnits = 2;
 2699                 [Override("UnitModifier") ]
 2700              sint32 UnitModifier = -1;
 2701                 [Override("RateUnits") ]
 2702              uint16 RateUnits = 0;
 2703                 [Override ("CurrentReading"),
 2704           // Override is used to define the MappingString qualifier 
 2705                  MappingStrings {"MIF.DMTF|Temperature Probe|002.5"}
 2706                 ]
 2707              sint32 CurrentReading;
 2708                 [Override ("NominalReading"),
 2709                  MappingStrings {"MIF.DMTF|Temperature Probe|002.6"}
 2710 karl  1.1       ]
 2711              sint32 NominalReading;
 2712                 [Override ("NormalMax"),
 2713                  MappingStrings {"MIF.DMTF|Temperature Probe|002.7"}
 2714                 ]
 2715              sint32 NormalMax;
 2716                 [Override ("NormalMin"),
 2717                  MappingStrings {"MIF.DMTF|Temperature Probe|002.8"}
 2718                 ]
 2719              sint32 NormalMin;
 2720                 [Override ("MaxReadable"),
 2721                  MappingStrings {"MIF.DMTF|Temperature Probe|002.9"}
 2722                 ]	    
 2723              sint32 MaxReadable;
 2724                 [Override ("MinReadable"),
 2725                  MappingStrings {"MIF.DMTF|Temperature Probe|002.10"}
 2726                 ]	    
 2727              sint32 MinReadable;
 2728                 [Override ("Resolution"),
 2729                  Units ("Hundredths of Degrees C"),
 2730                  MappingStrings {"MIF.DMTF|Temperature Probe|002.17"}
 2731 karl  1.1       ]
 2732              uint32 Resolution;
 2733                 [Override ("Tolerance"),
 2734                  MappingStrings {"MIF.DMTF|Temperature Probe|002.18"}
 2735                 ]
 2736              sint32 Tolerance;
 2737                 [Override ("Accuracy"),
 2738                  MappingStrings {"MIF.DMTF|Temperature Probe|002.19"}
 2739                 ]
 2740              sint32 Accuracy;
 2741                 [Override ("LowerThresholdNonCritical"),
 2742                  MappingStrings {"MIF.DMTF|Temperature Probe|002.11"}
 2743                 ]
 2744              sint32 LowerThresholdNonCritical;
 2745                 [Override ("UpperThresholdNonCritical"),
 2746                  MappingStrings {"MIF.DMTF|Temperature Probe|002.12"}
 2747                 ]
 2748              sint32 UpperThresholdNonCritical;
 2749                 [Override ("LowerThresholdCritical"),
 2750                  MappingStrings {"MIF.DMTF|Temperature Probe|002.13"}
 2751                 ]
 2752 karl  1.1    sint32 LowerThresholdCritical;
 2753                 [Override ("UpperThresholdCritical"),
 2754                  MappingStrings {"MIF.DMTF|Temperature Probe|002.14"}
 2755                 ]
 2756              sint32 UpperThresholdCritical;
 2757                 [Override ("LowerThresholdFatal"),
 2758                  MappingStrings {"MIF.DMTF|Temperature Probe|002.15"}
 2759                 ]
 2760              sint32 LowerThresholdFatal;
 2761                 [Override ("UpperThresholdFatal"),
 2762                  MappingStrings {"MIF.DMTF|Temperature Probe|002.16"}
 2763                 ]
 2764              sint32 UpperThresholdFatal;
 2765           };
 2766           
 2767           // ===================================================================
 2768           // CurrentSensor
 2769           // ===================================================================
 2770              [Description (
 2771                  "This class exists for backward compatibility to earlier "
 2772                  "CIM Schema definitions. With additions to Sensor and Numeric"
 2773 karl  1.1        "Sensor in V2.2, it is no longer necessary. A CurrentSensor can "
 2774                  "be defined by setting the SensorType property, inherited from "
 2775                  "Sensor, to 4 (\"Current\"). Other properties of this class are "
 2776                  "hard-coded to constant values to correspond to definitions in "
 2777                  "the Sensor hierarchy.")
 2778              ] 
 2779           class CIM_CurrentSensor : CIM_NumericSensor  
 2780           {
 2781                 [Override("SensorType") ]
 2782              uint16 SensorType = 4;
 2783                 [Override("BaseUnits") ]
 2784              uint16 BaseUnits = 6;
 2785                 [Override("UnitModifier") ]
 2786              sint32 UnitModifier = -3;
 2787                 [Override("RateUnits") ]
 2788              uint16 RateUnits = 0;
 2789                 [Override ("CurrentReading"),
 2790           // Override is used to define the MappingString qualifier 
 2791                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.5"}
 2792                 ]
 2793              sint32 CurrentReading;
 2794 karl  1.1       [Override ("NominalReading"),
 2795                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.6"}
 2796                 ]
 2797              sint32 NominalReading;
 2798                 [Override ("NormalMax"),
 2799                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.7"}
 2800                 ]
 2801              sint32 NormalMax;
 2802                 [Override ("NormalMin"),
 2803                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.8"}
 2804                 ]
 2805              sint32 NormalMin;
 2806                 [Override ("MaxReadable"),
 2807                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.9"}
 2808                 ]	    
 2809              sint32 MaxReadable;
 2810                 [Override ("MinReadable"),
 2811                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.10"}
 2812                 ]	    
 2813              sint32 MinReadable;
 2814                 [Override ("Resolution"), 
 2815 karl  1.1        Units ("Tenths of MilliAmps"),
 2816                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.17"}
 2817                 ]
 2818              uint32 Resolution;
 2819                 [Override ("Tolerance"),
 2820                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.18"}
 2821                 ]
 2822              sint32 Tolerance;
 2823                 [Override ("Accuracy"), 
 2824                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.19"}
 2825                 ]
 2826              sint32 Accuracy;
 2827                 [Override ("LowerThresholdNonCritical"),
 2828                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.11"}
 2829                 ]
 2830              sint32 LowerThresholdNonCritical;
 2831                 [Override ("UpperThresholdNonCritical"),
 2832                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.12"}
 2833                 ]
 2834              sint32 UpperThresholdNonCritical;
 2835                 [Override ("LowerThresholdCritical"),
 2836 karl  1.1        MappingStrings {"MIF.DMTF|Electrical Current Probe|001.13"}
 2837                 ]
 2838              sint32 LowerThresholdCritical;
 2839                 [Override ("UpperThresholdCritical"),
 2840                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.14"}
 2841                 ]
 2842              sint32 UpperThresholdCritical;
 2843                 [Override ("LowerThresholdFatal"),
 2844                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.15"}
 2845                 ]
 2846              sint32 LowerThresholdFatal;
 2847                 [Override ("UpperThresholdFatal"),
 2848                  MappingStrings {"MIF.DMTF|Electrical Current Probe|001.16"}
 2849                 ]
 2850              sint32 UpperThresholdFatal;
 2851           };
 2852           
 2853           // ===================================================================
 2854           // VoltageSensor
 2855           // ===================================================================
 2856              [Description (
 2857 karl  1.1        "This class exists for backward compatibility to earlier "
 2858                  "CIM Schema definitions. With additions to Sensor and Numeric"
 2859                  "Sensor in V2.2, it is no longer necessary. A VoltageSensor can "
 2860                  "be defined by setting the SensorType property, inherited from "
 2861                  "Sensor, to 3 (\"Voltage\"). Other properties of this class are "
 2862                  "hard-coded to constant values to correspond to definitions in "
 2863                  "the Sensor hierarchy.")
 2864              ] 
 2865           class CIM_VoltageSensor : CIM_NumericSensor  
 2866           {
 2867                 [Override("SensorType") ]
 2868              uint16 SensorType = 3;
 2869                 [Override("BaseUnits") ]
 2870              uint16 BaseUnits = 5;
 2871                 [Override("UnitModifier") ]
 2872              sint32 UnitModifier = -3;
 2873                 [Override("RateUnits") ]
 2874              uint16 RateUnits = 0;
 2875                 [Override ("CurrentReading"),
 2876           // Override is used to define the MappingString qualifier 
 2877                  MappingStrings {"MIF.DMTF|Voltage Probe|001.5"}
 2878 karl  1.1       ]
 2879              sint32 CurrentReading;
 2880                 [Override ("NominalReading"),
 2881                  MappingStrings {"MIF.DMTF|Voltage Probe|001.6"}
 2882                 ]
 2883              sint32 NominalReading;
 2884                 [Override ("NormalMax"),
 2885                  MappingStrings {"MIF.DMTF|Voltage Probe|001.7"}
 2886                 ]
 2887              sint32 NormalMax;
 2888                 [Override ("NormalMin"),
 2889                  MappingStrings {"MIF.DMTF|Voltage Probe|001.8"}
 2890                 ]
 2891              sint32 NormalMin;
 2892                 [Override ("MaxReadable"),
 2893                  MappingStrings {"MIF.DMTF|Voltage Probe|001.9"}
 2894                 ]	    
 2895              sint32 MaxReadable;
 2896                 [Override ("MinReadable"),
 2897                  MappingStrings {"MIF.DMTF|Voltage Probe|001.10"}
 2898                 ]	    
 2899 karl  1.1    sint32 MinReadable;
 2900                 [Override ("Resolution"), 
 2901                  Units ("Tenths of MilliVolts"),
 2902                  MappingStrings {"MIF.DMTF|Voltage Probe|001.17"}
 2903                 ]
 2904              uint32 Resolution;
 2905                 [Override ("Tolerance"),
 2906                  MappingStrings {"MIF.DMTF|Voltage Probe|001.18"}
 2907                 ]
 2908              sint32 Tolerance;
 2909                 [Override ("Accuracy"),
 2910                  MappingStrings {"MIF.DMTF|Voltage Probe|001.19"}
 2911                 ]
 2912              sint32 Accuracy;
 2913                 [Override ("LowerThresholdNonCritical"),
 2914                  MappingStrings {"MIF.DMTF|Voltage Probe|001.11"}
 2915                 ]
 2916              sint32 LowerThresholdNonCritical;
 2917                 [Override ("UpperThresholdNonCritical"),
 2918                  MappingStrings {"MIF.DMTF|Voltage Probe|001.12"}
 2919                 ]
 2920 karl  1.1    sint32 UpperThresholdNonCritical;
 2921                 [Override ("LowerThresholdCritical"),
 2922                  MappingStrings {"MIF.DMTF|Voltage Probe|001.13"}
 2923                 ]
 2924              sint32 LowerThresholdCritical;
 2925                 [Override ("UpperThresholdCritical"),
 2926                  MappingStrings {"MIF.DMTF|Voltage Probe|001.14"}
 2927                 ]
 2928              sint32 UpperThresholdCritical;
 2929                 [Override ("LowerThresholdFatal"),
 2930                  MappingStrings {"MIF.DMTF|Voltage Probe|001.15"}
 2931                 ]
 2932              sint32 LowerThresholdFatal;
 2933                 [Override ("UpperThresholdFatal"),
 2934                  MappingStrings {"MIF.DMTF|Voltage Probe|001.16"}
 2935                 ]
 2936              sint32 UpperThresholdFatal;
 2937           };
 2938           
 2939           // ===================================================================
 2940           // Tachometer
 2941 karl  1.1 // ===================================================================
 2942              [Description (
 2943                  "This class exists for backward compatibility to earlier "
 2944                  "CIM Schema definitions. With additions to Sensor and Numeric"
 2945                  "Sensor in V2.2, it is no longer necessary. A Tachometer can "
 2946                  "be defined by setting the SensorType property. inherited from "
 2947                  "Sensor, to 5 (\"Tachometer\"). Other properties of this class "
 2948                  "are hard-coded to constant values to correspond to definitions "
 2949                  "in the Sensor hierarchy.")
 2950              ] 
 2951           class CIM_Tachometer : CIM_NumericSensor  
 2952           {
 2953                 [Override("SensorType") ]
 2954              uint16 SensorType = 5;
 2955                 [Override("BaseUnits") ]
 2956              uint16 BaseUnits = 38;
 2957                 [Override("UnitModifier") ]
 2958              sint32 UnitModifier = 1;
 2959                 [Override("RateUnits") ]
 2960              uint16 RateUnits = 4;
 2961                 [Override ("Resolution"), 
 2962 karl  1.1        Units ("Tenths of Revolutions per Minute")
 2963                 ]
 2964              uint32 Resolution;
 2965           };
 2966           
 2967           // ===================================================================
 2968           // WatchDog
 2969           // ===================================================================
 2970              [Description (
 2971                  "CIM_Watchdog is a timer implemented in system hardware. It "
 2972                  "allows the hardware to monitor the state of the Operating"
 2973                  "System, BIOS or a software component installed on the "
 2974                  "System. If the monitored component fails to re-arm the timer "
 2975                  "before its expiration, the hardware assumes that the System is "
 2976                  "in a critical state, and could reset the ComputerSystem. This "
 2977                  "feature can also be used as an application watchdog timer for "
 2978                  "a mission-critical application. In this case, the application "
 2979                  "would assume responsibility for re-arming the timer before "
 2980                  "expiration.")
 2981              ]
 2982           class CIM_Watchdog : CIM_LogicalDevice
 2983 karl  1.1 {
 2984                 [Description (
 2985                   "The entity that is currently being monitored by the WatchDog. "
 2986                   "This property is used to identify the module that is responsible "
 2987                   "for re-arming the watchdog at periodic intervals."), 
 2988                  Values {"Unknown", "Other", "Operating System", 
 2989                        "Operating System Boot Process", 
 2990                        "Operating System Shutdown Process", 
 2991                        "Firmware Boot Process", "BIOS Boot Process", "Application", 
 2992           			 "Service Processor"} 
 2993                 ]
 2994              uint16 MonitoredEntity;
 2995                 [Description (
 2996                   "A string describing more textual information about the "
 2997                   "monitored entity "), 
 2998                  MaxLen (256)
 2999                 ]
 3000              string MonitoredEntityDescription;
 3001                 [Description (
 3002                   "The timeout interval used by the watchdog, in MicroSeconds."), 
 3003                  Units ("MicroSeconds")
 3004 karl  1.1       ]
 3005              uint32 TimeoutInterval;
 3006                 [Description (
 3007                   "Resolution of the timer. For example, if this value is 100, "
 3008                   "then the timer can expire anytime between (TimeoutInterval-"
 3009                   "100) microseconds or (TimeoutInterval+100) microseconds."),
 3010                  Units ("MicroSeconds")
 3011                 ]
 3012              uint32 TimerResolution;
 3013                 [Description ("The time of the last timer expiry.") ]
 3014              datetime TimeOfLastExpiration; 
 3015                 [Description (
 3016                   "Monitored entity at the time of last timer expiry."), 
 3017                  Values {"Unknown", "Other", "Operating System", 
 3018                        "Operating System Boot Process", 
 3019                        "Operating System Shutdown Process", 
 3020                        "Firmware Boot Process", "BIOS Boot Process", "Application", 
 3021           			 "Service Processor"} 
 3022                 ]
 3023              uint16 MonitoredEntityOnLastExpiration;
 3024                 [Description (
 3025 karl  1.1         "The action that should happen upon the expiry of the watchdog."), 
 3026                  Values {"None - Status Only", "System Reset", "System Power Off", 
 3027                        "System Power Off, then On", 
 3028                        "Generate System NonMaskableInterrupt (NMI)", 
 3029                        "Generate System Management Interrupt (SMI)"}
 3030                 ]
 3031              uint16 ActionOnExpiration;
 3032                 [Description (
 3033                   "A method to re-arm the timer. This method is only used if "
 3034                   "the MonitoredEntity is \"Application\". It returns 0 if "
 3035                   "successful, 1 if unsupported, and any other value if an "
 3036                   "error occurred. In a subclass, the set of possible return "
 3037                   "codes could be specified, using a ValueMap qualifier on "
 3038                   "the method. The strings to which the ValueMap contents are "
 3039                   "'translated' may also be specified in the subclass as a "
 3040                   "Values array qualifier.")
 3041                 ]
 3042              uint32 KeepAlive();
 3043           };
 3044           
 3045           // ===================================================================
 3046 karl  1.1 // CoolingDevice
 3047           // ===================================================================
 3048              [Description ("Capabilities and management of CoolingDevices.")] 
 3049           class CIM_CoolingDevice : CIM_LogicalDevice
 3050           {
 3051                 [Description (
 3052           	  "ActiveCooling is a boolean indicating that the Cooling"
 3053           	  "Device provides active (as opposed to passive) cooling.")
 3054                 ]
 3055              boolean ActiveCooling;
 3056           };
 3057           
 3058           // ===================================================================
 3059           // Refrigeration
 3060           // ===================================================================
 3061              [Description (
 3062                  "Capabilities and management of a Refrigeration CoolingDevice.")
 3063              ] 
 3064           class CIM_Refrigeration : CIM_CoolingDevice
 3065           {
 3066           };
 3067 karl  1.1 
 3068           // ===================================================================
 3069           // HeatPipe
 3070           // ===================================================================
 3071              [Description (
 3072                  "Capabilities and management of a HeatPipe CoolingDevice.")
 3073              ] 
 3074           class CIM_HeatPipe : CIM_CoolingDevice
 3075           {
 3076           };
 3077           
 3078           // ===================================================================
 3079           // Fan
 3080           // ===================================================================
 3081              [Description (
 3082                  "Capabilities and management of a Fan CoolingDevice.")
 3083              ] 
 3084           class CIM_Fan : CIM_CoolingDevice
 3085           {
 3086                 [Description (
 3087           	  "Indication of whether the fan supports variable speeds.")]
 3088 karl  1.1    boolean VariableSpeed;
 3089           	[Description (
 3090           	  "DesiredSpeed is the currently requested fan speed, " 
 3091           	  "defined in Revolutions per Minute, when a variable speed fan "
 3092           	  "is supported (VariableSpeed boolean = TRUE). The current " 
 3093           	  "speed is determined via a sensor (CIM_Tachometer) that is "
 3094           	  "associated with the Fan using the CIM_AssociatedSensor "
 3095           	  "relationship."), 
 3096           	 Units ("Revolutions per Minute")
 3097           	]
 3098              uint64 DesiredSpeed;
 3099           	[Description (
 3100           	  "Requests that the Fan speed be set to the " 
 3101           	  "value specified in the method's input parameter. The return " 
 3102           	  "value should be 0 if the request was successfully executed, " 
 3103           	  "1 if the request is not supported and some other value if an " 
 3104           	  "error occurred. In a subclass, the set of possible "
 3105                   "return codes could be specified, using a ValueMap qualifier "
 3106                   "on the method. The strings to which the ValueMap contents "
 3107                   "are 'translated' may also be specified in the "
 3108                   "subclass as a Values array qualifier.")
 3109 karl  1.1 	]
 3110              uint32 SetSpeed ([IN] uint64 DesiredSpeed);
 3111           };
 3112           
 3113           // ===================================================================
 3114           // AssociatedCooling
 3115           // ===================================================================
 3116              [Association,
 3117               Description (
 3118                  "Many Devices, such as processors or power supplies, require "
 3119                  "their own cooling devices.  This association indicates where "
 3120                  "fans or other CoolingDevices are specific to a Device, "
 3121                  "versus providing enclosure or cabinet cooling.")
 3122              ] 
 3123           class CIM_AssociatedCooling : CIM_Dependency
 3124           {
 3125                 [Override ("Antecedent"),
 3126                  Description ("The CoolingDevice.")
 3127                 ]
 3128              CIM_CoolingDevice REF Antecedent;
 3129                 [Override ("Dependent"),
 3130 karl  1.1        Description ("The LogicalDevice being cooled.")
 3131                 ]
 3132              CIM_LogicalDevice REF Dependent;
 3133           };
 3134           
 3135           // ===================================================================
 3136           // UserDevice
 3137           // ===================================================================
 3138              [Abstract,
 3139               Description (
 3140                  "UserDevices are LogicalDevices that allow a ComputerSystem's "
 3141                  "users to input, view or hear data.  It is a superclass from "
 3142                  "which other classes, such as Keyboard or DesktopMonitor, "
 3143                  "descend.")
 3144              ] 
 3145           class CIM_UserDevice : CIM_LogicalDevice
 3146           {
 3147                 [Description (
 3148           	  "An indication of whether the Device is locked, preventing "
 3149           	  "user input or output.")
 3150                 ]
 3151 karl  1.1    boolean IsLocked;
 3152           };
 3153           
 3154           // ===================================================================
 3155           // PointingDevice
 3156           // ===================================================================
 3157              [Description (
 3158                  "PointingDevice represents those Devices used to 'point' to "
 3159                  "regions of a Display.")
 3160              ] 
 3161           class CIM_PointingDevice : CIM_UserDevice
 3162           {
 3163                 [Description ("The type of the pointing device."),
 3164           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9"},
 3165                  Values {"Other", "Unknown", "Mouse", "Track Ball", "Track Point",
 3166           	       "Glide Point", "Touch Pad", "Touch Screen", 
 3167                        "Mouse - Optical Sensor"}, 
 3168                  MappingStrings {"MIF.DMTF|Pointing Device|003"}
 3169                 ]
 3170              uint16 PointingType;
 3171                 [Description (
 3172 karl  1.1 	  "Number of buttons. If the PointingDevice has no buttons, "
 3173           	  "enter 0."),
 3174                  MappingStrings {"MIF.DMTF|Pointing Device|003"}
 3175                 ]
 3176              uint8 NumberOfButtons;
 3177                 [Description (
 3178           	  "Integer indicating whether the PointingDevice is configured "
 3179           	  "for right (value=2) or left handed operation (value=3). "
 3180           	  "Also, the values, \"Unknown\" (0) and \"Not Applicable\" (1), "
 3181           	  "can be defined."),
 3182                  Values {"Unknown", "Not Applicable", "Right Handed Operation",
 3183           	       "Left Handed Operation"}
 3184                 ]
 3185              uint16 Handedness;
 3186                 [Description (
 3187           	  "Tracking resolution of the PointingDevice in Counts per "
 3188           	  "Inch."),
 3189                  Units ("Counts per Inch")
 3190                 ]
 3191              uint32 Resolution;
 3192           };
 3193 karl  1.1 
 3194           // ===================================================================
 3195           // Keyboard
 3196           // ===================================================================
 3197              [Description (
 3198                  "Capabilities and management of the Keyboard LogicalDevice.")
 3199              ] 
 3200           class CIM_Keyboard : CIM_UserDevice
 3201           {
 3202                 [Description ("Number of function keys on the Keyboard.")]
 3203              uint16 NumberOfFunctionKeys;
 3204                 [Description (
 3205           	  "A free-form string indicating the format and layout of the "
 3206           	  "Keyboard."),
 3207                  MappingStrings {"MIF.DMTF|Keyboard|004"}
 3208                 ]
 3209              string Layout;
 3210                 [Description (
 3211           	  "An integer indicating whether a hardware-level password is "
 3212           	  "enabled at the keyboard (value=4), preventing local input. "
 3213           	  "Other values are:  \"Disabled\" (3), \"Not Implemented\" (5), "
 3214 karl  1.1 	  "\"Other\" (1) and \"Unknown\" (2)."),
 3215           	 ValueMap {"1", "2", "3", "4", "5"},
 3216                  Values {"Other", "Unknown", "Disabled", "Enabled", 
 3217           	       "Not Implemented"},
 3218                  MappingStrings {"MIF.DMTF|System Hardware Security|001.2"}
 3219                 ]
 3220              uint16 Password;
 3221           };
 3222           
 3223           // ===================================================================
 3224           // Display
 3225           // ===================================================================
 3226              [Abstract,
 3227               Description (
 3228                  "Display is a superclass for grouping the miscellaneous display "
 3229                  "devices that exist.")
 3230              ] 
 3231           class CIM_Display : CIM_UserDevice
 3232           {
 3233           };
 3234           
 3235 karl  1.1 // ===================================================================
 3236           // DesktopMonitor
 3237           // ===================================================================
 3238              [Description (
 3239                  "Capabilities and management of the DesktopMonitor (CRT) "
 3240                  "LogicalDevice.")
 3241              ] 
 3242           class CIM_DesktopMonitor : CIM_Display
 3243           {
 3244                 [Description (
 3245           	  "The type of DesktopMonitor or CRT. For example, "
 3246           	  "multiscan color or monochrome monitors (values 2 or 3, "
 3247           	  "respectively) can be indicated in this property."),
 3248                  Values {"Unknown", "Other", "Multiscan Color", 
 3249           	       "Multiscan Monochrome", "Fixed Frequency Color",
 3250           	       "Fixed Frequency Monochrome"}
 3251                 ]
 3252              uint16 DisplayType;
 3253                 [Description (
 3254           	  "Monitor's bandwidth in MHertz. If unknown, enter 0."),
 3255                  Units ("MegaHertz")
 3256 karl  1.1       ]
 3257              uint32 Bandwidth;
 3258                 [Description (
 3259                   "The logical height of the Display in screen coordinates.") ]
 3260              uint32 ScreenHeight;
 3261                 [Description ( 
 3262                   "The logical width of the Display in screen coordinates.") ]
 3263              uint32 ScreenWidth;
 3264           };
 3265           
 3266           // ===================================================================
 3267           // MonitorResolution
 3268           // ===================================================================
 3269              [Description (
 3270                  "MonitorResolution describes the relationship between "
 3271                  "horizontal and vertical resolutions, refresh rate and scan "
 3272                  "mode for a DesktopMonitor. The actual resolutions, etc. that "
 3273                  "are in use, are the values specified in the VideoController "
 3274                  "object.")
 3275              ] 
 3276           class CIM_MonitorResolution : CIM_Setting
 3277 karl  1.1 {
 3278                 [Override ("SettingID"),
 3279                  Key, MaxLen (256),
 3280                  Description (
 3281           	  "The inherited SettingID serves as part of the key for a "
 3282           	  "MonitorResolution instance.")
 3283                 ]
 3284              string SettingID; 
 3285                 [Description ("Monitor's horizontal resolution in Pixels."),
 3286                  Units ("Pixels"),
 3287           	 ModelCorrespondence {
 3288           	       "CIM_VideoController.CurrentHorizontalResolution"},
 3289                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.2"}
 3290                 ]
 3291              uint32 HorizontalResolution;
 3292                 [Description ("Monitor's vertical resolution in Pixels."),
 3293                  Units ("Pixels"),
 3294           	 ModelCorrespondence {
 3295           	       "CIM_VideoController.CurrentVerticalResolution"},
 3296                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.3"}
 3297                 ]
 3298 karl  1.1    uint32 VerticalResolution;
 3299                 [Description (
 3300           	  "Monitor's refresh rate in Hertz. If a range of rates is "
 3301           	  "supported, use the MinRefreshRate and MaxRefreshRate "
 3302           	  "properties, and set RefreshRate (this property) to 0."), 
 3303                  Units ("Hertz"),
 3304           	 ModelCorrespondence {
 3305           	       "CIM_VideoController.CurrentRefreshRate"},
 3306                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.4"}
 3307                 ]
 3308              uint32 RefreshRate;
 3309                 [Description (
 3310           	  "Monitor's minimum refresh rate in Hertz, when a range of "
 3311           	  "rates is supported at the specified resolutions."),
 3312                  Units ("Hertz"),
 3313           	 ModelCorrespondence {
 3314           	       "CIM_VideoController.MinRefreshRate"},
 3315                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.6"}
 3316                 ]
 3317              uint32 MinRefreshRate;
 3318                 [Description (
 3319 karl  1.1 	  "Monitor's maximum refresh rate in Hertz, when a range of "
 3320           	  "rates is supported at the specified resolutions."),
 3321                  Units ("Hertz"),
 3322           	 ModelCorrespondence {
 3323           	       "CIM_VideoController.MaxRefreshRate"},
 3324                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.7"}
 3325                 ]
 3326              uint32 MaxRefreshRate;
 3327                 [Description (
 3328           	  "Integer indicating whether the monitor operates in "
 3329           	  "interlaced (value=5) or non-interlaced (4) mode."),
 3330           	 ValueMap {"1", "2", "3", "4", "5"},
 3331                  Values {"Other", "Unknown", "Not Supported",
 3332           	       "Non-Interlaced Operation", "Interlaced Operation"},
 3333           	 ModelCorrespondence {
 3334           	       "CIM_VideoController.CurrentScanMode"},
 3335                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.5"}
 3336                 ]
 3337              uint16 ScanMode;
 3338           };
 3339           
 3340 karl  1.1 // ===================================================================
 3341           // MonitorSetting
 3342           // ===================================================================
 3343              [Association,
 3344               Description (
 3345                  "MonitorSetting associates the MonitorResolution Setting object "
 3346                  "with the DesktopMonitor to which it applies.")
 3347              ] 
 3348           class CIM_MonitorSetting : CIM_ElementSetting
 3349           {
 3350                 [Override ("Element"), 
 3351                  Description ("The DesktopMonitor.")       
 3352                 ] 
 3353              CIM_DesktopMonitor REF Element;
 3354                 [Override ("Setting"),
 3355                  Description (
 3356           	  "The MonitorResolution associated with the DesktopMonitor.")
 3357                 ]   
 3358              CIM_MonitorResolution REF Setting;
 3359           };
 3360           
 3361 karl  1.1 // ===================================================================
 3362           // FlatPanel
 3363           // ===================================================================
 3364              [Description (
 3365                  "Capabilities and management of the FlatPanel LogicalDevice.")
 3366              ] 
 3367           class CIM_FlatPanel : CIM_Display 
 3368           {
 3369                 [Description ("FlatPanel's horizontal resolution in Pixels."),
 3370                  Units ("Pixels")
 3371                 ]
 3372              uint32 HorizontalResolution;
 3373                 [Description ("FlatPanel's vertical resolution in Pixels."),
 3374                  Units ("Pixels")
 3375                 ]
 3376              uint32 VerticalResolution;
 3377                 [Description (
 3378           	  "A FlatPanel's scan mode indicating either single "
 3379           	  "(value=2) or dual scan (3)."),
 3380                  Values {"Unknown", "Other", "Single Scan", "Dual Scan"}
 3381                 ]
 3382 karl  1.1    uint16 ScanMode;
 3383                 [Description (
 3384           	  "An integer enumeration describing the type of flat panel "
 3385           	  "display."),
 3386                  Values {"Unknown", "Other", "Passive Matrix LCD", 
 3387                          "Active Matrix LCD", "Cholesteric LCD",
 3388                          "Field Emission Display", 
 3389           	         "Electro Luminescent Display", "Gas Plasma", "LED"}
 3390                 ]
 3391              uint16 DisplayType;
 3392                 [Description (
 3393           	  "A description of the display illumination type. For example, "
 3394           	  "backlit (value=2) or reflective (4) can be specified."),
 3395                  Values {"Unknown", "Other", "Backlit", "Edgelit", "Reflective"}
 3396                 ]
 3397              uint16 LightSource;
 3398                 [Description (
 3399           	 "Boolean indicating whether the FlatPanel supports color "
 3400           	 "display.")
 3401                 ]
 3402              boolean SupportsColor;
 3403 karl  1.1 };
 3404           
 3405           // ===================================================================
 3406           // Scanner
 3407           // ===================================================================
 3408              [Description (
 3409                  "Capabilities and management of the Scanner LogicalDevice.")
 3410              ] 
 3411           class CIM_Scanner : CIM_LogicalDevice
 3412           {
 3413           };
 3414           
 3415           // ===================================================================
 3416           // CIM_OOBAlertService 
 3417           // ===================================================================
 3418              [Description (
 3419                  "This Service is implemented by a LogicalDevice (e.g. a "
 3420                  "NetworkAdapter or Modem) that is capable of sending alert "
 3421                  "messages to a remote destination. The alert messages reflect "
 3422                  "the state of one or more ManagedSystemElements. The Elements "
 3423                  "for which alert messages are forwarded, are defined by "
 3424 karl  1.1        "enumerating the ProvidesServiceToElement association for the "
 3425                  "Service. Out of Band (OOB) refers to the mechanisms in use when "
 3426                  "normal OS-based management mechanisms are not possible. This "
 3427                  "occurs when the OS is down or not functioning properly.")
 3428              ]
 3429           class CIM_OOBAlertService : CIM_Service
 3430           {
 3431                 [Description (
 3432                   "The type of the alert destination. For example, the alert "
 3433                   "may be received by an application listening on a UDP Port on "
 3434                   "a remote destination, or could be sent to a pager (values "
 3435                   "4 or 2, respectively)."), 
 3436                  Values {"Unknown", "Other", "Pager", "TCP Port", "UDP Port"}, 
 3437                  ModelCorrespondence {
 3438                        "CIM_OOBAlertService.OtherDestinationTypeDescription"}
 3439                 ]
 3440              uint16 DestinationType;
 3441                 [Description (
 3442                   "The description of the alert DestinationType. This is used "
 3443                   "when the DestinationType is set to \"Other\" (value=1)."), 
 3444                  ModelCorrespondence {"CIM_OOBAlertService.DestinationType"}
 3445 karl  1.1       ]
 3446              string OtherDestinationTypeDescription;
 3447                 [Description (
 3448                   "The address where this Service sends the alerts. The "
 3449                   "format of this address depends on the DestinationType. For "
 3450                   "example, if the DestinationType is a UDP Port (value=4), "
 3451                   "then this property contains a string identifying the IP "
 3452                   "address of the Port (for example, 111.222.333.444:4567). "
 3453                   "If DestinationType is a pager (value=2), then the "
 3454                   "address is a Pager number (for example, 18002257654).")
 3455                 ]
 3456              string DestinationAddress;
 3457                 [Description (
 3458                   "The format of the Alert Message sent by the Service."), 
 3459                  Values {"Unknown", "Other", "Numeric", "AlphaNumeric", 
 3460                        "Free Form Text", "Platform Event Trap"}, 
 3461                  ModelCorrespondence {
 3462                        "CIM_OOBAlertService.OtherMessageFormatDescription"}
 3463                 ]
 3464              uint16 MessageFormat;
 3465                 [Description (
 3466 karl  1.1         "The description of the format of the alert message used "
 3467                   "by the Service when the AlertMessageFormat property is "
 3468                   "set to \"Other\" (value=1)."), 
 3469                  ModelCorrespondence {"CIM_OOBAlertService.MessageFormat"}
 3470                 ]
 3471              string OtherMessageFormatDescription;
 3472                 [Description (
 3473                   "If the AlertService only uses a fixed message to send "
 3474                   "an alert, then this flag should be set to TRUE.")
 3475                 ]
 3476              boolean OnlySendsFixedMessage;
 3477                 [Description (
 3478                   "The AlertService may require some fixed data to send as "
 3479                   "part of the message. This may include things like the "
 3480                   "address or name of the System. This string contains the "
 3481                   "complete message when the property, OnlySendsFixedMessage, "
 3482                   "is set to TRUE.")
 3483                 ]
 3484              string FixedPartOfMessage;
 3485                 [Description (
 3486                   "If the destination is capable of sending an acknowledgement "
 3487 karl  1.1         "to the alert, then this flag is set to TRUE. The format of "
 3488                   "the acknowledgement is determined by the DestinationType "
 3489                   "and the MessageFormat.")
 3490                 ]
 3491              boolean DestinationIsAckCapable;
 3492                 [Description (
 3493                   "The AlertService may retry and send an alert more than "
 3494                   "once. The RetryCount identifies how often the operation will "
 3495                   "be repeated. If DestinationIsAckCapable is set to TRUE, then "
 3496                   "the retry will only be done if an Ack is not received. "
 3497                   "Otherwise, the retries are done unconditionally.")
 3498                 ]
 3499              uint16 RetryCount;
 3500                 [Description (
 3501                   "The interval between each successive retry, in seconds. "
 3502                   "If DestinationIsAckCapable is set to TRUE, then this "
 3503                   "interval is used as a timeout interval, before the next "
 3504                   "retry is done."), 
 3505                  Units ("Seconds")
 3506                 ]
 3507              uint16 RetryInterval;
 3508 karl  1.1 };
 3509           
 3510           // ===================================================================
 3511           // WakeUpService 
 3512           // ===================================================================
 3513              [Description (
 3514                  "WakeUpService allows a UnitaryComputerSystem to be woken up "
 3515                  "from a low power sleep state. This Service is implemented "
 3516                  "by a LogicalDevice (e.g. NetworkAdapter or Modem) that is "
 3517                  "capable of receiving wakeup messages, and notifying the "
 3518                  "System.")
 3519              ]
 3520           class CIM_WakeUpService : CIM_Service
 3521           {
 3522                 [Description ("The Type of the WakeUp Service."), 
 3523                  Values {"Unknown", "Other", "Wake On LAN - Magic Packet", 
 3524                        "Wake on LAN - Packet Filtering", "Wake On Ring"}, 
 3525                  ModelCorrespondence {
 3526                        "CIM_WakeUpServcice.OtherWakeUpTypeDescription"}
 3527                 ]
 3528              uint16 WakeUpType;
 3529 karl  1.1       [Description (
 3530                   "A description of the type of WakeUpService used when "
 3531                   "WakeUpType is set to \"Other\" (value=1)."), 
 3532                  ModelCorrespondence {"CIM_WakeUpService.WakeUpType"}
 3533                 ]
 3534              string OtherWakeUpTypeDescription;
 3535                 [Description (
 3536                   "The filter type on the packets/messages that trigger "
 3537                   "the WakeUpService. This field is only used when the WakeUp"
 3538                   "Type is set to \"Wake On LAN - Packet Filtering\" (value"
 3539                   "=3)."), 
 3540                  Values {"Unknown", "Other", "ARP Broadcast", 
 3541                        "Neighbor Discovery Multicast", 
 3542                        "IP Packet with Directed MAC Address", 
 3543                        "IPX Diagnostic Responder", "NBT Name Query", 
 3544                        "Binary Match"}, 
 3545                  ModelCorrespondence {
 3546                        "CIM_WakeUpService.OtherFilterTypeDescription"}
 3547                 ]
 3548              uint16 FilterType;
 3549                 [OctetString, Description (
 3550 karl  1.1         "The binary data that is used to compare the contents "
 3551                   "of the received packet. This is used when the FilterType is "
 3552                   "set to \"Binary Match\" (value=7). This could also be used "
 3553                   "when the FilterType is set to \"Other\" (value=1).")
 3554                 ]
 3555              uint8 FilterData[];
 3556                 [Description (
 3557                   "The description of the format of the FilterType used by "
 3558                   "the Service when the FilterType is set to \"Other\" "
 3559                   "(value=1)."), 
 3560                  ModelCorrespondence {"CIM_WakeUpService.FilterType"}
 3561                 ]
 3562              string OtherFilterTypeDescription;
 3563           };
 3564           
 3565           // ===================================================================
 3566           // Modem 
 3567           // ===================================================================
 3568              [Abstract, 
 3569               Description (
 3570                  "CIM_Modem is the superclass for grouping the numerous types "
 3571 karl  1.1        "of Modems.")
 3572              ]
 3573           class CIM_Modem : CIM_LogicalDevice
 3574           {
 3575           };
 3576           
 3577           // ===================================================================
 3578           // OOBAlertServiceOnModem 
 3579           // ===================================================================
 3580              [Association, 
 3581               Description (
 3582                  "OOBAlertServiceOnModem defines where the out of band alerting "
 3583                  "Service is implemented. The Service can either employ a Modem "
 3584                  "or NetworkAdapter to send alerts.")
 3585              ]
 3586           class CIM_OOBAlertServiceOnModem : CIM_DeviceServiceImplementation
 3587           {
 3588                 [Override ("Antecedent"), 
 3589                  Description ("The Modem which implements the alerting Service."),
 3590                  Max (1)
 3591                 ]
 3592 karl  1.1    CIM_Modem REF Antecedent;
 3593                 [Override ("Dependent"), 
 3594                  Description ("The alerting Service provided on the Modem.")
 3595                 ]
 3596              CIM_OOBAlertService REF Dependent;
 3597           };
 3598           
 3599           // ===================================================================
 3600           // WakeUpServiceOnModem 
 3601           // ===================================================================
 3602              [Association, 
 3603               Description (
 3604                  "WakeUpServiceOnModem defines where the WakeUpService is "
 3605                  "implemented. The Service can either employ a Modem or "
 3606                  "NetworkAdapter to receive a wakeup signal.")
 3607              ]
 3608           class CIM_WakeUpServiceOnModem : CIM_DeviceServiceImplementation
 3609           {
 3610                 [Override ("Antecedent"), 
 3611                  Description ("The Modem which implements the WakeUpService."), 
 3612                  Max (1)
 3613 karl  1.1       ]
 3614              CIM_Modem REF Antecedent;
 3615                 [Override ("Dependent"), 
 3616                  Description ("The wakeup Service provided on the Modem.")
 3617                 ]
 3618              CIM_WakeUpService REF Dependent;
 3619           };
 3620           
 3621           // ===================================================================
 3622           // ConnectionBasedModem 
 3623           // ===================================================================
 3624              [Abstract, 
 3625               Description (
 3626                  "CIM_ConnectionBasedModem is the superclass for grouping the "
 3627                  "numerous types of connection-based Modems. A CableModem is a "
 3628                  "type of connection-based Modem.")
 3629              ]
 3630           class CIM_ConnectionBasedModem : CIM_Modem
 3631           {
 3632                 [Description (
 3633                   "VendorID information is reported via Modem-specific requests. "
 3634 karl  1.1         "For example, for ADSLModem Devices the VendorID is assigned by "
 3635                   "T1E1.4 according to T1.413, Appendix D. The correct place in "
 3636                   "the CIM Schema for this information is in PhysicalElement "
 3637                   "(the Manufacturer property) for hardware and Product (the "
 3638                   "Vendor property) if the information is related to Product "
 3639                   "acquisition. This data is also reported here since it is part "
 3640                   "of the standard output from the Device, and as an "
 3641                   "optimization.")
 3642                 ]
 3643              string VendorID;
 3644           };
 3645           
 3646           // ===================================================================
 3647           // DSLModem 
 3648           // ===================================================================
 3649              [Description (
 3650                  "The DSLModem class represents the superclass for Digital "
 3651                  "Subscriber Line (DSL) Devices. Properties "
 3652                  "will be defined in a future release of the model.") 
 3653              ]
 3654           class CIM_DSLModem : CIM_ConnectionBasedModem
 3655 karl  1.1 {
 3656           };
 3657           
 3658           // ===================================================================
 3659           // VDSLModem 
 3660           // ===================================================================
 3661              [Description (
 3662                  "The VDSLmodem class represents Modems of the DSL type = "
 3663                  "VDSL, Very high data rate Digital Subscriber Line. Properties "
 3664                  "will be defined in a future release of the model.")
 3665              ]
 3666           class CIM_VDSLModem : CIM_DSLModem
 3667           {
 3668           };
 3669           
 3670           // ===================================================================
 3671           // HDSLModem 
 3672           // ===================================================================
 3673              [Description (
 3674                  "The HDSLModem class represents Modems of the DSL type = "
 3675                  "HDSL, High data rate Digital Subscribe Line, capable of "
 3676 karl  1.1        "delivering T1 or E1 speeds. Properties will be defined in a "
 3677                  "future release of the model.")
 3678           
 3679              ]
 3680           class CIM_HDSLModem : CIM_DSLModem
 3681           {
 3682           };
 3683           
 3684           // ===================================================================
 3685           // SDSLModem 
 3686           // ===================================================================
 3687              [Description (
 3688                  "The SDSLModem class represents Modems of the DSL type = "
 3689                  "SDSL, Symmetric Digital Subscriber Line. Properties "
 3690                  "will be defined in a future release of the model.")
 3691              ]
 3692           class CIM_SDSLModem : CIM_DSLModem
 3693           {
 3694           };
 3695           
 3696           // ===================================================================
 3697 karl  1.1 // ADSLModem 
 3698           // ===================================================================
 3699              [Description (
 3700                  "The ADSLModem class represents Modems of the DSL type = ADSL, "
 3701                  "Asymmetric Digital Subscriber Line.")
 3702              ]
 3703           class CIM_ADSLModem : CIM_DSLModem
 3704           {
 3705                 [Description (
 3706                   "Noise Margin of this Modem with respect to its received signal, "
 3707                   "in tenths of dB."), 
 3708                 Units ("Tenths of Decibels")
 3709                 ]
 3710              uint32 NoiseMargin;
 3711                 [Gauge, Description (
 3712                   "Measured difference in the total power transmitted by the peer "
 3713                   "Modem and the total power received by this Modem. This is "
 3714                   "measured in tenths of dB."), 
 3715                  Units ("Tenths of Decibels")
 3716                 ]
 3717              uint32 LineAttenuation;
 3718 karl  1.1       [Description (
 3719                   "Status indicates the current state of the connection (line). The "
 3720                   "property holds a bitmap describing the possible conditions. "
 3721                   "For example, 1) No Defect - There no defects on the line; "
 3722                   "2) Loss Of Framing - ATUR failure due to not receiving valid frame; "
 3723                   "4) Loss Of Signal - ATUR failure due to not receiving signal; "
 3724                   "8) Loss Of Power - ATUR failure due to loss of power; "
 3725                   "32) Loss Of Signal Quality - Loss of Signal Quality is declared "
 3726                   "when the NoiseMargin falls below the minimum NoiseMargin, or the "
 3727                   "bit-error-rate exceeds 10^-7."), 
 3728                  ValueMap {"1", "2", "4", "8", "32"}, 
 3729                  Values {"No Defect", "Loss Of Framing", "Loss Of Signal", 
 3730                        "Loss Of Power", "Loss Of Signal Quality"}
 3731                 ]
 3732              uint32 LineState;
 3733                 [Gauge, Description (
 3734                   "Measured total output power (in tenths of dB) transmitted by "
 3735                   "this Modem."), 
 3736                  Units ("Tenths of Decibels")
 3737                 ]
 3738              uint32 TotalOutputPower;
 3739 karl  1.1       [Description (
 3740                   "Indicates the maximum currently attainable data rate for the Modem. "
 3741                   "This value will be equal or greater than the current line rate."), 
 3742                  Units ("Bits per Second")
 3743                 ]
 3744              uint32 MaxDataRate;
 3745           };
 3746           
 3747           // ===================================================================
 3748           // CableModem 
 3749           // ===================================================================
 3750              [Description (
 3751                  "The CableModem class represents a device for transmission "
 3752                  "across a cable infrastructure.")
 3753              ]
 3754           class CIM_CableModem: CIM_ConnectionBasedModem
 3755           {
 3756           };
 3757           
 3758           // ===================================================================
 3759           // CallBasedModem 
 3760 karl  1.1 // ===================================================================
 3761              [Abstract,
 3762               Description (
 3763                  "CIM_CallBasedModem is the superclass for grouping the numerous "
 3764                  "types of call-based modems. The POTSModem is a type of call-"
 3765                  "based Modem.")
 3766              ]
 3767           class CIM_CallBasedModem : CIM_Modem
 3768           {
 3769                 [Description (
 3770                   "Indicates whether online fallback is enabled, to be negotiated "
 3771                   "by the Modem.")
 3772                 ]
 3773              boolean FallbackEnabled;
 3774                 [Description (
 3775                   "An array enumerating all the compression protocols supported "
 3776                   "by the Modem."), 
 3777                  Values {"Unknown", "Other", "No Compression", "MNP 5", "V.42bis", 
 3778                        "MNP 3", "MNP 4", "V.58", "PEP", "HST"}, 
 3779                  ModelCorrespondence {
 3780                        "CIM_CallBasedModem.OtherCompressionDescription"}
 3781 karl  1.1       ]
 3782              uint16 CompressionSupported[];
 3783                 [Description (
 3784                   "Description of the compression type when \"Other \" (value=1) "
 3785                   "is defined in the CompressionSupported array. If there are "
 3786                   "multiple \"Other\" types, then combine their descriptions into "
 3787                   "a single string."), 
 3788                 ModelCorrespondence {"CIM_CallBasedModem.CompressionSupported"}
 3789                 ]
 3790              string OtherCompressionDescription;
 3791                 [Description (
 3792           	  "Describes the current data compression characteristics of the "
 3793           	  "Modem. "),
 3794                  Values {"Unknown", "Other", "No Compression", "MNP 5", "V.42bis", 
 3795                        "MNP 3", "MNP 4", "V.58", "PEP", "HST"},
 3796                  ModelCorrespondence {"CIM_CallBasedModem.CompressionSupported", 
 3797                        "CIM_CallBasedModem.OtherCompressionInfoDescription"} 
 3798                 ]
 3799              uint16 CompressionInfo;
 3800                 [Description (
 3801                   "Description of the current compression type when \"Other\" "
 3802 karl  1.1         "(value=1) is specified in the CompressionInfo property."), 
 3803                  ModelCorrespondence {"CIM_CallBasedModem.CompressionInfo"}
 3804                 ]
 3805              string OtherCompressionInfoDescription;
 3806                 [Description (
 3807                   "An array enumerating all the modulation protocols supported by "
 3808                   "the Modem. The beginning entries in the Values qualifier array "
 3809                   "are mapped from the CIM_POTSModem ModulationScheme property."),
 3810                  Values {"Unknown", "Other", "Not Supported", "Bell 103", 
 3811                        "Bell 212A", "V.22bis", "V.32", "V.32bis", "V.terbo", 
 3812                        "V.FC", "V.34", "V.34bis", "V.17 (G3 Fax Call)", "V.21", 
 3813                        "V.22", "V.23 Constant Carrier (1200/75)", 
 3814                        "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
 3815                        "V.26ter", "V.27ter (G3 Fax Call)", 
 3816                        "V.29 HD (G3 Fax Call)", "V.34 HD (G3 Fax Call)", 
 3817                        "V.90 Issue 1 (Asymmetric)", "V.90 Issue 2 (Symmetric)", 
 3818                        "V.58", "X2", "K56FLEX", "V.Fast", "PEP", "HST"}, 
 3819                  ModelCorrespondence {
 3820                        "CIM_CallBasedModem.OtherModulationDescription"}
 3821                 ]
 3822              uint16 ModulationSupported[];
 3823 karl  1.1       [Description (
 3824                   "Description of the current modulation type when \"Other\" "
 3825                   "(value=1) is specified in the ModulationSupported property. "
 3826                   "If there are multiple \"Other\" types, then combine their "
 3827                   "descriptions into a single string."), 
 3828                  ModelCorrespondence {"CIM_CallBasedModem.ModulationSupported"}
 3829                 ]
 3830              string OtherModulationDescription;
 3831                 [Description (
 3832                   "Describes the current modulation scheme of the Modem."),
 3833                  Values {"Unknown", "Other", "Not Supported", "Bell 103", 
 3834                        "Bell 212A", "V.22bis", "V.32", "V.32bis", "V.terbo", 
 3835                        "V.FC", "V.34", "V.34bis", "V.17 (G3 Fax Call)", "V.21", 
 3836                        "V.22", "V.23 Constant Carrier (1200/75)", 
 3837                        "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
 3838                        "V.26ter", "V.27ter (G3 Fax Call)", 
 3839                        "V.29 HD (G3 Fax Call)", "V.34 HD (G3 Fax Call)", 
 3840                        "V.90 Issue 1 (Asymmetric)", "V.90 Issue 2 (Symmetric)", 
 3841                        "V.58", "X2", "K56FLEX", "V.Fast", "PEP", "HST"}, 
 3842                  ModelCorrespondence {"CIM_CallBasedModem.ModulationSupported",
 3843                        "CIM_CallBasedModem.OtherSchemeDescription"} 
 3844 karl  1.1       ]
 3845              uint16 ModulationScheme;
 3846                 [Description (
 3847                   "Description of the current modulation type when \"Other\" "
 3848                   "(value=1) is specified in the ModulationScheme property."), 
 3849                  ModelCorrespondence {"CIM_CallBasedModem.ModulationScheme"}
 3850                 ]
 3851              string OtherSchemeDescription;
 3852                 [Description (
 3853                   "An array enumerating the error control protocols supported "
 3854                   "by the Modem. The beginning entries in the Values qualifier "
 3855                   "array are mapped from the CIM_POTSModem ErrorControlInfo "
 3856                   "property."), 
 3857                  Values {"Unknown", "Other", "No Error Correction", "MNP 4", 
 3858                        "LAPM", "V.58", "ECP Enhanced Cellular Protocol", 
 3859                        "ETC Enhanced Throughput Cellular", "MNP 1", "MNP 2", 
 3860                        "MNP 3", "MNP10", "PEP", "HST"}, 
 3861                  ModelCorrespondence {
 3862                        "CIM_CallBasedModem.OtherErrorControlDescription"}
 3863                 ]
 3864              uint16 ErrorControlSupported[];
 3865 karl  1.1       [Description (
 3866                   "Description of the error control type when \"Other\" (value="
 3867                   "1) is specified in the ErrorControlSupported property. If "
 3868                   "there are multiple \"Other\" types, then combine their "
 3869                   "descriptions into a single string."), 
 3870                  ModelCorrespondence {
 3871                        "CIM_CallBasedModem.ErrorControlSupported"}
 3872                 ]
 3873              string OtherErrorControlDescription;
 3874                 [Description (
 3875           	  "Describes the current error correction characteristics of the "
 3876                   "Modem."),
 3877                  Values {"Unknown", "Other", "No Error Correction", "MNP 4", 
 3878                        "LAPM", "V.58", "ECP Enhanced Cellular Protocol", 
 3879                        "ETC Enhanced Throughput Cellular", "MNP 1", "MNP 2", 
 3880                        "MNP 3", "MNP10", "PEP", "HST"},
 3881                  ModelCorrespondence {"CIM_CallBasedModem.ErrorControlSupported", 
 3882                        "CIM_CallBasedModem.OtherErrorControlInfoDescription"} 
 3883                 ]
 3884              uint16 ErrorControlInfo;
 3885                 [Description (
 3886 karl  1.1         "Description of the error control when \"Other\" (value=1) "
 3887                   "is defined as the value of the ErrorControlInfo property."), 
 3888                  ModelCorrespondence {"CIM_CallBasedModem.ErrorControlInfo"}
 3889                 ]
 3890              string OtherErrorControlInfoDescription;
 3891                 [Description ("Time of last reset of the Modem.")]
 3892              datetime TimeOfLastReset;
 3893                 [Description (
 3894                   "The rate at which the receiver and transmitter are or were "
 3895                   "last cooperating, on a call, before disconnection."), 
 3896                  Units ("Bits per Second")
 3897                 ]
 3898              uint32 CallSpeed;
 3899                 [Description (
 3900                   "Status of the Modem. For example, information regarding "
 3901                   "modem negotiation or whether the modem is connected (values "
 3902                   "8 and 9, respectively) can be conveyed in this property."), 
 3903                  Values {"Unknown", "Other", "Offline", "On Hook", "Dialing", 
 3904                        "Waiting for Answer", "Ringing", "Modem Detected",  
 3905                        "Negotiating", "Online", "Error"}
 3906                 ]
 3907 karl  1.1    uint16 CallStatus;
 3908                 [Description (
 3909                   "Total number of characters sent by the Device on the last "
 3910                   "or current call. That a call is in-progress is indicated by "
 3911                   "the CallStatus property."), 
 3912                  Counter
 3913                 ]
 3914              uint32 CharsSent;
 3915                 [Description (
 3916                   "Total number of characters received by the Device on the last "
 3917                   "or current call. That a call is in-progress is indicated by the "
 3918                   "CallStatus property."), 
 3919                  Counter
 3920                 ]
 3921              uint32 CharsReceived;
 3922                 [Description (
 3923                   "Total number of characters lost by the Device on the last or "
 3924                   "current call. That a call is in-progress is indicated by the "
 3925                   "CallStatus property."), 
 3926                  Counter
 3927                 ]
 3928 karl  1.1    uint32 CharsLost;
 3929                 [Description (
 3930                   "Total number of blocks sent by the Device on the last or "
 3931                   "current call. That a call is in-progress is indicated by the "
 3932                   "CallStatus property."), 
 3933                  Counter
 3934                 ]
 3935              uint32 BlocksSent;
 3936                 [Description (
 3937                   "Total number of blocks resent by the Device on the last or "
 3938                   "current call. That a call is in-progress is indicated by the "
 3939                   "CallStatus property."), 
 3940                  Counter
 3941                 ]
 3942              uint32 BlocksResent;
 3943                 [Description (
 3944                   "Total number of blocks received by the Device on the last or "
 3945                   "current call. That a call is in-progress is indicated by the "
 3946                   "CallStatus property."), 
 3947                  Counter
 3948                 ]
 3949 karl  1.1    uint32 BlocksReceived;
 3950                 [Description (
 3951                   "Total number of block errors seen by the Device on the last "
 3952                   "or current call. That a call is in-progress is indicated by the "
 3953                   "CallStatus property."), 
 3954                  Counter
 3955                 ]
 3956              uint32 BlockErrors;
 3957                 [Description (
 3958                   "Length of the last or current call. That a call is in-progress "
 3959                   "is indicated by the CallStatus property. The 'interval' "
 3960                   "format of the datetime data type should be used for the property "
 3961                   "value.")
 3962                 ]
 3963              datetime CallLength;
 3964                 [Description (
 3965                   "Last or current number dialed to which the statistics apply, or "
 3966                   "NULL if the call was incoming.")
 3967                 ]
 3968              string NumberDialed;
 3969           };
 3970 karl  1.1 
 3971           // ===================================================================
 3972           // ISDNModem 
 3973           // ===================================================================
 3974              [Description (
 3975                  "The ISDNModem class, a kind of call-based Modem. Properties "
 3976                  "will be defined in a future release of the model.")
 3977              ]
 3978           class CIM_ISDNModem: CIM_CallBasedModem
 3979           {
 3980           };
 3981           
 3982           
 3983           // ===================================================================
 3984           // POTSModem
 3985           // ===================================================================
 3986              [Description (
 3987                  "The POTSModem class represents a Device that translates "
 3988                  "binary data into wave modulations for sound based "
 3989                  "transmission.  It connects to the POTS (Plain Old Telephone "
 3990                  "System) network.")
 3991 karl  1.1    ] 
 3992           class CIM_POTSModem : CIM_CallBasedModem
 3993           {
 3994                 [Description (
 3995                   "Capabilities of the POTSModem. For example, the Device "
 3996                   "may support distinctive ring, caller ID, fax, voice, etc."), 
 3997                  ArrayType ("Indexed"), 
 3998                  Values {"Unknown", "Other", "Distinctive Ring", "Caller ID", 
 3999                        "Voice", "Fax Class 1", "Fax Class 2", "WakeOnRing", 
 4000                        "Fax Group 3", "GSM Support", "AMPS Support", 
 4001                        "OOB Alerting", "Worldwide Country Support"}, 
 4002                  ModelCorrespondence {"CIM_POTSModem.CapabilityDescriptions"}
 4003                 ]
 4004              uint16 Capabilities[];
 4005                 [Description (
 4006                   "An array of free-form strings providing more detailed "
 4007                   "explanations for any of the POTSModem features indicated "
 4008                   "in the Capabilities array. Note, each entry of this array "
 4009                   "is related to the entry in the Capabilities array that "
 4010                   "is located at the same index."), 
 4011                  ArrayType ("Indexed"), 
 4012 karl  1.1        ModelCorrespondence {"CIM_POTSModem.Capabilities"}
 4013                 ]
 4014              string CapabilityDescriptions[];
 4015                 [Description (
 4016                   "Specifies which capabilities are enabled from the list of "
 4017                   "ones supported, defined in the Capabilities array."), 
 4018                  Values {"Unknown", "Other", "Distinctive Ring", "Caller ID", 
 4019                        "Voice", "Fax Class 1", "Fax Class 2", "WakeOnRing", 
 4020                        "Fax Group 3", "GSM Support", "AMPS Support", 
 4021                        "OOB Alerting", "Worldwide Country Support"}, 
 4022                  ModelCorrespondence {"CIM_POTSModem.Capabilities"}
 4023                 ]
 4024              uint16 EnabledCapabilities[];
 4025                 [Description (
 4026           	  "Defines the maximum settable communication speed "
 4027           	  "to the COM Port for an external modem.  Enter 0 if "
 4028           	  "not applicable."),
 4029                  Units ("Bits per Second")
 4030                 ]
 4031              uint32 MaxBaudRateToSerialPort;
 4032                 [Description (
 4033 karl  1.1 	  "Defines the maximum settable communication speed "
 4034           	  "for accessing the phone system."), 
 4035                  Units ("Bits per Second")
 4036                 ]
 4037              uint32 MaxBaudRateToPhone;
 4038                 [Description (
 4039           	  "Boolean indicating that synchronous, as well as "
 4040           	  "asynchronous, communication is supported.")
 4041                 ]
 4042              boolean SupportsSynchronousConnect;
 4043                 [Description (
 4044           	  "DialType is an integer indicating whether tone (value=1) or "
 4045           	  "pulse dialing (value=2) is used. \"Unknown\" (0) can also be "
 4046           	  "defined."),
 4047                  Values {"Unknown", "Tone", "Pulse"}
 4048                 ]
 4049              uint16 DialType;
 4050                 [Description (
 4051           	  "InactivityTimeout defines the time limit (in seconds) "
 4052           	  "for automatic disconnection of the phone line, if no data "
 4053           	  "is exchanged.  A value of 0 indicates that this "
 4054 karl  1.1 	  "feature is present but not enabled."),
 4055                  Units ("Seconds")
 4056                 ]
 4057              uint32 InactivityTimeout;
 4058                 [Description (
 4059           	  "Describes the volume level of the audible tones from the "
 4060           	  "Modem. For example, high, medium or low volume can be "
 4061           	  "reported (values 3, 4 or 5, respectively)."),
 4062                  Values {"Unknown", "Other", "Not Supported", "High", 
 4063           	       "Medium", "Low", "Off", "Auto"}
 4064                 ]
 4065              uint16 SpeakerVolumeInfo;
 4066                 [MaxLen (64), Description (
 4067           	  "CountriesSupported is an array of strings defining the "
 4068           	  "countries in which the POTSModem operates.")
 4069                 ]
 4070              string CountriesSupported[];
 4071                 [MaxLen (64), Description (
 4072           	  "CountrySelected is a string value defining the country "
 4073           	  "for which the Modem is currently programmed. When multiple "
 4074           	  "countries are supported, this property defines which one "
 4075 karl  1.1 	  "is currently selected for use.")
 4076                 ]	
 4077              string CountrySelected;
 4078                 [Description (
 4079           	  "Number of rings before the Modem answers an incoming call.")
 4080                 ]	 
 4081              uint8 RingsBeforeAnswer;
 4082                 [Description (
 4083            	  "MaxNumberOfPasswords specifies the number of passwords "
 4084           	  "definable in the Modem itself.  If this feature is not "
 4085           	  "supported, enter 0.")
 4086                 ] 
 4087              uint16 MaxNumberOfPasswords;
 4088                 [MaxLen (24), Description (
 4089           	  "CurrentPasswords is an array containing the currently defined "
 4090           	  "passwords for the Modem.  This array may be left blank for "
 4091           	  "security reasons.")
 4092                 ] 
 4093              string CurrentPasswords[];
 4094                 [Description (
 4095           	  "Indication of whether the Modem supports call-back.")]
 4096 karl  1.1    boolean SupportsCallback;
 4097                 [Description (
 4098           	  "AnswerMode defines the current auto-answer/call-back "
 4099           	  "setting for the Modem."),
 4100                  Values {"Unknown", "Other", "Disabled", "Manual Answer", 
 4101           	       "Auto Answer", "Auto Answer with Call-Back"}
 4102                 ]
 4103              uint16 AnswerMode;
 4104                 [Description (
 4105                   "The current equalization setting for the Modem."), 
 4106                  Values {"Unknown", "Other", "Long", "Short"}
 4107                 ]
 4108              uint16 Equalization;
 4109                 [Description ("List of black-listed numbers for the Modem.") ]
 4110              string BlackListedNumbers[];
 4111           };
 4112           
 4113           // ===================================================================
 4114           // Unimodem
 4115           // ===================================================================
 4116              [Description (
 4117 karl  1.1        "Unimodem is a POTSModem that supports the Unimodem 1.0 "
 4118                  "Specification.")
 4119              ]
 4120           class CIM_Unimodem : CIM_POTSModem
 4121           {
 4122                 [Description ("Current call setup result code."), 
 4123                  Values {"No Previous Call", "No Dial Tone Detected", 
 4124                        "Reorder Signal Detected, Network Busy", 
 4125                        "Busy Signal Detected", "No Recognized Signal Detected", 
 4126                        "Voice Detected", "Text Telephone Detected", 
 4127                        "Data Answering Signal Detected", 
 4128                        "Data Calling Signal Detected", 
 4129                        "Fax Answering Signal Detected", 
 4130                        "Fax Calling Signal Detected", "V.8bis Signal Detected"}
 4131                 ]
 4132              uint16 CallSetupResultCode;
 4133                 [Description ("Current multi-media mode of the Unimodem."), 
 4134                  Values {"Data Only", "Fax Only", "Voice Only", "Voice View", 
 4135                        "ASVD V.61", "ASVD V.34Q", "DSVD Multi-Tech", "DSVD 1.2", 
 4136                        "DSVD V.70", "Video Telephony H.324", "Other V.80 Call"}
 4137                 ]
 4138 karl  1.1    uint16 MultiMediaMode;
 4139                 [Description (
 4140                   "Current DTE-DCE interface mode of the Unimodem, such as "
 4141                   "asynchronous, v.80 transparent or framed synchronous modes."), 
 4142                  Values {"Async Data", "V.80 Transparent Synchronous Mode", 
 4143                        "V.80 Framed Synchronous Mode"}
 4144                 ]
 4145              uint16 DTEDCEInterfaceMode;
 4146                 [Description ("The active transmit modulation scheme."), 
 4147                  Values {"V.17 (G3 Fax Call)", "V.21", "V.22", "V.22bis", 
 4148                        "V.23 Constant Carrier (1200/75)", 
 4149                        "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
 4150                        "V.26ter", "V.27ter (G3 Fax Call)", 
 4151                        "V.29 HD (G3 Fax Call)", "V.32", "V.32bis", "V.34", 
 4152                        "V.34 HD (G3 Fax Call)", "V.90 Issue 1 (Asymmetric)", 
 4153                        "V.90 Issue 2 (Symmetric)", "Reserved (V.58)", "X2", 
 4154                        "K56FLEX", "V.FC", "V.32terbo", "Bell 212A", 
 4155                        "Bell 103", "Reserved for Mfgs"}
 4156                 ]
 4157              uint16 TransmitCarrierNegotiation;
 4158                 [Description ("The active receive modulation scheme."), 
 4159 karl  1.1        Values {"V.17 (G3 Fax Call)", "V.21", "V.22", "V.22bis", 
 4160                        "V.23 Constant Carrier (1200/75)", 
 4161                        "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
 4162                        "V.26ter", "V.27ter (G3 Fax Call)", 
 4163                        "V.29 HD (G3 Fax Call)", "V.32", "V.32bis", "V.34", 
 4164                        "V.34 HD (G3 Fax Call)", "V.90 Issue 1 (Asymmetric)", 
 4165                        "V.90 Issue 2 (Symmetric)", "Reserved (V.58)", "X2", 
 4166                        "K56FLEX", "V.FC", "V.32terbo", "Bell 212A", 
 4167                        "Bell 103", "Reserved for Mfgs"} 
 4168                 ]
 4169              uint16 ReceiveCarrierNegotiation;
 4170                 [Description (
 4171                   "Initial transmit carrier data rate for the current or "
 4172                   "last call, in bits per second."), 
 4173                  Units ("Bits per Second")
 4174                 ]
 4175              uint32 InitialTransmitCarrierDataRate;
 4176                 [Description (
 4177                   "Initial receive carrier data rate for the current or last "
 4178                   "call, in bits per second."), 
 4179                  Units ("Bits per Second")
 4180 karl  1.1       ]
 4181              uint32 InitialReceiveCarrierDataRate;
 4182                 [Description (
 4183                   "The number of carrier retrains requested during the current "
 4184                   "or last call."), 
 4185                  Counter
 4186                 ]
 4187              uint8 CarrierRetrainsRequested;
 4188                 [Description (
 4189                   "The number of carrier retrains granted during the current "
 4190                   "or last call."), 
 4191                  Counter
 4192                 ]
 4193              uint8 CarrierRetrainsGranted;
 4194                 [Description (
 4195                   "Final transmit carrier data rate of the current or last "
 4196                   "call, in bits per second."), 
 4197                  Units ("Bits per Second")
 4198                 ]
 4199              uint32 FinalTransmitCarrierDataRate;
 4200                 [Description (
 4201 karl  1.1         "Final receive carrier data rate of the current or last "
 4202                   "call, in bits per second."), 
 4203                  Units ("Bits per Second")
 4204                 ]
 4205              uint32 FinalReceiveCarrierDataRate;
 4206                 [Description ("Cause of last call termination."), 
 4207                  Values {"Cause Unidentified", "No Previous Call", 
 4208                        "Call Is Still in Progress", "Call Waiting Signal Detected", 
 4209                        "Delayed", "NMS Initiated Dial Call", 
 4210                        "NMS Initiated Leased Line Restoral", "NMS Initiated Redial", 
 4211                        "NMS Initiated Dial Disconnect", "Power Loss", 
 4212                        "Equipment Failure", "Front Panel Disconnect Requested", 
 4213                        "Front Panel Leased Line Restoral", 
 4214                        "Automatic Leased Line Restoral", "Inactivity Timer Expired", 
 4215                        "cct116 Restoral Request", "cct108 Is Off Inhibits Dial", 
 4216                        "cct108 Turned Off", "No Number Provided", "Blacklisted Number", 
 4217                        "Call Attempts Limit Exceeded", "Extension Phone Off Hook", 
 4218                        "Call Setup Fail Timer Expired", "Incoming Call Detected", 
 4219                        "Loop Current Interrupted", "No Dial Tone", "Voice Detected", 
 4220                        "Reorder Tone", "Sit Tone", "Engaged Tone", 
 4221                        "Long Space Disconnect", "Carrier Lost", "Training Failed", 
 4222 karl  1.1              "No Modulation in Common", "Retrain Failed", 
 4223                        "Retrain Attempt Count Exceeded", "GSTN Cleardown Received", 
 4224                        "Fax Detected", "In Test Mode", 
 4225                        "Intrusive Self Test Initiated", "Any Key Abort", 
 4226                        "DTE Hangup Command", "DTE Reset Command", "Frame Reject", 
 4227                        "No Error Control Established", "Protocol Violation", 
 4228                        "n400 Exceeded", "Negotiation Failed", 
 4229                        "Disconnect Frame Received", "Sabme Frame Received", 
 4230                        "Loss Of Synchronization"}
 4231                 ]
 4232              uint16 TerminationCause;
 4233                 [Description (
 4234                   "Diagnostic Command Specification, Unimodem revision number.")
 4235                 ]
 4236              string UnimodemRevision;
 4237                 [Gauge, Description (
 4238                   "Estimated noise level for the last or current call in "
 4239                   "-dBm. Values are in the range of 0-100."), 
 4240                  Units ("-dBm")
 4241                 ]
 4242              uint32 EstimatedNoiseLevel;
 4243 karl  1.1       [Description (
 4244                   "Normalized mean squared error for the last or current call.")
 4245                 ]
 4246              uint32 NormalizedMeanSquaredError;
 4247                 [Description (
 4248                   "Temporary carrier loss event count for the last or current "
 4249                   "call."), 
 4250                  Counter
 4251                 ]
 4252              uint8 TemporaryCarrierLossEventCount;
 4253                 [Description (
 4254                   "Carrier Rate re-negotiation event count for the last or "
 4255                   "current call."), 
 4256                  Counter
 4257                 ]
 4258              uint8 CarrierRenegotiationEventCount;
 4259                 [Description (
 4260                   "Error Control frame size in bytes for the last or current call."), 
 4261                  Units ("Bytes")
 4262                 ]
 4263              uint16 ErrorControlFrameSize;
 4264 karl  1.1       [Description (
 4265                   "Error control link timeouts in transmission for the last or "
 4266                   "current call."), 
 4267                  Counter
 4268                 ]
 4269              uint8 ErrorControlLinkTimeouts;
 4270                 [Description (
 4271                   "Error control link NAKs received for the last or current call."), 
 4272                  Counter
 4273                 ]
 4274              uint8 ErrorControlLinkNAKs;
 4275                 [Description (
 4276                   "The flow control mechanism used in transmitting data."), 
 4277                  Values {"Unknown", "Off", "DC1/DC3", "V.24 ckt 106/133"}
 4278                 ]
 4279              uint16 TransmitFlowControl;
 4280                 [Description (
 4281                   "The flow control mechanism used in receiving data."), 
 4282                  Values {"Unknown", "Off", "DC1/DC3", "V.24 ckt 106/133"}
 4283                 ]
 4284              uint16 ReceiveFlowControl;
 4285 karl  1.1       [Description (
 4286                   "Number of transmit chars sent from the DTE for the last "
 4287                   "or current call. A continuous connection may exceed this value, "
 4288                   "given enough time. Typically these counters are implemented "
 4289                   "as 32 bit counters, but additional bits may be provided and "
 4290                   "are accounted for in this property. If these counters hit "
 4291                   "maximum value, the DCE manufacturer may roll over to 0."), 
 4292                  Counter
 4293                 ]
 4294              uint64 TransmitCharsSentFromDTE;
 4295                 [Description (
 4296                   "Number of receive chars sent to the DTE for the last or "
 4297                   "current call. A continuous connection may exceed this value, "
 4298                   "given enough time. Typically these counters are implemented "
 4299                   "as 32 bit counters, but additional bits may be provided and "
 4300                   "are accounted for in this property. If these counters hit "
 4301                   "maximum value, the DCE manufacturer may roll over to 0."), 
 4302                  Counter
 4303                 ]
 4304              uint64 ReceiveCharsSentToDTE;
 4305                 [Description (
 4306 karl  1.1         "Number of transmit characters lost for the last or current "
 4307                   "call. A DCE may limit this counter to 16 bits, but additional "
 4308                   "bits may be provided and are accounted for in this property."), 
 4309                  Counter
 4310                 ]
 4311              uint64 TransmitCharsLost;
 4312                 [Description (
 4313                   "Number of receive characters lost for the last or current "
 4314                   "call. A DCE may limit this counter to 16 bits, but additional "
 4315                   "bits may be provided and are accounted for in this property."), 
 4316                  Counter
 4317                 ]
 4318              uint64 ReceiveCharsLost;
 4319                 [Description (
 4320                   "Number of I-Frames transmitted for the last or current call. "
 4321                   "A continuous connection may exceed this value, given enough "
 4322                   "time. Typically these counters are implemented as 32 bit "
 4323                   "counters, but additional bits may be provided and are accounted "
 4324                   "for in this property. If these counters hit maximum value, the "
 4325                   "DCE manufacturer may roll over to 0."), 
 4326                  Counter
 4327 karl  1.1       ]
 4328              uint64 TransmitIFrameCount;
 4329                 [Description (
 4330                   "Number of I-Frames received for the last or current call. "
 4331                   "A continuous connection may exceed this value, given enough "
 4332                   "time. Typically these counters are implemented as 32 bit "
 4333                   "counters, but additional bits may be provided and are "
 4334                   "accounted for in this property. If these counters hit maximum "
 4335                   "value, the DCE manufacturer may roll over to 0."), 
 4336                  Counter
 4337                 ]
 4338              uint64 ReceiveIFrameCount;
 4339                 [Description (
 4340                   "Number of I-Frame errors detected for the last or current "
 4341                   "call, if error control protocol is running. A DCE may limit "
 4342                   "this counter to 16 bits, but additional bits may be provided "
 4343                   "and are accounted for in this property."), 
 4344                  Counter
 4345                 ]
 4346              uint64 TransmitIFrameErrorCount;
 4347                 [Description (
 4348 karl  1.1         "Number of I-Frame errors detected for the last or current "
 4349                   "call, if error control protocol is running. A DCE may limit "
 4350                   "this counter to 16 bits, but additional bits may be provided "
 4351                   "and are accounted for in this property."), 
 4352                  Counter
 4353                 ]
 4354              uint64 ReceivedIFrameErrorCount;
 4355                 [Description (
 4356                   "Number of Call waiting events detected for the last or "
 4357                   "current call."), 
 4358                  Counter
 4359                 ]
 4360              uint8 CallWaitingEventCount;
 4361           };
 4362           
 4363           // ===================================================================
 4364           // Battery
 4365           // ===================================================================
 4366              [Description (
 4367                  "Capabilities and management of the Battery LogicalDevice. "
 4368                  "This class applies to both batteries in Laptop Systems and "
 4369 karl  1.1        "other internal/external batteries, such as used in, "
 4370                  "or as UPSs.")
 4371              ] 
 4372           class CIM_Battery : CIM_LogicalDevice 
 4373           {
 4374                 [Description (
 4375           	  "Description of the Battery's charge status. Values such "
 4376           	  "as \"Fully Charged\" (value=3) or \"Partially Charged\" "
 4377           	  "(11) can be specified. The value, 10, is "
 4378           	  "not valid in the CIM Schema since in DMI it represents "
 4379           	  "that no battery is installed. In this case, this object "
 4380           	  "should not be instantiated."),
 4381           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 4382           	       "11"},
 4383                  Values {"Other", "Unknown", "Fully Charged",  
 4384           	       "Low", "Critical", "Charging", "Charging and High", 
 4385           	       "Charging and Low", "Charging and Critical", "Undefined", 
 4386           	       "Partially Charged"},
 4387                  MappingStrings {"MIF.DMTF|Portable Battery|003"}
 4388                 ]
 4389              uint16 BatteryStatus;
 4390 karl  1.1       [Description (
 4391           	  "TimeOnBattery indicates the elapsed time in seconds "
 4392           	  "since the ComputerSystem, UPS, ... last switched to "
 4393           	  "battery power, or the time since the System or UPS "
 4394           	  "was last restarted, whichever is less. Zero shall "
 4395           	  "be returned if the Battery is 'on line'."), 
 4396                  Units ("Seconds")
 4397                 ]
 4398              uint32 TimeOnBattery;
 4399                 [Description (
 4400           	  "EstimatedRunTime is an estimate in minutes of the "
 4401           	  "time to battery charge depletion under the present "
 4402           	  "load conditions if the utility power is off, or lost "
 4403           	  "and remains off, or a Laptop is disconnected from a "
 4404           	  "power source."),
 4405                  Units ("Minutes"),
 4406                  MappingStrings {"MIF.DMTF|Portable Battery|003"}
 4407                 ]
 4408              uint32 EstimatedRunTime;
 4409                 [Gauge, Description (
 4410           	  "An estimate of the percentage of full charge remaining."),
 4411 karl  1.1        Units ("Percent")
 4412                 ]	
 4413              uint16 EstimatedChargeRemaining;
 4414                 [Description (
 4415           	  "An enumeration that describes the Battery's chemistry."),
 4416           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
 4417                  Values {"Other", "Unknown", "Lead Acid", "Nickel Cadmium", 
 4418           	       "Nickel Metal Hydride", "Lithium-ion", "Zinc air", 
 4419           	       "Lithium Polymer"},
 4420                  MappingStrings {"MIF.DMTF|Portable Battery|003"}
 4421                 ]
 4422              uint16 Chemistry;
 4423                 [Description (
 4424           	  "The design capacity of the battery in mWatt-hours. "
 4425           	  "If this property is not supported, enter 0."),
 4426                  Units ("MilliWattHours"),
 4427                  MappingStrings {"MIF.DMTF|Portable Battery|003"}
 4428                 ]	 
 4429              uint32 DesignCapacity;
 4430                 [Description (
 4431           	  "The full charge capacity of the battery in mWatt-hours. "
 4432 karl  1.1 	  "Comparison of this value to the Battery DesignCapacity "
 4433           	  "determines when the Battery requires replacement.  A "
 4434           	  "Battery's end of life is typically when the FullCharge"
 4435           	  "Capacity falls below 80% of the DesignCapacity. "
 4436           	  "If this property is not supported, enter 0."),
 4437                  Units ("MilliWattHours"),
 4438                  MappingStrings {"MIF.DMTF|Portable Battery|003"}
 4439                 ]
 4440              uint32 FullChargeCapacity;
 4441                 [Description (
 4442           	  "The design voltage of the battery in mVolts. If "
 4443           	  "this attribute is not supported, enter 0."),
 4444                  Units ("MilliVolts"),
 4445                  MappingStrings {"MIF.DMTF|Portable Battery|003"}
 4446                 ]	  
 4447              uint64 DesignVoltage;
 4448                 [MaxLen (64), Description (
 4449           	  "The Smart Battery Data Specification version number "
 4450           	  "supported by this Battery. If the Battery does not "
 4451            	  "support this function, the value should be left blank."),
 4452                  MappingStrings {"MIF.DMTF|Portable Battery|003"}
 4453 karl  1.1       ]
 4454              string SmartBatteryVersion;
 4455                 [Description (
 4456           	  "The remaining time to charge the battery fully in minutes "
 4457           	  "at the current charging rate and usage."),
 4458                  Units ("Minutes"),
 4459                  MappingStrings {"MIF.DMTF|Portable Battery|003"}
 4460                 ]
 4461              uint32 TimeToFullCharge;
 4462           	[Description (
 4463           	  "Indicates the Battery's expected lifetime in minutes, " 
 4464           	  "assuming that the Battery is fully charged. This property "
 4465           	  "represents the total expected life of the Battery, not its "
 4466           	  "current remaining life, which is indicated by the "
 4467           	  "EstimatedRunTime property. "), 
 4468           	 Units ("Minutes")
 4469           	]
 4470              uint32 ExpectedLife;
 4471           	[Description (
 4472           	  "MaxRechargeTime indicates the maximum time, in minutes, " 
 4473           	  "to fully charge the Battery. This property represents the "
 4474 karl  1.1 	  "time to recharge a fully depleted Battery, not the current "
 4475           	  "remaining charging time, which is indicated in the "
 4476           	  "TimeToFullCharge property. "), 
 4477           	 Units ("Minutes")
 4478           	]
 4479              uint32 MaxRechargeTime;	
 4480           };
 4481           
 4482           // ===================================================================
 4483           // PowerSupply
 4484           // ===================================================================
 4485              [Description (
 4486           	 "Capabilities and management of the PowerSupply LogicalDevice.")
 4487              ] 
 4488           class CIM_PowerSupply : CIM_LogicalDevice  
 4489           {
 4490                 [Description (
 4491           	  "Boolean indicating that the PowerSupply is a switching "
 4492                   "(vs linear) supply.")
 4493                 ]
 4494              boolean IsSwitchingSupply;
 4495 karl  1.1       [Description (
 4496           	  "The low voltage of Input Voltage Range 1 for this Power"
 4497                   "Supply, in millivolts. A value of 0 denotes 'unknown'."),
 4498                  Units ("MilliVolts"),
 4499                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4500                 ]
 4501              uint32 Range1InputVoltageLow;
 4502                 [Description (
 4503           	  "The high voltage of Input Voltage Range 1 for this Power"
 4504                   "Supply, in millivolts. A value of 0 denotes 'unknown'."),
 4505                  Units ("MilliVolts"),
 4506                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4507                 ]
 4508              uint32 Range1InputVoltageHigh;
 4509                 [Description (
 4510           	  "The frequency (in Hertz) at the low end of this Power"
 4511           	  "Supply's Input Frequency Range 1. A value of zero "
 4512           	  "implies DC."),
 4513                  Units ("Hertz"),
 4514                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4515                 ]
 4516 karl  1.1    uint32 Range1InputFrequencyLow;
 4517                 [Description (
 4518           	  "The frequency (in Hertz) at the high end of this Power"
 4519           	  "Supply's Input Frequency Range 1. A value of zero "
 4520           	  "implies DC."),
 4521                  Units ("Hertz"),
 4522                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4523                 ]
 4524              uint32 Range1InputFrequencyHigh;
 4525                 [Description (
 4526           	  "The low voltage of Input Voltage Range 2 for this Power"
 4527           	  "Supply, in millivolts. A value of 0 denotes 'unknown'."),
 4528                  Units ("MilliVolts"), 
 4529                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4530                 ]
 4531              uint32 Range2InputVoltageLow;
 4532                 [Description (
 4533           	  "The high voltage of Input Voltage Range 2 for this Power"
 4534           	  "Supply, in millivolts. A value of 0 denotes 'unknown'."),
 4535                  Units ("MilliVolts"), 
 4536                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4537 karl  1.1       ]
 4538              uint32 Range2InputVoltageHigh;
 4539                 [Description (
 4540           	  "The frequency (in Hertz) at the low end of this Power"
 4541           	  "Supply's Input Frequency Range 2. A value of zero "
 4542           	  "implies DC."),
 4543                  Units ("Hertz"),
 4544                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4545                 ]
 4546              uint32 Range2InputFrequencyLow;
 4547                 [Description (
 4548           	  "The frequency (in Hertz) at the high end of this Power"
 4549           	  "Supply's Input Frequency Range 2. A value of zero "
 4550           	  "implies DC."),
 4551                  Units ("Hertz"),
 4552                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4553                 ]
 4554              uint32 Range2InputFrequencyHigh;
 4555                 [Description (
 4556           	  "ActiveInputVoltage indicates which input voltage range is "
 4557           	  "currently in use. Range 1, 2 or both can be specified "
 4558 karl  1.1 	  "using the values 3, 4 or 5, respectively. If the Supply "
 4559                   "is not currently drawing power, the value 6 (\"Neither\") "
 4560                   "can be specified. This information is necessary in the "
 4561                   "case of a UPS, a subclass of PowerSupply."),
 4562           	 ValueMap {"1", "2", "3", "4", "5", "6"},
 4563                  Values {"Other", "Unknown", "Range 1", "Range 2", "Both",
 4564                        "Neither"},
 4565                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4566                 ]
 4567              uint16 ActiveInputVoltage;
 4568                 [Description (
 4569           	  "TypeOfRangeSwitching describes the kind of input voltage "
 4570           	  "range switching implemented in this PowerSupply. For "
 4571           	  "example, autoswitching can be specified (value=4)."),
 4572           	 ValueMap {"1", "2", "3", "4", "5", "6"},
 4573                  Values {"Other", "Unknown", "Manual", "Autoswitch",
 4574           	       "Wide Range", "Not Applicable"},
 4575                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4576                 ]
 4577              uint16 TypeOfRangeSwitching;
 4578                 [Description (
 4579 karl  1.1 	  "Represents the total output power of the PowerSupply in "
 4580           	  "milliWatts. 0 denotes 'unknown'."),
 4581                  Units ("MilliWatts"),
 4582                  MappingStrings {"MIF.DMTF|Power Supply|004"}
 4583                 ]
 4584              uint32 TotalOutputPower;
 4585           };
 4586           
 4587           // ===================================================================
 4588           // SuppliesPower 
 4589           // ===================================================================
 4590              [Association, 
 4591               Description (
 4592                  "The SuppliesPower relationship indicates that a Device is in "
 4593                  "the power domain of the referenced PowerSupply or UPS. "
 4594                  "It indicates which Device(s) are dependent on the PowerSupply, "
 4595                  "and hence, which Devices are affected if the Supply is lost.")
 4596              ]
 4597           class CIM_SuppliesPower : CIM_Dependency
 4598           {
 4599                 [Override ("Antecedent"), 
 4600 karl  1.1        Description ("The Supply providing power.")
 4601                 ]
 4602              CIM_PowerSupply REF Antecedent;
 4603                 [Override ("Dependent"), 
 4604                  Description (
 4605                   "A LogicalDevice in the power domain of the Supply.")
 4606                 ]
 4607              CIM_LogicalDevice REF Dependent;
 4608           };
 4609           
 4610           // ===================================================================
 4611           // UninterruptiblePowerSupply
 4612           // ===================================================================
 4613              [Description (
 4614                  "Capabilities and management of an UninterruptiblePowerSupply. "
 4615                  "The properties of the UPS Device indicate when incoming power "
 4616                  "is trimmed or boosted, and the aggregated information of the "
 4617                  "batteries, generators, etc. that comprise the Device.  These "
 4618                  "individual components (for example, multiple batteries) can "
 4619                  "also be independently modeled and associated with the UPS.")
 4620              ] 
 4621 karl  1.1 class CIM_UninterruptiblePowerSupply : CIM_PowerSupply
 4622           {
 4623                 [Override ("Range1InputVoltageLow"), 
 4624                  Description (
 4625           	  "If the voltage (in millivolts) drops below the value "
 4626           	  "specified by Range1InputVoltageLow, the UPS will compensate "
 4627           	  "by boosting the voltage using its power source(s).  A value "
 4628           	  "of 0 indicates that the voltage at which boosting occurs "
 4629           	  "is 'unknown'."), 
 4630                  Units ("MilliVolts")
 4631                 ]
 4632              uint32 Range1InputVoltageLow;
 4633                 [Override ("Range1InputVoltageHigh"),
 4634                  Description (
 4635           	  "If the voltage (in millivolts) rises above the value "
 4636           	  "specified by Range1InputVoltageHigh, the UPS will compensate "
 4637           	  "by trimming the voltage.  A value of 0 indicates that the "
 4638           	  "voltage at which trimming occurs is 'unknown'."),
 4639                  Units ("MilliVolts")
 4640                 ]
 4641              uint32 Range1InputVoltageHigh;
 4642 karl  1.1       [Override ("Range2InputVoltageLow"), 
 4643                  Description (
 4644           	  "If the voltage (in millivolts) drops below the value "
 4645           	  "specified by Range2InputVoltageLow, the UPS will compensate "
 4646           	  "by boosting the voltage using its power source(s).  A value "
 4647           	  "of 0 indicates that the voltage at which boosting occurs "
 4648           	  "is 'unknown'."), 
 4649                  Units ("MilliVolts")
 4650                 ]
 4651              uint32 Range2InputVoltageLow;
 4652                 [Override ("Range2InputVoltageHigh"),
 4653                  Description (
 4654           	  "If the voltage (in millivolts) rises above the value "
 4655           	  "specified by Range2InputVoltageHigh, the UPS will compensate "
 4656           	  "by trimming the voltage.  A value of 0 indicates that the "
 4657           	  "voltage at which trimming occurs is 'unknown'."),
 4658                  Units ("MilliVolts")
 4659                 ]
 4660              uint32 Range2InputVoltageHigh;
 4661                 [Description (
 4662           	  "The indication of the capacity remaining in the UPS' "
 4663 karl  1.1 	  "batteries, generator, ...  A value of \"Normal\" (2) "
 4664           	  "indicates that the remaining estimated minutes of run-time "
 4665           	  "is greater than the UPS' defined 'low power' state "
 4666           	  "(typically two minutes). A value of \"Low\" (3) indicates "
 4667           	  "that the remaining estimated minutes of run-time is less "
 4668           	  "than or equal to the UPS' defined 'low power' state.  A "
 4669           	  "value of \"Depleted\" (4) indicates that the "
 4670           	  "UPS will be unable to sustain the present load when and if "
 4671           	  "the utility power is lost (including the possibility that "
 4672           	  "the utility power is currently absent)."), 
 4673                 ValueMap {"1", "2", "3", "4"}, 
 4674           	Values {"Unknown", "Normal", "Low", "Depleted"},
 4675                  MappingStrings {"MIF.DMTF|UPS Battery|001.1"}
 4676                 ]
 4677              uint16 RemainingCapacityStatus;
 4678                 [Description (
 4679           	  "TimeOnBackup indicates the elapsed time in seconds "
 4680           	  "since the UPS last switched to battery power, generator, ...  "
 4681           	  "Or, the time since the UPS was last restarted, whichever is "
 4682           	  "less. Zero shall be returned if the UPS is 'on line'."), 
 4683                  Units ("Seconds"),
 4684 karl  1.1        MappingStrings {"MIF.DMTF|UPS Battery|001.2"}
 4685                 ]
 4686              uint32 TimeOnBackup;
 4687                 [Description (
 4688           	  "EstimatedRunTime is an estimate in minutes of the time to "
 4689           	  "battery, generator, ... depletion under the present load "
 4690           	  "conditions if the utility power is off, or lost and remains "
 4691           	  "off."),
 4692                  Units ("Minutes"),
 4693                  MappingStrings {"MIF.DMTF|UPS Battery|001.3"}
 4694                 ]
 4695              uint32 EstimatedRunTime;
 4696                 [Gauge, Description (
 4697           	  "An estimate of the percentage of full charge remaining for "
 4698           	  "a UPS (that uses battery technology)."),
 4699                  Units ("Percent"),
 4700                  MappingStrings {"MIF.DMTF|UPS Battery|001.4"}
 4701                 ]	
 4702              uint16 EstimatedChargeRemaining;
 4703           };
 4704           
 4705 karl  1.1 // ===================================================================
 4706           // AssociatedSupplyVoltageSensor
 4707           // ===================================================================
 4708              [Association,
 4709               Description (
 4710                  "A PowerSupply may have an associated VoltageSensor, monitoring "
 4711                  "its input voltage. This is described by this association.")
 4712              ]
 4713           class CIM_AssociatedSupplyVoltageSensor : CIM_AssociatedSensor
 4714           {
 4715                 [Override ("Antecedent"),
 4716                  Description ("The VoltageSensor.")
 4717                 ]
 4718              CIM_VoltageSensor REF Antecedent;
 4719                 [Override ("Dependent"),
 4720                  Description (
 4721           	  "The PowerSupply associated with the VoltageSensor.")
 4722                 ]
 4723              CIM_PowerSupply REF Dependent;
 4724                 [Description (
 4725           	  "Indicates the PowerSupply's input voltage range measured "
 4726 karl  1.1 	  "by the associated sensor. Range 1, 2 or both can be specified "
 4727           	  "using the values 2, 3 or 4, respectively."),
 4728                  Values {"Unknown", "Other", "Range 1", "Range 2", 
 4729           	       "Both Range 1 and 2"}
 4730                 ]
 4731              uint16 MonitoringRange;
 4732           };
 4733           
 4734           // ===================================================================
 4735           // AssociatedSupplyCurrentSensor
 4736           // ===================================================================
 4737              [Association,
 4738               Description (
 4739                  "A PowerSupply may have an associated CurrentSensor, monitoring "
 4740                  "its input frequency. This is described by this association.")
 4741              ]
 4742           class CIM_AssociatedSupplyCurrentSensor : CIM_AssociatedSensor
 4743           {
 4744                 [Override ("Antecedent"),
 4745                  Description ("The CurrentSensor.")
 4746                 ]
 4747 karl  1.1    CIM_CurrentSensor REF Antecedent;
 4748                 [Override ("Dependent"),
 4749                  Description (
 4750           	  "The PowerSupply associated with the CurrentSensor.")
 4751                 ]
 4752              CIM_PowerSupply REF Dependent;
 4753                 [Description (
 4754           	  "Indicates the PowerSupply's input frequency range measured "
 4755           	  "by the associated sensor. Range 1, 2 or both can be specified "
 4756           	  "using the values 2, 3 or 4, respectively."),
 4757                  Values {"Unknown", "Other", "Range 1", "Range 2", 
 4758           	       "Both Range 1 and 2"}
 4759                 ]
 4760              uint16 MonitoringRange;
 4761           };
 4762           
 4763           // ===================================================================
 4764           // AssociatedBattery
 4765           // ===================================================================
 4766              [Association,
 4767               Description (
 4768 karl  1.1        "A LogicalDevice may use or require one or more Batteries. This "
 4769                  "relationship is described by the AssociatedBattery dependency. "
 4770                  "It is also possible to model the individual Batteries that "
 4771                  "comprise a UPS, using this association.")
 4772              ] 
 4773           class CIM_AssociatedBattery : CIM_Dependency  
 4774           {
 4775                 [Override ("Antecedent"),
 4776                  Description ("The Battery.")
 4777                 ]
 4778              CIM_Battery REF Antecedent;
 4779                 [Override ("Dependent"),
 4780                  Description (
 4781           	  "The LogicalDevice needing or associated with the Battery.")
 4782                 ]
 4783              CIM_LogicalDevice REF Dependent;
 4784           };
 4785           
 4786           // ===================================================================
 4787           // NetworkAdapter 
 4788           // ===================================================================
 4789 karl  1.1    [Abstract,
 4790               Description (
 4791                  "NetworkAdapter is an Abstract class defining general "
 4792                  "networking hardware concepts (for example, PermanentAddress or "
 4793                  "Speed of operation). NetworkAdapters are Devices with the "
 4794                  "ability to support multiple, higher level protocols and provide "
 4795                  "the implementation behind the Network Model's ProtocolEndpoint "
 4796                  "class. (This information is conveyed using the DeviceSAP"
 4797                  "Implementation association, defined in the Core Model.) "
 4798                  "NetworkAdapters and their Endpoints represent the potential for "
 4799                  "connectivity among peers.\n"
 4800                  "The 'potential for connectivity' is very different than the "
 4801                  "master-slave/controller-controlled by relationships of CIM_"
 4802                  "Controller. Sometimes, however, a single Device is both a kind "
 4803                  "of NetworkAdapter and a Controller - for example, when a Fibre"
 4804                  "ChannelAdapater is operating as a ComputerSystem's SCSIController. "
 4805                  "In this case, there are aspects of the Device that are network "
 4806                  "oriented and others that are Controller oriented - and, both the "
 4807                  "Controller and Adapter classes should be instantiated. A Device"
 4808                  "Identity relationship would also be created to tie together these "
 4809                  "differing aspects/abstractions of the Device.")
 4810 karl  1.1    ] 
 4811           class CIM_NetworkAdapter : CIM_LogicalDevice
 4812           {
 4813                 [MaxLen (64), Description (
 4814           	  "PermanentAddress defines the network address hardcoded into "
 4815           	  "an adapter.  This 'hardcoded' address may be changed via "
 4816           	  "firmware upgrade or software configuration. If so, this field "
 4817           	  "should be updated when the change is made.  PermanentAddress "
 4818           	  "should be left blank if no 'hardcoded' address exists for the "
 4819           	  "NetworkAdapter."),
 4820                  MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.2"}
 4821           	]	    
 4822               string PermanentAddress;
 4823           	[MaxLen (64), 
 4824           	 Description (
 4825           	  "An array of strings indicating the network addresses for an "
 4826           	  "adapter."),
 4827           	 ArrayType ("Indexed"),
 4828           	 MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.3"}
 4829                 ]
 4830               string NetworkAddresses[]; 
 4831 karl  1.1 	[Description (
 4832           	  "An estimate of the current bandwidth in Bits per Second. "
 4833           	  "For Adapters which vary in bandwidth or for those where "
 4834           	  "no accurate estimation can be made, this property should "
 4835           	  "contain the nominal bandwidth."),
 4836           	 Units ("Bits per Second"), 
 4837           	 MappingStrings {"MIB.IETF|RFC1213-MIB.ifSpeed", 
 4838           	       "MIF.DMTF|Network Adapter 802 Port|001.5"}
 4839           	]
 4840               uint64 Speed;
 4841           	[Description ( 
 4842           	  "The maximum speed, in Bits per Second, for the Network"
 4843           	  "Adapter."), 
 4844           	 Units ("Bits per Second") 
 4845           	] 
 4846               uint64 MaxSpeed;
 4847                 [Description (
 4848                   "Boolean indicating that the Adapter is operating in "
 4849                   "full duplex mode.")
 4850                 ]
 4851              boolean FullDuplex;
 4852 karl  1.1 	[Description ( 
 4853           	  "A boolean indicating whether the NetworkAdapter is capable " 
 4854           	  "of automatically determining the speed or other communications "
 4855                   "characteristics of the attached network media.") 
 4856           	] 
 4857               boolean AutoSense;
 4858           	[Description (
 4859           	  "The total number of octets transmitted, including framing "
 4860           	  "characters."),
 4861           	 Mappingstrings {"MIB.IETF|RFC1213-MIB.ifOutOctets", 
 4862           	       "MIF.DMTF|Network Adapter 802 Port|001.7"}, 
 4863                  Counter
 4864                 ] 
 4865               uint64 OctetsTransmitted;
 4866           	[Description (
 4867           	  "The total number of octets received, including framing "
 4868           	  "characters."),
 4869           	 Mappingstrings {"MIB.IETF|RFC1213-MIB.ifInOctets",
 4870           	       "MIF.DMTF|Network Adapter 802 Port|001.9"}, 
 4871                  Counter
 4872                 ] 
 4873 karl  1.1     uint64 OctetsReceived;
 4874           };
 4875           
 4876           // ===================================================================
 4877           // OOBAlertServiceOnNetworkAdapter 
 4878           // ===================================================================
 4879              [Association, 
 4880               Description (
 4881                  "OOBAlertServiceOnNetworkAdapter defines where the out of band "
 4882                  "alerting Service is implemented. Currently, the Service can "
 4883                  "either employ a Modem or a NetworkAdapter to send alerts.")
 4884              ]
 4885           class CIM_OOBAlertServiceOnNetworkAdapter : CIM_DeviceServiceImplementation
 4886           {
 4887                 [Override ("Antecedent"), 
 4888                  Description (
 4889                   "The NetworkAdapter which implements the Service."), 
 4890                  Max (1)
 4891                 ]
 4892              CIM_NetworkAdapter REF Antecedent;
 4893                 [Override ("Dependent"), 
 4894 karl  1.1        Description (
 4895                   "The alerting Service provided on the NetworkAdapter.")
 4896                 ]
 4897              CIM_OOBAlertService REF Dependent;
 4898           };
 4899           
 4900           // ===================================================================
 4901           // WakeUpServiceOnNetworkAdapter 
 4902           // ===================================================================
 4903              [Association, 
 4904               Description (
 4905                  "WakeUpServiceOnNetworkAdapter defines where the WakeUpService "
 4906                  "is implemented. Currently, the Service can either employ a Modem "
 4907                  "or a NetworkAdapter for wakeup.")
 4908              ]
 4909           class CIM_WakeUpServiceOnNetworkAdapter : CIM_DeviceServiceImplementation
 4910           {
 4911                 [Override ("Antecedent"), 
 4912                  Description (
 4913                   "The NetworkAdapter which implements the Service."), 
 4914                  Max (1)
 4915 karl  1.1       ]
 4916              CIM_NetworkAdapter REF Antecedent;
 4917                 [Override ("Dependent"), 
 4918                  Description (
 4919                   "The wakeup Service provided on the NetworkAdapter.")
 4920                 ]
 4921              CIM_WakeUpService REF Dependent;
 4922           };
 4923           
 4924           // ===================================================================
 4925           // EthernetAdapter
 4926           // ===================================================================
 4927              [Description ("Capabilities and management of an EthernetAdapter.")]
 4928           class CIM_EthernetAdapter : CIM_NetworkAdapter
 4929           {
 4930           	[Override ("NetworkAddresses"), 
 4931           	 Description (
 4932           	  "Ethernet/802.3 MAC addresses formatted as twelve hexadecimal "
 4933           	  "digits (e.g. \"010203040506\"), with each pair representing "
 4934           	  "one of the six octets of the MAC address in \"canonical\" bit "
 4935           	  "order.  (Thus, the Group address bit is found in the low "
 4936 karl  1.1 	  "order bit of the first character of the string.)"),
 4937           	 ArrayType ("Indexed")
 4938           	]
 4939               string NetworkAddresses[];
 4940           	[Description (
 4941           	  "The maximum size of the INFO (non-MAC) field that will be "
 4942           	  "received or transmitted."), 
 4943           	 Mappingstrings {"MIB.IETF|BRIDGE-MIB.dot1dTpPortMaxInfo"}
 4944           	]
 4945               uint32 MaxDataSize;
 4946                 [Description (
 4947                   "Capabilities of the EthernetAdapter. For example, the "
 4948                   "Device may support AlertOnLan, WakeOnLan, Load Balancing "
 4949                   "and/or FailOver. If failover or load balancing "
 4950                   "capabilities are listed, a SpareGroup (failover) or "
 4951                   "ExtraCapacityGroup (load balancing) should also be defined "
 4952                   "to completely describe the capability."), 
 4953                  ArrayType ("Indexed"), 
 4954                  Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
 4955                        "FailOver", "LoadBalancing"}, 
 4956                  ModelCorrespondence {
 4957 karl  1.1              "CIM_EthernetAdapter.CapabilityDescriptions"}
 4958                 ]
 4959              uint16 Capabilities[];
 4960                 [Description (
 4961                   "An array of free-form strings providing more detailed "
 4962                   "explanations for any of the EthernetAdapter features "
 4963                   "indicated in the Capabilities array. Note, each entry of "
 4964                   "this array is related to the entry in the Capabilities "
 4965                   "array that is located at the same index."), 
 4966                  ArrayType ("Indexed"), 
 4967                  ModelCorrespondence {"CIM_EthernetAdapter.Capabilities"}
 4968                 ]
 4969              string CapabilityDescriptions[];
 4970                 [Description (
 4971                   "Specifies which capabilities are enabled from the list "
 4972                   "of all supported ones, defined in the Capabilities array."), 
 4973                  Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
 4974                        "FailOver", "LoadBalancing"}, 
 4975                  ModelCorrespondence {"CIM_EthernetAdapter.Capabilities"}
 4976                 ]
 4977              uint16 EnabledCapabilities[];
 4978 karl  1.1       [Description (
 4979                   "The number of times there was an invalid data symbol when "
 4980                   "a valid carrier was present. The count is incremented at "
 4981                   "most once per carrier event, even if multiple symbol "
 4982                   "errors occur during the carrier event."), 
 4983                  MappingStrings {"MIB.IETF|EtherLike-MIB.dot3StatsSymbolErrors"}, 
 4984                  Counter
 4985                 ] 
 4986              uint32 SymbolErrors;
 4987                 [Description ("The total number of packets transmitted."), 
 4988                  MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.6"}, 
 4989                  Counter
 4990                 ] 
 4991              uint64 TotalPacketsTransmitted;
 4992                 [Description ("The total number of packets received."), 
 4993                  MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.8"}, 
 4994                  Counter
 4995                 ] 
 4996              uint64 TotalPacketsReceived;
 4997           	[Description (
 4998           	  "A count of frames received on a particular interface "
 4999 karl  1.1 	  "that are not an integral number of octets in length and do "
 5000           	  "not pass the FCS check. The count represented by an "
 5001           	  "instance of this object is incremented when the alignment"
 5002           	  "Error status is returned by the MAC layer to the LLC (or "
 5003           	  "other MAC user). Received frames for which multiple error "
 5004           	  "conditions obtain are, according to the conventions of IEEE "
 5005           	  "802.3 Layer Management, counted exclusively according to "
 5006           	  "the error status presented to the LLC."),
 5007           	 Mappingstrings {
 5008           	       "MIB.IETF|EtherLike-MIB.dot3StatsAlignmentErrors"}, 
 5009                  Counter
 5010                 ] 
 5011               uint32 AlignmentErrors;
 5012           	[Description (
 5013           	  "A count of frames received on a particular interface "
 5014           	  "that are an integral number of octets in length but do "
 5015           	  "not pass the FCS check. The count represented by an "
 5016           	  "instance of this object is incremented when the frame"
 5017           	  "CheckError status is returned by the MAC layer to the "
 5018           	  "LLC (or other MAC user). Received frames for which "
 5019           	  "multiple error conditions obtain are, according to the "
 5020 karl  1.1 	  "conventions of IEEE 802.3 Layer Management, counted "
 5021           	  "exclusively according to the error status presented to "
 5022           	  "the LLC."),
 5023           	 Mappingstrings {
 5024           	       "MIB.IETF|EtherLike-MIB.dot3StatsFCSErrors"}, 
 5025                  Counter
 5026                 ] 
 5027               uint32 FCSErrors;
 5028           	[Description (
 5029           	  "A count of successfully transmitted frames on a particular "
 5030           	  "interface for which transmission is inhibited by exactly "
 5031           	  "one collision. A frame that is counted by an instance of "
 5032           	  "this object is not counted by the corresponding instance "
 5033           	  "of the MultipleCollisionFrames property."),
 5034           	 Mappingstrings {
 5035           	       "MIB.IETF|EtherLike-MIB.dot3StatsSingleCollisionFrames"}, 
 5036                  Counter
 5037                 ] 
 5038               uint32 SingleCollisionFrames;
 5039           	[Description (
 5040           	  "A count of successfully transmitted frames on a particular "
 5041 karl  1.1 	  "interface for which transmission is inhibited by more than "
 5042           	  "one collision. A frame that is counted by an instance of "
 5043           	  "this object is not counted by the corresponding instance "
 5044           	  "of the SingleCollisionFrames property."),
 5045           	 Mappingstrings {
 5046           	       "MIB.IETF|EtherLike-MIB.dot3StatsMultipleCollisionFrames"}, 
 5047                  Counter
 5048                 ] 
 5049               uint32 MultipleCollisionFrames;
 5050           	[Description (
 5051           	  "A count of times that the SQE TEST ERROR message is "
 5052           	  "generated by the PLS sublayer for a particular interface. "
 5053           	  "The SQE TEST ERROR message is defined in section "
 5054           	  "7.2.2.2.4 of ANSI/IEEE 802.3-1985 and its generation is "
 5055           	  "described in section 7.2.4.6 of the same document."),
 5056           	 Mappingstrings {
 5057           	       "MIB.IETF|EtherLike-MIB.dot3StatsSQETestErrors"}, 
 5058                  Counter
 5059                 ] 
 5060               uint32 SQETestErrors;
 5061           	[Description (
 5062 karl  1.1 	  "A count of frames for which the first transmission "
 5063           	  "attempt on a particular interface is delayed because the "
 5064           	  "medium is busy. The count represented by an instance of "
 5065           	  "this object does not include frames involved in collisions."),
 5066           	 Mappingstrings {
 5067           	       "MIB.IETF|EtherLike-MIB.dot3StatsDeferredTransmissions"}, 
 5068                  Counter
 5069                 ] 
 5070               uint32 DeferredTransmissions;
 5071           	[Description (
 5072           	  "The number of times that a collision is detected on a "
 5073           	  "particular interface later than 512 bit-times into the "
 5074           	  "transmission of a packet. Five hundred and twelve bit-"
 5075           	  "times corresponds to 51.2 microseconds on a 10 Mbit/s "
 5076           	  "system. A (late) collision included in a count "
 5077           	  "represented by an instance of this object is also "
 5078           	  "considered as a (generic) collision for purposes of "
 5079           	  "other collision-related statistics."),
 5080           	 Mappingstrings {
 5081           	       "MIB.IETF|EtherLike-MIB.dot3StatsLateCollisions"}, 
 5082                  Counter
 5083 karl  1.1       ] 
 5084               uint32 LateCollisions;
 5085           	[Description (
 5086           	  "A count of frames for which transmission on a particular "
 5087           	  "interface fails due to excessive collisions."),
 5088           	 Mappingstrings {
 5089           	       "MIB.IETF|EtherLike-MIB.dot3StatsExcessiveCollisions"}, 
 5090                  Counter
 5091                 ] 
 5092               uint32 ExcessiveCollisions;
 5093           	[Description (
 5094           	  "A count of frames for which transmission on a particular "
 5095           	  "interface fails due to an internal MAC sublayer transmit "
 5096           	  "error. A frame is only counted by an instance of this "
 5097           	  "object if it is not counted by the corresponding instance "
 5098           	  "of either the LateCollisions property, the Excessive"
 5099           	  "Collisions property, or the CarrierSenseErrors property. "
 5100           	  "The precise meaning of the count represented by an instance "
 5101           	  "of this object is implementation-specific.  In particular, "
 5102           	  "an instance of this object may represent a count of "
 5103           	  "transmission errors on a particular interface that are "
 5104 karl  1.1 	  "not otherwise counted."),
 5105           	 Mappingstrings {
 5106           	  "MIB.IETF|EtherLike-MIB.dot3StatsInternalMacTransmitErrors"}, 
 5107                  Counter
 5108                 ] 
 5109               uint32 InternalMACTransmitErrors;
 5110           	[Description (
 5111           	  "A count of frames for which reception on a particular "
 5112           	  "interface fails due to an internal MAC sublayer receive "
 5113           	  "error. A frame is only counted by an instance of this "
 5114           	  "object if it is not counted by the corresponding instance "
 5115           	  "of either the FrameTooLongs property, the AlignmentErrors "
 5116           	  "property, or the FCSErrors property. The precise meaning "
 5117           	  "of the count represented by an instance of this object is "
 5118           	  "implementation-specific.  In particular, an instance of "
 5119           	  "this object may represent a count of receive errors on a "
 5120           	  "particular interface that are not otherwise counted."),
 5121           	 Mappingstrings {
 5122           	       "MIB.IETF|EtherLike-MIB.dot3StatsInternalMacReceiveErrors"}, 
 5123                  Counter
 5124                 ] 
 5125 karl  1.1     uint32 InternalMACReceiveErrors;
 5126           	[Description (
 5127           	  "The number of times that the carrier sense condition was "
 5128           	  "lost or never asserted when attempting to transmit a frame "
 5129           	  "on a particular interface. The count represented by an "
 5130           	  "instance of this object is incremented at most once per "
 5131           	  "transmission attempt, even if the carrier sense condition "
 5132           	  "fluctuates during a transmission attempt."),
 5133           	 Mappingstrings {
 5134           	       "MIB.IETF|EtherLike-MIB.dot3StatsCarrierSenseErrors"}, 
 5135                  Counter
 5136                 ] 
 5137               uint32 CarrierSenseErrors;
 5138           	[Description (
 5139           	  "A count of frames received on a particular interface that "
 5140           	  "exceed the maximum permitted frame size. The count "
 5141           	  "represented by an instance of this object is incremented "
 5142           	  "when the FrameTooLong status is returned by the MAC layer "
 5143           	  "to the LLC (or other MAC user). Received frames for which "
 5144           	  "multiple error conditions obtain are, according to the "
 5145           	  "conventions of IEEE 802.3 Layer Management, counted "
 5146 karl  1.1 	  "exclusively according to the error status presented to "
 5147           	  "the LLC."),
 5148           	 Mappingstrings {
 5149           	       "MIB.IETF|EtherLike-MIB.dot3StatsFrameTooLongs"}, 
 5150                  Counter
 5151                 ] 
 5152               uint32 FrameTooLongs;
 5153           };
 5154           
 5155           // ===================================================================
 5156           // TokenRingAdapter
 5157           // ===================================================================
 5158              [Description ("Capabilities and management of a TokenRingAdapter.")]
 5159           class CIM_TokenRingAdapter : CIM_NetworkAdapter
 5160           {
 5161           	[Override ("NetworkAddresses"), 
 5162           	 Description (
 5163           	  "Token Ring/802.5 MAC addresses formatted as twelve "
 5164           	  "hexadecimal digits (e.g. \"010203040506\"), with each pair "
 5165           	  "representing one of the six octets of the MAC address in "
 5166           	  "\"canonical\" bit order.  (Thus, the Group address bit is "
 5167 karl  1.1 	  "found in the low order bit of the first character of the "
 5168           	  "string.)"),
 5169           	 ArrayType ("Indexed")
 5170           	]
 5171               string NetworkAddresses[];
 5172           	[Description (
 5173           	  "The maximum size of the INFO (non-MAC) field that will be "
 5174           	  "received or transmitted."), 
 5175           	 Mappingstrings {"MIB.IETF|BRIDGE-MIB.dot1dTpPortMaxInfo"}
 5176           	]
 5177               uint32 MaxDataSize;
 5178                 [Description (
 5179                   "Capabilities of the TokenRingAdapter. For example, the Device "
 5180                   "may support AlertOnLan, WakeOnLan, Load Balancing and/or "
 5181                   "Failover. If failover or load balancing capabilities are "
 5182                   "listed, a SpareGroup (failover) or ExtraCapacityGroup (load "
 5183                   "balancing) should also be defined to completely describe the "
 5184                   "capability."), 
 5185                  ArrayType ("Indexed"), 
 5186                  Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
 5187                        "FailOver", "LoadBalancing"}, 
 5188 karl  1.1        ModelCorrespondence {
 5189                        "CIM_TokenRingAdapter.CapabilityDescriptions"}
 5190                 ]
 5191              uint16 Capabilities[];
 5192                 [Description (
 5193                   "An array of free-form strings providing more detailed "
 5194                   "explanations for any of the TokenRingAdapter features "
 5195                   "indicated in the Capabilities array. Note, each entry of "
 5196                   "this array is related to the entry in the Capabilities array "
 5197                   "that is located at the same index."), 
 5198                  ArrayType ("Indexed"), 
 5199                  ModelCorrespondence {"CIM_TokenRingAdapter.Capabilities"}
 5200                 ]
 5201              string CapabilityDescriptions[];
 5202                 [Description (
 5203                   "Specifies which of the capabilities from the \"Capabilities\" "
 5204                   "property are currently enabled."), 
 5205                  Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
 5206                        "FailOver", "LoadBalancing"}, 
 5207                  ModelCorrespondence {"CIM_TokenRingAdapter.Capabilities"}
 5208                 ]
 5209 karl  1.1    uint16 EnabledCapabilities[];
 5210                 [Description (
 5211                   "The current status which can be used to diagnose fluctuating "
 5212                   "problems that can occur on token rings, after a station has "
 5213                   "successfully been added to the ring. Before an open is completed, "
 5214                   "this object contains the value indicating \"no status\" (131072). "
 5215                   "(The RingState and RingOpenStatus properties are also provided "
 5216                   "for debugging problems when the station can not even enter the "
 5217                   "ring.) The property's value is a sum of values, one for each "
 5218                   "currently applicable condition. The following values are defined "
 5219                   "for various conditions:\n"
 5220                   "0 = No Problems Detected, 32 = Ring Recovery, "
 5221                   "64 = Single Station, 256 = Remove Received, 512 = Reserved, "
 5222                   "1024 = Auto-Removal Error, 2048 = Lobe Wire Fault, "
 5223                   "4096 = Transmit Beacon, 8192 = Soft Error, 16384 = Hard Error, "
 5224                   "32768 = Signal Loss, 131072 = No Status, Open Not Completed."), 
 5225                  MappingStrings {
 5226                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingStatus"}
 5227                 ]
 5228              uint32 RingStatus;
 5229                 [Description (
 5230 karl  1.1         "The current Device state with respect to entering or leaving "
 5231                   "the ring." ), 
 5232                  Values {"Opened", "Closed", "Opening", "Closing", "Open Failure", 
 5233                        "Ring Failure"}, 
 5234                  MappingStrings {"MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingState"}
 5235                 ]
 5236              uint16 RingState;
 5237                 [Description (
 5238                   "This property indicates the success, or the reason for failure, "
 5239                   "of the station's most recent attempt to enter the ring." ), 
 5240                  Values {"No Open Attempted", "Bad Parameter", "Lobe Failed", 
 5241                        "Signal Loss", "Insertion Timeout", "Ring Failed", "Beaconing", 
 5242                        "Duplicate MAC", "Request Failed", "Remove Received", 
 5243                        "Last Open Successful"}, 
 5244                  MappingStrings {
 5245                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingOpenStatus"}
 5246                 ]
 5247              uint16 RingOpenStatus;
 5248                 [Description ("The ring's bandwidth."), 
 5249                  Values {"Unknown", "Other", "One Megabit", "Four Megabit", 
 5250                        "Sixteen Megabit"}, 
 5251 karl  1.1        MappingStrings {"MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingSpeed"}
 5252                 ]
 5253              uint16 RingSpeed;
 5254                 [Description (
 5255                   "This counter is incremented when a station detects the absence "
 5256                   "of transitions for five half-bit timers (burst-five errors)."), 
 5257                  MappingStrings {
 5258                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsBurstErrors"}, 
 5259                  Counter
 5260                 ] 
 5261              uint32 BurstErrors;
 5262                 [Description (
 5263                   "This counter is incremented when a station receives an AMP or "
 5264                   "SMP frame in which A is equal to C is equal to 0, and then "
 5265                   "receives another SMP frame with A equal to C equal to 0 without "
 5266                   "first receiving an AMP frame. It denotes a station that cannot "
 5267                   "set the AC bits properly."), 
 5268                  MappingStrings {
 5269                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsACErrors"}, 
 5270                  Counter
 5271                 ] 
 5272 karl  1.1    uint32 ACErrors;
 5273                 [Description (
 5274                   "This counter is incremented when a station transmits an abort "
 5275                   "delimiter while transmitting data."), 
 5276                  MappingStrings {
 5277                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsAbortTransErrors"}, 
 5278                  Counter
 5279                 ] 
 5280              uint32 AbortTransErrors;
 5281                 [Description (
 5282                   "This counter is incremented when a station recognizes an "
 5283                   "internal error."), 
 5284                  MappingStrings {
 5285                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsInternalErrors"}, 
 5286                  Counter
 5287                 ] 
 5288              uint32 InternalErrors;
 5289                 [Description (
 5290                   "This counter is incremented when a station is transmitting "
 5291                   "and its TRR timer expires. This denotes a condition where a "
 5292                   "transmitting station in strip mode does not receive the "
 5293 karl  1.1         "trailer of the frame before the TRR timer goes off."), 
 5294                  MappingStrings {
 5295                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsLostFrameErrors"}, 
 5296                  Counter
 5297                 ] 
 5298              uint32 LostFrameErrors;
 5299                 [Description (
 5300                   "This counter is incremented when a station recognizes a frame "
 5301                   "addressed to its specific address, but has no available buffer "
 5302                   "space - indicating that the station is congested."), 
 5303                 MappingStrings {
 5304                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsReceiveCongestions"}, 
 5305                  Counter
 5306                 ] 
 5307              uint32 ReceiveCongestions;
 5308                 [Description (
 5309                   "This counter is incremented when a station recognizes a frame "
 5310                   "addressed to its specific address and detects that the FS field "
 5311                   "A bits are set to 1 indicating a possible line hit or duplicate "
 5312                   "address."), 
 5313                  MappingStrings {
 5314 karl  1.1         "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsFrameCopiedErrors"}, 
 5315                  Counter
 5316                 ] 
 5317              uint32 FrameCopiedErrors;
 5318                 [Description (
 5319                   "This counter is incremented when a station acting as the active "
 5320                   "monitor recognizes an error condition that needs a token "
 5321                   "transmitted."), 
 5322                  MappingStrings {
 5323                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsTokenErrors"}, 
 5324                  Counter
 5325                 ]
 5326              uint32 TokenErrors;
 5327                 [Description (
 5328                   "The number of Soft Errors that the Device has detected. It "
 5329                   "directly corresponds to the number of Report Error MAC frames "
 5330                   "that this Device has transmitted. Soft Errors are those which "
 5331                   "are recoverable by the MAC layer protocols."), 
 5332                  MappingStrings {
 5333                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSoftErrors"}, 
 5334                  Counter
 5335 karl  1.1       ]
 5336              uint32 SoftErrors;
 5337                 [Description (
 5338                   "The number of times this Device has detected an immediately "
 5339                   "recoverable fatal error. It denotes the number of times this "
 5340                   "Device is either transmitting or receiving beacon MAC frames. "), 
 5341                  MappingStrings {
 5342                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsHardErrors"}, 
 5343                  Counter
 5344                 ]
 5345              uint32 HardErrors;
 5346                 [Description (
 5347                   "The number of times this Device has detected the loss of "
 5348                   "signal condition from the ring."), 
 5349                  MappingStrings {
 5350                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSignalLoss"}, 
 5351                  Counter
 5352                 ]
 5353              uint32 SignalLossCount;
 5354                 [Description (
 5355                   "The number of times this Device has transmitted a beacon "
 5356 karl  1.1         "frame."), 
 5357                  MappingStrings {
 5358                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsTransmitBeacons"}, 
 5359                  Counter
 5360                 ]
 5361              uint32 TransmittedBeacons;
 5362                 [Description (
 5363                   "The number of Claim Token MAC frames received or transmitted "
 5364                   "after the Device has received a Ring Purge MAC frame. This "
 5365                   "counter signifies the number of times the ring has been purged "
 5366                   "and is being recovered back into a normal operating state."), 
 5367                  MappingStrings {
 5368                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsRecoverys"}, 
 5369                  Counter
 5370                 ]
 5371              uint32 Recoverys;
 5372                 [Description (
 5373                   "The number of times the Device has detected an open or short "
 5374                   "circuit in the lobe data path. The adapter will be closed and "
 5375                   "RingState will signify this condition."), 
 5376                  MappingStrings {
 5377 karl  1.1         "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsLobeWires"}, 
 5378                  Counter
 5379                 ]
 5380              uint32 LobeWires;
 5381                 [Description (
 5382                   "The number of times the Device has received a Remove Ring "
 5383                   "Station MAC frame request. When this frame is received, the "
 5384                   "Device will enter the close state and RingState will "
 5385                   "signify this condition."), 
 5386                  MappingStrings {
 5387                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsRemoves"}, 
 5388                  Counter
 5389                 ]
 5390              uint32 Removes;
 5391                 [Description (
 5392                   "The number of times the Device has sensed that it is the "
 5393                   "only station on the ring. This will happen if the Device "
 5394                   "is the first one up on a ring, or if there is a hardware "
 5395                   "problem."), 
 5396                 MappingStrings {
 5397                  "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSingles"}, 
 5398 karl  1.1        Counter
 5399                 ]
 5400              uint32 Singles;
 5401                 [Description (
 5402                   "The number of times the Device has detected that the "
 5403                   "frequency of the incoming signal differs from the expected "
 5404                   "frequency by more than that specified by the IEEE 802.5 "
 5405                   "standard."), 
 5406                  MappingStrings {
 5407                   "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsFreqErrors"}, 
 5408                  Counter
 5409                 ]
 5410              uint32 FrequencyErrors;
 5411           };
 5412           
 5413           // ==================================================================
 5414           // FibreChannelAdapter 
 5415           // ==================================================================
 5416              [Description (
 5417                  "Capabilities and management of a Fibre Channel Adapter.")
 5418              ]
 5419 karl  1.1 class CIM_FibreChannelAdapter : CIM_NetworkAdapter
 5420           {
 5421                 [Description (
 5422                   "The maximum frame size, in bytes, supported by the Adapter."), 
 5423                  Units ("Bytes")
 5424                 ]
 5425              uint64 MaxFrameSize;
 5426                 [Description (
 5427                   "The Fibre Channel Classes of Service that are supported by "
 5428                   "the Adapter, on its Ports. The currently negotiated COS for a "
 5429                   "connection is a property (NegotiatedCOS) on the FibrePort"
 5430                   "ActiveLogin association."), 
 5431                  Values {"Unknown", "1", "2", "3", "4", "6", "F"}
 5432                 ]
 5433              uint16 SupportedCOS[];
 5434                 [Description (
 5435                   "An array of integers indicating the Fibre Channel FC-4 "
 5436                   "protocols supported by the Adapter. The protocols that are "
 5437                   "active and running are indicated in the CurrentFC4Types "
 5438                   "property. The values used in this array are taken from the "
 5439                   "FC-GS2 (bitmapped) field defined in Table 11 of the standard. "
 5440 karl  1.1         "Also, FC-SB-2 codes are included from the T11 document, "
 5441                   "236V0. If the FC4 Type is \"Vendor Unique\" (value=255), "
 5442                   "then the specific vendor values (in the range, 0xE0 to 0xFF) "
 5443                   "should be listed in the FC4VendorUniqueTypes property."), 
 5444                  ValueMap {"0", "1", "4", "5", "8", "9", "17", "18", "19", "21", 
 5445                          "22", "23", "25", "26", "27", "28", "32", "34", "36", 
 5446                          "64", "80", "81", "82", "88", "96", "255"}, 
 5447                  Values {"Unknown", "Other", "ISO/IEC 8802 - 2 LLC", 
 5448                        "IP over FC", "SCSI - FCP", "SCSI - GPP", 
 5449                        "IPI - 3 Master", "IPI - 3 Slave", "IPI - 3 Peer", 
 5450                        "CP IPI - 3 Master", "CP IPI - 3 Slave", 
 5451                        "CP IPI - 3 Peer", "SBCCS Channel", 
 5452                        "SBCCS Control Unit", "FC-SB-2 Channel", 
 5453                        "FC-SB-2 Control Unit", 
 5454                        "Fibre Channel Services (FC-GS, FC-GS-2, FC-GS-3)", 
 5455                        "FC-SW", "FC - SNMP", "HIPPI - FP", "BBL Control", 
 5456                        "BBL FDDI Encapsulated LAN PDU", 
 5457                        "BBL 802.3 Encapsulated LAN PDU", "FC - VI", "FC - AV", 
 5458                        "Vendor Unique"}, 
 5459                  ModelCorrespondence {
 5460                        "CIM_FibreChannelAdapter.FC4VendorUniqueTypes"}
 5461 karl  1.1       ]
 5462              uint16 FC4TypesSupported[];
 5463                 [Description (
 5464                   "When the FC4TypesSupported array contains the value 255 "
 5465                   "(\"Vendor Unique\"), then the property, FC4VendorUniqueTypes, "
 5466                   "lists of all the vendor specific protocols supported by the "
 5467                   "Adapter. These values are in the range, 0xE0 to 0xFF."), 
 5468                  MinValue (240), MaxValue (255)
 5469                 ]
 5470              uint16 FC4VendorUniqueTypes[];
 5471                 [Description (
 5472                   "An array of integers indicating the Fibre Channel FC-4 "
 5473                   "protocols currently running on the Adapter. A list of all "
 5474                   "protocols supported by the Adapter is indicated in the "
 5475                   "FC4TypesSupported property. The values used in this array "
 5476                   "are taken from the FC-GS2 (bitmapped) field defined in "
 5477                   "Table 11 of the standard. Also, FC-SB-2 codes are included "
 5478                   "from the T11 document, 236V0. If the FC4 Type is \"Vendor "
 5479                   "Unique\" (value=255), then the specific vendor values "
 5480                   "(in the range, 0xE0 to 0xFF) that are currently running "
 5481                   "should be listed in the CurrentFC4VendorTypes property."), 
 5482 karl  1.1        ValueMap {"0", "1", "4", "5", "8", "9", "17", "18", "19", "21", 
 5483                          "22", "23", "25", "26", "27", "28", "32", "34", "36", 
 5484                          "64", "80", "81", "82", "88", "96", "255"}, 
 5485                  Values {"Unknown", "Other", "ISO/IEC 8802 - 2 LLC", 
 5486                        "IP over FC", "SCSI - FCP", "SCSI - GPP", 
 5487                        "IPI - 3 Master", "IPI - 3 Slave", "IPI - 3 Peer", 
 5488                        "CP IPI - 3 Master", "CP IPI - 3 Slave", 
 5489                        "CP IPI - 3 Peer", "SBCCS Channel", 
 5490                        "SBCCS Control Unit", "FC-SB-2 Channel", 
 5491                        "FC-SB-2 Control Unit", 
 5492                        "Fibre Channel Services (FC-GS, FC-GS-2, FC-GS-3)", 
 5493                        "FC-SW", "FC - SNMP", "HIPPI - FP", "BBL Control", 
 5494                        "BBL FDDI Encapsulated LAN PDU", 
 5495                        "BBL 802.3 Encapsulated LAN PDU", "FC - VI", "FC - AV", 
 5496                        "Vendor Unique"}, 
 5497                  ModelCorrespondence {
 5498                        "CIM_FibreChannelAdapter.FC4TypesSupported", 
 5499                        "CIM_FibreChannelAdapter.CurrentFC4VendorTypes"}
 5500                 ]
 5501              uint16 CurrentFC4Types[];
 5502                 [Description (
 5503 karl  1.1         "When the CurrentFC4Types array contains the value 255 "
 5504                   "(\"Vendor Unique\"), then the property, CurrentFC4VendorTypes, "
 5505                   "lists all the vendor specific protocols running on the "
 5506                   "Adapter. These values are in the range, 0xE0 to 0xFF."), 
 5507                  MinValue (240), MaxValue (255), 
 5508                  ModelCorrespondence {
 5509                        "CIM_FibreChannelAdapter.FC4VendorUniqueTypes"}
 5510                 ]
 5511              uint16 CurrentFC4VendorTypes[];
 5512                 [Description (
 5513                   "A list of the Capabilities of the Fibre Channel Adapter. "
 5514                   "For example, that the Adapter utilizes the Directory Server, "
 5515                   "or that it generates State Change Notifications can be "
 5516                   "indicated using the values 2 and 12, respectively."), 
 5517                  ArrayType ("Indexed"), 
 5518                  Values {"Unknown", "Other", "Utilizes the Directory Server", 
 5519                        "Utilizes the Time Server", 
 5520                        "Utilizes the Management Server", 
 5521                        "Utilizes the Alias Server", 
 5522                        "Utilizes the Security Key Distribution Server", 
 5523                        "Utilizes the Clock Synchronization Server", 
 5524 karl  1.1              "Utilizes the Multicast Server", 
 5525                        "Utilizes QoS Facilitator", 
 5526                        "Utilizes Broadcast Services", 
 5527                        "Supports Fabric Login Server", 
 5528                        "Generates State Change Notifications", 
 5529                        "Registers for State Change Notifications", 
 5530                        "Responds to Read Connection Status", 
 5531                        "Supports Third Party Process Logout"}
 5532                 ]
 5533              uint16 Capabilities[];
 5534                 [Description (
 5535           	  "An array of free-form strings providing more detailed "
 5536           	  "explanations for any of the Adapter features indicated in "
 5537           	  "the Capabilities array. Note, each entry of this array "
 5538           	  "is related to the entry in the Capabilities array that "
 5539           	  "is located at the same index."),
 5540                  ArrayType ("Indexed"),
 5541           	 ModelCorrespondence {"CIM_FibreChannelAdapter.Capabilities"}
 5542                 ]
 5543              string CapabilityDescriptions[];
 5544                 [Description (
 5545 karl  1.1         "The number of times that a frame was received but no "
 5546                   "buffer was available."), 
 5547                  Counter
 5548                 ]
 5549              uint64 ReceiveBufferErrors;
 5550                 [Description (
 5551                   "The number of times that a frame was received but no "
 5552                   "end-to-end credit was available."), 
 5553                  Counter
 5554                 ]
 5555              uint64 ReceiveEndErrors;
 5556                 [Description (
 5557                   "A 'long' timeout value (in milliseconds) for determining "
 5558                   "when to reinstate a Recovery_Qualifier. The default value "
 5559                   "is 120 seconds (120000 milliseconds). It is typically set "
 5560                   "to the ErrorDetectTimeout value + 2*(fabric delay time)."), 
 5561                  Units ("MilliSeconds")
 5562                 ]
 5563              uint64 ResourceAllocationTimeout;
 5564                 [Description (
 5565                   "A 'short' timeout value (in milliseconds) for determining "
 5566 karl  1.1         "that an error has occurred. The default value is 10 "
 5567                   "seconds (10000 milliseconds)."), 
 5568                  Units ("MilliSeconds")
 5569                 ]
 5570              uint64 ErrorDetectTimeout;
 5571                 [Description (
 5572                   "Number of Class 1 sequences sent since last reset of the "
 5573                   "Device."), 
 5574                  Counter
 5575                 ]
 5576              uint64 Class1SequencesSent;
 5577                 [Description (
 5578                   "Number of Class 2 sequences sent since last reset of the "
 5579                   "Device."),
 5580                  Counter
 5581                 ]
 5582              uint64 Class2SequencesSent;
 5583                 [Description (
 5584                   "Number of Class 3 sequences sent since last reset of the "
 5585                   "Device."),
 5586                  Counter
 5587 karl  1.1       ]
 5588              uint64 Class3SequencesSent;
 5589                 [Description (
 5590                   "Number of Class 4 sequences sent since last reset of the "
 5591                   "Device."),
 5592                  Counter
 5593                 ]
 5594              uint64 Class4SequencesSent;
 5595                 [Description (
 5596                   "Number of octets received by the Adapter when running "
 5597                   "Class 2 service."),
 5598                  Counter
 5599                 ]
 5600              uint64 Class2OctetsReceived;
 5601                 [Description (
 5602                   "Number of octets transmitted by the Adapter when running "
 5603                   "Class 2 service."),
 5604                  Counter
 5605                 ]
 5606              uint64 Class2OctetsTransmitted;
 5607                 [Description (
 5608 karl  1.1         "Number of frames received by the Adapter when running "
 5609                   "Class 2 service."), 
 5610                  Counter
 5611                 ]
 5612              uint64 Class2FramesReceived;
 5613                 [Description (
 5614                   "Number of frames transmitted by the Adapter when running "
 5615                   "Class 2 service."),
 5616                  Counter
 5617                 ]
 5618              uint64 Class2FramesTransmitted;
 5619                 [Description (
 5620                   "Number of frames discarded by the Adapter when running "
 5621                   "Class 2 service."),
 5622                  Counter
 5623                 ]
 5624              uint64 Class2DiscardFrames;
 5625                 [Description (
 5626                   "Number of octets received by the Adapter when running "
 5627                   "Class 3 service."),
 5628                  Counter
 5629 karl  1.1       ]
 5630              uint64 Class3OctetsReceived;
 5631                 [Description (
 5632                   "Number of octets transmitted by the Adapter when running "
 5633                   "Class 3 service."),
 5634                  Counter
 5635                 ]
 5636              uint64 Class3OctetsTransmitted;
 5637                 [Description (
 5638                   "Number of frames received by the Adapter when running "
 5639                   "Class 3 service."), 
 5640                  Counter
 5641                 ]
 5642              uint64 Class3FramesReceived;
 5643                 [Description (
 5644                   "Number of frames transmitted by the Adapter when running "
 5645                   "Class 3 service."),
 5646                  Counter
 5647                 ]
 5648              uint64 Class3FramesTransmitted;
 5649                 [Description (
 5650 karl  1.1         "Number of frames discarded by the Adapter when running "
 5651                   "Class 3 service."),
 5652                  Counter
 5653                 ]
 5654              uint64 Class3DiscardFrames;
 5655                 [Description (
 5656                   "Number of parity errors detected somewhere in the "
 5657                   "data path."),
 5658                  Counter
 5659                 ]
 5660              uint64 ParityErrors;
 5661                 [Description (
 5662                   "Number of Class 1 or 2 frames that are not ACKed "
 5663                   "within the time indicated by ErrorDetectTimeout."), 
 5664                  Counter
 5665                 ]
 5666              uint64 FrameTimeouts;
 5667                 [Description (
 5668                   "Number of times that the Device has been without a "
 5669                   "buffer credit for a time longer than ErrorDetectTimeout."), 
 5670                  Counter
 5671 karl  1.1       ]
 5672              uint64 BufferCreditErrors;
 5673                 [Description (
 5674                   "Number of times that the Device has been without an end "
 5675                   "credit for a time longer than ErrorDetectTimeout."), 
 5676                  Counter
 5677                 ]
 5678              uint64 EndCreditErrors;
 5679                 [Description ("Number of frames received out of order."), 
 5680                  Counter
 5681                 ]
 5682              uint64 OutOfOrderFramesReceived;
 5683           };
 5684           
 5685           // ==================================================================
 5686           // FCAdapterEventCounters 
 5687           // ==================================================================
 5688              [Description (
 5689                  "Error and event counters specific to a Fibre Channel Adapter.")
 5690              ]
 5691           class CIM_FCAdapterEventCounters : CIM_DeviceStatisticalInformation
 5692 karl  1.1 {
 5693                 [Description ("The number of Abort sequence frames received."), 
 5694                  Counter
 5695                 ]
 5696              uint64 ABTSFramesReceived;
 5697                 [Description ("The number of Abort sequence frames sent."), 
 5698                  Counter
 5699                 ]
 5700              uint64 ABTSFramesSent;
 5701                 [Description ("The number of frames busied by the Fabric."), 
 5702                  Counter
 5703                 ]
 5704              uint64 FBSYsReceived;
 5705                 [Description (
 5706                   "The number of frames busied by the receiving Node."),
 5707                  Counter
 5708                 ]
 5709              uint64 PBSYsReceived;
 5710                 [Description (
 5711                   "The number of frames busied by the Adapter itself."),
 5712                  Counter
 5713 karl  1.1       ]
 5714              uint64 PBSYsSent;
 5715                 [Description ("The number of frames rejected by the Fabric."), 
 5716                  Counter
 5717                 ]
 5718              uint64 FRJTsReceived;
 5719                 [Description (
 5720                   "The number of frames rejected by the receiving Node."),
 5721                  Counter
 5722                 ]
 5723              uint64 PRJTsReceived;
 5724                 [Description (
 5725                   "The number of frames rejected by the Adapter itself."),
 5726                  Counter
 5727                 ]
 5728              uint64 PRJTsSent;
 5729                 [Description (
 5730                   "The number of PRLI frames sent where the response was "
 5731                   "LS_RJT."), 
 5732                  Counter
 5733                 ]
 5734 karl  1.1    uint64 PRLIsRejected;
 5735                 [Description (
 5736                   "The number of PRLO frames sent where the response was "
 5737                   "LS_RJT."), 
 5738                  Counter
 5739                 ]
 5740              uint64 PRLOsRejected;
 5741                 [Description (
 5742                   "The number of Abort sequence frames sent where the response "
 5743                   "was BA_RJT."), 
 5744                  Counter
 5745                 ]
 5746              uint64 ABTSFramesRejected;
 5747           	[Description (
 5748           	  "Method to reset the Adapter event counters. The method " 
 5749           	  "takes one parameter as input - an integer indicating which "
 5750           	  "counter to reset. For this input parameter, 0 indicates all, "
 5751           	  "1 through 11 indicate a reset of the individual counters. "
 5752           	  "The method returns 0 if successful, 1 if not supported, and " 
 5753           	  "any other value if an error occurred. A method is specified "
 5754           	  "so that the Device's instrumentation, which tabulates "
 5755 karl  1.1 	  "the errors and warnings, can also reset its internal "
 5756           	  "processing and counters.\n"
 5757                   "In a subclass, the set of possible return codes could be "
 5758                   "specified, using a ValueMap qualifier on the method. The "
 5759                   "strings to which the ValueMap contents are 'translated' "
 5760                   "may also be specified in the subclass as a Values "
 5761                   "array qualifier.")
 5762           	]
 5763              uint32 ResetCounter ([IN, Values {"All",
 5764               "ABTSFramesReceived", "ABTSFramesSent", "FBSYReceived", 
 5765               "PBSYReceived", "PBSYSent", "FRJTReceived", "PRJTReceived", 
 5766               "PRJTSent", "PRLIRejected", "PRLORejected", "ABTSFramesRejected"}]
 5767               uint16 SelectedCounter);
 5768           };
 5769           
 5770           // ==================================================================
 5771           // FibrePort 
 5772           // ==================================================================
 5773              [Description (
 5774                  "Capabilities and management of a Fibre Channel Port Device.")
 5775              ]
 5776 karl  1.1 class CIM_FibrePort : CIM_LogicalPort
 5777           {
 5778                 [Description (
 5779                   "An address value used to identify the source (S_ID) or "
 5780                   "destination (D_ID) of a frame. The FC-SW standard includes a "
 5781                   "table of special address identifier values and their "
 5782                   "meanings. Consult the FC-SW documentation for additional "
 5783                   "information.")
 5784                 ]
 5785              uint32 AddressIdentifier;
 5786                 [Description (
 5787                   "An array indicating the modes in which the Port can operate. "
 5788                   "PortType values describe the role and behavior of the Fibre "
 5789                   "Channel entity: \"N\" = Node Port, \"NL\" = Node Port "
 5790                   "supporting FC arbitrated loop, \"E\" = Expansion Port "
 5791                   "connecting fabric elements (for example, FC switches), "
 5792                   "\"F\" = Fabric (element) Port, \"FL\" = Fabric (element) "
 5793                   "Port supporting FC arbitrated loop, and \"B\" = Bridge "
 5794                   "Port. PortTypes are defined in the ANSI X3 standards.\n\n"
 5795                   "A particular mode may be listed multiple times in the "
 5796                   "SupportedPortTypes array in order to define that multiple, "
 5797 karl  1.1         "unique version levels are supported. Version information is "
 5798                   "defined in the PortTypeVersions property. Note that each "
 5799                   "entry of the SupportedPortTypes array is related to the entry "
 5800                   "in PortTypeVersions that is located at the same index."), 
 5801                  ArrayType ("Indexed"), 
 5802                  Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", "FL", "B"}, 
 5803                  ModelCorrespondence {"CIM_FibrePort.PortTypeVersions"}
 5804                 ]
 5805              uint16 SupportedPortTypes[];
 5806                 [Description (
 5807                   "Version information for each of the SupportedPortTypes. A "
 5808                   "particular PortType (mode) may be listed multiple times in "
 5809                   "the SupportedPortTypes array in order to define multiple, "
 5810                   "unique version levels. Note that each entry of this array "
 5811                   "is related to the entry in SupportedPortTypes that is "
 5812                   "located at the same index."), 
 5813                  ArrayType ("Indexed"), 
 5814                  ModelCorrespondence {"CIM_FibrePort.SupportedPortTypes"}
 5815                 ]
 5816              string PortTypeVersions[];
 5817                 [Description (
 5818 karl  1.1         "The specific modes currently enabled for the Port. The "
 5819                   "values are equal to, or a subset of the values in the Supported"
 5820                   "PortTypes array."), 
 5821                  Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", "FL", "B"}, 
 5822                  ModelCorrespondence {"CIM_FibrePort.SupportedPortTypes", 
 5823                        "CIM_FibrePort.EnabledVersions"}
 5824                 ]
 5825              uint16 EnabledPortTypes[];
 5826                 [Description (
 5827                   "Version information for each of the EnabledPortTypes. A "
 5828                   "particular PortType (mode) may be listed multiple times in "
 5829                   "the EnabledPortTypes array in order to define multiple, "
 5830                   "unique version levels. Note that each entry of this array "
 5831                   "is related to the entry in EnabledPortTypes that is located "
 5832                   "at the same index."), 
 5833                  ArrayType ("Indexed"), 
 5834                  ModelCorrespondence {"CIM_FibrePort.EnabledPortTypes"}
 5835                 ]
 5836              string EnabledVersions[];
 5837                 [Description (
 5838                   "The specific mode in which the Port is currently running. The "
 5839 karl  1.1         "value is one of the entries in the EnabledPortTypes array. The "
 5840                   "current port type/mode is dependent on the fibre technology. "
 5841                   "For example, in a public loop network, you might indicate a "
 5842                   "port type of \"FL\" (value=6) or \"NL\" (value=2)."), 
 5843                  Values {"Unknown", "N", "NL-Private", "NL-Public", "E", "F", "FL", "B"}, 
 5844                  ModelCorrespondence {"CIM_FibrePort.EnabledPortTypes", 
 5845                        "CIM_FibrePort.CurrentVersion"}
 5846                 ]
 5847              uint16 CurrentPortType;
 5848                 [Description (
 5849                   "Version information for the CurrentPortType that is active."), 
 5850                  ModelCorrespondence {"CIM_FibrePort.CurrentPortType"}
 5851                 ]
 5852              string CurrentVersion;
 5853                 [Description (
 5854                   "One or more address identifiers that may be recognized by "
 5855                   "the Port, in addition to its port-specific identifier. "
 5856                   "Multicast or hunt group addresses that are recognized by "
 5857                   "the Port would be identified in this array.")
 5858                 ]
 5859              uint32 AliasAddresses[];
 5860 karl  1.1       [Description (
 5861                   "Number of times that signal is lost on the Port since last "
 5862                   "reset of the Device."), 
 5863                  Counter
 5864                 ]
 5865              uint64 LossOfSignalCounter;
 5866                 [Description (
 5867                   "Number of times that synchronization is lost on the Port "
 5868                   "since last reset of the Device. Synchronization is assumed "
 5869                   "lost after a timeout period identified by the Receiver"
 5870                   "TransmitterTimeout property."), 
 5871                  Counter
 5872                 ]
 5873              uint64 LossOfSyncCounter;
 5874                 [Description (
 5875                   "Number of times that the CRC in a frame does not match the "
 5876                   "CRC computed by the receiver."), 
 5877                  Counter
 5878                 ]
 5879              uint64 CRCErrors;
 5880                 [Description (
 5881 karl  1.1         "The number of transmission words that had an 8b10b code "
 5882                   "violation in one or more of its characters, had a "
 5883                   "K28.5 in its second, third or fourth character positions, "
 5884                   "and/or was an ordered set that had an incorrect Beginning "
 5885                   "Running Disparity."), 
 5886                  Counter
 5887                 ]
 5888              uint64 InvalidTransmissionWords;
 5889                 [Description (
 5890                   "The number of frames received that were shorter than 28 "
 5891                   "octets. The value of 28 is calculated based on an "
 5892                   "assumption of 24 header bytes plus 4 CRC bytes. The "
 5893                   "count does not include SOF/EOF bytes which are not data."), 
 5894                  Counter
 5895                 ]
 5896              uint64 FramesTooShort;
 5897                 [Description (
 5898                   "The number of frames received that were longer than 2140 "
 5899                   "octets. The value of 2140 is calculated based on an "
 5900                   "assumption of 24 header bytes plus 4 CRC bytes and 2112 "
 5901                   "bytes of payload."), 
 5902 karl  1.1        Counter
 5903                 ]
 5904              uint64 FramesTooLong;
 5905                 [Description (
 5906                   "The number of times that a fill word could not be "
 5907                   "inserted, when required. The Elasticity Buffer is defined "
 5908                   "in FC-AL. This event might cause data corruption and may "
 5909                   "indicate a configuration error or a device out of spec."), 
 5910                  Counter
 5911                 ]
 5912              uint64 ElasticityBufferUnderruns;
 5913                 [Description (
 5914                   "The number of times that a fill word could not be deleted, "
 5915                   "when required. The Elasticity Buffer is defined in FC-AL. "
 5916                   "This event might cause data corruption and may indicate a "
 5917                   "configuration error or a device out of spec."), 
 5918                  Counter
 5919                 ]
 5920              uint64 ElasticityBufferOverruns;
 5921                 [Description (
 5922                   "Timeout value in milliseconds used to determine when "
 5923 karl  1.1         "loss of synchronization has occurred. The typical default "
 5924                   "is 100 msec."), 
 5925                 Units ("Milliseconds")
 5926                 ]
 5927              uint64 ReceiverTransmitterTimeout;
 5928                 [Description (
 5929                   "Indication of whether the Port is currently bypassed "
 5930                   "(value=2) or not (value=1). A value of 3 (\"Forced Insert\") "
 5931                   "describes that the Port is forced active, when it would "
 5932                   "otherwise be \"Bypassed\"."), 
 5933                  Values {"Unknown", "Not Bypassed", "Bypassed", 
 5934                        "Forced Insert"}
 5935                 ]
 5936              uint16 BypassedState;
 5937           	   [Description (
 5938           	  "The type of cabling as sensed by the Port. Not all FibrePorts "
 5939           	  "are capable of providing this information. In this case, a "
 5940           	  "value of 0, \"Unknown\", will be returned. Also, when single or "
 5941           	  "multi-mode fiber cabling can not be distinguished, the more "
 5942           	  "general value - 4, \"Fiber-optic\" - can be specified."), 
 5943           	Values {"Unknown", "Other", "No Media", "Copper/Twinaxial", 
 5944 karl  1.1 	  "Fiber-optic", "Fiber Single Mode", "Fiber Multimode"} ] 
 5945           	uint16 ConnectedMedia;
 5946           };
 5947           
 5948           // ==================================================================
 5949           // FibrePortEventCounters
 5950           // ==================================================================
 5951              [Description (
 5952                  "Error and event counters specific to a Fibre Channel Port "
 5953                  "(connection point).")
 5954              ]
 5955           class CIM_FibrePortEventCounters : CIM_DeviceStatisticalInformation
 5956           {
 5957                 [Description ("The number of login frames received."), 
 5958                  Counter
 5959                 ]
 5960              uint64 PLOGIsReceived;
 5961                 [Description ("The number of login frames sent."), 
 5962                  Counter
 5963                 ]
 5964              uint64 PLOGIsSent;
 5965 karl  1.1       [Description (
 5966                   "Number of frames received containing 'EOF Abort'."), 
 5967                  Counter
 5968                 ]
 5969              uint64 EOFAbortsReceived;
 5970                 [Description (
 5971                   "Number of frames transmitted containing 'EOF Abort'."), 
 5972                  Counter
 5973                 ]
 5974              uint64 EOFAbortsTransmitted;
 5975                 [Description (
 5976                   "The number of logouts received from various targets."), 
 5977                  Counter
 5978                 ]
 5979              uint64 PLOGOsReceived;
 5980                 [Description ("The number of logout frames sent."), 
 5981                  Counter
 5982                 ]
 5983              uint64 PLOGOsSent;
 5984                 [Description (
 5985                   "The number of PLOGI frames sent where the response was "
 5986 karl  1.1         "LS_RJT."), 
 5987                  Counter
 5988                 ]
 5989              uint64 PLOGIsRejected;
 5990                 [Description (
 5991                   "The number of PLOGO frames sent where the response was "
 5992                   "LS_RJT."), 
 5993                  Counter
 5994                 ]
 5995              uint64 PLOGOsRejected;
 5996           	[Description (
 5997           	  "Method to reset the Port event counters. The method " 
 5998           	  "takes one parameter as input - an integer indicating which "
 5999           	  "counter to reset. For this input parameter, 0 indicates all, "
 6000           	  "1 through 8 indicate a reset of the individual counters. "
 6001           	  "The method returns 0 if successful, 1 if not supported, and " 
 6002           	  "any other value if an error occurred. A method is specified "
 6003           	  "so that the Device's instrumentation, which tabulates "
 6004           	  "the errors and warnings, can also reset its internal "
 6005           	  "processing and counters.\n"
 6006                   "In a subclass, the set of possible return codes could be "
 6007 karl  1.1         "specified, using a ValueMap qualifier on the method. The "
 6008                   "strings to which the ValueMap contents are 'translated' "
 6009                   "may also be specified in the subclass as a Values "
 6010                   "array qualifier.")
 6011           	]
 6012              uint32 ResetCounter ([IN, Values {"All", "PLOGIsReceived", 
 6013               "PLOGIsSent", "EOFAbortsReceived", "EOFAbortsTransmitted", 
 6014               "PLOGOsReceived", "PLOGOsSent", "PLOGIsRejected", 
 6015               "PLOGOsRejected"}] uint16 SelectedCounter);
 6016           };
 6017           
 6018           // ===================================================================
 6019           // FibrePortOnFCAdapter
 6020           // ===================================================================
 6021              [Association, 
 6022               Description (
 6023                  "FibrePortOnFCAdapter associates a FibrePort with a FibreChannel"
 6024                  "Adapter. Cardinalities are defined as Max(1) to indicate the "
 6025                  "intent and usage of the model - that an Adapter is synonymous "
 6026                  "with its Port (connection point). Where you have a multi-Port "
 6027                  "Adapter and more than one Port may be active at a time, "
 6028 karl  1.1        "individual Adapters with individual operating data and "
 6029                  "characteristics really exist. If you have multiple connection "
 6030                  "points, but they exist only to provide multiple physical form "
 6031                  "factors (only one connection may be active at a time), then one "
 6032                  "FibreChannelAdapter and one FibrePort (the active one) exist. "
 6033                  "On the hardware side, the realizations of these entities "
 6034                  "in PhysicalElements may be as a CIM_Card (for example) with "
 6035                  "multiple CIM_PhysicalConnectors.")
 6036               ]
 6037           class CIM_FibrePortOnFCAdapter : CIM_PortOnDevice
 6038           {
 6039                 [Override ("Antecedent"), 
 6040                  Max (1), 
 6041                  Description ("The FibreChannelAdapter that includes the Port.")
 6042                 ]
 6043              CIM_FibreChannelAdapter REF Antecedent;
 6044                 [Override ("Dependent"), 
 6045                  Max (1), 
 6046                  Description ("The FibrePort on the Adapter.")
 6047                 ]
 6048              CIM_FibrePort REF Dependent;
 6049 karl  1.1 };
 6050           
 6051           // ==================================================================
 6052           // FibrePortActiveLogin
 6053           // ==================================================================
 6054              [Association, 
 6055               Description (
 6056                  "FibrePortActiveLogin indicates that two FibrePorts are "
 6057                  "connected via a login and have negotiated their Class Of "
 6058                  "Service, frame size and other link characteristics, as "
 6059                  "specified by an instance of this class.\n"
 6060                  "The class' key is composed of the login originator's and "
 6061                  "responder's keys plus the Class Of Service. This combination "
 6062                  "is unique and prevents subclassing FibrePortActiveLogin "
 6063                  "from its reasonable superclass, DeviceConnection.")
 6064              ]
 6065           class CIM_FibrePortActiveLogin 
 6066           {
 6067                 [Key, Description ("The originator of the login.") ]
 6068              CIM_FibrePort REF LoginOriginator;
 6069                 [Key, Description ("The responder to the login.") ]
 6070 karl  1.1    CIM_FibrePort REF LoginResponder;
 6071                 [Key, 
 6072                  Description (
 6073                   "The Fibre Channel Class of Service that is currently running "
 6074                   "between the Ports. Since two Ports can be simultaneously "
 6075                   "connected at different Classes of Service, this property had "
 6076                   "to be part of the object's key and therefore, an instance's "
 6077                   "identity."), 
 6078                  Values {"Unknown", "1", "2", "3", "4", "6", "F"}, 
 6079                  ModelCorrespondence {"CIM_FibreChannelAdapter.SupportedCOS"},
 6080           	   MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.5"} 
 6081                 ]
 6082              uint16 NegotiatedCOS;
 6083                 [Description (
 6084                   "The Fibre Channel frame size, in bytes, that is currently "
 6085                   "negotiated between the two Ports."), 
 6086                  Units ("Bytes")
 6087                 ]
 6088              uint64 NegotiatedFrameSize;
 6089                 [Description (
 6090                   "The speed for communications that is currently negotiated "
 6091 karl  1.1         "between the two Ports. Speed is specified in bits per second. "
 6092                   "If this information is not available, the property should be "
 6093                   "set to 0."), 
 6094                  Units ("Bits per Second")
 6095                 ]
 6096              uint64 NegotiatedSpeed;
 6097                 [Description (
 6098                   "Acknowledgement model negotiated during Port login. For "
 6099                   "example, ACK-1 indicates that each frame should be "
 6100                   "acknowledged."), 
 6101                  Values {"Unknown", "ACK-0", "ACK-1", "ACK-N"},
 6102           	   MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.6"}
 6103                 ]
 6104              uint16 ACKModel;
 6105                 [Description (
 6106                   "The buffer-to-buffer model negotiated during Port login. "
 6107                   "Either the model defined by the FC-PH standard is used "
 6108                   "(value=1, \"Regular\"), or an \"Alternate\" model is "
 6109                   "negotiated."), 
 6110                  Values {"Unknown", "Regular", "Alternate"}
 6111                 ]
 6112 karl  1.1    uint16 BufferToBufferModel;
 6113                 [Description (
 6114                   "OriginatorBufferCredit reflects the buffer credit of the "
 6115                   "Port defined as the LoginOriginator. It is the number of "
 6116                   "frame buffers made available BY the originating Port, TO "
 6117                   "the responder Port. Buffer credits are used in point to "
 6118                   "point connections, when an NL-Local Port is logged into "
 6119                   "another NL-Local Port, and when Nx Ports are logged into "
 6120                   "Fx Ports. In other scenarios, this value is undefined."),
 6121           		MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.3"} 
 6122                 ]
 6123              uint64 OriginatorBufferCredit;
 6124                 [Description (
 6125                   "ResponderBufferCredit reflects the buffer credit of the "
 6126                   "Port defined as the LoginResponder. It is the number of "
 6127                   "frame buffers made available BY the responder Port, TO "
 6128                   "the originating Port. Buffer credits are used in point to "
 6129                   "point connections, when an NL-Local Port is logged into "
 6130                   "another NL-Local Port, and when Nx Ports are logged into "
 6131                   "Fx Ports. In other scenarios, this value is undefined."),
 6132           		MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.3"} 
 6133 karl  1.1       ]
 6134              uint64 ResponderBufferCredit;
 6135                 [Description (
 6136                   "OriginatorEndCredit reflects the end credit of the Port "
 6137                   "defined as the LoginOriginator. It is the number of frame "
 6138                   "buffers made available BY the originating Port, TO the "
 6139                   "responder Port. End credits are used in point to point "
 6140                   "connections, when an NL-Local Port is logged into another "
 6141                   "NL-Local Port, and when Nx Ports are logged into remote "
 6142                   "Nx Ports. In other scenarios, this value is undefined."),
 6143           		MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.2"} 
 6144                 ]
 6145              uint64 OriginatorEndCredit;
 6146                 [Description (
 6147                   "ResponderEndCredit reflects the end credit of the Port "
 6148                   "defined as the LoginResponder. It is the number of frame "
 6149                   "buffers made available BY the responder Port, TO the "
 6150                   "originating Port. End credits are used in point to point "
 6151                   "connections, when an NL-Local Port is logged into another "
 6152                   "NL-Local Port, and when Nx Ports are logged into remote "
 6153                   "Nx Ports. In other scenarios, this value is undefined."),
 6154 karl  1.1 		MappingStrings {"MIF.DMTF|Fibre Channel Bus Port Extensions|001.2"} 
 6155                 ]
 6156              uint64 ResponderEndCredit;
 6157           };
 6158           
 6159           // ==================================================================
 6160           // FibreProtocolService 
 6161           // ==================================================================
 6162              [Description (
 6163                  "FibreProtocolService abstracts and allows the management of "
 6164                  "the Alias, Management, Time, Security, Directory (Naming) and "
 6165                  "other services and functions available in a Fibre Channel "
 6166                  "network. This class will be further defined in a later "
 6167                  "release of CIM.")
 6168              ]
 6169           class CIM_FibreProtocolService : CIM_Service
 6170           {
 6171           };
 6172           
 6173           // ===================================================================
 6174           // NetworkAdapterRedundancyComponent
 6175 karl  1.1 // ===================================================================
 6176              [Association, 
 6177               Description (
 6178                  "CIM_NetworkAdapterRedundancyComponent indicates the role that "
 6179                  "a NetworkAdapter plays in a ExtraCapacityGroup, providing "
 6180                  "load balancing.")
 6181              ]
 6182           class CIM_NetworkAdapterRedundancyComponent : CIM_RedundancyComponent
 6183           {
 6184                 [Override("GroupComponent"), 
 6185                  Description (
 6186                   "The RedundancyGroup representing a set of load balanced "
 6187                   "NetworkAdapters.")
 6188                 ]
 6189              CIM_ExtraCapacityGroup REF GroupComponent;
 6190                 [Override("PartComponent"), 
 6191                  Description (
 6192                   "The Network Adapter(s) belonging to the RedundancyGroup.")
 6193                 ]
 6194              CIM_NetworkAdapter REF PartComponent;
 6195                 [Description (
 6196 karl  1.1         "Indicates the scope of load balancing for the NetworkAdapters "
 6197                   "involved in the RedundancyGroup. Load balancing may be "
 6198                   "restricted to transmitting data only (value=1), "
 6199                   "receiving data only (value=2), or used for both transmit "
 6200                   "and receive (value=3)."), 
 6201                  Values {"Unknown", "Load Balancing - Transmit Only",
 6202                        "Load Balancing - Receive Only", "Full Load Balancing"}
 6203                 ]
 6204              uint16 ScopeOfBalancing;
 6205                 [Description (
 6206                   "Boolean indicating whether the Network Adapter is an original "
 6207                   "primary adapter (value=1), a preferred primary adapter (2), "
 6208                   "or both (3). Values of \"Unknown\" and \"Not Applicable\" may "
 6209                   "also be specified."),
 6210                  Values {"Unknown", "Original Primary", "Preferred Primary", 
 6211                        "Both", "Not Applicable"}
 6212                 ]
 6213              uint16 PrimaryAdapter;
 6214           };
 6215           
 6216           // ===================================================================
 6217 karl  1.1 // NetworkVirtualAdapter
 6218           // ===================================================================
 6219              [Association, 
 6220               Description (
 6221                  "NetworkVirtualAdapter describes that an instance of Network"
 6222                  "Adapter is actually the result of several Adapters "
 6223                  "participating in a load balanced RedundancyGroup.")
 6224              ]
 6225           class CIM_NetworkVirtualAdapter : CIM_LogicalIdentity
 6226           {
 6227                 [Override ("SystemElement"), 
 6228                  Description ("The 'virtual' NetworkAdapter.")
 6229                 ]
 6230              CIM_NetworkAdapter REF SystemElement;
 6231                 [Override ("SameElement"), 
 6232                  Description (
 6233                   "The ExtraCapacity RedundancyGroup that describes the load "
 6234                   "balancing. The result of the load balancing is the 'virtual' "
 6235                   "Adapter.") 
 6236                 ]
 6237              CIM_ExtraCapacityGroup REF SameElement;
 6238 karl  1.1 };
 6239            
 6240           // ===================================================================
 6241           // Controller
 6242           // ===================================================================
 6243              [Abstract,
 6244               Description (
 6245                  "Controller is a superclass for grouping the miscellaneous "
 6246                  "control-related Devices that exist. Examples of Controllers "
 6247                  "are SCSIControllers, USBControllers, SerialControllers, ... "
 6248                  "The Controller class is an abstraction for Devices with a "
 6249                  "single protocol stack, which exist primarily for communication "
 6250                  "to, and control or reset of downstream (ControlledBy) Devices.")
 6251              ] 
 6252           class CIM_Controller : CIM_LogicalDevice
 6253           {
 6254                 [Description ("Time of last reset of the Controller.")]
 6255              datetime TimeOfLastReset;
 6256                 [Description (
 6257           	  "The protocol used by the Controller to access 'controlled' "
 6258           	  "Devices."),
 6259 karl  1.1 	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 6260           	       "11", "12", "13", "14", "15", "16", "17", "18", "19",
 6261           	       "20", "21", "22", "23", "24", "25", "26", "27", "28",
 6262           	       "29", "30", "31", "32", "33", "34", "35", "36", "37",
 6263           	       "38", "39", "40", "41", "42", "43", "44", "45", "46", 
 6264                        "47"},
 6265                  Values {"Other", "Unknown", "EISA", "ISA", "PCI", "ATA/ATAPI",
 6266           	       "Flexible Diskette", "1496", "SCSI Parallel Interface",
 6267           	       "SCSI Fibre Channel Protocol", "SCSI Serial Bus Protocol",
 6268           	       "SCSI Serial Bus Protocol-2 (1394)", 
 6269           	       "SCSI Serial Storage Architecture", "VESA", "PCMCIA",        
 6270           	       "Universal Serial Bus", "Parallel Protocol", "ESCON",
 6271           	       "Diagnostic", "I2C", "Power", "HIPPI", "MultiBus", "VME",
 6272           	       "IPI", "IEEE-488", "RS232", "IEEE 802.3 10BASE5",
 6273           	       "IEEE 802.3 10BASE2", "IEEE 802.3 1BASE5",
 6274           	       "IEEE 802.3 10BROAD36", "IEEE 802.3 100BASEVG",
 6275           	       "IEEE 802.5 Token-Ring", "ANSI X3T9.5 FDDI", "MCA", 
 6276           	       "ESDI", "IDE", "CMD", "ST506", "DSSI", "QIC2", 
 6277           	       "Enhanced ATA/IDE", "AGP", "TWIRP (two-way infrared)", 
 6278                        "FIR (fast infrared)", "SIR (serial infrared)", 
 6279                        "IrBus"}, 
 6280 karl  1.1        MappingStrings {"MIF.DMTF|Bus Port|003",
 6281           	       "MIF.DMTF|Disks|003.3"},
 6282           	   ModelCorrespondence {"CIM_Controller.ProtocolDescription"}
 6283           
 6284                 ]
 6285              uint16 ProtocolSupported;
 6286                 [Description (
 6287           	  "Maximum number of directly addressable entities supported "
 6288           	  "by this Controller.  A value of 0 should be used if the "
 6289           	  "number is unknown or unlimited."),
 6290                  MappingStrings {"MIF.DMTF|Bus Port|003"}
 6291                 ]
 6292              uint32 MaxNumberControlled;	
 6293           	   [Description (
 6294           		"A free form string providing more information related "
 6295           		"to the ProtocolSupported by the Controller."),
 6296           		ModelCorrespondence {"CIM_Controller.ProtocolSupported"},
 6297           		MappingStrings {"MIF.DMTF|Bus Port|003"}
 6298           		]
 6299           	string ProtocolDescription;
 6300           };
 6301 karl  1.1 
 6302           
 6303           // ===================================================================
 6304           // SSAController 
 6305           // ===================================================================
 6306           	[Description (
 6307           	"Capabilities and management of an SSAController (Serial Storage Architecture).")
 6308           	]
 6309           class CIM_SSAController : CIM_Controller
 6310           {
 6311           };
 6312           
 6313           // ===================================================================
 6314           // ControlledBy
 6315           // ===================================================================
 6316              [Association,
 6317               Description (
 6318                  "The ControlledBy relationship indicates which Devices are "
 6319                  "commanded by or accessed through the Controller LogicalDevice.")
 6320              ] 
 6321           class CIM_ControlledBy : CIM_DeviceConnection
 6322 karl  1.1 {
 6323                 [Override ("Antecedent"),
 6324                  Description ("The Controller.")
 6325                 ]
 6326              CIM_Controller REF Antecedent;
 6327                 [Override ("Dependent"),
 6328                  Description ("The controlled Device.")
 6329                 ]
 6330              CIM_LogicalDevice REF Dependent;
 6331                 [Description (
 6332           	  "The State property indicates whether the Controller is "
 6333           	  "actively commanding or accessing the Device (value=1) or "
 6334           	  "not (value=2).  Also, the value, \"Unknown\" (0), can be "
 6335           	  "defined. This information is necessary when a LogicalDevice "
 6336           	  "can be commanded by, or accessed through, multiple "
 6337           	  "Controllers."),
 6338                  Values {"Unknown", "Active", "Inactive"}
 6339                 ]
 6340              uint16 AccessState;
 6341                 [Description (
 6342                   "The time that the downstream Device was last reset by "
 6343 karl  1.1         "the Controller.")
 6344                 ]
 6345              datetime TimeOfDeviceReset;
 6346                 [Description (
 6347                   "Number of hard resets issued by the Controller. A hard reset "
 6348                   "returns the Device to its initialization or 'boot-up' state. "
 6349                   "All internal Device state information and data are lost."), 
 6350                  Counter
 6351                 ]
 6352              uint32 NumberOfHardResets;
 6353                 [Description (
 6354                   "Number of soft resets issued by the Controller. A soft "
 6355                   "reset does not completely clear current Device state and/or "
 6356                   "data. Exact semantics are dependent on the Device, and on "
 6357                   "the protocols and mechanisms used to communicate to it."), 
 6358                  Counter
 6359                 ]
 6360              uint32 NumberOfSoftResets;
 6361           };
 6362           
 6363           // ===================================================================
 6364 karl  1.1 // ParallelController
 6365           // ===================================================================
 6366              [Description (
 6367                  "Capabilities and management of the ParallelController.")
 6368              ]
 6369           class CIM_ParallelController : CIM_Controller
 6370           {
 6371                 [Description (
 6372           	  "Set to true if the ParallelController supports DMA."),
 6373                  MappingStrings {"MIF.DMTF|Parallel Ports|003.7"}
 6374                 ]	    
 6375              boolean DMASupport;
 6376                 [Description (
 6377           	  "An integer enumeration indicating the capabilities of the "
 6378           	  "ParallelController."),
 6379           	 ArrayType ("Indexed"),
 6380                  Values {"Unknown", "Other", "XT/AT Compatible", 
 6381           	       "PS/2 Compatible", "ECP", "EPP", "PC-98", 
 6382           	       "PC-98-Hireso", "PC-H98"},
 6383                  MappingStrings {"MIF.DMTF|Parallel Ports|003.8"},
 6384           	 ModelCorrespondence {
 6385 karl  1.1 		 "CIM_ParallelController.CapabilityDescriptions"}
 6386                 ]
 6387              uint16 Capabilities[];
 6388                 [Description (
 6389           	  "An array of free-form strings providing more detailed "
 6390           	  "explanations for any of the ParallelController features "
 6391           	  "indicated in the Capabilities array. Note, each entry of "
 6392           	  "this array is related to the entry in the Capabilities "
 6393           	  "array that is located at the same index."),
 6394                  ArrayType ("Indexed"),
 6395           	 ModelCorrespondence {"CIM_ParallelController.Capabilities"}
 6396                 ]
 6397              string CapabilityDescriptions[];
 6398                 [Description (
 6399                   "An enumeration indicating the operational security for the "
 6400                   "Controller. For example, information that the Device's "
 6401                   "external interface is locked out (value=4) or \"Boot "
 6402                   "Bypass\" (value=6) can be described using this property."), 
 6403                  ValueMap {"1", "2", "3", "4", "5", "6"}, 
 6404                  Values {"Other", "Unknown", "None", 
 6405                        "External Interface Locked Out", 
 6406 karl  1.1              "External Interface Enabled", "Boot Bypass"}, 
 6407                  MappingStrings {"MIF.DMTF|Parallel Ports|003.10"}
 6408                 ]
 6409              uint16 Security;
 6410           };
 6411           
 6412           // ===================================================================
 6413           // SerialController
 6414           // ===================================================================
 6415              [Description (
 6416           	 "Capabilities and management of the SerialController.")
 6417              ]
 6418           class CIM_SerialController : CIM_Controller
 6419           {
 6420                 [Description (
 6421           	  "The Capabilities property defines chip level compatibility "
 6422           	  "for the SerialController.  Therefore, this property describes "
 6423           	  "the buffering and other capabilities of the SerialController, "
 6424           	  "that may be inherent in the chip hardware. The property is "
 6425           	  "an enumerated integer."),
 6426           	 ArrayType ("Indexed"),
 6427 karl  1.1 	 ValueMap {"1", "2", "3", "4", "5", "6", "160", "161"},      
 6428           	 Values {"Other", "Unknown", "XT/AT Compatible", 
 6429           	       "16450 Compatible", "16550 Compatible", 
 6430           	       "16550A Compatible", "8251 Compatible",
 6431           	       "8251FIFO Compatible"},
 6432           	 MappingStrings {"MIF.DMTF|Serial Ports|004.7"},
 6433           	 ModelCorrespondence {
 6434           		 "CIM_SerialController.CapabilityDescriptions"}
 6435                 ]
 6436              uint16 Capabilities[];
 6437                 [Description (
 6438           	  "An array of free-form strings providing more detailed "
 6439           	  "explanations for any of the SerialController features "
 6440           	  "indicated in the Capabilities array. Note, each entry of "
 6441           	  "this array is related to the entry in the Capabilities "
 6442           	  "array that is located at the same index."),
 6443                  ArrayType ("Indexed"),
 6444           	 ModelCorrespondence {"CIM_SerialController.Capabilities"}
 6445                 ]
 6446              string CapabilityDescriptions[];
 6447                 [Description (
 6448 karl  1.1 	  "Maximum baud rate in Bits per Second supported by the "
 6449           	  "SerialController."),
 6450                  Units ("Bits per Second"),
 6451                  MappingStrings {"MIF.DMTF|Serial Ports|004.6"}
 6452                 ]
 6453              uint32 MaxBaudRate; 
 6454                 [Description (
 6455                   "An enumeration indicating the operational security for the "
 6456                   "Controller. For example, information that the Device's "
 6457                   "external interface is locked out (value=4) or \"Boot "
 6458                   "Bypass\" (value=6) can be described using this property."), 
 6459                  ValueMap {"1", "2", "3", "4", "5", "6"}, 
 6460                  Values {"Other", "Unknown", "None", 
 6461                        "External Interface Locked Out", 
 6462                        "External Interface Enabled", "Boot Bypass"}, 
 6463                  MappingStrings {"MIF.DMTF|Serial Ports|004.9"}
 6464                 ]
 6465              uint16 Security;
 6466           };
 6467           
 6468           // ===================================================================
 6469 karl  1.1 // SerialInterface
 6470           // ===================================================================
 6471              [Association,
 6472               Description (
 6473                  "SerialInterface is a ControlledBy relationship indicating "
 6474                  "which Devices are accessed through the SerialController and "
 6475                  "the characteristics of this access.")
 6476              ] 
 6477           class CIM_SerialInterface : CIM_ControlledBy
 6478           {
 6479                 [Override ("Antecedent"),
 6480                  Description ("The SerialController.")  
 6481                 ]
 6482              CIM_SerialController REF Antecedent;  
 6483                 [Override ("NegotiatedDataWidth"),
 6484                  Description (
 6485           	  "For the SerialInterface, NegotiatedDataWidth is the number "
 6486           	  "of data bits to be transmitted, without stop bits or parity."),
 6487                  Units ("Bits")
 6488                 ]
 6489              uint32 NegotiatedDataWidth;
 6490 karl  1.1       [Description ("Number of stop bits to be transmitted."),
 6491                  Units ("Bits")
 6492                 ]	    
 6493              uint16 NumberOfStopBits;
 6494                 [Description (
 6495           	  "Information on the parity setting for transmitted data. "
 6496           	  "No parity (value=1), even (2) or odd (3) can be specified."),
 6497                  Values {"Unknown", "None", "Even", "Odd"}
 6498                 ]
 6499              uint16 ParityInfo;
 6500                 [Description (
 6501           	  "An integer enumeration indicating the flow control "
 6502           	  "(Xon-Xoff and/or RTS/CTS) for transmitted data."),
 6503                  Values {"Unknown", "Not Supported", "None", "XonXoff", 
 6504           	       "RTS/CTS", "Both XonXoff and RTS/CTS"}
 6505                 ]
 6506              uint16 FlowControlInfo;
 6507           };
 6508           
 6509           // ===================================================================
 6510           // SCSIController
 6511 karl  1.1 // ===================================================================
 6512              [Description (
 6513           	"Capabilities and management of the SCSIController.")
 6514              ] 
 6515           class CIM_SCSIController : CIM_Controller  
 6516           {
 6517                 [Description (
 6518           	  "An integer enumeration indicating whether or not the "
 6519           	  "SCSIController provides redundancy or protection against "
 6520           	  "device failures."),
 6521           	 ValueMap {"1", "2", "3", "4", "5", "6"},
 6522                  Values {"Other", "Unknown", "Unprotected", "Protected", 
 6523           	       "Protected through SCC (SCSI-3 Controller Command)",
 6524           	       "Protected through SCC-2 (SCSI-3 Controller Command)"},
 6525                  MappingStrings {"MIF.DMTF|Storage Controller|001.3"}
 6526                 ]
 6527              uint16 ProtectionManagement;
 6528                 [Description (
 6529           	 "Maximum data width (in bits) supported by the SCSI"
 6530           	 "Controller."),
 6531                  Units ("Bits"), 
 6532 karl  1.1        MappingStrings {"MIF.DMTF|Bus Port|003"}
 6533                 ]
 6534              uint32 MaxDataWidth;
 6535                 [Description (
 6536           	  "Maximum transfer rate (in Bits per Second) supported by the "
 6537           	  "SCSIController."),
 6538                  Units ("Bits per Second"), 
 6539                  MappingStrings {"MIF.DMTF|Bus Port|003"}
 6540                 ]
 6541              uint64 MaxTransferRate;
 6542                 [Description (
 6543           	  "Number of SCSIController timeouts that have occurred since "
 6544           	  "the TimeOfLastReset."), 
 6545                  Counter
 6546                 ]	 
 6547              uint32 ControllerTimeouts;
 6548                 [Description (
 6549                   "Signal capabilities that can be supported by the SCSI"
 6550                   "Controller. For example, the Controller may support "
 6551                   "\"Single Ended\" and \"Differential\". In this case, the "
 6552                   "values 3 and 4 would be written to the Signal"
 6553 karl  1.1         "Capabilities array."), 
 6554                  ValueMap {"1", "2", "3", "4", "5", "6"}, 
 6555                  Values {"Other", "Unknown", "Single Ended", "Differential", 
 6556                        "Low Voltage Differential", "Optical"}, 
 6557                  ModelCorrespondence {"CIM_SCSIInterface.SCSISignal"}
 6558                 ]
 6559              uint16 SignalCapabilities[];
 6560           };
 6561           
 6562           // ===================================================================
 6563           // SCSIInterface
 6564           // ===================================================================
 6565              [Association,
 6566               Description (
 6567                  "SCSIInterface is a ControlledBy relationship indicating "
 6568                  "which Devices are accessed through a SCSIController and "
 6569                  "the characteristics of this access.")
 6570              ] 
 6571           class CIM_SCSIInterface : CIM_ControlledBy
 6572           {
 6573                 [Override ("Antecedent"),
 6574 karl  1.1        Description ("The SCSIController.")
 6575                 ]
 6576              CIM_SCSIController REF Antecedent;  
 6577                 [Description (
 6578                   "Number of SCSI timeouts that have occurred since last hard "
 6579                   "or soft reset related to the controlled Device. The time of "
 6580                   "last reset is indicated in the TimeOfDeviceReset property, "
 6581                   "inherited from the ControlledBy association."), 
 6582                  Counter
 6583                 ]
 6584              uint32 SCSITimeouts;
 6585                 [Description (
 6586                   "Number of SCSI retries that have occurred since last hard "
 6587                   "or soft reset related to the controlled Device. The time of "
 6588                   "last reset is indicated in the TimeOfDeviceReset property, "
 6589                   "inherited from the ControlledBy association."), 
 6590                  Counter,
 6591           	   MappingStrings {"MIF.DMTF|Mass Storage Statistics|001.18"} 
 6592                 ]
 6593              uint32 SCSIRetries;
 6594           	[Description ("The SCSI Initiator ID."), 
 6595 karl  1.1        MappingStrings {"MIF.DMTF|Bus Port|003"}
 6596                 ]
 6597              uint32 InitiatorId;
 6598                 [Description ("The SCSI Target ID."), 
 6599                  MappingStrings {"MIF.DMTF|Bus Port|003"}
 6600                 ]
 6601              uint32 TargetId;
 6602                 [Description ("The SCSI Target LUN."), 
 6603                  MappingStrings {"MIF.DMTF|Storage Devices|001.4"}
 6604                 ]
 6605              uint64 TargetLUN;
 6606                 [Description (
 6607                   "SCSIReservation indicates the type of SCSI reservation "
 6608                   "that currently exists between the source and destination."), 
 6609                  Values {"Unknown", "None", "Simple", "Persistent"}
 6610                 ]
 6611              uint16 SCSIReservation;
 6612                 [Description (
 6613                   "The SCSI signal characteristics being used for this "
 6614                   "connection. The value listed here must also be listed in "
 6615                   "the SCSIController's SignalCapabilities field."), 
 6616 karl  1.1        ValueMap {"1", "2", "3", "4", "5", "6"}, 
 6617                  Values {"Other", "Unknown", "Single Ended", "Differential", 
 6618                        "Low Voltage Differential", "Optical"}, 
 6619                  MappingStrings {"MIF.DMTF|Bus Port|003"}, 
 6620                  ModelCorrespondence {"CIM_SCSIController.SignalCapabilities"}
 6621                 ]
 6622              uint16 SCSISignal;
 6623                 [Description (
 6624                   "Maximum number of Command Descriptor Blocks (CDBs) that "
 6625                   "can be supported by the target. This data can not be "
 6626                   "obtained under all circumstances.")
 6627                 ]
 6628              uint32 MaxQueueDepth;
 6629                 [Description (
 6630                   "The maximum number of concurrent Command Descriptor Blocks "
 6631                   "(CDBs) that the initiator will send to the target. This "
 6632                   "value should never be greater than MaxQueueDepth.")
 6633                 ]
 6634              uint32 QueueDepthLimit;
 6635           };
 6636           
 6637 karl  1.1 // ===================================================================
 6638           // VideoController
 6639           // ===================================================================
 6640              [Description (
 6641           	"Capabilities and management of the VideoController.")
 6642              ]
 6643           class CIM_VideoController : CIM_Controller  
 6644           {
 6645                 [Override ("Description"), 
 6646           // Override is used to define the MappingString qualifier 
 6647                  MappingStrings {"MIF.DMTF|Video|004.18"}
 6648                 ]
 6649              string Description;
 6650                 [Description (
 6651           	  "A free-form string describing the video processor/Controller.")
 6652                 ]	    
 6653              string VideoProcessor;
 6654                 [Description (
 6655           	  "An integer enumeration indicating the type of video memory."),
 6656           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 6657           		 "11", "12", "13"},
 6658 karl  1.1        Values {"Other", "Unknown", "VRAM", "DRAM", "SRAM", "WRAM",
 6659           	       "EDO RAM", "Burst Synchronous DRAM", 
 6660           	       "Pipelined Burst SRAM", "CDRAM", "3DRAM", "SDRAM",
 6661           	       "SGRAM"},
 6662                  MappingStrings {"MIF.DMTF|Video|004.6"}
 6663                 ]
 6664              uint16 VideoMemoryType;
 6665                 [Description (
 6666           	  "Number of video pages supported given the current resolutions "
 6667           	  "and available memory.")
 6668                 ]	 
 6669              uint32 NumberOfVideoPages;
 6670                 [Description ("Maximum amount of memory supported in bytes."),
 6671                  Units ("Bytes")
 6672                 ]
 6673              uint32 MaxMemorySupported;
 6674                 [Description (
 6675           	  "An array of integers indicating the graphics and 3D "
 6676           	  "capabilities of the VideoController."),
 6677                  Values {"Unknown", "Other", "Graphics Accelerator",
 6678           	       "3D Accelerator"},
 6679 karl  1.1 	 ModelCorrespondence {
 6680           		 "CIM_VideoController.CapabilityDescriptions"}
 6681                 ]
 6682              uint16 AcceleratorCapabilities[];
 6683           	[Description (
 6684           	  "An array of free-form strings providing more detailed "
 6685           	  "explanations for any of the video Accelerator features "
 6686           	  "indicated in the Capabilities array. Note, each entry "
 6687           	  "of this array is related to the entry in the Capabilities "
 6688           	  "array that is located at the same index."),
 6689                  ArrayType ("Indexed"),
 6690           	 ModelCorrespondence {
 6691           		 "CIM_VideoController.AcceleratorCapabilities"}
 6692                 ]
 6693              string CapabilityDescriptions[];
 6694                 [Description ("The number of bits used to display each pixel."), 
 6695                  Units ("Bits"),
 6696                  MappingStrings {"MIF.DMTF|Video|004.12"}
 6697                 ]
 6698              uint32 CurrentBitsPerPixel;
 6699                 [Description ("Current number of horizontal pixels."),
 6700 karl  1.1        Units ("Pixels"),
 6701                  MappingStrings {"MIF.DMTF|Video|004.11"}
 6702                 ]
 6703              uint32 CurrentHorizontalResolution;
 6704                 [Description ("Current number of vertical pixels."),
 6705                  Units ("Pixels"),
 6706                  MappingStrings {"MIF.DMTF|Video|004.10"}
 6707                 ]
 6708              uint32 CurrentVerticalResolution;
 6709                 [Description (
 6710           	  "Maximum refresh rate of the VideoController in Hertz."),
 6711                  Units ("Hertz"),
 6712                  MappingStrings {"MIF.DMTF|Video|004.5"}
 6713                 ]
 6714              uint32 MaxRefreshRate;
 6715                 [Description (
 6716           	  "Minimum refresh rate of the Video Controller in Hertz."),
 6717                  Units ("Hertz"),
 6718                  MappingStrings {"MIF.DMTF|Video|004.4"}
 6719                 ]
 6720              uint32 MinRefreshRate;
 6721 karl  1.1       [Description ("Current refresh rate in Hertz."),
 6722                  Units ("Hertz"),
 6723                  MappingStrings {"MIF.DMTF|Video|004.15"}
 6724                 ]
 6725              uint32 CurrentRefreshRate;
 6726                 [Description (
 6727           	  "Current scan mode. \"Interlaced\" (value=3) or "
 6728           	  "\"Non Interlaced\" (4) can be defined using this property."),
 6729           	 ValueMap {"1", "2", "3", "4"},
 6730                  Values {"Other", "Unknown", "Interlaced", "Non Interlaced"},
 6731                  MappingStrings {"MIF.DMTF|Video|004.8"}
 6732                 ]
 6733              uint16 CurrentScanMode;
 6734                 [Description (
 6735           	  "If in character mode, number of rows for this Video"
 6736           	  "Controller. Otherwise, enter 0."),
 6737                  MappingStrings {"MIF.DMTF|Video|004.13"}
 6738                 ]
 6739              uint32 CurrentNumberOfRows;
 6740                 [Description (
 6741           	  "If in character mode, number of columns for this "
 6742 karl  1.1 	  "VideoController. Otherwise, enter 0."),
 6743                  MappingStrings {"MIF.DMTF|Video|004.14"}
 6744                 ]
 6745              uint32 CurrentNumberOfColumns;
 6746                 [Description (
 6747                   "Number of colors supported at the current resolutions.") ]
 6748              uint64 CurrentNumberOfColors;
 6749           }; 
 6750           
 6751           // ===================================================================
 6752           // PCVideoController
 6753           // ===================================================================
 6754              [Description (
 6755                  "Capabilities and management of a PCVideoController, a subtype "
 6756                  "of VideoController.")
 6757              ] 
 6758           class CIM_PCVideoController : CIM_VideoController  
 6759           {
 6760                 [Description (
 6761           	  "The video architecture.  For example, VGA (value=5) or "
 6762           	  "PC-98 (160) may be specified."),
 6763 karl  1.1 	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 6764           	       "11", "12", "160"},
 6765                  Values {"Other", "Unknown", "CGA", "EGA", "VGA", "SVGA", "MDA",
 6766           	       "HGC", "MCGA", "8514A", "XGA", "Linear Frame Buffer",
 6767           	       "PC-98"},
 6768                  MappingStrings {"MIF.DMTF|Video|004.2"}
 6769                 ]
 6770              uint16 VideoArchitecture;
 6771                 [Description ("Current video mode."),
 6772                  MappingStrings {"MIF.DMTF|Video|004.3"}
 6773                 ]
 6774              uint16 VideoMode;
 6775                 [Description (
 6776           	  "Current number of color planes.  If this value is not "
 6777           	  "applicable for the current video configuration, enter 0.")
 6778                 ]
 6779              uint16 NumberOfColorPlanes;
 6780           };
 6781           
 6782           // ===================================================================
 6783           // AGPVideoController
 6784 karl  1.1 // ===================================================================
 6785              [Description (
 6786           	"Capabilities and management of an AGPVideoController.")
 6787              ]
 6788           class CIM_AGPVideoController: CIM_VideoController
 6789           {
 6790                 [Description (
 6791                   "Capabilities of the AGP Graphics Controller. For example, "
 6792                   "the Device may support multiple monitors, PCI Mastering and "
 6793                   "large memory addresses. In this case, the values 3, 4 and 6 "
 6794                   "would be written to the Capabilities array."), 
 6795                  ArrayType("Indexed"), 
 6796                  Values { "Unknown", "Other", "PCI Fast Write", 
 6797                        "MultiMonitor Support", "PCI Mastering", 
 6798                        "Second Monochrome Adapter Support", 
 6799                        "Large Memory Address Support"}, 
 6800                  ModelCorrespondence{
 6801                        "CIM_AGPVideoController.CapabilityDescriptions"}
 6802                 ]
 6803              uint16 Capabilities[];
 6804                 [Description (
 6805 karl  1.1         "An array of free form strings providing more detailed "
 6806                   "explanations for any of the entries in the Capabilities "
 6807                   "array. Note, each entry of this array is related to the "
 6808                   "entry in the Capabilities array that is located at the "
 6809                   "same index."), 
 6810                  ArrayType("Indexed"), 
 6811                  ModelCorrespondence{"CIM_AGPVideoController.Capabilities"}
 6812                 ]
 6813              string CapabilityDescriptions[ ];
 6814                 [Description ("Size of the non-local video memory in KB."), 
 6815                  Units ("KiloBytes")
 6816                 ]
 6817              uint32 NonlocalVideoMemorySize;
 6818                 [Description (
 6819                   "Width of the internal bus in the graphics Controller, in bits."), 
 6820                  Units ("Bits")
 6821                 ]
 6822              uint32 LocalBusWidth;
 6823                 [Description (
 6824                   "An integer enumeration indicating the usage model of the "
 6825                   "graphics Controller. Usage model indicates how the Controller "
 6826 karl  1.1         "does manipulations of graphics surfaces, textures, etc. in "
 6827                   "memory. DMA indicates that the graphics Controller brings "
 6828                   "structures from the system memory to its local memory to "
 6829                   "perform needed manipulations or renderings. Execute specifies "
 6830                   "that the graphics Controller can directly access a specified "
 6831                   "region in main memory (called the graphics aperture) using GART "
 6832                   "- Graphics Aperture Remapping Table. It then performs "
 6833                   "manipulations in that range as if that whole graphics aperture "
 6834                   "were part of its local memory. A value of \"Both\" DMA and "
 6835                   "Execute models may also be specified."), 
 6836                  Values {"Unknown", "Other", "Execute", "DMA", "Both"}
 6837                 ]
 6838              uint16 UsageModel;
 6839                 [Description (
 6840                   "An integer enumeration indicating the data transfer rate of "
 6841                   "the graphics Controller."), 
 6842                  Values {"Unknown", "Other", "1X", "2X", "4X"}
 6843                 ]
 6844              uint16 DataTransferRate;
 6845                 [Description (
 6846                   "An integer enumeration indicating the addressing mode of the "
 6847 karl  1.1         "graphics Controller."), 
 6848                  Values {"Unknown", "Other", "Sideband", "Pipeline"}
 6849                 ]
 6850              uint16 AddressingMode;
 6851                 [Description (
 6852                   "The maximum number of AGP Transaction requests that the master "
 6853                   "(AGP Graphics Controller) is allowed to enqueue into the target.")
 6854                 ]
 6855              uint32 MaximumAGPCommandQueuePath;
 6856                 [Description (
 6857                   "The number of AGP Transaction that the core logic (chipset) can "
 6858                   "accept into its transaction request queue from the Controller.")
 6859                 ]
 6860              uint32 MaxNumberOfPipelinedAGPTransactions;
 6861                 [Description ("Size of the graphics aperture in KB."), 
 6862                  Units ("KiloBytes")
 6863                 ]
 6864              uint32 GraphicsApertureSize;
 6865                 [Description (
 6866                   "A string containing the AGP specification version to which this "
 6867                   "graphics Controller conforms.")
 6868 karl  1.1       ]
 6869              string AGPSpecificationVersionConformance;
 6870           };
 6871           
 6872           // ===================================================================
 6873           // AGPSoftwareFeature
 6874           // ===================================================================
 6875              [Description (
 6876                  "AGPSoftwareFeature adds two attributes to SoftwareFeature "
 6877                  "to represent the capabilities of an AGP device driver. An "
 6878                  "instance of this class would be associated with the "
 6879                  "Driver's SoftwareElement using the SoftwareFeatureSoftware"
 6880                  "Elements relationship. The driver's SoftwareElement is "
 6881                  "associated with the AGPVideoController via the Device"
 6882                  "Software relationship.")
 6883              ]
 6884           class CIM_AGPSoftwareFeature : CIM_SoftwareFeature
 6885           {
 6886                 [Description (
 6887                   "An array of integers indicating various capabilities and "
 6888                   "characteristics of the AGPVideoController."), 
 6889 karl  1.1        ArrayType ("Indexed"), 
 6890                  Values {"Unknown", "Other", "OS support", 
 6891                        "Hardware Acceleration", "Hardware Blit", 
 6892                        "OpenGL Support", "Cache Coherency"}, 
 6893                  ModelCorrespondence {
 6894                        "CIM_AGPSoftwareFeature.CharacteristicDescriptions"}
 6895                 ]
 6896              uint16 Characteristics[];
 6897                 [Description (
 6898                   "An array of free-form strings providing more detailed "
 6899                   "explanations for any of the features indicated in the "
 6900                   "Characteristics array. Each entry in this array is "
 6901                   "related to the Characteristics array entry located at "
 6902                   "the same index."), 
 6903                 ArrayType ("Indexed"), 
 6904                 ModelCorrespondence {"CIM_AGPSoftwareFeature.Characteristics"}
 6905                 ]
 6906              string CharacteristicDescriptions[];
 6907           };
 6908           
 6909           // ===================================================================
 6910 karl  1.1 // VideoControllerResolution
 6911           // ===================================================================
 6912              [Description (
 6913                  "VideoControllerResolution describes the various video modes "
 6914                  "that a VideoController can support. Video modes are defined by "
 6915                  "the possible horizontal and vertical resolutions, refresh "
 6916                  "rate, scan mode and number of colors settings supported by a "
 6917                  "Controller. The actual resolutions, etc. that are in use, are "
 6918                  "the values specified in the VideoController object.")
 6919              ]
 6920           class CIM_VideoControllerResolution : CIM_Setting
 6921           {
 6922                 [Override ("SettingID"), 
 6923                  Key, MaxLen (256), 
 6924                  Description (
 6925                   "The inherited SettingID serves as part of the key for a "
 6926                   "VideoControllerResolution instance.")
 6927                 ]
 6928              string SettingID;
 6929                 [Description ("Controller's horizontal resolution in Pixels."), 
 6930                  Units ("Pixels"), 
 6931 karl  1.1        ModelCorrespondence {
 6932                        "CIM_VideoController.CurrentHorizontalResolution"}, 
 6933                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.2"}
 6934                 ]
 6935              uint32 HorizontalResolution;
 6936                 [Description ("Controller's vertical resolution in Pixels."), 
 6937                  Units ("Pixels"), 
 6938                  ModelCorrespondence {
 6939                        "CIM_VideoController.CurrentVerticalResolution"}, 
 6940                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.3"}
 6941                 ]
 6942              uint32 VerticalResolution;
 6943                 [Description (
 6944                   "Refresh rate in Hertz. If a range of rates is supported, use "
 6945                   "the MinRefreshRate and MaxRefreshRate properties, and set "
 6946                   "RefreshRate (this property) to 0."), 
 6947                  Units ("Hertz"), 
 6948                  ModelCorrespondence {"CIM_VideoController.CurrentRefreshRate"}, 
 6949                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.4"}
 6950                 ]
 6951              uint32 RefreshRate;
 6952 karl  1.1       [Description (
 6953                   "Minimum refresh rate in Hertz, when a range of rates is "
 6954                   "supported at the specified resolutions."), 
 6955                  Units ("Hertz"), 
 6956                  ModelCorrespondence {"CIM_VideoController.MinRefreshRate"}, 
 6957                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.6"}
 6958                 ]
 6959              uint32 MinRefreshRate;
 6960                 [Description (
 6961                   "Maximum refresh rate in Hertz, when a range of rates is "
 6962                   "supported at the specified resolutions."), 
 6963                  Units ("Hertz"), 
 6964                  ModelCorrespondence {"CIM_VideoController.MaxRefreshRate"}, 
 6965                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.7"}
 6966                 ]
 6967              uint32 MaxRefreshRate;
 6968                 [Description (
 6969                   "Integer indicating whether the Controller operates in "
 6970                   "interlaced (value=5) or non-interlaced (4) mode."), 
 6971                  ValueMap {"1", "2", "3", "4", "5"}, 
 6972                  Values {"Other", "Unknown", "Not Supported", 
 6973 karl  1.1              "Non-Interlaced Operation", "Interlaced Operation"}, 
 6974                  ModelCorrespondence {"CIM_VideoController.CurrentScanMode"}, 
 6975                  MappingStrings {"MIF.DMTF|Monitor Resolutions|002.5"}
 6976                 ]
 6977              uint16 ScanMode;
 6978                 [Description (
 6979                   "Number of colors supported at the current resolutions."), 
 6980                  ModelCorrespondence {
 6981                        "CIM_VideoController.CurrentNumberOfColors"}
 6982                 ]
 6983              uint64 NumberOfColors;
 6984           };
 6985           
 6986           // ===================================================================
 6987           // VideoSetting
 6988           // ===================================================================
 6989              [Association, Description (
 6990                  "VideoSetting associates the VideoControllerResolution Setting "
 6991                  "with the Controller(s) to which it applies.")
 6992              ]
 6993           class CIM_VideoSetting : CIM_ElementSetting
 6994 karl  1.1 {
 6995                 [Override ("Element"), 
 6996                  Description ("The VideoController.")
 6997                 ]
 6998              CIM_VideoController REF Element;
 6999                 [Override ("Setting"), 
 7000                  Description (
 7001                   "The resolutions, refresh rates, scan mode and number of colors "
 7002                   "that can be set for the Controller.")
 7003                 ]
 7004              CIM_VideoControllerResolution REF Setting;
 7005           };
 7006           
 7007           // ===================================================================
 7008           // PCIController
 7009           // ===================================================================
 7010              [Description (
 7011                  "PCIController is a superclass for the PCIBridge and PCIDevice "
 7012                  "classes. These classes model adapters and bridges on a PCI "
 7013                  "bus. The properties in PCIController and its subclasses are "
 7014                  "defined in the various PCI Specifications published by the "
 7015 karl  1.1        "PCI SIG.")
 7016              ]
 7017           class CIM_PCIController : CIM_Controller
 7018           {
 7019                 [Description (
 7020                   "Current contents of the register that provides basic "
 7021                   "control over the device's ability to respond "
 7022                   "to, and/or perform PCI accesses.")
 7023                 ]
 7024              uint16 CommandRegister;
 7025                 [Description (
 7026                   "An array of integers indicating controller capabilities. "
 7027                   "Information such as \"Supports 66MHz\" (value=2) is "
 7028                   "specified in this property. The data in the Capabilities array "
 7029                   "is gathered from the PCI Status Register and the PCI "
 7030                   "Capabilities List as defined in the PCI Specification."),
 7031                  ArrayType ("Indexed"), 
 7032                  Values {"Unknown", "Other", "Supports 66MHz", 
 7033                        "Supports User Definable Features", 
 7034                        "Supports Fast Back-to-Back Transactions", 
 7035                        "PCI-X Capable", "PCI Power Management Supported", 
 7036 karl  1.1              "Message Signaled Interrupts Supported", 
 7037                        "Parity Error Recovery Capable", 
 7038                        "AGP Supported", "Vital Product Data Supported", 
 7039                        "Provides Slot Identification", "Hot Swap Supported"}, 
 7040                  ModelCorrespondence {"CIM_PCIController.CapabilityDescriptions"}
 7041                 ]
 7042              uint16 Capabilities[];
 7043                 [Description (
 7044                   "An array of free-form strings providing more detailed "
 7045                   "explanations for any of the PCIController features indicated "
 7046                   "in the Capabilities array. Note, each entry of this array "
 7047                   "is related to the entry in the Capabilities array that "
 7048                   "is located at the same index."),
 7049                  ArrayType ("Indexed"), 
 7050                  ModelCorrespondence {"CIM_PCIController.Capabilities"}
 7051                 ]
 7052              string CapabilityDescriptions[];
 7053                 [Description (
 7054                   "The slowest device select timing for a target device."), 
 7055                  Values {"Unknown", "Other", "Fast", "Medium", "Slow", 
 7056                        "Reserved"}
 7057 karl  1.1       ]
 7058              uint16 DeviceSelectTiming;
 7059                 [Description (
 7060                   "Register of 8 bits that identifies the basic function of the "
 7061                   "PCI device. This is only the upper byte (offset 0Bh) of the "
 7062                   "3 byte ClassCode field. Note that the property's ValueMap "
 7063                   "array specifies the decimal representation of this "
 7064                   "information."), 
 7065                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 7066                          "10", "11", "12", "13", "14", "15", "16", "17", 
 7067                          "255"}, 
 7068           // values 18-254 reserved for expansion by PCI
 7069                  Values {"Pre 2.0", "Mass Storage", "Network", "Display", 
 7070                        "Multimedia", "Memory", "Bridge", "Simple Communications", 
 7071                        "Base Peripheral", "Input", "Docking Station", "Processor", 
 7072                        "Serial Bus", "Wireless", "Intelligent I/O", 
 7073                        "Satellite Communication", "Encryption/Decryption", 
 7074                        "Data Acquisition and Signal Processing", "Other"}
 7075                 ]
 7076              uint8 ClassCode;
 7077                 [Description (
 7078 karl  1.1         "Specifies the system cache line size in doubleword increments "
 7079                   "(e.g., a 486-based system would store the value 04h, "
 7080                   "indicating a cache line size of four doublewords."), 
 7081                  Units ("DoubleWords")
 7082                 ]
 7083              uint8 CacheLineSize;
 7084                 [Description (
 7085                   "Defines the minimum amount of time, in PCI clock cycles, that "
 7086                   "the bus master can retain ownership of the bus."), 
 7087                  Units ("PCI clock cycles")
 7088                 ]
 7089              uint8 LatencyTimer;
 7090                 [Description (
 7091                   "Defines the PCI interrupt request pin (INTA# to "
 7092                   "INTD#) to which a PCI functional device is connected."), 
 7093                  Values {"None", "INTA#", "INTB#", "INTC#", "INTD#", "Unknown"}
 7094                 ]
 7095              uint16 InterruptPin;
 7096                 [Description (
 7097                   "Doubleword Expansion ROM base memory address."), 
 7098                  Units ("DoubleWords")
 7099 karl  1.1       ]
 7100              uint32 ExpansionROMBaseAddress;
 7101                 [Description (
 7102                   "Reports if the PCI device can perform the self test "
 7103                   "function. Returns bit 7 of the BIST register as a boolean.")
 7104                 ]
 7105              boolean SelfTestEnabled;
 7106                 [Description (
 7107                   "Method to invoke PCI device self-test. This method sets bit "
 7108                   "6 of the BIST register. The return result is the lower "
 7109                   "four bits of the BIST register where 0 indicates success and "
 7110                   "non-zero is a device dependent failure. Support for this "
 7111                   "method is optional in the PCI Specification.")
 7112                 ]
 7113              uint8 BISTExecution( );
 7114           };
 7115           
 7116           // ===================================================================
 7117           // PCIDevice
 7118           // ===================================================================
 7119              [Description (
 7120 karl  1.1      "Capabilities and management of a PCI device controller "
 7121                "on an adapter card.")
 7122              ]
 7123           class CIM_PCIDevice : CIM_PCIController
 7124           {
 7125                 [Description ("Array of doubleword base memory addresses.") ]
 7126              uint32 BaseAddress[6];
 7127                 [Description ("Subsystem identifier code.") ]
 7128              uint16 SubsystemID;
 7129                 [Description (
 7130                   "Subsystem vendor ID. ID information is reported from a "
 7131                   "PCIDevice via protocol-specific requests. The correct place "
 7132                   "in the CIM Schema for this information is in CIM_Physical"
 7133                   "Element (the Manufacturer property) for hardware, and "
 7134                   "CIM_Product (the Vendor property) if the information is "
 7135                   "related to Product acquisition. This data is also reported "
 7136                   "here since it is part of the standard output from the "
 7137                   "Device, and as an optimization.")
 7138                 ]
 7139              uint16 SubsystemVendorID;
 7140                 [Description (
 7141 karl  1.1         "Register indiating how long the master would like to "
 7142                   "retain PCI bus ownership whenever it initiates a "
 7143                   "transaction. A zero value indicates no requirement."), 
 7144                  Units ("250 nanoseconds")
 7145                 ]
 7146              uint8 MinGrantTime;
 7147                 [Description (
 7148                   "Register specifying how often the device needs access to "
 7149                   "the PCI bus in 250ns. A zero value indicates no "
 7150                   "requirement."), 
 7151                  Units ("250 nanoseconds")
 7152                 ]
 7153              uint8 MaxLatency;
 7154           };
 7155           
 7156           // ===================================================================
 7157           // PCIBridge
 7158           // ===================================================================
 7159              [Description (
 7160                "Capabilities and management of a PCI controller providing "
 7161                "bridge to bridge capability.")
 7162 karl  1.1    ]
 7163           class CIM_PCIBridge : CIM_PCIController
 7164           {
 7165                 [Description ("Array of doubleword base memory addresses.") ]
 7166              uint32 BaseAddress[2];
 7167                 [Description (
 7168                   "The type of bridge. Except for \"Host\" (value=0), the type "
 7169                   "of bridge is PCI to <value>. For type \"Host\", the device is "
 7170                   "a Host to PCI bridge."), 
 7171                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "128"}, 
 7172                  Values {"Host", "ISA", "EISA", "Micro Channel", "PCI", 
 7173                        "PCMCIA", "NuBus", "CardBus", "RACEway", "Other"}
 7174                 ]
 7175              uint16 BridgeType;
 7176                 [Description (
 7177                   "The timeslice for the secondary interface when the bridge "
 7178                   "is acting as an initiator. A zero value indicates no "
 7179                   "requirement."), 
 7180                  Units ("PCI clock cycles")
 7181                 ]
 7182              uint8 SecondaryLatencyTimer;
 7183 karl  1.1       [Description (
 7184                   "The number of the highest numbered bus that exists behind "
 7185                   "the bridge.")
 7186                 ]
 7187              uint8 SubordinateBusNumber;
 7188                 [Description (
 7189                   "The number of the PCI bus segment to which the secondary "
 7190                   "interface of the bridge is connected.")
 7191                 ]
 7192              uint8 SecondayBusNumber;
 7193                 [Description (
 7194                   "The number of the PCI bus segment to which the primary "
 7195                   "interface of the bridge is connected.")
 7196                 ]
 7197              uint8 PrimaryBusNumber;
 7198                 [Description (
 7199                   "The contents of the Bridge's SecondaryStatusRegister. "
 7200                   "For more information on the contents of this register, refer "
 7201                   "to the PCI-to-PCI Bridge Architecture Specification.")
 7202                 ]
 7203              uint16 SecondaryStatusRegister;
 7204 karl  1.1       [Description (
 7205                   "The slowest device select timing for a target device on the "
 7206                   "secondary bus."), 
 7207                  Values {"Unknown", "Other", "Fast", "Medium", "Slow", 
 7208                        "Reserved"}
 7209                 ]
 7210              uint16 SecondaryBusDeviceSelectTiming;
 7211                 [Description (
 7212                   "End address of the I/O addresses supported by the bus. The "
 7213                   "upper four bits of this property specify the address bits, "
 7214                   "AD[15::12], of the I/O address. The remaining 12 bits of "
 7215                   "the I/O address are assumed to be all 1's.")
 7216                 ]
 7217              uint8 IOLimit;
 7218                 [Description (
 7219                   "Base address of I/O addresses supported by the bus. The "
 7220                   "upper four bits of this property specify the address bits, "
 7221                   "AD[15::12], of the I/O address. The remaining 12 bits of "
 7222                   "the I/O address are assumed to be 0.")
 7223                 ]
 7224              uint8 IOBase;
 7225 karl  1.1       [Description (
 7226                   "End address of the memory supported by the bus. The "
 7227                   "upper twelve bits of this property specify the address bits, "
 7228                   "AD[31::20], of a 32-bit memory address. The remaining 20 "
 7229                   "bits of the address are assumed to be all 1's.")
 7230                 ]
 7231              uint16 MemoryLimit;
 7232                 [Description (
 7233                   "Base address of the memory supported by the bus. The "
 7234                   "upper twelve bits of this property specify the address bits, "
 7235                   "AD[31::20], of a 32-bit memory address. The remaining 20 "
 7236                   "bits of the address are assumed to be 0.")
 7237                 ]
 7238              uint16 MemoryBase;
 7239                 [Description (
 7240                   "End address of the memory that can be prefetched by the bus. "
 7241                   "The upper twelve bits of this property specify the address "
 7242                   "bits, AD[31::20], of a 32-bit memory address. The remaining "
 7243                   "20 bits of the address are assumed to be all 1's.")
 7244                 ]
 7245              uint16 PrefetchMemoryLimit;
 7246 karl  1.1       [Description (
 7247                   "Base address of the memory that can be prefetched by the bus. "
 7248                   "The upper twelve bits of this property specify the address "
 7249                   "bits, AD[31::20], of a 32-bit memory address. The remaining "
 7250                   "20 bits of the address are assumed to be 0.")
 7251                 ]
 7252              uint16 PrefetchMemoryBase;
 7253                 [Description (
 7254                   "Upper 32 bits of the supported prefetch end address when "
 7255                   "64-bit addressing is used. The lower 32 bits are assumed to "
 7256                   "be all 1's.")
 7257                 ]
 7258              uint32 PrefetchLimitUpper32;
 7259                 [Description (
 7260                   "Upper 32 bits of the supported prefetch base address when "
 7261                   "64-bit addressing is used. The lower 32 bits are assumed "
 7262                   "to be 0.")
 7263                 ]
 7264              uint32 PrefetchBaseUpper32;
 7265                 [Description (
 7266                   "Upper 16 bits of the supported I/O end address when 32-bit "
 7267 karl  1.1         "I/O addressing is used. The lower 16 bits are assumed to be "
 7268                   "all 1's.")
 7269                 ]
 7270              uint16 IOLimitUpper16;
 7271                 [Description (
 7272                   "Upper 16 bits of the supported I/O base address when 32-bit "
 7273                   "I/O addressing is used. The lower 16 bits are assumed to be "
 7274                   "0.")
 7275                 ]
 7276              uint16 IOBaseUpper16;
 7277           };
 7278           
 7279           // ===================================================================
 7280           // USBController
 7281           // ===================================================================
 7282              [Description (
 7283                  "Capabilities and managment of a USB Host Controller.")
 7284              ] 
 7285           class CIM_USBController : CIM_Controller
 7286           {
 7287                 [Description (
 7288 karl  1.1         "Indicates the latest USB Version supported by the Controller. "
 7289                   "The property is expressed as a Binary-Coded Decimal (BCD) "
 7290                   "where a decimal point is implied between the 2nd and 3rd "
 7291                   "digits. For example, a value of 0x201 indicates that "
 7292                   "version 2.01 is supported.")
 7293                 ]
 7294              uint16 USBVersion;
 7295                 [Description (
 7296                   "The type of interface used between the host system software "
 7297                   "and the USBController."), 
 7298                  Values {"Unknown", "Other", "UHCI", "OHCI"}, 
 7299                  ModelCorrespondence {"CIM_USBController.ControllerVersion"}
 7300                 ]
 7301              uint16 InterfaceType;
 7302                 [Description (
 7303                   "Indicates the version of the USB Host Controller register "
 7304                   "set, specific to the InterfaceType. The property is "
 7305                   "expressed as a Binary-Coded Decimal (BCD) value where a "
 7306                   "decimal point is implied between the 2nd and 3rd digits. "
 7307                   "For example, a value of 0x103 indicates that version "
 7308                   "1.03 is supported."), 
 7309 karl  1.1        ModelCorrespondence {"CIM_USBController.InterfaceType"}
 7310                 ]
 7311              uint16 ControllerVersion;
 7312           };
 7313           
 7314           // ===================================================================
 7315           // USBPort 
 7316           // ===================================================================
 7317              [Description ("A Port on a USBHub.") ]
 7318           class CIM_USBPort : CIM_LogicalPort
 7319           {
 7320                 [Override ("Speed"), 
 7321                  Description (
 7322                   "USB Port Speed in bits per second. This speed is determined "
 7323                   "and set by the attached Device. The 'attached Device' is "
 7324                   "indicated using the USBConnection association. At this time, "
 7325                   "only several Port speeds are valid. These are: 1.5Mbps and "
 7326                   "12Mbps. The value 0 can also be specified to indicate that the "
 7327                   "current speed is 'unknown' or 1 to indicate that the speed is "
 7328                   "'other' than 1.5 or 12Mbps."), 
 7329                  ValueMap {"0", "1", "1500000", "12000000"}
 7330 karl  1.1       ]
 7331              uint64 Speed;
 7332                 [Description (
 7333                   "The USB Port's power capability. The current specification "
 7334                   "defines that 1 or 5 loads can be supported (values 2 or 3 would "
 7335                   "be specified, respectively)."), 
 7336                  Values {"Unknown", "Other", "1 Unit Load", "5 Unit Loads"}
 7337                 ]
 7338              uint16 Power;
 7339                 [Override ("StatusInfo"), 
 7340                  Description ("Indicates whether the Port is currently enabled."), 
 7341                  ValueMap {"2", "3", "4"}, 
 7342                  Values {"Unknown", "Enabled", "Disabled"}
 7343                 ]
 7344              uint16 StatusInfo;
 7345                 [Override ("Availability"), 
 7346                  Description ("Indicates whether the Port is currently Powered."), 
 7347                  ValueMap {"2", "3", "7"}, 
 7348                  Values {"Unknown", "Running/Full Power", "Power Off"}
 7349                 ]
 7350              uint16 Availability;
 7351 karl  1.1       [Description (
 7352                   "Indicates whether the Port is currently Suspended.")
 7353                 ]
 7354              boolean Suspended;
 7355                 [Description (
 7356                   "Indicates whether the Port is disabled due to an "
 7357                   "overcurrent event.")
 7358                 ]
 7359              boolean Overcurrent;
 7360           };
 7361           
 7362           // ===================================================================
 7363           // USBDevice
 7364           // ===================================================================
 7365              [Description (
 7366                  "The management characterisitics of a USB Device. These ") ]
 7367           class CIM_USBDevice: CIM_LogicalDevice
 7368           {
 7369                 [Description (
 7370                   "Indicates the latest USB Version supported by the USB Device. "
 7371                   "The property is expressed as a Binary-Coded Decimal (BCD) "
 7372 karl  1.1         "where a decimal point is implied between the 2nd and 3rd "
 7373                   "digits. For example, a value of 0x201 indicates that "
 7374                   "version 2.01 is supported.")
 7375                 ]
 7376              uint16 USBVersion;
 7377                 [Description ("Indicates the USB class code.") ]
 7378              uint8 ClassCode;
 7379                 [Description ("Indicates the USB subclass code.") ]
 7380              uint8 SubclassCode;
 7381                 [Description ("Indicates the USB protocol code.") ]
 7382              uint8 ProtocolCode;
 7383                 [Description (
 7384                   "Number of device configurations that are defined for the "
 7385                   "Device.")
 7386                 ]
 7387              uint8 NumberOfConfigs;
 7388                 [Description (
 7389                   "Indicates the configuration currently selected for the "
 7390                   "Device. If this value is zero, the Device is "
 7391                   "unconfigured."), 
 7392                  ModelCorrespondence {"CIM_USBDevice.CurrentAlternateSettings"}
 7393 karl  1.1       ]
 7394              uint8 CurrentConfigValue;
 7395                 [Description (
 7396                   "An array of USB 'alternate settings' for each interface "
 7397                   "in the currently selected configuration (indicated by the "
 7398                   "CurrentConfigValue property). This array has one entry for "
 7399                   "each interface in the configuration. If the property, "
 7400                   "CurrentConfigValue, is zero (indicating the Device is not "
 7401                   "configured), the array is undefined. To understand how "
 7402                   "to parse this octet string, refer to the USB Specification."), 
 7403                  ModelCorrespondence {"CIM_USBDevice.CurrentConfigValue"}
 7404                 ]
 7405              uint8 CurrentAlternateSettings[];
 7406                 [Description (
 7407                   "This method returns the USBDevice Descriptor as specified by "
 7408                   "the input parameters. Each parameter is briefly described here "
 7409                   "with more detail in its Qualifier list. RequestType is an input "
 7410                   "parameter that defines whether the request is for standard, "
 7411                   "class or vendor-specific information, as well as specifying the "
 7412                   "recipient. RequestValue is also an input parameter and defines "
 7413                   "the USB Descriptor Type and Index. RequestIndex is an input "
 7414 karl  1.1         "parameter which describes the language used to return a string "
 7415                   "Descriptor. RequestLength is both an input and output parameter. "
 7416                   "It specifies the length of the Descriptor that should be returned "
 7417                   "(on input) and what is actually returned in the Buffer parameter "
 7418                   "(on output). Buffer is an output parameter, containing the "
 7419                   "Descriptor data. The GetDescriptor method returns an integer "
 7420                   "value of 0 if the USB Descriptor is successfully returned, "
 7421                   "1 if the request is not supported and any other number to "
 7422                   "indicate an error.\n"
 7423                   "In a subclass, the set of possible return codes could be "
 7424                   "specified, using a ValueMap qualifier on the method. The "
 7425                   "strings to which the ValueMap contents are 'translated' may "
 7426                   "also be specified in the subclass as a Values array qualifier.")
 7427                 ]
 7428              uint32 GetDescriptor(
 7429               [IN, Description ("RequestType is bit-mapped and identifies the type "
 7430               "of Descriptor request and the recipient. The type of request "
 7431               "may be 'standard', 'class' or 'vendor-specific'. The recipient may "
 7432               "be 'device', 'interface', 'endpoint' or 'other'. Refer to the USB "
 7433               "Specification for the appropriate values for each bit.")] 
 7434               uint8 RequestType, 
 7435 karl  1.1     [IN, Description ("RequestValue contains the Descriptor Type in the "
 7436               "high byte and the Descriptor Index (for example, index or offset "
 7437               "into the Descriptor array) in the low byte. Refer to the USB "
 7438               "Specification for more information.")] 
 7439               uint16 RequestValue, 
 7440               [IN, Description ("RequestIndex defines the 2 byte Language ID code "
 7441               "used by the USBDevice when returning string Descriptor data. The "
 7442               "parameter is typically 0 for non-string Descriptors. Refer to the "
 7443               "USB Specification for more information.")] 
 7444               uint16 RequestIndex, 
 7445               [IN, OUT, Description ("On input, RequestLength is the length (in "
 7446               "octets) of the Descriptor that should be returned. If this value "
 7447               "is less than the actual length of the Descriptor, only the requested "
 7448               "length will be returned. If it is more than the actual length, the "
 7449               "actual length is returned. On output, this parameter is the length, "
 7450               "in octets, of the Buffer being returned. If the requested "
 7451               "Descriptor does not exist, the contents of this parameter are "
 7452               "undefined.")] 
 7453               uint16 RequestLength, 
 7454               [OUT, Description ("Buffer returns the requested Descriptor "
 7455               "information. If the Descriptor does not exist, the contents of "
 7456 karl  1.1     "the Buffer are undefined.")] 
 7457               uint8 Buffer[]); 
 7458           };
 7459           
 7460           // ===================================================================
 7461           // USBHub 
 7462           // ===================================================================
 7463              [Description ("USB Hub Device.") ]
 7464           class CIM_USBHub : CIM_USBDevice
 7465           {
 7466                 [Description (
 7467                   "Indicates whether power to the Hub Ports is individually or "
 7468                   "gang-switched. If this value is FALSE, power is switched "
 7469                   "individually for each Port. If this value is TRUE, power is "
 7470                   "switched to all Ports on the Hub at once.")
 7471                 ]
 7472              boolean GangSwitched;
 7473                 [Description (
 7474                   "Number of downstream Ports on the Hub, including those "
 7475                   "embedded in the Hub's silicon. Individual USBPorts are "
 7476                   "associated with the Hub using the USBPortOnHub association.")
 7477 karl  1.1       ]
 7478              uint8 NumberOfPorts;
 7479           };
 7480           
 7481           // ===================================================================
 7482           // USBPortOnHub
 7483           // ===================================================================
 7484              [Association, 
 7485               Description (
 7486                  "USBPortOnHub associates a USBPort or connection point with the "
 7487                  "USBHub that includes it.")
 7488              ]
 7489           class CIM_USBPortOnHub : CIM_PortOnDevice
 7490           {
 7491                 [Override ("Antecedent"), 
 7492                  Min(1), Max(1), 
 7493                  Description ("The Hub that includes the USBPort.")
 7494                 ]
 7495              CIM_USBHub REF Antecedent;
 7496                 [Override ("Dependent"), 
 7497                  Min(1), Description ("The Port on the USBHub.") ]
 7498 karl  1.1    CIM_USBPort REF Dependent;
 7499           };
 7500           
 7501           // ===================================================================
 7502           // USBControllerHasHub
 7503           // ===================================================================
 7504              [Association, 
 7505               Description (
 7506                  "USBControllerHasHub defines the Hub(s) that are downstream "
 7507                  "of the USBController.")
 7508              ]
 7509           class CIM_USBControllerHasHub : CIM_ControlledBy
 7510           {
 7511                 [Override ("Antecedent"), 
 7512                  Min(1), Max(1), 
 7513                  Description ("The USBController.")
 7514                 ]
 7515              CIM_USBController REF Antecedent;
 7516                 [Override ("Dependent"), 
 7517                  Min(1), 
 7518                  Description (
 7519 karl  1.1         "The USBHub that is associated with the Controller.")
 7520                 ]
 7521              CIM_USBHub REF Dependent;
 7522           };
 7523           
 7524           // ===================================================================
 7525           // USBConnection 
 7526           // ===================================================================
 7527              [Association, 
 7528               Description (
 7529                "USBConnection associates a Device with the USBPort to which it "
 7530                "is connected.")
 7531              ]
 7532           class CIM_USBConnection: CIM_DeviceConnection
 7533           {
 7534                 [Override ("Antecedent"), 
 7535                  Max(1), 
 7536                  Description ("The USBPort.") 
 7537                 ]
 7538              CIM_USBPort REF Antecedent;
 7539                 [Override ("Dependent"), 
 7540 karl  1.1        Max(1), 
 7541                  Description ("The USBDevice that is connected to the Port.")
 7542                 ]
 7543              CIM_USBDevice REF Dependent;
 7544           };
 7545           
 7546           // ===================================================================
 7547           // ManagementController
 7548           // ===================================================================
 7549              [Description (
 7550                  "Capabilities and managment of a ManagementController.  An I2C "
 7551                  "microcontroller is a type of ManagementController.")
 7552              ] 
 7553           class CIM_ManagementController : CIM_Controller
 7554           {
 7555           };
 7556           
 7557           // ===================================================================
 7558           // IDEController 
 7559           // ===================================================================
 7560              [Description ("Capabilities and management of an IDEController.")]
 7561 karl  1.1 class CIM_IDEController : CIM_Controller
 7562           {
 7563           };
 7564           
 7565           // ===================================================================
 7566           // PCMCIAController 
 7567           // ===================================================================
 7568              [Description ("Capabilities and management of a PCMCIAController.")]
 7569           class CIM_PCMCIAController : CIM_Controller
 7570           {
 7571           };
 7572           
 7573           // ===================================================================
 7574           // InfraredController 
 7575           // ===================================================================
 7576              [Description (
 7577                  "Capabilities and management of an InfraredController.")
 7578              ]
 7579           class CIM_InfraredController : CIM_Controller
 7580           {
 7581           };
 7582 karl  1.1 
 7583           // ===================================================================
 7584           // ESCONController 
 7585           // ===================================================================
 7586              [Description (
 7587                  "Capabilities and management of an ESCONController.")
 7588              ]
 7589           class CIM_ESCONController : CIM_Controller
 7590           {
 7591           };
 7592           
 7593           // ===================================================================
 7594           // MediaAccessDevice
 7595           // ===================================================================
 7596              [Description (
 7597                  "A MediaAccessDevice represents the ability to access one or "
 7598                  "more media and use this media to store and retrieve data.")
 7599              ] 
 7600           class CIM_MediaAccessDevice : CIM_LogicalDevice
 7601           {
 7602                 [Description (
 7603 karl  1.1 	  "Capabilities of the MediaAccessDevice. For example, the " 
 7604           	  "Device may support \"Random Access\", removeable media and "
 7605           	  "\"Automatic Cleaning\". In this case, the values 3, 7 and 9 "
 7606           	  "would be written to the array.\n"
 7607                   "Several of the enumerated values require some explanation: "
 7608                   "1) Value 11, Supports Dual Sided Media, distinguishes a "
 7609                   "Device that can access both sides of dual sided Media, from "
 7610                   "a Device that reads only a single side and requires the "
 7611                   "Media to be flipped; and, 2) Value 12, Predismount Eject "
 7612                   "Not Required, indicates that Media does not have to be "
 7613                   "explicitly ejected from the Device before being accessed "
 7614                   "by a PickerElement."), 
 7615           	 ArrayType ("Indexed"),
 7616           	 Values {"Unknown", "Other", "Sequential Access", 
 7617           	       "Random Access", "Supports Writing", "Encryption",
 7618           	       "Compression", "Supports Removeable Media",
 7619           		 "Manual Cleaning", "Automatic Cleaning", 
 7620                        "SMART Notification", "Supports Dual Sided Media", 
 7621                        "Predismount Eject Not Required" }, 
 7622                  MappingStrings {"MIF.DMTF|Storage Devices|001.9", 
 7623           		 "MIF.DMTF|Storage Devices|001.11", 
 7624 karl  1.1 		 "MIF.DMTF|Storage Devices|001.12",
 7625           		 "MIF.DMTF|Disks|003.7", "MIF.DMTF|Host Disk|001.2",  
 7626                        "MIF.DMTF|Host Disk|001.4"}, 
 7627           	 ModelCorrespondence {
 7628           	       "CIM_MediaAccessDevice.CapabilityDescriptions"}
 7629                 ]
 7630              uint16 Capabilities[];
 7631           	[Description (
 7632           	  "An array of free-form strings providing more detailed "
 7633           	  "explanations for any of the AccessDevice features indicated "
 7634           	  "in the Capabilities array. Note, each entry of this array "
 7635           	  "is related to the entry in the Capabilities array that "
 7636           	  "is located at the same index."),
 7637                  ArrayType ("Indexed"),
 7638           	 ModelCorrespondence {"CIM_MediaAccessDevice.Capabilities"}
 7639                 ]
 7640              string CapabilityDescriptions[];
 7641                 [Description (
 7642           	  "ErrorMethodology is a free-form string describing "
 7643           	  "the type(s) of error detection and correction supported "
 7644           	  "by this Device.")
 7645 karl  1.1       ]
 7646              string ErrorMethodology;
 7647                 [Description (	  
 7648           	  "A free form string indicating the algorithm or tool used by "
 7649           	  "the device to support compression. "
 7650           	  "If it is not possible or not desired to describe the "
 7651           	  "compression scheme (perhaps because it is not known), "
 7652           	  "recommend using the following words: \"Unknown\" to "
 7653           	  "represent that it is not known whether the device supports "
 7654           	  "compression capabilities or not, \"Compressed\" to represent "
 7655           	  "that the device supports compression capabilities but either "
 7656           	  "its compression scheme is not known or not disclosed, and "
 7657           	  "\"Not Compressed\" to represent that the devices does not "
 7658           	  "support compression capabilities.")	  
 7659                 ]
 7660              string CompressionMethod;
 7661                 [Description (
 7662           	  "When the MediaAccessDevice supports multiple individual "
 7663           	  "Media, this property defines the maximum number which can "
 7664           	  "be supported or inserted.")
 7665                 ]
 7666 karl  1.1    uint32 NumberOfMediaSupported;
 7667                 [Description (
 7668                   "Maximum size, in KBytes, of media supported by this Device. "
 7669                   "KBytes is interpreted as the number of bytes multiplied by "
 7670                   "1000 (NOT the number of bytes multiplied by 1024)."),
 7671                  MappingStrings {"MIF.DMTF|Sequential Access Devices|001.2", 
 7672                        "MIF.DMTF|Host Disk|001.5"}
 7673                 ]
 7674              uint64 MaxMediaSize;
 7675                 [Description ("Default block size, in bytes, for this Device."),
 7676                  Units ("Bytes")
 7677                 ]
 7678              uint64 DefaultBlockSize;
 7679                 [Description (
 7680           	  "Maximum block size, in bytes, for media accessed by this "
 7681           	  "Device."),
 7682                  Units ("Bytes")
 7683                 ]
 7684              uint64 MaxBlockSize;
 7685                 [Description (
 7686           	  "Minimum block size, in bytes, for media accessed by this "
 7687 karl  1.1 	  "Device."),
 7688                  Units ("Bytes")
 7689                 ]
 7690              uint64 MinBlockSize;
 7691           	[Description (
 7692           	  "Boolean indicating that the MediaAccessDevice needs cleaning. " 
 7693           	  "Whether manual or automatic cleaning is possible is indicated "
 7694           	  "in the Capabilities array property. ")
 7695           	]
 7696              boolean NeedsCleaning;
 7697                 [Description (
 7698                   "True indicates that the media is locked in the Device "
 7699                   "and can not be ejected. For non-removeable Devices, this "
 7700                   "value should be true.")
 7701                 ]
 7702              boolean MediaIsLocked;
 7703                 [Description (
 7704                   "An enumeration indicating the operational security defined "
 7705                   "for the MediaAccessDevice. For example, information that "
 7706                   "the Device is \"Read Only\" (value=4) or \"Boot Bypass\" "
 7707                   "(value=6) can be described using this property."), 
 7708 karl  1.1        ValueMap {"1", "2", "3", "4", "5", "6", "7"}, 
 7709                  Values {"Other", "Unknown", "None", "Read Only", "Locked Out", 
 7710                        "Boot Bypass", "Boot Bypass and Read Only"}, 
 7711                  MappingStrings {"MIF.DMTF|Disks|003.22"}
 7712                 ]
 7713              uint16 Security;
 7714                 [Description (
 7715                   "The date and time on which the Device was last cleaned.") ]
 7716              datetime LastCleaned;
 7717                 [Description (
 7718                   "Time in milliseconds to move from the first location on "
 7719                   "the Media to the location that is furthest with respect to "
 7720                   "time. For a DiskDrive, this represents full seek + full "
 7721                   "rotational delay. For TapeDrives, this represents a search "
 7722                   "from the beginning of the tape to the most physically "
 7723                   "distant point. (The end of a tape may be at its most "
 7724                   "physically distant point, but this is not necessarily "
 7725                   "true.)"), 
 7726                  Units ("MilliSeconds")
 7727                 ]
 7728              uint64 MaxAccessTime;
 7729 karl  1.1       [Description (
 7730                   "The sustained data transfer rate in KB/sec that the "
 7731                   "Device can read from and write to a Media. This is a "
 7732                   "sustained, raw data rate. Maximum rates or rates "
 7733                   "assuming compression should not be reported in this "
 7734                   "property."), 
 7735                  Units ("KiloBytes per Second")
 7736                 ]
 7737              uint32 UncompressedDataRate;
 7738                 [Description (
 7739                   "Time in milliseconds from 'load' to being able to read "
 7740                   "or write a Media. For example, for DiskDrives, this is "
 7741                   "the interval between a disk not spinning to the disk "
 7742                   "reporting that it is ready for read/write (ie, the disk "
 7743                   "spinning at nominal speeds). For TapeDrives, this is "
 7744                   "the time from a Media being injected to reporting that "
 7745                   "it is ready for an application. This is usually at the "
 7746                   "tape's BOT area."), 
 7747                  Units ("MilliSeconds")
 7748                 ]
 7749              uint64 LoadTime;
 7750 karl  1.1       [Description (
 7751                   "Time in milliseconds from being able to read or write a "
 7752                   "Media to its 'unload'. For example, for DiskDrives, "
 7753                   "this is the interval between a disk spinning at nominal "
 7754                   "speeds and a disk not spinning. For TapeDrives, this is "
 7755                   "the time for a Media to go from its BOT to being fully "
 7756                   "ejected and accessible to a PickerElement or human "
 7757                   "operator."), 
 7758                  Units ("MilliSeconds")
 7759                 ]
 7760              uint64 UnloadTime;
 7761                 [Description (
 7762                   "Method to lock and unlock the media in a removeable Access"
 7763                   "Device. The method takes one parameter as input - a boolean "
 7764                   "indicating whether to lock or unlock. TRUE indicates that "
 7765                   "the media should be locked in the Device, FALSE indicates "
 7766                   "that the media should be unlocked. The method returns 0 if "
 7767                   "successful, 1 if not supported, and any other value if an "
 7768                   "error occurred. The set of possible return codes should be "
 7769                   "specified in a ValueMap qualifier on the method. The strings "
 7770                   "to which the ValueMap contents are 'translated' should be "
 7771 karl  1.1         "specified as a Values array qualifier on the method.")
 7772                 ]
 7773              uint32 LockMedia ([IN] boolean Lock);
 7774                 [Description (
 7775                   "For a MediaAccessDevice that supports removable Media, "
 7776                   "the number of times that Media have been mounted for "
 7777                   "data transfer or to clean the Device. For Devices "
 7778                   "accessing nonremovable Media, such as hard disks, "
 7779                   "this property is not applicable and should be set to 0."),
 7780                  Counter
 7781                 ]
 7782              uint64 MountCount;
 7783                 [Description (
 7784                   "For a MediaAccessDevice that supports removable Media, "
 7785                   "the most recent date and time that Media was mounted "
 7786                   "on the Device. For Devices accessing nonremovable Media, "
 7787                   "such as hard disks, this property has no meaning and is "
 7788                   "not applicable.")
 7789                  ]
 7790              datetime TimeOfLastMount;
 7791                 [Description (
 7792 karl  1.1         "For a MediaAccessDevice that supports removable Media, "
 7793                   "the total time (in seconds) that Media have been mounted "
 7794                   "for data transfer or to clean the Device. For Devices "
 7795                   "accessing nonremovable Media, such as hard disks, "
 7796                   "this property is not applicable and should be set to 0.")
 7797                 ]
 7798              uint64 TotalMountTime;
 7799                 [Description (
 7800                   "Defines 'Units' relative to its use in the property, "
 7801                   "MaxUnitsBeforeCleaning. This describes the criteria used "
 7802                   "to determine when the MediaAccessDevice should be cleaned."),
 7803                  ModelCorrespondence {
 7804                      "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning",
 7805                      "CIM_MediaAccessDevice.UnitsUsed"}
 7806                 ]
 7807              string UnitsDescription;
 7808                 [Description (
 7809                   "An unsigned integer indicating the maximum 'units' "
 7810                   "that can be used, with respect to the AccessDevice, "
 7811                   "before the Device should be cleaned. The property, "
 7812                   "UnitsDescription, defines how 'units' should be "
 7813 karl  1.1         "interpreted."),
 7814                  ModelCorrespondence {
 7815                   "CIM_MediaAccessDevice.UnitsDescription"}
 7816                 ]
 7817              uint64 MaxUnitsBeforeCleaning;
 7818                 [Description (
 7819                   "An unsigned integer indicating the currently used " 
 7820                   "'units' of the AccessDevice, helpful to describe "
 7821                   "when the Device may require cleaning. The property, "
 7822                   "UnitsDescription, defines how 'units' should be "
 7823                   "interpreted."),
 7824                  Gauge,
 7825                  ModelCorrespondence {
 7826                   "CIM_MediaAccessDevice.UnitsDescription",
 7827                   "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning"}]
 7828              uint64 UnitsUsed;
 7829           };
 7830           
 7831           // ===================================================================
 7832           // DiskDrive
 7833           // ===================================================================
 7834 karl  1.1    [Description (
 7835                  "Capabilities and managment of a DiskDrive, a subtype of "
 7836                  "MediaAccessDevice.")
 7837              ] 
 7838           class CIM_DiskDrive : CIM_MediaAccessDevice
 7839           {
 7840           };
 7841           
 7842           // ===================================================================
 7843           // DisketteDrive
 7844           // ===================================================================
 7845              [Description (
 7846                  "Capabilities and managment of a DisketteDrive, a subtype of "
 7847                  "MediaAccessDevice.")
 7848              ] 
 7849           class CIM_DisketteDrive : CIM_MediaAccessDevice
 7850           {
 7851           };
 7852           
 7853           // ===================================================================
 7854           // CDROMDrive
 7855 karl  1.1 // ===================================================================
 7856              [Description (
 7857                  "Capabilities and managment of a CDROMDrive, a subtype of "
 7858                  "MediaAccessDevice.")
 7859              ] 
 7860           class CIM_CDROMDrive : CIM_MediaAccessDevice
 7861           {
 7862           };
 7863           
 7864           // ===================================================================
 7865           // WORMDrive
 7866           // ===================================================================
 7867              [Description (
 7868                  "Capabilities and managment of a WORMDrive, a subtype of "
 7869                  "MediaAccessDevice.")
 7870              ] 
 7871           class CIM_WORMDrive : CIM_MediaAccessDevice
 7872           {
 7873           };
 7874           
 7875           // ===================================================================
 7876 karl  1.1 // MagnetoOpticalDrive
 7877           // ===================================================================
 7878              [Description (
 7879                  "Capabilities and managment of a MagnetoOpticalDrive, a "
 7880                  "subtype of MediaAccessDevice.")
 7881              ] 
 7882           class CIM_MagnetoOpticalDrive : CIM_MediaAccessDevice
 7883           {
 7884           };
 7885           
 7886           // ===================================================================
 7887           // TapeDrive
 7888           // ===================================================================
 7889              [Description (
 7890                  "Capabilities and managment of a TapeDrive, a subtype of "
 7891                  "MediaAccessDevice.")
 7892              ] 
 7893           class CIM_TapeDrive : CIM_MediaAccessDevice
 7894           {
 7895                 [Description (
 7896           	  "EOTWarningZoneSize indicates the size, in bytes, of the "
 7897 karl  1.1 	  "area designated as 'end of tape'. Access in this area "
 7898           	  "generates an 'end of tape' warning."),
 7899                  Units ("Bytes")
 7900                 ]
 7901              uint32 EOTWarningZoneSize;
 7902                 [Description ("Maximum partition count for the TapeDrive.")]
 7903              uint32 MaxPartitionCount;
 7904                 [Description (
 7905           	  "Padding indicates the number of bytes inserted between "
 7906           	  "blocks on a tape Media."),
 7907                  Units ("Bytes")
 7908                 ]
 7909              uint32 Padding;
 7910                 [Description (
 7911                   "Time in milliseconds to move from the most physically distant "
 7912                   "point on the tape to the beginning."), 
 7913                  Units ("MilliSeconds")
 7914                 ]
 7915              uint64 MaxRewindTime;
 7916           };
 7917           
 7918 karl  1.1 // ===================================================================
 7919           // DVDDrive 
 7920           // ===================================================================
 7921              [Description (
 7922                  "Capabilities and management of a DVDDrive, a subtype of "
 7923                  "MediaAccessDevice.")
 7924              ]
 7925           class CIM_DVDDrive : CIM_MediaAccessDevice
 7926           {
 7927                 [Description (
 7928                   "The CD and DVD formats that are supported by this Device. "
 7929                   "For example, the Drive may support \"CD-ROM\" and "
 7930                   "\"DVD-RAM\". In this case, the values 16 and 24 would be "
 7931                   "written to the array. This property's values align with "
 7932                   "those defined in PhysicalMedia.MediaType."), 
 7933                  ValueMap {"0", "1", "16", "17", "18", "19", "22", "23", "24", 
 7934                          "25", "26", "27", "33", "34", "35", "36", "37", "38", 
 7935                          "39", "40", "41", "42"}, 
 7936                  Values {"Unknown", "Other", "CD-ROM", "CD-ROM/XA", 
 7937                        "CD-I", "CD Recordable", "DVD", "DVD-RW+", 
 7938                        "DVD-RAM", "DVD-ROM", "DVD-Video", "Divx", "CD-RW", 
 7939 karl  1.1              "CD-DA", "CD+", "DVD Recordable", "DVD-RW", 
 7940                        "DVD-Audio", "DVD-5", "DVD-9", "DVD-10", "DVD-18"},
 7941                  ModelCorrespondence {"CIM_PhysicalMedia.MediaType"}
 7942                 ]
 7943              uint16 FormatsSupported[];
 7944           };
 7945           
 7946           // ===================================================================
 7947           // Processor
 7948           // ===================================================================
 7949              [Description (
 7950                  "Capabilities and management of the Processor LogicalDevice.")
 7951              ] 
 7952           class CIM_Processor : CIM_LogicalDevice
 7953           {
 7954                 [Description (
 7955           	  "A free form string describing the role of the Processor - "
 7956           	  "for example, \"Central Processor\" or \"Math Processor\".")
 7957                 ] 
 7958              string Role;
 7959                 [Description (
 7960 karl  1.1 	  "The Processor family type. For example, values include "
 7961           	  "\"Pentium(R) processor with MMX(TM) technology\" (14) and \"68040\" (96)."), 
 7962           	 ValueMap {
 7963           		"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 7964           		"11", "12", "13", "14", "15", "16", "17", "18", "19", 
 7965           		"24", "25", "26", "27", "28", "29", "30", 
 7966           		"31", "32", "33", "34", "35", "36", "37", "38", "39", 
 7967           		"48", "49", "50", 
 7968           		"51", "52", "53", "54", "55", 
 7969           		"64", "65", "66", "67", "68", "69", 
 7970           		"80", 
 7971           		"81", "82", "83", "84", "85", "86", "87", "88", 
 7972           		"96", "97", "98", "99", "100", 
 7973           		"101", 
 7974           		"112", "120", 
 7975           		"121", "128", "130", 
 7976           		"144", "145", "146", "147", "148", "149", "150",
 7977           		"160", 
 7978           		"176", "177", "180", 
 7979           		"200", "201", "202", 
 7980           		"250", "251", 
 7981 karl  1.1 		"260", "261", 
 7982           		"280", "281", 
 7983           		"300", "301", "302", 
 7984           		"320", "350", "500"},
 7985                  Values {
 7986           			"Other", "Unknown", "8086", "80286", "80386", "80486","8087", "80287", "80387", "80487", 
 7987           			"Pentium(R) brand","Pentium(R) Pro", "Pentium(R) II", 
 7988           			"Pentium(R) processor with MMX(TM) technology", "Celeron(TM)",
 7989           			"Pentium(R) II Xeon(TM)", "Pentium(R) III", 
 7990           		    "M1 Family", "M2 Family", "K5 Family", "K6 Family", 
 7991           			"K6-2", "K6-3", "AMD Athlon(TM) Processor Family", 
 7992           			"AMD(R) Duron(TM) Processor","AMD29000 Family", "K6-2+", 
 7993           			"Power PC Family", "Power PC 601", "Power PC 603", "Power PC 603+", 
 7994                      	"Power PC 604", "Power PC 620", "Power PC X704", 
 7995                      	"Power PC 750", "Alpha Family", "Alpha 21064", 
 7996                      	"Alpha 21066", "Alpha 21164", "Alpha 21164PC", 
 7997                      	"Alpha 21164a", "Alpha 21264", "Alpha 21364", 
 7998                      	"MIPS Family", "MIPS R4000", "MIPS R4200", 
 7999                      	"MIPS R4400", "MIPS R4600", "MIPS R10000", 
 8000                      	"SPARC Family", "SuperSPARC", "microSPARC II", 
 8001                      	"microSPARC IIep", "UltraSPARC", "UltraSPARC II", 
 8002 karl  1.1            	"UltraSPARC IIi", "UltraSPARC III", "UltraSPARC IIIi", 
 8003                      	"68040", "68xxx Family", "68000", "68010", "68020", 
 8004                      	"68030", "Hobbit Family", "Crusoe(TM) TM5000 Family",
 8005           			"Crusoe(TM) TM3000 Family","Weitek", "Itanium(TM) Processor",
 8006           			"PA-RISC Family", "PA-RISC 8500", "PA-RISC 8000", 
 8007           			"PA-RISC 7300LC", "PA-RISC 7200", "PA-RISC 7100LC", 
 8008           			"PA-RISC 7100", "V30 Family", "Pentium(R) III Xeon(TM)", 
 8009           			"Pentium(R) III Processor with Intel(R) SpeedStep(TM) Technology",
 8010           			"AS400 Family", "IBM390 Family", "G4", "G5", "i860", "i960", 
 8011           			"SH-3", "SH-4", "ARM", "StrongARM", "6x86", "MediaGX", "MII",
 8012           	       	"WinChip", "DSP", "Video Processor"},
 8013                  MappingStrings {"MIF.DMTF|Processor|013"},
 8014           	 ModelCorrespondence {"CIM_Processor.OtherFamilyDescription"}
 8015                 ]
 8016              uint16 Family;
 8017           	[Description (
 8018             	  "A string describing the Processor Family type - used when "
 8019             	  "the Family property is set to 1 (\"Other\"). This string "
 8020             	  "should be set to NULL when the Family property is any "
 8021             	  "value other than 1."),
 8022            	 MaxLen (64),
 8023 karl  1.1 	 ModelCorrespondence {"CIM_Processor.Family"}
 8024           	]
 8025              string OtherFamilyDescription;
 8026                 [Description (
 8027           	  "CPU socket information including data on how this "
 8028                   "Processor can be upgraded (if upgrades are supported). "
 8029            	  "This property is an integer enumeration."),
 8030                  ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", 
 8031                          "10", "11", "12", "13", "14"}, 
 8032           	 Values {"Other", "Unknown", "Daughter Board", "ZIF Socket",
 8033           	       "Replacement/Piggy Back", "None", "LIF Socket", "Slot 1",
 8034           		 "Slot 2", "370 Pin Socket", "Slot A", "Slot M", "Socket 423", 
 8035           		 "Socket A (Socket 462)"}, 
 8036                  MappingStrings {"MIF.DMTF|Processor|013"}
 8037                 ]
 8038              uint16 UpgradeMethod;
 8039                 [Description ("The maximum speed (in MHz) of this Processor."),
 8040                  Units ("MegaHertz"),
 8041                  MappingStrings {"MIF.DMTF|Processor|013"}
 8042                 ]
 8043              uint32 MaxClockSpeed;
 8044 karl  1.1       [Description ("The current speed (in MHz) of this Processor."),
 8045                  Units ("MegaHertz"),
 8046                  MappingStrings {"MIF.DMTF|Processor|013"}
 8047                 ]
 8048              uint32 CurrentClockSpeed;
 8049                 [Description ("Processor data width in bits."),
 8050                  Units ("Bits")
 8051                 ]
 8052              uint16 DataWidth; 
 8053                 [Description ("Processor address width in bits."),
 8054                  Units ("Bits")
 8055                 ]
 8056              uint16 AddressWidth;
 8057                 [Gauge, Description (
 8058           	  "Loading of this Processor, averaged over the last minute, "
 8059           	  "in Percent."),
 8060           	 Units ("Percent"),
 8061           	 MappingStrings {"MIB.IETF|HOST-RESOURCES-MIB.hrProcessorLoad"}
 8062           	]
 8063              uint16 LoadPercentage;
 8064           	[Description (
 8065 karl  1.1 	  "Stepping is a free-form string indicating the revision " 
 8066           	  "level of the Processor within the Processor.Family."), 
 8067           	 ModelCorrespondence {"CIM_Processor.Family"}
 8068                 ]
 8069              string Stepping;
 8070                 [Description (
 8071                   "A globally unique identifier for the Processor. This "
 8072                   "identifier may only be unique within a Processor Family.")
 8073                 ]
 8074              string UniqueID;
 8075                 [Description (
 8076                   "The CPUStatus property indicates the current status of "
 8077                   "the Processor. For example, it may be disabled by the user "
 8078                   "via BIOS (value=2), or disabled due to a POST error (value="
 8079                   "3). Information in this property can be obtained from SMBIOS, "
 8080                   "the Type 4 structure, the Status attribute."), 
 8081                  ValueMap {"0", "1", "2", "3", "4", "7"}, 
 8082                  Values {"Unknown", "CPU Enabled", 
 8083                        "CPU Disabled by User via BIOS Setup", 
 8084                        "CPU Disabled By BIOS (POST Error)", "CPU Is Idle", "Other"}
 8085                 ]
 8086 karl  1.1    uint16 CPUStatus;
 8087           };
 8088           
 8089           // ===================================================================
 8090           // ComputerSystemProcessor
 8091           // ===================================================================
 8092              [Association,
 8093               Aggregation,
 8094               Description (
 8095                  "Association indicating the processor(s) of a Unitary"
 8096                  "ComputerSystem. At least one processor is required. Note "
 8097           	 "that this relationship inherits from the SystemDevice "
 8098           	 "association, and therefore, the System Processor is weak to "
 8099           	 "the aggregating UnitaryComputerSystem.")
 8100              ] 
 8101           class CIM_ComputerSystemProcessor : CIM_SystemDevice
 8102           {   
 8103                 [Override ("GroupComponent"),
 8104                  Aggregate,
 8105                  Description ("The UnitaryComputerSystem.")
 8106                 ]
 8107 karl  1.1    CIM_UnitaryComputerSystem REF GroupComponent;
 8108                 [Override ("PartComponent"),
 8109                  Description (
 8110           	  "The Processor which is part of the UnitaryComputerSystem.")
 8111                 ]
 8112              CIM_Processor REF PartComponent;
 8113           };
 8114           
 8115           // ===================================================================
 8116           // StorageExtent
 8117           // ===================================================================
 8118              [Description (
 8119                  "StorageExtent describes the capabilities and management of "
 8120                  "the various media that exist to store data and allow data "
 8121                  "retrieval. This superclass could be used to represent the "
 8122           	 "various components of RAID (Hardware or Software) or as a "
 8123                  "raw logical extent on top of physical media.")
 8124              ] 
 8125           class CIM_StorageExtent : CIM_LogicalDevice
 8126           {
 8127                 [Description ("Type of data organization used."), 
 8128 karl  1.1        Values {"Other", "Unknown", "Fixed Block", "Variable Block", 
 8129                        "Count Key Data"}
 8130                 ]
 8131              uint16 DataOrganization;
 8132                 [Description (
 8133           	  "A free form string describing the media and/or its use."),
 8134           	 MappingStrings {
 8135           	       "MIB.IETF|HOST-RESOURCES-MIB.hrStorageDescr"}
 8136                 ]
 8137              string Purpose;
 8138                 [Description (
 8139           	  "Access describes whether the media is readable (value=1), "
 8140           	  "writeable (value=2), or both (value=3). \"Unknown\" (0) "
 8141           	  "and \"Write Once\" (4) can also be defined."),
 8142                  Values {"Unknown", "Readable", "Writeable", 
 8143           	       "Read/Write Supported", "Write Once"}
 8144                 ]
 8145              uint16 Access;
 8146                 [Description (
 8147           	  "ErrorMethodology is a free-form string describing "
 8148           	  "the type of error detection and correction supported "
 8149 karl  1.1 	  "by this StorageExtent.")
 8150                 ]
 8151              string ErrorMethodology;
 8152                 [Description (
 8153                   "Size in bytes of the blocks which form this StorageExtent. "
 8154                   "If variable block size, then the maximum block size in bytes "
 8155                   "should be specified. If the block size is unknown or if a "
 8156                   "block concept is not valid (for example, for Aggregate Extents, "
 8157                   "Memory or LogicalDisks), enter a 1."), 
 8158                  Units ("Bytes"),
 8159           	 MappingStrings {"MIF.DMTF|Host Storage|001.4", 
 8160           	       "MIB.IETF|HOST-RESOURCES-MIB.hrStorageAllocationUnits,"
 8161           		   "MIF.DMTF|Storage Devices|001.5"} 
 8162                 ]
 8163              uint64 BlockSize;
 8164                 [Description (
 8165           	  "Total number of logically contiguous blocks, of size Block"
 8166                   "Size, which form this Extent. The total size of the Extent "
 8167                   "can be calculated by multiplying BlockSize by NumberOfBlocks. "
 8168                   "If the BlockSize is 1, this property is the total size of the "
 8169                   "Extent."),
 8170 karl  1.1 	 MappingStrings {"MIF.DMTF|Host Storage|001.5", 
 8171            	       "MIB.IETF|HOST-RESOURCES-MIB.hrStorageSize"}
 8172                 ]
 8173              uint64 NumberOfBlocks;
 8174                 [Description ( 
 8175                   "The maximum number of blocks, of size BlockSize, which are "
 8176                   "available for consumption when layering StorageExtents "
 8177                   "using the BasedOn association. This property only has meaning "
 8178                   "when this StorageExtent is an Antecedent reference in a "
 8179                   "BasedOn relationship. For example, a StorageExtent could be "
 8180                   "composed of 120 blocks. However, the Extent itself may use 20 "
 8181                   "blocks for redundancy data. If another StorageExtent is BasedOn "
 8182                   "this Extent, only 100 blocks would be available to it. This "
 8183                   "information ('100 blocks is available for consumption') is "
 8184                   "indicated in the ConsumableBlocks property.") 
 8185                 ]
 8186              uint64 ConsumableBlocks;
 8187                 [Description (
 8188                   "True indicates that the underlying StorageExtent(s) "
 8189                   "participate in a StorageRedundancyGroup.")
 8190                 ]
 8191 karl  1.1    boolean IsBasedOnUnderlyingRedundancy;
 8192                 [Description (
 8193                   "Boolean set to TRUE if the Storage is sequentially accessed "
 8194                   "by a MediaAccessDevice. A TapePartition is an example of a "
 8195                   "sequentially accessed StorageExtent. StorageVolumes, Disk"
 8196                   "Partitions and LogicalDisks represent randomly accessed "
 8197                   "Extents.")
 8198                 ]
 8199              boolean SequentialAccess;
 8200           };
 8201           
 8202           // ===================================================================
 8203           // ResidesOnExtent
 8204           // ===================================================================
 8205              [Association,
 8206               Description (
 8207                  "An association between a FileSystem and the StorageExtent "
 8208                  "where it is located. Typically, a FileSystem ResidesOn "
 8209                  "a LogicalDisk.")
 8210              ] 
 8211           class CIM_ResidesOnExtent : CIM_Dependency
 8212 karl  1.1 {
 8213                 [Override ("Antecedent"),
 8214                  Description ("The StorageExtent.")
 8215                 ]
 8216              CIM_StorageExtent REF Antecedent;
 8217                 [Override ("Dependent"),
 8218                  Description (
 8219           	  "The FileSystem that is located on the StorageExtent.")
 8220                 ]
 8221              CIM_FileSystem REF Dependent;
 8222           };
 8223           
 8224           // ===================================================================
 8225           // ExtentRedundancyComponent
 8226           // ===================================================================
 8227              [Association, 
 8228               Aggregation, 
 8229               Description (
 8230                  "Describes the StorageExtents participating in a Storage"
 8231                  "RedundancyGroup.")
 8232              ]
 8233 karl  1.1 class CIM_ExtentRedundancyComponent : CIM_RedundancyComponent
 8234           {
 8235                 [Override ("GroupComponent"), Aggregate, 
 8236                  Description ("The StorageRedundancyGroup.")
 8237                 ]
 8238              CIM_StorageRedundancyGroup REF GroupComponent;
 8239                 [Override ("PartComponent"), 
 8240                  Description (
 8241                   "The StorageExtent participating in the RedundancyGroup.")
 8242                 ]
 8243              CIM_StorageExtent REF PartComponent;
 8244           };
 8245           
 8246           // ===================================================================
 8247           // BasedOn
 8248           // ===================================================================
 8249              [Association,
 8250               Description (
 8251                  "BasedOn is an association describing how StorageExtents can "
 8252                  "be assembled from lower level Extents. For example, "
 8253                  "ProtectedSpaceExtents are parts of PhysicalExtents, while "
 8254 karl  1.1        "VolumeSets are assembled from one or more Physical or "
 8255                  "ProtectedSpaceExtents. As another example, CacheMemory "
 8256                  "can be defined independently and realized in a PhysicalElement "
 8257                  "or can be 'based on' Volatile or NonVolatileStorageExtents.")
 8258              ] 
 8259           class CIM_BasedOn : CIM_Dependency
 8260           {
 8261                 [Override ("Antecedent"), 
 8262                  Description ("The lower level StorageExtent.")
 8263                 ]
 8264              CIM_StorageExtent REF Antecedent;
 8265                 [Override ("Dependent"),
 8266                  Description ("The higher level StorageExtent.")
 8267                 ]
 8268              CIM_StorageExtent REF Dependent;
 8269                 [Description (
 8270           	  "StartingAddress indicates where in lower level storage, "
 8271           	  "the higher level Extent begins.")
 8272                 ] 
 8273              uint64 StartingAddress;
 8274                 [Description (
 8275 karl  1.1 	  "EndingAddress indicates where in lower level storage, "
 8276           	  "the higher level Extent ends. This property is useful when "
 8277           	  "mapping non-contiguous Extents into a higher level grouping.")
 8278                 ] 
 8279              uint64 EndingAddress;
 8280                 [Description (
 8281                   "If there is an order to the BasedOn associations that "
 8282                   "describe how a higher level StorageExtent is assembled, the "
 8283                   "OrderIndex property indicates this. When an order exists, "
 8284                   "the instances of BasedOn with the same Dependent value "
 8285                   "(i.e., the same higher level Extent) should place unique "
 8286                   "values in the OrderIndex property. The lowest value implies "
 8287                   "the first member of the collection of lower level Extents, "
 8288                   "and increasing values imply successive members of the "
 8289                   "collection. If there is no ordered relationship, a value "
 8290                   "of zero should be specified. An example of the use of this "
 8291                   "property is to define a RAID-0 striped array of 3 disks. "
 8292                   "The resultant RAID array is a StorageExtent that is "
 8293                   "dependent on (BasedOn) the StorageExtents that describe "
 8294                   "each of the 3 disks. The OrderIndex of each BasedOn "
 8295                   "association from the disk Extents to the RAID array could "
 8296 karl  1.1         "be specified as 1, 2 and 3 to indicate the order in which "
 8297                   "the disk Extents are used to access the RAID data.")
 8298                 ]
 8299              uint16 OrderIndex;
 8300           };
 8301           
 8302           // ===================================================================
 8303           // MediaPresent
 8304           // ===================================================================
 8305              [Association,
 8306               Description (
 8307                  "Where a StorageExtent must be accessed through a MediaAccess"
 8308                  "Device, this relationship is described by the MediaPresent "
 8309                  "association."),
 8310           	   MappingStrings {"MIF.DMTF|Storage Devices|001.8"} 
 8311              ] 
 8312           class CIM_MediaPresent : CIM_Dependency
 8313           {
 8314                 [Override ("Antecedent"),
 8315                  Description ("The MediaAccessDevice.")
 8316                 ]
 8317 karl  1.1    CIM_MediaAccessDevice REF Antecedent;
 8318                 [Override ("Dependent"),
 8319                  Description (
 8320           	 "The StorageExtent accessed using the MediaAccessDevice.")
 8321                 ]
 8322              CIM_StorageExtent REF Dependent;
 8323                 [Description (
 8324                   "Boolean indicating that the accessed StorageExtent is "
 8325                   "fixed in the MediaAccessDevice and can not be ejected.")
 8326                 ]
 8327              boolean FixedMedia;
 8328           };
 8329           
 8330           // ===================================================================
 8331           // StorageError
 8332           // ===================================================================
 8333              [Description (
 8334                  "StorageError defines blocks of media or memory space that are "
 8335                  "mapped 'out of use' due to errors. The Key of the class is "
 8336                  "the StartingAddress of the bytes in error.")
 8337              ] 
 8338 karl  1.1 class CIM_StorageError : CIM_ManagedElement
 8339           {
 8340                 [Propagated("CIM_StorageExtent.SystemCreationClassName"),
 8341                  Key, MaxLen (256),
 8342                  Description ("The scoping System's CreationClassName.")
 8343                 ]
 8344              string SystemCreationClassName;
 8345                 [Propagated("CIM_StorageExtent.SystemName"),
 8346                  Key, MaxLen (256),
 8347           	 Description ("The scoping System's Name.")
 8348                 ]
 8349              string SystemName;
 8350                 [Propagated("CIM_StorageExtent.CreationClassName"),
 8351                  Key, MaxLen (256),
 8352                  Description ("The scoping StorageExtent's CreationClassName.")
 8353                 ]
 8354              string DeviceCreationClassName;
 8355                 [Propagated("CIM_StorageExtent.DeviceID"),
 8356                  Key, MaxLen (64),
 8357           	 Description ("The scoping StorageExtent's DeviceID.")
 8358                 ]
 8359 karl  1.1    string DeviceID;
 8360                 [Key,
 8361                  Description ("The starting address of the bytes in error.")
 8362                 ]
 8363              uint64 StartingAddress;
 8364                 [Description ("The ending address of the bytes in error.")]
 8365              uint64 EndingAddress;
 8366           };
 8367           
 8368           // ===================================================================
 8369           // StorageDefect
 8370           // ===================================================================
 8371              [Association,
 8372               Aggregation,
 8373               Description (
 8374                  "The StorageDefect aggregation collects the StorageErrors for "
 8375                  "a StorageExtent.")
 8376              ] 
 8377           class CIM_StorageDefect
 8378           {
 8379                 [Key, Aggregate,
 8380 karl  1.1        Description (
 8381           	 "The Extent reference defines the StorageExtent on which the "
 8382           	 "errors occurred."),
 8383                  Min (1), Max (1)
 8384                 ]
 8385              CIM_StorageExtent REF Extent;
 8386                 [Key, Description (
 8387           	 "Error references the Error object, defining the starting "
 8388           	 "and ending addresses that are 'mapped out' of the Storage"
 8389           	 "Extent."),
 8390                  Weak
 8391                 ]
 8392              CIM_StorageError REF Error;
 8393           };
 8394           
 8395           // ===================================================================
 8396           // PhysicalExtent
 8397           // ===================================================================
 8398              [Description (
 8399                "A PhysicalExtent is used to model an SCC RAID "
 8400                "implementation. It defines the consecutive addressable "
 8401 karl  1.1      "block addresses on a single storage device, that are "
 8402                "treated as a single StorageExtent and that are in the "
 8403                "same StorageRedundancyGroup. An alternate possibility, "
 8404                "if automatic configuration is used, is to instantiate or "
 8405                "extend the AggregatePExtent class.")
 8406              ] 
 8407           class CIM_PhysicalExtent : CIM_StorageExtent
 8408           {
 8409                 [Override ("BlockSize"),	 
 8410           // Override is used to define the MappingString qualifier 
 8411                  MappingStrings {"MIF.DMTF|Physical Extent|001.4"}
 8412                 ]
 8413              uint64 BlockSize;
 8414                 [Override ("NumberOfBlocks"),
 8415           // Override is used to define the MappingString qualifier 
 8416                  MappingStrings {"MIF.DMTF|Physical Extent|001.3"}
 8417                 ]
 8418              uint64 NumberOfBlocks;
 8419                 [Description (
 8420           	  "Number of bytes of user data to skip before "
 8421           	  "starting the check data interleave."),
 8422 karl  1.1 	 Units ("Bytes"),
 8423                  MappingStrings {"MIF.DMTF|Physical Extent|001.6"}
 8424                 ]
 8425              uint64 UnitsBeforeCheckDataInterleave;
 8426                 [Description (
 8427           	  "Number of bytes to be reserved for check data."),
 8428           	 Units ("Bytes"), 
 8429                  MappingStrings {"MIF.DMTF|Physical Extent|001.7"}
 8430                 ]
 8431              uint64 UnitsOfCheckData;
 8432                 [Description (
 8433           	  "Number of bytes to be reserved for user data."),
 8434           	 Units ("Bytes"),
 8435                  MappingStrings {"MIF.DMTF|Physical Extent|001.8"}
 8436                 ]
 8437              uint64 UnitsOfUserData;
 8438           };
 8439           
 8440           // ===================================================================
 8441           // PExtentRedundancyComponent
 8442           // ===================================================================
 8443 karl  1.1    [Association,
 8444               Aggregation,
 8445               Description (
 8446                  "Describes the PhysicalExtents participating in a Storage"
 8447                  "RedundancyGroup.")
 8448              ] 
 8449           class CIM_PExtentRedundancyComponent : CIM_ExtentRedundancyComponent
 8450           {
 8451                 [Override ("GroupComponent"),
 8452                  Aggregate,
 8453                  Description ("The StorageRedundancyGroup.")  
 8454                 ]
 8455              CIM_StorageRedundancyGroup REF GroupComponent;
 8456                 [Override ("PartComponent"),
 8457                  Description (
 8458           	  "The PhysicalExtent participating in the RedundancyGroup.")
 8459                 ]
 8460              CIM_PhysicalExtent REF PartComponent;
 8461           };
 8462           
 8463           // ===================================================================
 8464 karl  1.1 // ProtectedSpaceExtent
 8465           // ===================================================================
 8466              [Description (
 8467                "A ProtectedSpaceExtent is used to model an SCC RAID "
 8468                "implementation. ProtectedSpaceExtent defines addressable logical "
 8469                "block addresses, treated as a single Extent, located on one or "
 8470                "more PhysicalExtents. ProtectedSpaceExtents exclude any logical "
 8471                "blocks mapped as check data and contain user data stripe depth "
 8472                "mapping information. An alternate possibility, if automatic "
 8473                "configuration is used, is to instantiate or extend the Aggregate"
 8474                "PSExtent class.")
 8475              ] 
 8476           class CIM_ProtectedSpaceExtent : CIM_StorageExtent
 8477           {
 8478                 [Override ("BlockSize"),
 8479           // Override is used to define the MappingString qualifier 
 8480                  MappingStrings {"MIF.DMTF|Protected Space Extent|001.4"}
 8481                 ]
 8482              uint64 BlockSize;
 8483                 [Override ("NumberOfBlocks"),
 8484                  Description (
 8485 karl  1.1         "The number of user data blocks contained in this Extent."),
 8486                  MappingStrings {"MIF.DMTF|Protected Space Extent|001.3"}
 8487                 ]
 8488              uint64 NumberOfBlocks;
 8489           		[Description (
 8490                   "For a ProtectedSpaceExtent that is allocated to a VolumeSet, "
 8491                   "(i.e. is named in a CIM_VolumeSetBasedOnPSExtent "
 8492                   "association), this property is the number of user data bytes "
 8493           		"placed on this ProtectedSpaceExtent before moving on to the "
 8494           		"next ProtectedSpaceExtent in the VolumeSet.  Otherwise, this "
 8495           		"ProtectedSpaceExtent is considered to be unallocated and "
 8496             		"this property shall be set to zero (0h.)"),
 8497           		Units ("Bytes"),
 8498           		MappingStrings {"MIF.DMTF|Protected Space Extent|001.6"}
 8499           		]
 8500           	uint64 UserDataStripeDepth;
 8501           };
 8502           
 8503           // ===================================================================
 8504           // PSExtentBasedOnPExtent
 8505           // ===================================================================
 8506 karl  1.1    [Association,
 8507               Description (
 8508                  "ProtectedSpaceExtents are BasedOn a PhysicalExtent. This "
 8509                  "relationship is made explicit in this association.")
 8510              ] 
 8511           class CIM_PSExtentBasedOnPExtent : CIM_BasedOn
 8512           {
 8513                 [Override ("Antecedent"), 
 8514                  Description ("The PhysicalExtent.")
 8515                 ]
 8516              CIM_PhysicalExtent REF Antecedent;
 8517                 [Override ("Dependent"),
 8518                  Description (
 8519           	  "The ProtectedSpaceExtent which is built on the Physical"
 8520           	  "Extent.")
 8521                 ]
 8522              CIM_ProtectedSpaceExtent REF Dependent;
 8523                 [Override ("StartingAddress"), 
 8524                  Description (
 8525                   "The starting logical block address of the PhysicalExtent "
 8526                   "from which this ProtectedSpaceExtent is derived."), 
 8527 karl  1.1        MappingStrings {"MIF.DMTF|Protected Space Extent|001.2"}
 8528                 ]
 8529              uint64 StartingAddress;
 8530           };
 8531           
 8532           // ===================================================================
 8533           // StorageVolume 
 8534           // ===================================================================
 8535              [Description (
 8536                "A StorageVolume is an Extent that is presented to the Operating"
 8537                "System (for example, by a hardware RAID cabinet), to a File"
 8538                "System (for example, by a software volume manager) or to another "
 8539                "entity. StorageVolumes do NOT participate in StorageRedundancy"
 8540                "Groups. They are directly Realized in hardware or are the end "
 8541                "result of assembling lower level Extents.")
 8542              ]
 8543           class CIM_StorageVolume : CIM_StorageExtent
 8544           {
 8545           };
 8546           
 8547           // ===================================================================
 8548 karl  1.1 // VolumeSet
 8549           // ===================================================================
 8550              [Description (
 8551                  "A VolumeSet is used to model an SCC RAID implementation. "
 8552                  "VolumeSets represent a contiguous range of logical blocks "
 8553                  "presented to the operating environment. VolumeSets may overlap. "
 8554                  "However, the underlying PhysicalExtents within the overlap "
 8555                  "shall not contain any check data. They are BasedOn one or more "
 8556                  "ProtectedSpaceExtents. These BasedOn associations should be "
 8557                  "instantiated or subclassed as needed.")
 8558              ] 
 8559           class CIM_VolumeSet : CIM_StorageVolume
 8560           {
 8561                 [Override ("NumberOfBlocks"), 
 8562           // Override is used to define the MappingString qualifier 
 8563                  MappingStrings {"MIF.DMTF|Volume Set|001.3"}
 8564                 ]
 8565              uint64 NumberOfBlocks;
 8566                 [Description (
 8567                   "Number of contiguous ProtectedSpaceExtents counted "
 8568                   "before looping back to the first ProtectedSpaceExtent "
 8569 karl  1.1         "of the current stripe. It is the number of Extents forming "
 8570                   "the user data stripe."),
 8571                  MappingStrings {"MIF.DMTF|Volume Set|001.4"}
 8572                 ]
 8573              uint64 PSExtentStripeLength;
 8574                 [Description (
 8575                   "Number of ProtectedSpaceExtents to stripe as a collective "
 8576                   "set. In SCC, this value is defined as the number of stripes "
 8577                   "to count before continuing to map into the next contiguous "
 8578                   "set of Extents, beyond the current stripe."), 
 8579                  MappingStrings {"MIF.DMTF|Volume Set|001.5"}
 8580                 ]
 8581              uint64 PSExtentInterleaveDepth;
 8582                 [Description (
 8583                   "VolumeSets in SCC have additional status information "
 8584                   "beyond that captured in the Availability and StatusInfo "
 8585                   "properties, inherited from ManagedSystemElement. This "
 8586                   "additional information (for example, \"Protection Disabled\", "
 8587                   "value=9) is captured in the VolumeStatus property."), 
 8588                  Values {"Other", "Unknown", "None/Not Applicable", "Broken", 
 8589                        "Data Lost", "Dynamic Reconfig", "Exposed", 
 8590 karl  1.1              "Fractionally Exposed", "Partially Exposed", 
 8591                        "Protection Disabled", "Readying", "Rebuild", 
 8592                        "Recalculate", "Spare in Use", "Verify In Progress"}
 8593                 ]
 8594              uint16 VolumeStatus;
 8595           };
 8596           
 8597           // ===================================================================
 8598           // VolumeSetBasedOnPSExtent
 8599           // ===================================================================
 8600              [Association, 
 8601               Description (
 8602                  "VolumeSets are BasedOn on one or more ProtectedSpaceExtents. "
 8603                  "This relationship is made explicit in this association.")
 8604              ]
 8605           class CIM_VolumeSetBasedOnPSExtent : CIM_BasedOn
 8606           {
 8607                 [Override ("Antecedent"), 
 8608                  Description ("The ProtectedSpaceExtent."), 
 8609                  Min (1)
 8610                 ]
 8611 karl  1.1    CIM_ProtectedSpaceExtent REF Antecedent;
 8612                 [Override ("Dependent"), 
 8613                  Description (
 8614                   "The VolumeSet which is built on the ProtectedSpaceExtent.")
 8615                 ]
 8616              CIM_VolumeSet REF Dependent;
 8617                 [Description (
 8618                   "True if logical blocks in the ProtectedSpaceExtent are mapped "
 8619                   "in decrementing order. This property corresponds to the INCDEC "
 8620                   "value in the SCC-2 Volume Set PS_Extent Descriptor.")
 8621                 ]
 8622              boolean LBAsMappedByDecrementing;
 8623                 [Description (
 8624                   "True if the logical block mapping algorithm includes check data "
 8625                   "bytes. This property corresponds to the NOCHKSKIP attribute in "
 8626                   "the SCC-2 Volume Set PS_Extent Descriptor.")
 8627                 ]
 8628              boolean LBAMappingIncludesCheckData;
 8629           };
 8630           
 8631           // ===================================================================
 8632 karl  1.1 // MediaPartition
 8633           // ===================================================================
 8634              [Description (
 8635                  "A MediaPartition is a presentation of a contiguous range "
 8636                  "of logical blocks and has identifying data written on/to it. "
 8637                  "It may include a signature written by the OS or by "
 8638                  "an application.  This class is a common superclass for Disk and "
 8639                  "TapePartions. Partitions are directly realized by Physical"
 8640                  "Media (indicated by the RealizesExtent association) or built "
 8641                  "on StorageVolumes (indicated by the BasedOn association.")
 8642              ] 
 8643           class CIM_MediaPartition : CIM_StorageExtent
 8644           {
 8645                 [Description (
 8646                   "Boolean indicating that the Partition is labeled as "
 8647                   "bootable. (Note that this does not mean that an Operating"
 8648                   "System is actually loaded on the Partition.) With the advent "
 8649                   "of bootable Tape and other bootable media, this property is "
 8650                   "included in the higher level MediaPartition class, rather "
 8651                   "than in a subclass such as DiskPartition.")
 8652                 ]
 8653 karl  1.1    boolean Bootable;
 8654                 [Description (
 8655                   "Boolean indicating that the Partition is available and "
 8656                   "may be allocated for use.")
 8657                 ]
 8658              boolean Allocatable;
 8659                 [Description (
 8660                   "An identifying string written to the Partition. Additional "
 8661                   "information related to this 'Signature' may be found in the "
 8662                   "properties, SignatureState and SignatureAlgorithm."), 
 8663                  ModelCorrespondence {"CIM_MediaPartition.SignatureState",
 8664                      "CIM_MediaPartition.SignatureAlgorithm"}
 8665                 ]
 8666              string Signature;
 8667                 [Description (
 8668                   "A free-form string describing the algorithm used to "
 8669                   "define the Partition Signature. The value of this property "
 8670                   "is dependent on the Signature's State. "),
 8671                  ModelCorrespondence {"CIM_MediaPartition.Signature", 
 8672                      "CIM_MediaPartition.SignatureState"}
 8673                 ]
 8674 karl  1.1    string SignatureAlgorithm;
 8675                 [Description (
 8676                   "An enumeration describing the state of the Partition's "
 8677                   "identifying Signature string. Information such as "
 8678                   "\"Uninitialized\" (value=2), or \"Assigned by Owning "
 8679                   "Application\" (value=5) are possible entries. "),
 8680                  Values {"Unknown", "Unimplemented", "Uninitialized",
 8681                      "Calculated by Operating System", 
 8682                "Calculated by a Media Manager", 
 8683                "Assigned by Owning Application"},
 8684                  ModelCorrespondence {"CIM_MediaPartition.Signature",
 8685                      "CIM_MediaPartition.SignatureAlgorithm"}
 8686                 ]
 8687              string SignatureState;
 8688           		[Description (
 8689                   "Boolean indicating that the Partition can be grown/extended "
 8690                   "without reformatting.")
 8691           		]
 8692              boolean Extendable;
 8693           };
 8694           
 8695 karl  1.1 // ===================================================================
 8696           // DiskPartition
 8697           // ===================================================================
 8698              [Description (
 8699                  "A DiskPartition is a presentation of a contiguous range "
 8700                  "of logical blocks that is identifiable by the Operating"
 8701                  "System via the Partition's type and subtype fields. Disk"
 8702                  "Partitions should be directly realized by PhysicalMedia "
 8703                  "(indicated by the RealizesDiskPartition association) or built "
 8704                  "on StorageVolumes (indicated by the PartitionBasedOnVolume "
 8705                  "association.")
 8706              ] 
 8707           class CIM_DiskPartition : CIM_MediaPartition
 8708           {
 8709                 [Description (
 8710           	  "Boolean indicating that the DiskPartition is labelled as "
 8711           	  "the primary partition for a ComputerSystem.")
 8712                 ]
 8713              boolean PrimaryPartition;
 8714                 [Description ("The type of Partition."), 
 8715                  Values {"Unknown", "Primary", "Extended", "Logical"}
 8716 karl  1.1       ]
 8717              uint16 PartitionType;
 8718                 [Description (
 8719                   "The 'sub' type of a primary, extended, or logical Partition. "
 8720                   "The list of possible values corresponds to the decimal "
 8721                   "representation of the typical values in the Partition record."), 
 8722                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 8723                          "10", "11", "12", "14", "15", "16", "17", "18", 
 8724                          "20", "22", "23", "27", "28", "33", "35", "36", 
 8725                          "38", "49", "51", "52", "53", "54", "55", "60", 
 8726                          "64", "65", "66", "67", "80", "81", "82", "83", 
 8727                          "84", "85", "86", "97", "99", "100", "101", "102", 
 8728                          "103", "104", "105", "113", "115", "116", "117", 
 8729                          "118", "119", "120", "121", "128", "129", "130", 
 8730                          "131", "132", "134", "135", "147", "148", "161", 
 8731                          "163", "164", "165", "166", "177", "179", "180", 
 8732                          "182", "183", "184", "193", "196", "198", "199", 
 8733                          "216", "219", "225", "227", "228", "229", "230", 
 8734                          "239", "240", "241", "242", "243", "244", "246", 
 8735                          "254", "255", "65535"}, 
 8736                  Values {"Empty | Microsoft", "DOS 12-bit FAT", 
 8737 karl  1.1              "XENIX root", "XENIX usr", "DOS 16-bit FAT", 
 8738                        "DOS Extended", "DOS 16-bit FAT (> 32MB)", 
 8739                        "OS/2 HPFS | Win NTFS | QNX Ver 2 | Adv UNIX", 
 8740                        "AIX Boot | OS /2 | Dell (Array) | Commodore DOS", 
 8741                        "AIX Data, Coherent", "OS/2 Boot Manager", 
 8742                        "32-bit FAT", "32-bit FAT", "Microsoft 16-bit FAT", 
 8743                        "Microsoft DOS Extended", "OPUS | OS/2 2.0", 
 8744                        "OS/2 (MOSS) Inactive Type 1", 
 8745                        "Compaq Diagnostics Partition | Microsoft", 
 8746                        "OS/2 (MOSS) Inactive Type 4", 
 8747                        "OS/2 (MOSS) Inactive Type 6", 
 8748                        "OS/2 (MOSS) Inactive Type 7", 
 8749                        "OS/2 (MOSS) Inactive Type B", 
 8750                        "OS/2 (MOSS) Inactive Type C", "Microsoft", 
 8751                        "Microsoft", "Microsoft", "Microsoft", "Microsoft", 
 8752                        "Microsoft", "Microsoft", "OS/2 Logical Volume Manager", 
 8753                        "Microsoft", "OS/2 JFS Log", "PowerQuest", 
 8754                        "VENIX 80286 | Series/1 Disk", "Personal RISC Boot", 
 8755                        "Veritas", "Veritas", "OnTrack Disk Manager Read Only DOS", 
 8756                        "OnTrack Disk Manager Read/Write DOS", 
 8757                        "CPM | Microport System V/386 | OnTrack Disk Mgr | Microsoft", 
 8758 karl  1.1              "OnTrack Disk Manager", "OnTrack Disk Manager Non-DOS", 
 8759                        "Micro House EZ-Drive Non-DOS", 
 8760                        "Golden Bow Vfeature | Microsoft", 
 8761                        "Storage Dimensions SpeedStor | Microsoft", 
 8762                        "UNIX - AT&T System V/386 | SCO UNIX", 
 8763                        "Novell NetWare | Speedstore", "Novell NetWare", 
 8764                        "Novell NetWare", "Novell", "Novell", "Novell", 
 8765                        "Microsoft", "Microsoft", "Microsoft", "PC/IX IBM", 
 8766                        "Microsoft", "QNX POSIX", "QNX POSIX (Secondary)", 
 8767                        "QNX POSIX (Secondary)", 
 8768                        "Minix (<=1.4a) | Linux | Microsoft", 
 8769                        "Minix (>=1.4b) | Microsoft", "Linux Swap | Prime", 
 8770                        "Linux Native | Apple", "System Hibernation for APM", 
 8771                        "Microsoft", "HPFS FT mirror", "Amoeba | Microsoft", 
 8772                        "Amoeba BBT | Microsoft", "Microsoft", "Microsoft", 
 8773                        "Microsoft", "BSD/386", "Microsoft", "Microsoft", 
 8774                        "Microsoft", "Microsoft", "Microsoft", 
 8775                        "BSDI fs | Microsoft", "BSDI Swap | Microsoft", 
 8776                        "Microsoft", "Microsoft", "Microsoft", 
 8777                        "Syrinx | HPFS FT Disabled Mirror", "CP/M 86", 
 8778                        "Digital Research CPM-86 | Concurrent DOS | OUTRIGGER", 
 8779 karl  1.1              "SpeedStor 12-bit FAT Extended", 
 8780                        "DOS Read-Only | Storage Dimensions", 
 8781                        "SpeedStor 16-bit FAT Extended", "Microsoft", 
 8782                        "Microsoft", "Intel", "OS/2 Raw Data", 
 8783                        "Storage Dimensions", "DOS (Secondary)", "Microsoft", 
 8784                        "SpeedStor Large | Storage Dimensions", "Microsoft", 
 8785                        "Lan Step | SpeedStor | IBM PS/2 IML", 
 8786                        "Bad Block Tables", "Unknown"}
 8787                 ]
 8788              uint16 PartitionSubtype;
 8789           };
 8790           
 8791           // ===================================================================
 8792           // DiskPartitionBasedOnVolume
 8793           // ===================================================================
 8794              [Association, 
 8795               Description (
 8796                  "DiskPartitions should be BasedOn a single StorageVolume (for "
 8797                  "example, exposed by a hardware RAID cabinet), an SCC VolumeSet, "
 8798                  "or realized directly in PhysicalMedia. The first two "
 8799                  "relationships are made explicit in this association. The latter "
 8800 karl  1.1        "is conveyed by the RealizesDiskPartition association.")
 8801              ]
 8802           class CIM_DiskPartitionBasedOnVolume : CIM_BasedOn
 8803           {
 8804                 [Override ("Antecedent"), Max (1), 
 8805                  Description ("The StorageVolume.") ]
 8806              CIM_StorageVolume REF Antecedent;
 8807                 [Override ("Dependent"), 
 8808                  Description ("The DiskPartition which is built on the Volume.")
 8809                 ]
 8810              CIM_DiskPartition REF Dependent;
 8811           };
 8812           
 8813           // ===================================================================
 8814           // TapePartition
 8815           // ===================================================================
 8816              [Description (
 8817                  "Capabilities and management of a TapePartition StorageExtent. "
 8818                  "Note that if a PhysicalTape is not partitioned, only a "
 8819                  "generic StorageExtent that represents the entire Tape should "
 8820                  "be instantiated. TapePartitions may be BasedOn other "
 8821 karl  1.1        "StorageExtents or directly Realized on a PhysicalTape.")
 8822              ]
 8823           class CIM_TapePartition : CIM_MediaPartition
 8824           {
 8825                 [Gauge, Description (
 8826                   "Number of blocks that are currently unused/not written on "
 8827                   "the Partition. When this number is multiplied by the "
 8828                   "BlockSize, inherited from StorageExtent, the total number "
 8829                   "of bytes available for writing can be computed.")
 8830                 ]
 8831              uint64 UnusedBlocks;
 8832           
 8833           };
 8834           
 8835           // ===================================================================
 8836           // TapePartitionOnSurface
 8837           // ===================================================================
 8838              [Association, 
 8839               Description (
 8840                  "TapePartitionOnSurface represents the ability to have one or "
 8841                  "more TapePartitions on each surface of a PhysicalTape. The "
 8842 karl  1.1        "individual surfaces are represented as instances of "
 8843                  "CIM_StorageExtent.")
 8844              ]
 8845           class CIM_TapePartitionOnSurface : CIM_BasedOn
 8846           {
 8847                 [Override ("Antecedent"), 
 8848                  Max (1), 
 8849                  Description (
 8850                   "The StorageExtent that represents the Tape's surface.")
 8851                 ]
 8852              CIM_StorageExtent REF Antecedent;
 8853                 [Override ("Dependent"), 
 8854                  Description ("The TapePartition which is built on the Extent.")
 8855                 ]
 8856              CIM_TapePartition REF Dependent;
 8857           };
 8858           
 8859           // ===================================================================
 8860           // LogicalDisk
 8861           // ===================================================================
 8862              [Description (
 8863 karl  1.1        "A LogicalDisk is a presentation of a contiguous range of "
 8864                  "logical blocks that is identifiable by a FileSystem via the "
 8865                  "Disk's DeviceId (key) field. For example in a Windows "
 8866                  "environment, the DeviceID field would contain a drive letter. "
 8867                  "In a Unix environment, it would contain the access path; and in "
 8868                  "a NetWare environment, DeviceID would contain the volume name. "
 8869                  "LogicalDisks are typically built on a DiskPartition or Storage"
 8870                  "Volume (for example, exposed by a software volume manager) "
 8871                  "using the LogicalDiskBasedOnPartition or LogicalDiskBasedOn"
 8872                  "Volume associations. However, it can be based on other "
 8873                  "StorageExtents, like CIM_Memory, in the case of a RAM disk. "
 8874                  "The latter is described using the LogicalDiskBasedOnExtent "
 8875                  "relationship. (Indeed, the BasedOnExtent association is the "
 8876                  "superclass for the BasedOnPartition and BasedOnVolume "
 8877                  "relationships.)")
 8878              ] 
 8879           class CIM_LogicalDisk : CIM_StorageExtent
 8880           {
 8881           };
 8882           
 8883           // ===================================================================
 8884 karl  1.1 // LogicalDiskBasedOnExtent 
 8885           // ===================================================================
 8886              [Association, 
 8887               Description (
 8888                  "LogicalDisks can be BasedOn a single StorageVolume, Memory "
 8889                  "(in the case of a RAM Disk), a DiskPartition or other " 
 8890                  "StorageExtent. These relationships are made explicit in this "
 8891                  "association. Subclasses of the association, LogicalDiskBasedOn"
 8892                  "Partition and LogicalDiskBasedOnVolume, detail the 'typical' "
 8893                  "semantics.")
 8894              ]
 8895           class CIM_LogicalDiskBasedOnExtent : CIM_BasedOn
 8896           {
 8897                 [Override ("Antecedent"), Max (1), 
 8898                  Description ("The StorageExtent.")
 8899                 ]
 8900              CIM_StorageExtent REF Antecedent;
 8901                 [Override ("Dependent"), 
 8902                  Description (
 8903                   "The LogicalDisk which is built on the StorageExtent.")
 8904                 ]
 8905 karl  1.1    CIM_LogicalDisk REF Dependent;
 8906           };
 8907           
 8908           // ===================================================================
 8909           // LogicalDiskBasedOnVolume
 8910           // ===================================================================
 8911              [Association, 
 8912               Description (
 8913                  "LogicalDisks can be BasedOn a single Volume (for example, "
 8914                  "exposed by a software volume manager), or be BasedOn a Disk"
 8915                  "Partition directly. The former relationship is made explicit "
 8916                  "in this association.")
 8917              ]
 8918           class CIM_LogicalDiskBasedOnVolume : CIM_LogicalDiskBasedOnExtent
 8919           {
 8920                 [Override ("Antecedent"), Max (1), 
 8921                  Description ("The StorageVolume.")
 8922                 ]
 8923           CIM_StorageVolume REF Antecedent; 
 8924           };
 8925           
 8926 karl  1.1 // ===================================================================
 8927           // LogicalDiskBasedOnVolumeSet
 8928           // ===================================================================
 8929              [Association,
 8930               Description (
 8931                  "LogicalDisks can be BasedOn a VolumeSet. This association is "
 8932                  "an optimization where software RAID doesn't exist and the "
 8933                  "LogicalDisk is built right on top of a VolumeSet presented by "
 8934                  "an SCC cabinet. However, this would be better modeled by a "
 8935                  "DiskPartition BasedOn the VolumeSet (described using the "
 8936                  "DiskPartitionBasedOnVolume association) and then basing the "
 8937                  "LogicalDisk on the DiskPartition (using the LogicalDisk"
 8938                  "BasedOnPartition association).")
 8939              ] 
 8940           class CIM_LogicalDiskBasedOnVolumeSet : CIM_LogicalDiskBasedOnVolume
 8941           {
 8942                 [Override ("Antecedent"), 
 8943           	 Max (1),
 8944                  Description ("The VolumeSet.")
 8945                 ]
 8946              CIM_VolumeSet REF Antecedent;
 8947 karl  1.1 };
 8948           
 8949           // ===================================================================
 8950           // LogicalDiskBasedOnPartition
 8951           // ===================================================================
 8952              [Association,
 8953               Description (
 8954                  "LogicalDisks can be BasedOn a DiskPartition. For example, a "
 8955                  "personal computer's C: drive may be located on a Partition on "
 8956                  "local PhysicalMedia. In this association of LogicalDisks to "
 8957                  "Partitions, note that the cardinality of the Antecedent, Disk"
 8958                  "Partition, is Max(1). This dictates that a LogicalDisk can not "
 8959                  "span more than one Partition. However, there are cases where "
 8960                  "this is true. When it occurs, the LogicalDisk is really based "
 8961                  "on some kind of RAID configuration (for example, a mirror or "
 8962                  "stripe set). In these scenarios, the LogicalDisk is more "
 8963                  "correctly BasedOn a StorageVolume. To prevent incorrectly using "
 8964                  "the LogicalDiskBasedOnPartition association, the Max(1) "
 8965                  "qualifier was put on the Antecedent reference to the "
 8966                  "DiskPartition.")
 8967              ] 
 8968 karl  1.1 class CIM_LogicalDiskBasedOnPartition : CIM_LogicalDiskBasedOnExtent
 8969           {
 8970                 [Override ("Antecedent"), 
 8971           	 Max (1),
 8972                  Description ("The DiskPartition.")
 8973                 ]
 8974              CIM_DiskPartition REF Antecedent;
 8975           };
 8976           
 8977           // ===================================================================
 8978           // AggregatePExtent
 8979           // ===================================================================
 8980              [Description (
 8981                  "An AggregatePExtent is used to model an SCC RAID "
 8982                  "implementation. AggregatePExtents provide summary information "
 8983                  "about the addressable logical blocks which are in the same "
 8984                  "StorageRedundancyGroup and reside on the same storage device. "
 8985                  "This is an alternative grouping for PhysicalExtents, when only "
 8986                  "summary information is needed or when automatic configuration "
 8987                  "is used.")
 8988              ] 
 8989 karl  1.1 class CIM_AggregatePExtent : CIM_StorageExtent
 8990           {
 8991                 [Override ("NumberOfBlocks"),
 8992                  Description (
 8993           	  "Total number of blocks (including the check data blocks) "
 8994           	  "contained in this AggregatePExtent.  The block size (an "
 8995                   "inherited property) should be set to the same value as for "
 8996           	  "the MediaAccessDevice associated with this Extent."),
 8997                  MappingStrings {"MIF.DMTF|Aggregate Physical Extent|001.2"}
 8998                 ]
 8999              uint64 NumberOfBlocks;
 9000                 [Description (
 9001                   "The number of blocks contained in this AggregatePExtent "
 9002                   "to be used as check data. If this AggregatePExtent is "
 9003                   "available, then this value shall be zero."), 
 9004                  MappingStrings {"MIF.DMTF|Aggregate Physical Extent|001.3"}
 9005                 ]
 9006              uint64 BlocksOfCheckData;
 9007           };
 9008           
 9009           // ===================================================================
 9010 karl  1.1 // AggregateRedundancyComponent
 9011           // ===================================================================
 9012              [Association,
 9013               Aggregation,
 9014               Description (
 9015                  "Describes the AggregatePExtent in a StorageRedundancyGroup.")
 9016              ] 
 9017           class CIM_AggregateRedundancyComponent : CIM_ExtentRedundancyComponent
 9018           {
 9019                 [Override ("GroupComponent"),
 9020                  Aggregate,
 9021                  Description ("The StorageRedundancyGroup.") 
 9022                 ]
 9023              CIM_StorageRedundancyGroup REF GroupComponent;
 9024                 [Override ("PartComponent"),
 9025                  Description (
 9026           	  "The AggregatePExtent participating in the RedundancyGroup.")
 9027                 ]
 9028              CIM_AggregatePExtent REF PartComponent;
 9029           };
 9030           
 9031 karl  1.1 // ===================================================================
 9032           // AggregatePSExtent
 9033           // ===================================================================
 9034              [Description (
 9035                  "An AggregatePSExtent is used to model an SCC RAID "
 9036                  "implementation. AggregatePSExtents define the number of "
 9037                  "addressable logical blocks on a single storage device, "
 9038                  "excluding any logical blocks mapped as check data. "
 9039                  "This is an alternative grouping for ProtectedSpaceExtents, "
 9040                  "when only summary information is needed or when automatic "
 9041                  "configuration is used.")
 9042              ] 
 9043           class CIM_AggregatePSExtent : CIM_StorageExtent
 9044           {
 9045                 [Override ("NumberOfBlocks"),
 9046                  Description (
 9047           	  "Total number of user data blocks that are contained in this "
 9048                   "Extent."),
 9049                  MappingStrings {
 9050           	       "MIF.DMTF|Aggregate Protected Space Extent|001.2"}
 9051                 ]
 9052 karl  1.1    uint64 NumberOfBlocks;	
 9053           };
 9054           
 9055           // ===================================================================
 9056           // AggregatePSExtentBasedOnPExtent
 9057           // ===================================================================
 9058              [Association, 
 9059               Description (
 9060                  "AggregatePSExtents are BasedOn a single PhysicalExtent. This "
 9061                  "relationship is made explicit in this association.")
 9062              ]
 9063           class CIM_AggregatePSExtentBasedOnPExtent : CIM_BasedOn
 9064           {
 9065                 [Override ("Antecedent"), 
 9066                  Description ("The PhysicalExtent."), 
 9067                  Max (1)
 9068                 ]
 9069              CIM_PhysicalExtent REF Antecedent;
 9070                 [Override ("Dependent"), 
 9071                  Description (
 9072                   "The AggregatePSExtent which is built on the PhysicalExtent.")
 9073 karl  1.1       ]
 9074              CIM_AggregatePSExtent REF Dependent;
 9075           };
 9076           
 9077           // ===================================================================
 9078           // AggregatePSExtentBasedOnAggregatePExtent
 9079           // ===================================================================
 9080              [Association, 
 9081               Description (
 9082                  "AggregatePSExtents are BasedOn a single AggregatePExtent. This "
 9083                  "relationship is made explicit in this association.")
 9084              ]
 9085           class CIM_AggregatePSExtentBasedOnAggregatePExtent : CIM_BasedOn
 9086           {
 9087                 [Override ("Antecedent"), 
 9088                  Description ("The AggregatePExtent."), 
 9089                  Max (1)
 9090                 ]
 9091              CIM_AggregatePExtent REF Antecedent;
 9092                 [Override ("Dependent"), 
 9093                  Description (
 9094 karl  1.1         "The AggregatePSExtent which is built on the AggregatePExtent.")
 9095                 ]
 9096              CIM_AggregatePSExtent REF Dependent;
 9097           };
 9098           
 9099           // ===================================================================
 9100           // Snapshot 
 9101           // ===================================================================
 9102              [Description (
 9103           		"The Snapshot class is an optional construct. It can be "
 9104           		"used to represent an Extent that contains a full copy of "
 9105           		"another Extent, or the changes to that Extent when performing "
 9106           		"a delta-based (delta before or delta after) copy.\n"
 9107           		"Snapshot's definition in CIM is not equivalent to the act "
 9108           		"of creating a volume or file-based snapshot, or a point in "
 9109           		"time copy. It is at a much lower level and represents the "
 9110           		"use of storage to hold a copied image of an Extent, or to hold "
 9111           		"changes to an Extent.  Use of the Snapshot object when making "
 9112           		"a full copy is only recommended if the purpose is to describe "
 9113           		"the existence of a copy. (This use will be very infrequent.) "
 9114           		"The problem with describing an Extent solely as a 'snapshot' "
 9115 karl  1.1 		"is that when the snapshot/copy is broken, the object must be "
 9116           		"destroyed. Typically, this object still holds valid data, and "
 9117           		"would have to be reinstantiated. If the 'full copy' object "
 9118           		"is to be treated as a StorageVolume or more general Extent, "
 9119           		"then it should be modeled as such from the beginning - "
 9120           		"i.e., not as an instance of Snapshot but as an instance of a "
 9121           		"generic StorageExtent or StorageVolume. In this case, the "
 9122           		"Synchronized association would be used to describe that one "
 9123           		"StorageExtent is synchronized with another.\n"
 9124           		"When describing a delta-based snapshot/point in time copy, "
 9125           		"the Snapshot object represents the store holding the before/after "
 9126           		"image changes to the original Extent. For example, when doing a "
 9127           		"'delta before' Snapshot, the resultant target would be modeled "
 9128           		"as a StorageExtent that is BasedOn the original Extent and the "
 9129           		"instance of Snapshot (that holds the changes to the original Extent).")
 9130              ]
 9131           class CIM_Snapshot : CIM_StorageExtent
 9132           {
 9133                 [Description ("True indicates that the snapshot is synced.") ]
 9134              boolean IsSynced;
 9135                 [Description (
 9136 karl  1.1         "The time stamp indicating when the sync occurred.") ]
 9137              datetime SyncTime;
 9138           };
 9139           
 9140           // ===================================================================
 9141           // SnapshotOfExtent
 9142           // ===================================================================
 9143              [Association, 
 9144               Description (
 9145                  "SnapshotOfExtent is an association between an Extent and "
 9146                  "its Snapshot. This relationship is made explicit in this "
 9147                  "association.")
 9148              ]
 9149           class CIM_SnapshotOfExtent : CIM_Dependency
 9150           {
 9151                 [Override ("Antecedent"), 
 9152                  Description ("The StorageExtent."), 
 9153                  Max(1)
 9154                 ]
 9155              CIM_StorageExtent REF Antecedent;
 9156                 [Override ("Dependent"), 
 9157 karl  1.1        Description ("The Snapshot.")
 9158                 ]
 9159              CIM_Snapshot REF Dependent;
 9160                 [Description ("The type of snapshot."), 
 9161                  Values {"Other", "Unknown", "Copy", "Before Delta", 
 9162                        "After Delta"}
 9163                 ]
 9164              uint16 SnapshotType;
 9165           };
 9166           
 9167           // ===================================================================
 9168           // Memory
 9169           // ===================================================================
 9170              [Description (
 9171                  "Capabilities and management of Memory-related LogicalDevices.")
 9172              ] 
 9173           class CIM_Memory : CIM_StorageExtent
 9174           {
 9175                 [Override ("ErrorMethodology"),
 9176                  Description (
 9177           	  "ErrorMethodology for Memory is a string property that "
 9178 karl  1.1 	  "indicates whether parity or CRC algorithms, ECC or other "
 9179           	  "mechanisms are used. Details on the algorithm can also "
 9180           	  "be supplied."),
 9181                  MappingStrings {"MIF.DMTF|Physical Memory Array|001.7"}
 9182                 ]
 9183              string ErrorMethodology;
 9184                 [Description (
 9185           	  "The beginning address, referenced by an application or "
 9186           	  "operating system and mapped by a memory controller, for "
 9187           	  "this Memory object. The starting address is specified in "
 9188           	  "KBytes."),
 9189                  Units ("KiloBytes"),
 9190                  MappingStrings {"MIF.DMTF|Memory Array Mapped Addresses|001.3",
 9191                        "MIF.DMTF|Memory Device Mapped Addresses|001.4"}
 9192                 ]
 9193              uint64 StartingAddress;
 9194                 [Description (
 9195           	  "The ending address, referenced by an application or "
 9196           	  "operating system and mapped by a memory controller, for "
 9197           	  "this Memory object. The ending address is specified in "
 9198           	  "KBytes."),
 9199 karl  1.1        Units ("KiloBytes"),
 9200                  MappingStrings {"MIF.DMTF|Memory Array Mapped Addresses|001.4",
 9201                        "MIF.DMTF|Memory Device Mapped Addresses|001.5"}
 9202                 ]
 9203              uint64 EndingAddress;
 9204           	[Description (
 9205             	  "An integer enumeration describing the type of error that "
 9206           	  "occurred most recently. For example, single (value=6) or "
 9207             	  "double bit errors (7) can be specified using this property. "
 9208             	  "The values, 12-14, are undefined in the CIM Schema since in "
 9209           	  "DMI, they mix the semantics of the type of error and whether "
 9210           	  "it was correctable or not.  The latter is indicated in the "
 9211           	  "property, CorrectableError."),
 9212           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
 9213           	       "11", "12", "13", "14"},
 9214                  Values {"Other", "Unknown", "OK", "Bad Read", "Parity Error",
 9215           	       "Single-Bit Error", "Double-Bit Error", "Multi-Bit Error",
 9216           	       "Nibble Error", "Checksum Error", "CRC Error", "Undefined",
 9217                        "Undefined", "Undefined"}, 
 9218                  MappingStrings {"MIF.DMTF|Memory Device|005",
 9219                        "MIF.DMTF|Physical Memory Array|001.8"},
 9220 karl  1.1 	 ModelCorrespondence {"CIM_Memory.OtherErrorDescription"}
 9221                 ]
 9222              uint16 ErrorInfo;
 9223           	[Description (
 9224             	  "Free form string providing more information if the Error"
 9225             	  "Type property is set to 1, \"Other\". If not set to 1, this "
 9226             	  "string has no meaning."),
 9227           	 ModelCorrespondence {"CIM_Memory.ErrorInfo"}
 9228           	]
 9229              string OtherErrorDescription;
 9230           	[Description (
 9231             	  "Boolean indicating that the most recent error was "
 9232             	  "correctable. If the ErrorInfo property is equal to 3, " 
 9233             	  "\"OK\", then this property has no meaning."),
 9234            	 MappingStrings {"MIF.DMTF|Memory Device|005",
 9235                        "MIF.DMTF|Physical Memory Array|001.8"}
 9236                 ]
 9237              boolean CorrectableError;
 9238                 [Description (
 9239           	  "The time that the last memory error occurred. The type of "
 9240           	  "error is described by the ErrorInfo property. If the Error"
 9241 karl  1.1 	  "Info property is equal to 3, \"OK\", then this property has "
 9242           	  "no meaning.")
 9243                 ]
 9244              datetime ErrorTime;
 9245                 [Description (
 9246           	  "An integer enumeration indicating the memory access "
 9247           	  "operation that caused the last error. The type of error is "
 9248           	  "described by the ErrorInfo property. If the ErrorInfo "
 9249           	  "property is equal to 3, \"OK\", then this property "
 9250           	  "has no meaning."),
 9251           	 ValueMap {"1", "2", "3", "4", "5"}, 
 9252                  Values {"Other", "Unknown", "Read", "Write", "Partial Write"},
 9253                  MappingStrings {"MIF.DMTF|Memory Device|005",
 9254                        "MIF.DMTF|Physical Memory Array|001.10"}
 9255                 ]
 9256              uint16 ErrorAccess;
 9257                 [Description (
 9258           	  "The size of the data transfer in bits that caused the last "
 9259           	  "error. 0 indicates no error. If the ErrorInfo property "
 9260           	  "is equal to 3, \"OK\", then this property should be set "
 9261           	  "to 0."),
 9262 karl  1.1 	 Units ("Bits"),       
 9263                  MappingStrings {"MIF.DMTF|Memory Device|005",
 9264                        "MIF.DMTF|Physical Memory Array|001.11"}
 9265                 ]
 9266              uint32 ErrorTransferSize;
 9267                 [OctetString, Description (
 9268           	  "Data captured during the last erroneous mebmory access. "
 9269           	  "The data occupies the first n octets of the array necessary "
 9270           	  "to hold the number of bits specified by the ErrorTransferSize "
 9271           	  "property. If ErrorTransferSize is 0, then this property "
 9272           	  "has no meaning."),
 9273                  ArrayType ("Indexed"),   
 9274                  MappingStrings {"MIF.DMTF|Memory Device|005",
 9275                        "MIF.DMTF|Physical Memory Array|001.12"}
 9276                 ]
 9277              uint8 ErrorData[64];
 9278                 [Description (
 9279           	  "The ordering for data stored in the ErrorData property. "
 9280           	  "\"Least Significant Byte First\" (value=1) or "
 9281           	  "\"Most Significant Byte First\" (2) can be specified. If "
 9282           	  "ErrorTransferSize is 0, then this property has no meaning."),
 9283 karl  1.1        Values {"Unknown", "Least Significant Byte First",
 9284           	       "Most Significant Byte First"}      
 9285                 ]
 9286              uint16 ErrorDataOrder;
 9287                 [Description (
 9288           	  "Specifies the address of the last memory error. The type "
 9289           	  "of error is described by the ErrorInfo property. "
 9290           	  "If the ErrorInfo property is equal to 3, \"OK\", then this "
 9291           	  "property has no meaning."),     
 9292                  MappingStrings {"MIF.DMTF|Memory Device|005", 
 9293           	       "MIF.DMTF|Memory Device|005", 
 9294           	       "MIF.DMTF|Physical Memory Array|001.14"}
 9295                 ]
 9296              uint64 ErrorAddress;
 9297           	[Description (
 9298             	  "Boolean indicating whether the address information in "
 9299             	  "the property, ErrorAddress, is a system-level address (TRUE) " 
 9300             	  "or a physical address (FALSE). If the ErrorInfo property is "
 9301             	  "equal to 3, \"OK\", then this property has no meaning.")
 9302           	]
 9303              boolean SystemLevelAddress;
 9304 karl  1.1       [Description (
 9305           	  "Specifies the range, in bytes, to which the last error can be "
 9306           	  "resolved. For example, if error addresses are resolved to bit "
 9307             	  "11 (ie, on a typical page basis), then errors can be "
 9308           	  "resolved to 4K boundaries and this property is set to 4000. "
 9309             	  "If the ErrorInfo property is equal to 3, \"OK\", then this "
 9310             	  "property has no meaning."),
 9311                  Units ("Bytes"),
 9312                  MappingStrings {"MIF.DMTF|Memory Device|005",
 9313                        "MIF.DMTF|Physical Memory Array|001.15"}
 9314                 ]
 9315              uint64 ErrorResolution;
 9316           	[OctetString, Description (
 9317             	  "An array of octets holding additional error information. "
 9318             	  "An example is ECC Syndrome or the return of the check bits "
 9319             	  "if a CRC-based ErrorMethodology is used. In the latter case, "
 9320             	  "if a single bit error is recognized and the CRC algorithm "
 9321             	  "is known, it is possible to determine the exact bit that "
 9322             	  "failed.  This type of data (ECC Syndrome, Check Bit or "
 9323             	  "Parity Bit data, or other vendor supplied information) is "
 9324             	  "included in this field. If the ErrorInfo property is "
 9325 karl  1.1   	  "equal to 3, \"OK\", then AdditionalErrorData has no meaning."),
 9326            	 MappingStrings {"MIF.DMTF|Memory Device|005",
 9327                        "MIF.DMTF|Physical Memory Array|001.13"}
 9328           	]
 9329              uint8 AdditionalErrorData[64];
 9330           };
 9331           
 9332           // ===================================================================
 9333           // AssociatedMemory
 9334           // ===================================================================
 9335              [Association,
 9336               Description (
 9337                  "LogicalDevices may have Memory installed on them or "
 9338                  "otherwise associated with them - such as CacheMemory. "
 9339                  "This is made explicit in this association.")
 9340              ] 
 9341           class CIM_AssociatedMemory : CIM_Dependency
 9342           {
 9343                 [Override ("Antecedent"),
 9344                  Description ("Memory installed on or associated with a Device.")
 9345                 ]
 9346 karl  1.1    CIM_Memory REF Antecedent;
 9347                 [Override ("Dependent"),
 9348                  Description ("The LogicalDevice.")
 9349                 ]
 9350              CIM_LogicalDevice REF Dependent;
 9351           };
 9352           
 9353           // ===================================================================
 9354           // ComputerSystemMemory
 9355           // ===================================================================
 9356              [Association,
 9357               Aggregation,
 9358               Description (
 9359                  "Association indicating that memory is installed and required "
 9360                  "for the UnitaryComputerSystem to operate. At least one "
 9361                  "Memory StorageExtent is required. Note that this relationship "
 9362                  "inherits from the SystemDevice association, and therefore, "
 9363                  "the Memory StorageExtent is weak to the aggregating Unitary"
 9364                  "ComputerSystem.")
 9365              ] 
 9366           class CIM_ComputerSystemMemory : CIM_SystemDevice
 9367 karl  1.1 {
 9368                 [Override ("GroupComponent"),
 9369                  Aggregate,
 9370                  Description ("The UnitaryComputerSystem.")
 9371                 ]
 9372              CIM_UnitaryComputerSystem REF GroupComponent;
 9373                 [Override ("PartComponent"),
 9374                  Description (
 9375           	  "The Memory StorageExtent which is part of the "
 9376           	  "UnitaryComputerSystem.")
 9377                 ]
 9378              CIM_Memory REF PartComponent;
 9379           };
 9380           
 9381           // ===================================================================
 9382           // AssociatedProcessorMemory
 9383           // ===================================================================
 9384              [Association, 
 9385               Description (
 9386           	 "Associates the Processor and system Memory, or a Processor's "
 9387           	 "Cache. ") 
 9388 karl  1.1    ]
 9389           class CIM_AssociatedProcessorMemory : CIM_AssociatedMemory
 9390           { 
 9391           	[Override ("Dependent"), 
 9392           	 Description (
 9393           	  "The Processor that accesses the Memory or uses the Cache.")
 9394           	]
 9395              CIM_Processor REF Dependent; 
 9396           	[Description (
 9397           	  "Speed of the bus, in MHertz, between the Processor and "
 9398           	  "Memory. "), 
 9399           	 Units ("MegaHertz")
 9400           	]
 9401              uint32 BusSpeed;
 9402           };
 9403           
 9404           // ===================================================================
 9405           // NonVolatileStorage
 9406           // ===================================================================
 9407              [Description (
 9408           	"Capabilities and management of NV Storage. Non-volatile memory "
 9409 karl  1.1 	"natively includes flash and ROM storage. In addition, NV memory can be "
 9410           	"BasedOn VolatileStorage, if the volatile memory is backed by a Battery. "
 9411           	"This scenario would be completely described by an instance of the "
 9412           	"AssociatedBattery relationship, referencing the NonVolatileStorage as "
 9413           	"the Dependent and the Battery as the Antecedent, and an instance of the "
 9414           	"BasedOn relationship, referencing the NonVolatileStorage as the "
 9415           	"Dependent and the VolatileStorage as the Antecedent.")
 9416           	]
 9417           class CIM_NonVolatileStorage : CIM_Memory
 9418           {
 9419                 [Description ("Indicating that the NV storage is writeable.")]
 9420              boolean IsWriteable;
 9421                 [Description (
 9422                   "Boolean indicating that at least some portion of the "
 9423                   "NonVolatileStorage is writeable by applications.")
 9424                 ]
 9425              boolean ApplicationWriteable;
 9426                 [Description (
 9427                   "When at least some portion of the NonVolatileStorage is "
 9428                   "writeable (ApplicationWriteable property = TRUE), StartAddress"
 9429                   "forApplcationWrite indicates the starting address for "
 9430 karl  1.1         "application data. If the ApplicationWriteable property is "
 9431                   "FALSE, this property is undefined."), 
 9432                  ModelCorrespondence {
 9433                        "CIM_NonVolatileStorage.ApplicationWriteable"}
 9434                 ]
 9435              uint64 StartAddressForApplicationWrite;
 9436                 [Description (
 9437                   "When at least some portion of the NonVolatileStorage is "
 9438                   "writeable (ApplicationWriteable property = TRUE), Application"
 9439                   "WritableSize indicates the number of bits available for "
 9440                   "application data. If the ApplicationWriteable property is "
 9441                   "FALSE, this property is undefined."), 
 9442                  Units ("Bits"), 
 9443                  ModelCorrespondence {
 9444                        "CIM_NonVolatileStorage.ApplicationWriteable"}
 9445                 ]
 9446              uint64 ApplicationWriteableSize;
 9447           };
 9448           
 9449           // ===================================================================
 9450           // BIOSLoadedInNV
 9451 karl  1.1 // ===================================================================
 9452              [Association,
 9453               Description (
 9454                  "A link between BIOSElement and NonVolatileStorage where "
 9455                  "the BIOS is loaded.")
 9456              ] 
 9457           class CIM_BIOSLoadedInNV : CIM_Dependency
 9458           {
 9459                 [Override ("Antecedent"),
 9460                  Description ("The non-volatile storage.")
 9461                 ]
 9462              CIM_NonVolatileStorage REF Antecedent;
 9463                 [Override ("Dependent"),
 9464                  Description ("The BIOS stored in the NonVolatile Extent.")
 9465                 ]
 9466              CIM_BIOSElement REF Dependent;
 9467                 [Description (
 9468           	  "The starting address where the BIOS is located in "
 9469           	  "non-volatile storage.")
 9470                 ]
 9471              uint64 StartingAddress;
 9472 karl  1.1       [Description (
 9473           	  "The ending address where the BIOS is located in "
 9474           	  "non-volatile storage.")
 9475                 ]
 9476              uint64 EndingAddress;        
 9477           };
 9478           
 9479           // ===================================================================
 9480           // VolatileStorage
 9481           // ===================================================================
 9482              [Description ("Capabilities and management of Volatile Storage.")] 
 9483           class CIM_VolatileStorage : CIM_Memory
 9484           {
 9485                 [Description (
 9486           	  "Indicates whether this Memory can be cached or not."),
 9487                  MappingStrings {"MIF.DMTF|System Resource Memory Info|002"}
 9488                 ]
 9489              boolean Cacheable;
 9490                 [Description (
 9491           	  "An enumeration indicating the cache type that is "
 9492           	  "compatible with this Memory. For example, 4 indicates "
 9493 karl  1.1 	  "write-through cache.  If the Cacheable property is "
 9494           	  "set to false, then this property does not have meaning and "
 9495           	  "should be set to 5, \"Not Applicable\"."),
 9496                  Values {"Other", "Unknown", "Write-Back", "Write-Through",
 9497           	       "Not Applicable"},
 9498                  MappingStrings {"MIF.DMTF|System Resource Memory Info|002"}
 9499                 ]
 9500              uint16 CacheType;
 9501           };
 9502           
 9503           // ===================================================================
 9504           // CacheMemory
 9505           // ===================================================================
 9506              [Description (
 9507           	"Capabilities and management of Cache Memory. Cache memory is "
 9508           	"dedicated or allocated RAM that a Processor searches first for "
 9509           	"data, before going to 'regular' memory. CacheMemory is used to "
 9510           	"speed up the delivery of data to a Processor. It is usually "
 9511           	"described by its closeness to the Processor (for example, Primary "
 9512           	"or Secondary Cache).\n"
 9513           	"If a DiskDrive includes RAM allocated for holding the disk's most "
 9514 karl  1.1 	"recently read and/or adjacent data (in order to speed up retrieval), "
 9515           	"this also would be modeled as CacheMemory. Note that CacheMemory is "
 9516           	"NOT operating system or application level buffers but actual "
 9517           	"RAM allocated for caching data for a Processor, from a hard disk, etc.")
 9518           	]
 9519           class CIM_CacheMemory : CIM_Memory
 9520           {
 9521                 [Description (
 9522           	  "Defines whether this is the Primary (value=3), Secondary "
 9523           	  "(value=4) or Tertiary (value=5) Cache. Also, \"Other\" (1), "
 9524           	  "\"Unknown\" (2) and \"Not Applicable\" (6) can be defined."),
 9525           	 ValueMap {"1", "2", "3", "4", "5", "6"},
 9526                  Values {"Other", "Unknown", "Primary", "Secondary", "Tertiary", 
 9527                        "Not Applicable"},
 9528                  MappingStrings {"MIF.DMTF|System Cache|006"}
 9529                 ]
 9530              uint16 Level;
 9531                 [Description (
 9532           	  "Defines whether this is write-back (value=3) or write-through "
 9533           	  "(value=4) Cache, or whether this information \"Varies with "
 9534                   "Address\" (5) or is defined individually for each I/O (6). "
 9535 karl  1.1         "Also, \"Other\" (1) and \"Unknown\" (2) can be specified."),         
 9536           	 ValueMap {"1", "2", "3", "4", "5", "6"},
 9537                  Values {"Other", "Unknown", "Write Back", "Write Through",
 9538           	       "Varies with Address", "Determination Per I/O"},
 9539                  MappingStrings {"MIF.DMTF|System Cache|006"}
 9540                 ]
 9541              uint16 WritePolicy;
 9542                 [Description (
 9543           	  "Defines whether this is for instruction caching (value=3), "
 9544           	  "data caching (value=4) or both (value=5, \"Unified\"). "
 9545           	  "Also, \"Other\" (1) and \"Unknown\" (2) can be defined."),
 9546           	 ValueMap {"1", "2", "3", "4", "5"},
 9547                  Values {"Other", "Unknown", "Instruction", "Data", "Unified"},
 9548                  MappingStrings {"MIF.DMTF|System Cache|006"}
 9549                 ]
 9550              uint16 CacheType;
 9551                 [Description (
 9552           	  "Size, in bytes, of a single cache bucket or line."),
 9553                  Units ("Bytes"),
 9554                  MappingStrings {"MIF.DMTF|System Cache|006"}
 9555                 ]
 9556 karl  1.1    uint32 LineSize;
 9557                 [Description (
 9558           	  "An integer enumeration describing the algorithm to "
 9559           	  "determine which cache lines or buckets should be re-used."),
 9560           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
 9561                  Values {"Other", "Unknown", "Least Recently Used (LRU)",
 9562           	       "First In First Out (FIFO)", "Last In First Out (LIFO)",
 9563             	       "Least Frequently Used (LFU)", 
 9564           	       "Most Frequently Used (MFU)", 
 9565                        "Data Dependent Multiple Algorithms"},
 9566                  MappingStrings {"MIF.DMTF|System Cache|006"}
 9567                 ]
 9568              uint16 ReplacementPolicy;
 9569                 [Description (
 9570           	  "Policy that shall be employed by the Cache for handling "
 9571           	  "read requests. For example, \"Read\", \"Read-Ahead\" or "
 9572           	  "both can be specified using the values, 3, 4 or 5, "
 9573           	  "respectively. If the read policy is determined individually "
 9574                   "(ie, for each request), then the value 6 (\"Determination "
 9575                   "per I/O\") should be specified. \"Other\" (1) and "
 9576                   "\"Unknown\" (2) are also valid values."),         
 9577 karl  1.1 	 ValueMap {"1", "2", "3", "4", "5", "6"},
 9578                  Values {"Other", "Unknown", "Read", "Read-Ahead", 
 9579           	       "Read and Read-Ahead", "Determination Per I/O"},
 9580                  MappingStrings {"MIF.DMTF|System Cache|006"}
 9581                 ]
 9582              uint16 ReadPolicy;
 9583                 [Description (
 9584           	  "Maximum amount of time, in seconds, dirty lines or "
 9585           	  "buckets may remain in the Cache before they are flushed. "
 9586           	  "A value of zero indicated that a cache flush is not "
 9587           	  "controlled by a flushing timer."), 
 9588                  Units ("Seconds"),
 9589                  MappingStrings {"MIF.DMTF|System Cache|006"}
 9590                 ]
 9591              uint32 FlushTimer;
 9592                 [Description (
 9593           	  "An integer enumeration defining the system cache "
 9594           	  "associativity. For example, 6 indicates a fully associative "
 9595           	  "cache."),
 9596           	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
 9597                  Values {"Other", "Unknown", "Direct Mapped", 
 9598 karl  1.1 	       "2-way Set-Associative",
 9599           	       "4-way Set-Associative", "Fully Associative",
 9600           		   "8-way Set-Associative", "16-way Set-Associative"},
 9601                  MappingStrings {"MIF.DMTF|System Cache|006"}
 9602                 ]
 9603              uint16 Associativity;
 9604           };
 9605           
 9606           // ==============================================================
 9607           // DiskGroup 
 9608           // ==============================================================
 9609              [Description (
 9610                  "A DiskGroup is a named collection of DiskDrives and the "
 9611                  "StorageExtent(s) accessed via those Drives. The "
 9612                  "collection is used to limit the BasedOn relationships of "
 9613                  "the Extents in the DiskGroup. Extents in the Group can NOT "
 9614                  "be BasedOn storage accessed from Drives outside of the "
 9615                  "Group. For example, a SoftwareVolume created 'within the "
 9616                  "DiskGroup' is restricted to be completely accessed using "
 9617                  "Drives in the Group. Actions such as 'replicate' or "
 9618                  "'migrate' on an Extent must operate within the scope of "
 9619 karl  1.1        "the Extents present in the DiskGroup.")
 9620              ]
 9621           class CIM_DiskGroup : CIM_CollectionOfMSEs
 9622           {
 9623                 [Override ("CollectionID"), Key ]
 9624              string CollectionID;
 9625           };
 9626           
 9627           // ===================================================================
 9628           // DriveInDiskGroup
 9629           // ===================================================================
 9630              [Association, 
 9631               Aggregation, 
 9632               Description (
 9633                  "CIM_DriveInDiskGroup defines the DiskDrive(s) that participate "
 9634                  "in the Group.")
 9635              ]
 9636           class CIM_DriveInDiskGroup : CIM_CollectedMSEs
 9637           {
 9638                 [Override ("Collection"), Aggregate, Description (
 9639                   "The DiskGroup. A Drive is a member of at most one DiskGroup."), 
 9640 karl  1.1        Max(1)
 9641                 ]
 9642              CIM_DiskGroup REF Collection;
 9643                 [Override ("Member"), 
 9644                  Description ("The DiskDrive in the Group.") ]
 9645              CIM_DiskDrive REF Member;
 9646           };
 9647           
 9648           // ===================================================================
 9649           // ExtentInDiskGroup
 9650           // ===================================================================
 9651              [Association, 
 9652               Aggregation, 
 9653               Description (
 9654                  "CIM_ExtentInDiskGroup defines the StorageExtent(s) that are "
 9655                  "located within and restricted by the Group.")
 9656              ]
 9657           class CIM_ExtentInDiskGroup : CIM_CollectedMSEs
 9658           {
 9659                 [Override ("Collection"), Aggregate, 
 9660                  Description (
 9661 karl  1.1         "The DiskGroup. An Extent is defined within at most one Disk"
 9662                   "Group."), 
 9663                  Max(1)
 9664                 ]
 9665              CIM_DiskGroup REF Collection;
 9666                 [Override ("Member"), Description (
 9667                   "The StorageExtent restricted by and participating in the "
 9668                   "Group.")
 9669                 ]
 9670              CIM_StorageExtent REF Member;
 9671           };
 9672           
 9673           // ===================================================================
 9674           // GroupInDiskGroup
 9675           // ===================================================================
 9676              [Association, 
 9677               Aggregation, 
 9678               Description (
 9679                  "CIM_GroupInDiskGroup describes that a DiskGroup may be "
 9680                  "divided into smaller named Collections.")
 9681              ]
 9682 karl  1.1 class CIM_GroupInDiskGroup : CIM_CollectedCollections
 9683           {
 9684                 [Override ("Collection"), Aggregate, Description (
 9685                   "The DiskGroup that is subsetted into smaller Collections."), 
 9686                  Max(1)
 9687                 ]
 9688              CIM_DiskGroup REF Collection;
 9689                 [Override ("CollectionInCollection"), Description (
 9690                   "The DiskGroup that is a subset of the larger Group.")
 9691                 ]
 9692              CIM_DiskGroup REF CollectionInCollection;
 9693           };
 9694           
 9695           // ====================================================================
 9696           // AlarmDevice 
 9697           // ===================================================================
 9698              [Description (
 9699           	 "An AlarmDevice is a type of Device that emits audible or " 
 9700           	 "visible indications related to a problem situation. ")
 9701              ]
 9702           class CIM_AlarmDevice : CIM_LogicalDevice
 9703 karl  1.1 {
 9704           	[Description ("Boolean indicating that the Alarm is audible. ")]
 9705              boolean AudibleAlarm;
 9706           	[Description ("Boolean indicating that the Alarm is visible. ")]
 9707              boolean VisibleAlarm;
 9708                 [Description (
 9709                   "Boolean indicating that the Alarm causes motion of the "
 9710                   "Device.")
 9711                 ]
 9712              boolean MotionAlarm;
 9713           	[Description (
 9714           	  "Urgency is an enumerated value that indicates the relative " 
 9715           	  "frequency at which the Alarm flashes, vibrates and/or emits "
 9716           	  "audible tones. "), 
 9717           	 Values {"Unknown", "Other", "Not Supported", "Informational", 
 9718           	       "Non-Critical", "Critical", "Unrecoverable"}
 9719           	]
 9720              uint16 Urgency;
 9721                 [Description ("The current state of the alarm."),
 9722                  Values {"Unknown", "Off", "Steady", "Alternating"}
 9723                 ]
 9724 karl  1.1    uint16 AlarmState;
 9725                 [Description (
 9726                   "True indicates that the audio of an AlarmState indicator "
 9727                   "has been disabled (i.e. muted). A disabled state here "
 9728                   "does not imply that the AlarmState is off.")
 9729                 ]
 9730              boolean AudioIndicatorIsDisabled;
 9731                 [Description (
 9732                   "True indicates that the visual of an AlarmState indicator "
 9733                   "has been disabled (i.e. dimmed). A disabled state here "
 9734                   "does not imply that the AlarmState is off.")
 9735                 ]
 9736              boolean VisualIndicatorIsDisabled;
 9737                 [Description (
 9738                   "True indicates that the motion of an AlarmState indicator "
 9739                   "has been disabled (i.e. stopped). A disabled state here "
 9740                   "does not imply that the AlarmState is off.")
 9741                 ]
 9742              boolean MotionIndicatorIsDisabled;
 9743                 [Description (
 9744                   "SetAlarmState is a method for defining the current state "
 9745 karl  1.1         "of the Alarm. Its input parameter, RequestedAlarmState, is "
 9746                   "specified using the Values list of AlarmDevice's AlarmState "
 9747                   "property. SetAlarmState returns 0 if the request is "
 9748                   "successfully implemented, 1 if the specified RequestedAlarm"
 9749                   "State is not supported, and some other value if any other "
 9750                   "error occurred. In a subclass, the set of possible return "
 9751                   "codes should be specified using a ValueMap qualifier on the "
 9752                   "method. The strings to which the ValueMap contents are "
 9753                   "'translated' should be specified as a Values array "
 9754                   "qualifier.")
 9755                 ]
 9756              uint32 SetAlarmState (
 9757               [IN, Values {"Unknown", "Off", "Steady", "Alternating"}] 
 9758               uint16 RequestedAlarmState);
 9759                 [Description (
 9760                   "SetAlarmIndicator is a method for enabling or disabling the "
 9761                   "indicator of the AlarmState function, without changing the "
 9762                   "current AlarmState. It has 3 input parameters, Audio"
 9763                   "Indicator, VisualIndicator and MotionIndicator. For all of "
 9764                   "the input parameters, a value of 0 indicates no change to "
 9765                   "the AlarmState indicator, 1 indicates Disable, and 2 "
 9766 karl  1.1         "indicates Enable. The method returns 0 if the request is "
 9767                   "successfully implemented, 1 if the specified request is not "
 9768                   "supported, and some other value if any other error occurred. "
 9769                   "In a subclass, the set of possible return codes should be "
 9770                   "specified using a ValueMap qualifier on the method. The "
 9771                   "strings to which the ValueMap contents are 'translated' "
 9772                   "should be specified as a Values array qualifier.")
 9773                 ]
 9774              uint32 SetAlarmIndicator ([IN, 
 9775               Values {"No Change", "Disable", "Enable"}] 
 9776               uint16 AudioIndicator, 
 9777               [IN, Values {"No Change", "Disable", "Enable"}] 
 9778               uint16 VisualIndicator, 
 9779               [IN, Values {"No Change", "Disable", "Enable"}] 
 9780               uint16 MotionIndicator);
 9781                 [Description (
 9782           	  "SetUrgency is a method for defining the desired urgency " 
 9783           	  "level for the Alarm. Its input parameter, RequestedUrgency, "
 9784           	  "is specified using the Values list of AlarmDevice's Urgency "
 9785           	  "property. SetUrgency returns 0 if the request is successfully "
 9786           	  "implemented, 1 if the specified Urgency level is not "
 9787 karl  1.1 	  "supported, and some other value if any other error occurred. "
 9788                   "In a subclass, the set of possible return codes should be "
 9789                   "specified using a ValueMap qualifier on the method. The "
 9790                   "strings to which the ValueMap contents are 'translated' "
 9791                   "should be specified as a Values array qualifier.")
 9792           	]
 9793              uint32 SetUrgency ([IN, ValueMap {"1", "3", "4", "5", "6"}, 
 9794               Values {"Other", "Informational", "Non-Critical", "Critical", 
 9795               "Unrecoverable"}] uint16 RequestedUrgency);
 9796           };
 9797           
 9798           // ===================================================================
 9799           // AssociatedAlarm 
 9800           // ===================================================================
 9801              [Association, 
 9802               Description (
 9803           	 "LogicalDevices may have one or more AlarmDevices " 
 9804           	 "associated with them, in order to indicate problem situations. "
 9805           	 "This relationship is indicated by the AssociatedAlarm "
 9806           	 "dependency. ")
 9807              ]
 9808 karl  1.1 class CIM_AssociatedAlarm : CIM_Dependency
 9809           {
 9810           	[Override ("Antecedent"), 
 9811           	 Description ("The AlarmDevice. ")
 9812           	] 
 9813              CIM_AlarmDevice REF Antecedent;
 9814           	[Override ("Dependent"), 
 9815           	 Description ("The LogicalDevice that is alarmed. ")
 9816           	]
 9817              CIM_LogicalDevice REF Dependent;
 9818           };
 9819           
 9820           // ===================================================================
 9821           // Door
 9822           // ===================================================================
 9823              [Description (
 9824                  "A Door is the abstraction of hardware providing access to "
 9825                  "the internal componentry of a System. When a Door is 'opened', "
 9826                  "typically all accessible, moving components are stopped or "
 9827                  "suspended to prevent physical harm.")
 9828              ]
 9829 karl  1.1 class CIM_Door : CIM_LogicalDevice
 9830           {
 9831                 [Description (
 9832                   "Boolean indicating the 'open' (TRUE) or 'closed' (FALSE) "
 9833                   "status of the Door.")
 9834                 ]
 9835              boolean Open;
 9836                 [Description (
 9837                   "Boolean indicating that the Door is 'locked' (TRUE) or "
 9838                   "'unlocked' (FALSE). When the Door is locked, access to the "
 9839                   "componentry is prevented, without the use of a physical "
 9840                   "key or the issuance of a software unlock command.")
 9841                 ]
 9842              boolean Locked;
 9843                 [Description (
 9844                   "When a Door is 'Open', all accessible, moving componentry "
 9845                   "and Device operation are typically stopped. The Timeout "
 9846                   "property provides a mechanism to event on a Door left open "
 9847                   "for a period of time (in seconds) exceeding the property's "
 9848                   "value."), 
 9849                  Units ("Seconds")
 9850 karl  1.1       ]
 9851              uint32 Timeout;
 9852                 [Description ("Date and time that the Door was last opened.") ]
 9853              datetime LastOpened;
 9854                 [Description (
 9855                   "The Capabilities of the Door. For example, information on "
 9856                   "whether the Door is \"Host System Lockable\" (value=2) and/or "
 9857                   "whether a key is available (value=3) are specified in this "
 9858                   "property. The value 4, \"All Drives Dismounted Before "
 9859                   "Access\", pertains to a Door on a StorageLibrary or set of "
 9860                   "drive bays. If specified for the Door, it means that it can "
 9861                   "not be opened unless all Media are first unloaded from the "
 9862                   "accessible MediaAccessDevices."), 
 9863                  Values {"Unknown", "Other", "Host System Lockable", 
 9864                        "Physical Key", "All Drives Dismounted Before Access"}
 9865                 ]
 9866              uint16 Capabilities[];
 9867           };
 9868           
 9869           // ===================================================================
 9870           // DoorAccessToPhysicalElement 
 9871 karl  1.1 // ===================================================================
 9872              [Association, 
 9873               Description (
 9874                  "Doors provide access to PhysicalElements for hot swap, repair "
 9875                  "and similar activities. The entities accessed through a Door "
 9876                  "are indicated in this relationship.")
 9877              ]
 9878           class CIM_DoorAccessToPhysicalElement : CIM_Dependency
 9879           {
 9880                 [Override ("Antecedent"), 
 9881                  Description ("The Door that provides access.")
 9882                 ]
 9883              CIM_Door REF Antecedent;
 9884                 [Override ("Dependent"), 
 9885                  Description ("The PhysicalElement that is accessed.")
 9886                 ]
 9887              CIM_PhysicalElement REF Dependent;
 9888           };
 9889           
 9890           // ===================================================================
 9891           // DoorAccessToDevice 
 9892 karl  1.1 // ===================================================================
 9893              [Association, 
 9894               Description (
 9895                  "Doors provide access to PhysicalElements for hot swap, repair "
 9896                  "and similar activities. In turn, PhysicalElements 'Realize' "
 9897                  "LogicalDevices. Since it may not be possible to define all the "
 9898                  "PhysicalElements that exist, and optimizing the retrieval of "
 9899                  "Devices 'behind' the Door may be desirable, the DoorAccessTo"
 9900                  "Device association provides a shortcut mechanism for defining "
 9901                  "the LogicalDevices ('hardware') accessed through a Door.")
 9902              ]
 9903           class CIM_DoorAccessToDevice : CIM_Dependency
 9904           {
 9905                 [Override ("Antecedent"), 
 9906                  Description ("The Door that provides access.")
 9907                 ]
 9908              CIM_Door REF Antecedent;
 9909                 [Override ("Dependent"), 
 9910                  Description ("The LogicalDevice that is accessed.")
 9911                 ]
 9912              CIM_LogicalDevice REF Dependent;
 9913 karl  1.1 };
 9914           
 9915           // ===================================================================
 9916           // MediaTransferDevice
 9917           // ===================================================================
 9918              [Description (
 9919                  "A MediaTransferDevice represents hardware that moves Physical"
 9920                  "Media. It is a superclass for Devices like PickerElement, "
 9921                  "ChangerDevice and InterLibraryPort.")
 9922              ]
 9923           class CIM_MediaTransferDevice : CIM_LogicalDevice
 9924           {
 9925           };
 9926           
 9927           // ===================================================================
 9928           // PickerElement
 9929           // ===================================================================
 9930              [Description (
 9931                  "PickerElements represent hardware used to pick or place "
 9932                  "PhysicalMedia from/into StorageMediaLocations.")
 9933              ]
 9934 karl  1.1 class CIM_PickerElement : CIM_MediaTransferDevice
 9935           {
 9936                 [Description (
 9937                   "The maximum time in seconds for a PickerElement to grab "
 9938                   "a PhysicalMedia from a StorageMediaLocation, once the "
 9939                   "Picker has arrived at that Location. The maximum time "
 9940                   "interval for moving a Media from one point to another is "
 9941                   "the sum of the PickerElement's MaxPickTime, the Changer"
 9942                   "Device's MaxTransitTime and the PickerElement's MaxPutTime."), 
 9943                  Units ("Seconds")
 9944                 ]
 9945              uint32 MaxPickTime;
 9946                 [Description (
 9947                   "The maximum time in seconds for a PickerElement to place "
 9948                   "a PhysicalMedia into a StorageMediaLocation, once the "
 9949                   "Picker has arrived at that Location. The maximum time "
 9950                   "interval for moving a Media from one point to another is "
 9951                   "the sum of the PickerElement's MaxPickTime, the Changer"
 9952                   "Device's MaxTransitTime and the PickerElement's MaxPutTime."), 
 9953                  Units ("Seconds")
 9954                 ]
 9955 karl  1.1    uint32 MaxPutTime;
 9956                 [Description (
 9957                   "String describing the location in the StorageLibrary "
 9958                   "where the Picker is currently positioned.")
 9959                 ] 
 9960              string CellLocation;
 9961           
 9962           };
 9963           
 9964           // ===================================================================
 9965           // ChangerDevice 
 9966           // ===================================================================
 9967              [Description (
 9968                  "ChangerDevices represent hardware that moves PhysicalMedia "
 9969                  "within a System, such as a StorageLibrary.")
 9970              ]
 9971           class CIM_ChangerDevice : CIM_MediaTransferDevice
 9972           {
 9973                 [Description (
 9974                   "The maximum time in seconds between a PickerElement pick "
 9975                   "and place. It should be reported as the transit time "
 9976 karl  1.1         "between the two most physically distant StorageMedia"
 9977                   "Locations in a System. The maximum time interval for "
 9978                   "moving a Media from one point to another is the sum of "
 9979                   "the PickerElement's MaxPickTime, the ChangerDevice's Max"
 9980                   "TransitTime and the PickerElement's MaxPutTime."), 
 9981                  Units ("Seconds")
 9982                 ]
 9983              uint32 MaxTransitTime;
 9984                 [Description (
 9985                   "Boolean set to TRUE if the Changer supports media flipping. "
 9986                   "Media needs to be flipped when multi-sided PhysicalMedia "
 9987                   "are placed into a MediaAccessDevice that does NOT support "
 9988                   "dual sided access.")
 9989                 ]
 9990              boolean MediaFlipSupported;
 9991                 [Description (
 9992                   "Boolean set to TRUE if an audit is currently being performed "
 9993                   "by the Changer.")
 9994                 ]
 9995              boolean AuditInProgress;
 9996                 [Description (
 9997 karl  1.1         "A count of the number of audits performed by the Changer."), 
 9998                  Counter
 9999                 ]
10000              uint64 AuditsPerformed;
10001           };
10002           
10003           // ===================================================================
10004           // PickerForChanger 
10005           // ===================================================================
10006              [Association, 
10007               Description (
10008                  "PickerForChanger indicates the PickerElement(s) that access "
10009                  "StorageMediaLocations and deliver PhysicalMedia to the Changer, "
10010                  "for movement through the System. A Changer may have several "
10011                  "Pickers for faster exchange of Media.")
10012              ]
10013           class CIM_PickerForChanger : CIM_Dependency
10014           {
10015                 [Override ("Antecedent"), 
10016                  Description (
10017                   "The PickerElement that accesses StorageMediaLocations "
10018 karl  1.1         "to deliver Media to the Changer.")
10019                 ]
10020              CIM_PickerElement REF Antecedent;
10021                 [Override ("Dependent"), 
10022                  Max (1), 
10023                  Description ("The ChangerDevice.")
10024                 ]
10025              CIM_ChangerDevice REF Dependent;
10026           };
10027           
10028           // ===================================================================
10029           // LimitedAccessPort 
10030           // ===================================================================
10031              [Description (
10032                  "LimitedAccessPorts represent hardware that transports Physical"
10033                  "Media into or out of a System, such as a StorageLibrary. They "
10034                  "are identified as 'limited' since these Ports do not provide "
10035                  "access to ALL the PhysicalMedia or StorageMediaLocations in a "
10036                  "Library, but only to a subset.")
10037              ]
10038           class CIM_LimitedAccessPort : CIM_MediaTransferDevice
10039 karl  1.1 {
10040                 [Description (
10041                   "Boolean indicating that the Port is 'locked' (TRUE) or "
10042                   "'unlocked' (FALSE). When the Port is locked, access its Media "
10043                   "Locations is prevented without the use of a physical key, "
10044                   "front panel activity or the issuance of a software unlock "
10045                   "command.")
10046                 ]
10047              boolean Locked;
10048                 [Description (
10049                   "When a Port is 'Extended' or 'open' (value=TRUE), its Storage"
10050                   "MediaLocations are accessible to a human operator. If not "
10051                   "extended (value=FALSE), the Locations are accessible to a "
10052                   "PickerElement.")
10053                 ]
10054              boolean Extended;
10055                 [Description (
10056                   "When a LimitedAccessPort is 'Extended', all related media-"
10057                   "transfer componentry may be stopped. The ExtendTimeout "
10058                   "property provides a mechanism to event on a Port left open "
10059                   "for a period of time (in seconds) exceeding the property's "
10060 karl  1.1         "value."), 
10061                  Units ("Seconds")
10062                 ]
10063              uint32 ExtendTimeout;
10064                 [Description ("Date and time that the Port was last extended.") ]
10065              datetime LastExtended;
10066                 [Counter, Description (
10067                   "The number of times that the LimitedAccessPort was used to "
10068                   "move a PhysicalMedia into the System/StorageLibrary.")
10069                 ]
10070              uint64 ImportCount;
10071                 [Counter, Description (
10072                   "The number of times that the LimitedAccessPort was used to "
10073                   "move a PhysicalMedia out of the System/StorageLibrary.")
10074                 ]
10075              uint64 ExportCount;
10076                 [Description (
10077                   "An enumeration expressing whether the Port is used for "
10078                   "import into the Library/System which scopes and names it " 
10079                   "(value=1), export from the Library/System (value=2), or "
10080                   "both (value=3)."),
10081 karl  1.1        Values {"Unknown", "Import", "Export", "Both Import and Export"}
10082                 ]
10083              uint16 Direction;
10084           
10085           };
10086           
10087           // ===================================================================
10088           // InterLibraryPort 
10089           // ===================================================================
10090              [Description (
10091                  "InterLibraryPorts represent hardware that transports Physical"
10092                  "Media between connected StorageLibraries. The LibraryExchange "
10093                  "association identifies the connected Libraries, by identifying "
10094                  "the connected InterLibraryPorts.")
10095              ]
10096           class CIM_InterLibraryPort : CIM_MediaTransferDevice
10097           {
10098                 [Description (
10099                   "Date and time that the Port was last accessed by its "
10100                   "System/StorageLibrary. This value may be different "
10101                   "than that specified for the Port(s) to which this Inter"
10102 karl  1.1         "LibraryPort is connected. Connected Ports are identified "
10103                   "using the LibraryExchange association.")
10104                 ]
10105              datetime LastAccessed;
10106                 [Counter, Description (
10107                   "The number of times that the InterLibraryPort was used to "
10108                   "move a PhysicalMedia into the System/StorageLibrary.")
10109                 ]
10110              uint64 ImportCount;
10111                 [Counter, Description (
10112                   "The number of times that the InterLibraryPort was used to "
10113                   "move a PhysicalMedia out of the System/StorageLibrary.")
10114                 ]
10115              uint64 ExportCount;
10116                    [Description (
10117                   "An enumeration expressing whether the Port is used for "
10118                   "import into the Library/System which scopes and names it " 
10119                   "(value=1), export from the Library/System (value=2), or "
10120                   "both (value=3)."),
10121                  Values {"Unknown", "Import", "Export", "Both Import and Export"}
10122                 ]
10123 karl  1.1    uint16 Direction;
10124           };
10125           
10126           // ===================================================================
10127           // LibraryExchange 
10128           // ===================================================================
10129              [Association, 
10130               Description (
10131                  "LibraryExchange indicates that two StorageLibraries are "
10132                  "connected through their InterLibraryPorts.")
10133              ]
10134           class CIM_LibraryExchange : CIM_Dependency
10135           {
10136                 [Override ("Antecedent"), 
10137                  Description ("The InterLibraryPort of one StorageLibrary.")
10138                 ]
10139              CIM_InterLibraryPort REF Antecedent;
10140                 [Override ("Dependent"), 
10141                  Description ("The InterLibraryPort of the connected Library.")
10142                 ]
10143              CIM_InterLibraryPort REF Dependent;
10144 karl  1.1       [Description (
10145                   "Enumeration indicating whether the Antecedent (value=1), "
10146                   "Dependent (value=2), or neither Library (value=3) currently has "
10147                   "access to the Port."), 
10148                  Values {"Unknown", "Antecedent", "Dependent", "Neither"}
10149                 ]
10150              uint16 CurrentlyAccessingPort;
10151           };
10152           
10153           // ===================================================================
10154           // LabelReader 
10155           // ===================================================================
10156              [Description (
10157                  "LabelReaders represent hardware capable of scanning or reading "
10158                  "a physical label or the NonVolatileMemory on a PhysicalMedia. "
10159                  "Examples of labels include barcode and OCR tags.")
10160              ]
10161           class CIM_LabelReader : CIM_LogicalDevice
10162           {
10163                 [Description (
10164                   "An array of enumerated integers describing the formats of "
10165 karl  1.1         "the labels that can be read or scanned by the LabelReader. "
10166                   "The values specified for this property correspond to "
10167                   "those defined for CIM_PhysicalMedia.LabelFormats."), 
10168                   Values {"Barcode", "Radio Frequency Identification", 
10169                        "OCR (Optical Character Recognition)", 
10170                        "MICR (Magnetic Ink Character Recognition)",
10171                        "7 Character Barcode", "9 Character Barcode"},
10172                  ModelCorrespondence {"CIM_PhysicalMedia.LabelFormats"}
10173                 ]
10174              uint16 SupportedFormats[];
10175                 [Description (
10176                   "The technology used by the LabelReader. One entry of the "
10177                   "Values array requires some explanation - \"Memory Reader\". "
10178                   "The latter describes the ability to access memory in a Physical"
10179                   "Media's packaging (for example, memory on an AIT tape). The "
10180                   "existence of this Memory is indicated by the MemoryWithMedia "
10181                   "association on the physical side, or by AssociatedMemory on "
10182                   "the logical side."), 
10183                  Values {"Unknown", "Other", "Laser", "Infrared", "RF", 
10184                        "Camera", "Memory Reader"}
10185                 ]
10186 karl  1.1    uint16 Technology;
10187           };
10188           
10189           // ===================================================================
10190           // AssociatedLabelReader
10191           // ===================================================================
10192              [Association, 
10193               Description (
10194                  "A LogicalDevice may use or require one or more LabelReaders, to "
10195                  "scan barcodes or otherwise identify entities. This relationship "
10196                  "is described by the AssociatedLabelReader dependency. ")
10197              ]
10198           class CIM_AssociatedLabelReader : CIM_Dependency
10199           {
10200                 [Override ("Antecedent"), 
10201                  Description ("The LabelReader.")
10202                 ]
10203              CIM_LabelReader REF Antecedent;
10204                 [Override ("Dependent"), 
10205                  Description (
10206                   "The Device that is dependent on the Reader Device.")
10207 karl  1.1       ]
10208              CIM_LogicalDevice REF Dependent;
10209           };
10210           
10211           // ===================================================================
10212           // PickerLabelReader
10213           // ===================================================================
10214              [Association, 
10215               Description (
10216                  "PickerLabelReader is used to indicate that one or more Label"
10217                  "Readers works in conjunction with PickerElements, to identify "
10218                  "PhysicalMedia as they are being picked/placed.")
10219              ]
10220           class CIM_PickerLabelReader : CIM_AssociatedLabelReader
10221           {
10222                 [Override ("Dependent"), 
10223                  Description (
10224                   "The PickerElement that is dependent on the Reader Device.")
10225                 ]
10226              CIM_PickerElement REF Dependent;
10227           };
10228 karl  1.1  
10229           // ===================================================================
10230           // AccessLabelReader
10231           // ===================================================================
10232              [Association, 
10233               Description (
10234                  "AccessLabelReader is used to indicate that one or more Label"
10235                  "Readers works in conjunction with MediaAccessDevices, "
10236                  "to identify PhysicalMedia before read/write.")
10237              ]
10238           class CIM_AccessLabelReader : CIM_AssociatedLabelReader
10239           {
10240                 [Override ("Dependent"), 
10241                  Description (
10242                   "The MediaAccessDevice that is dependent on the Reader Device.")
10243                 ]
10244              CIM_MediaAccessDevice REF Dependent;
10245           };
10246           
10247           // ===================================================================
10248           // LabelReaderStatInfo
10249 karl  1.1 // ===================================================================
10250              [Description (
10251                  "Statistics for a LabelReader, related to read successes, "
10252                  "failures and retries.")
10253              ]
10254           class CIM_LabelReaderStatInfo : CIM_DeviceStatisticalInformation
10255           {
10256                 [Description (
10257                   "The number of successful physical label scans."), 
10258                  Counter
10259                 ]
10260              uint64 ScanSuccesses;
10261                 [Description ("The number of failed physical label scans."), 
10262                  Counter
10263                 ]
10264              uint64 ScanFailures;
10265                 [Description ("The number of retried physical label scans."), 
10266                  Counter
10267                 ]
10268              uint64 ScanRetries;
10269                 [Description (
10270 karl  1.1         "Method to reset the statistical counters. The method " 
10271                   "takes one parameter as input - an integer indicating which "
10272                   "counter to reset. For this input parameter, 0 indicates all, "
10273                   "1 resets the \"Scan Successes\" counter, 2 resets the "
10274                   "\"Scan Failures\" counter, and 3 resets the \"Scan Retries\" "
10275                   "counter. The method returns 0 if successful, 1 if not supported, "
10276                   "and any other value if an error occurred. A method is specified "
10277                   "so that the Device's instrumentation can also reset its "
10278                   "internal processing and counters.\n"
10279                   "In a subclass, the set of possible return codes should be "
10280                   "specified in a ValueMap qualifier on the method. The strings "
10281                   "to which the ValueMap contents are 'translated' can be "
10282                   "specified as a Values array qualifier.")
10283                 ]
10284              uint32 ResetCounter ([IN, Values {"All", "Scan Successes", 
10285               "Scan Failures", "Scan Retries"}] uint16 SelectedCounter);
10286           };
10287           
10288           // ===================================================================
10289           // MediaAccessStatInfo
10290           // ===================================================================
10291 karl  1.1    [Description (
10292                  "Statistics related to reading and writing at a specific "
10293                  "MediaAccessDevice, or for a specific StorageExtent. Although "
10294                  "the same class is used to represent this data, at the instance "
10295                  "level the object holds information for the MediaAccessDevice "
10296                  "(independent of the StorageExtent), OR for the Extent "
10297                  "(independent of its AccessDevice).")
10298              ]
10299           class CIM_MediaAccessStatInfo : CIM_DeviceStatisticalInformation
10300           {
10301                 [Description ("The number of attempted read operations."), 
10302                  Counter
10303                 ]
10304              uint64 ReadOperations;
10305                 [Description ("The number of unrecoverable read operations."), 
10306                  Counter
10307                 ]
10308              uint64 UnrecoverableReadOperations;
10309                 [Description ("The number of attempted write operations."), 
10310                  Counter
10311                 ]
10312 karl  1.1    uint64 WriteOperations;
10313                 [Description ("The number of unrecoverable write operations."), 
10314                  Counter
10315                 ]
10316              uint64 UnrecoverableWriteOperations;
10317                    [Description ("The number of recovered read operations."), 
10318                  Counter
10319                 ]
10320              uint64 RecoveredReadOperations;
10321                 [Description ("The number of recovered write operations."), 
10322                  Counter
10323                 ]
10324              uint64 RecoveredWriteOperations;
10325                 [Description ("The number of recovered seek operations."), 
10326                  Counter
10327                 ]
10328              uint64 RecoveredSeekOperations;
10329                 [Description ("The number of unrecoverable seek operations."), 
10330                  Counter
10331                 ]
10332              uint64 UnrecoverableSeekOperations;
10333 karl  1.1          [Description (
10334                   "Method to reset the statistical counters. The method takes one "
10335                   "parameter as input - an integer indicating which counter to "
10336                   "reset. For this input parameter, 0 indicates all, 1-2 and 5 "
10337                   "reset the 'read operation'-related counters, 3-4 and 6 reset "
10338                   "the 'write operation'-related counters, and 7-8 reset the "
10339                   "seek-related counters. The method returns 0 if "
10340                   "successful, 1 if not supported, and any other value if an "
10341                   "error occurred. A method is specified so that the Device's "
10342                   "instrumentation can also reset its internal processing and "
10343                   "counters.\n"
10344                   "In a subclass, the set of possible return codes should be "
10345                   "specified in a ValueMap qualifier on the method. The strings "
10346                   "to which the ValueMap contents are 'translated' can be "
10347                   "specified as a Values array qualifier.")
10348                 ]
10349              uint32 ResetCounter ([IN, Values {"All", "Read Operations", 
10350               "Unrecoverable Read Operations", "Write Operations", 
10351               "Unrecoverable Write Operations", "Recovered Read Operations", 
10352               "Recovered Write Operations", "Recovered Seeks", 
10353               "Unrecoverable Seeks"}] uint16 SelectedCounter);
10354 karl  1.1 };
10355           
10356           // ===================================================================
10357           // PickerStatInfo
10358           // ===================================================================
10359              [Description (
10360                  "Statistics for a PickerElement, related to pick/put successes, "
10361                  "retries and failures.")
10362              ]
10363           class CIM_PickerStatInfo : CIM_DeviceStatisticalInformation
10364           {
10365                 [Description ("The number of successful picks."), 
10366                  Counter
10367                 ]
10368              uint64 PickSuccesses;
10369                 [Description ("The number of failed picks."), 
10370                  Counter
10371                 ]
10372              uint64 PickFailures;
10373                 [Description ("The number of retried picks."), 
10374                  Counter
10375 karl  1.1       ]
10376              uint64 PickRetries;
10377                 [Description ("The number of successful puts."), 
10378                  Counter
10379                 ]
10380              uint64 PutSuccesses;
10381                 [Description ("The number of failed puts."), 
10382                  Counter
10383                 ]
10384              uint64 PutFailures;
10385                 [Description ("The number of retried puts."), 
10386                  Counter
10387                 ]
10388              uint64 PutRetries;
10389                 [Description (
10390                   "Method to reset the statistical counters. The method takes one "
10391                   "parameter as input - an integer indicating which counter to "
10392                   "reset. For this input parameter, 0 indicates all, 1-3 reset "
10393                   "the 'pick'-related counters, and 4-6 reset the 'put'-related "
10394                   "counters. The method returns 0 if successful, 1 if not "
10395                   "supported, and any other value if an error occurred. A "
10396 karl  1.1         "method is specified so that the Device's instrumentation can "
10397                   "also reset its internal pocessing and counters.\n"
10398                   "In a subclass, the set of possible return codes should be "
10399                   "specified in a ValueMap qualifier on the method. The strings "
10400                   "to which the ValueMap contents are 'translated' can be "
10401                   "specified as a Values array qualifier.")
10402                 ]
10403              uint32 ResetCounter ([IN, Values {"All", "Pick Successes", 
10404               "Pick Failures", "Pick Retries", "Put Successes", 
10405               "Put Failures", "Put Retries"}] uint16 SelectedCounter);
10406           };
10407           
10408           // ===================================================================
10409           // MessageLog
10410           // ===================================================================
10411              [Description (
10412                  "MessageLog represents any type of event, error or informational "
10413                  "register or chronicle. The object describes the existence of "
10414                  "the log and its characteristics. Several methods are defined "
10415                  "for retrieving, writing and deleting log entries, and "
10416                  "maintaining the log.")
10417 karl  1.1    ] 
10418           class CIM_MessageLog : CIM_LogicalElement
10419           {
10420                 [Key, MaxLen (256),
10421                  Description (
10422                   "CreationClassName indicates the name of the class or "
10423                   "the subclass used in the creation of an instance. When "
10424                   "used with the other key properties of this class, this "
10425                   "property allows all instances of this class and its "
10426                   "subclasses to be uniquely identified.") 
10427                 ]
10428              string CreationClassName;
10429                 [Override ("Name"), 
10430                  Key, MaxLen (256), 
10431                  Description (
10432                   "The inherited Name serves as part of the key (a unique "
10433                   "identifier) for the MessageLog instance.")
10434                 ] 
10435              string Name; 
10436                 [Description (
10437                   "An array of integers indicating the Log capabilities. "
10438 karl  1.1         "Information such as \"Write Record Supported\" (value="
10439                   "2) or \"Variable Length Records Supported\" (8) is "
10440                   "specified in this property."),
10441                  ArrayType ("Indexed"),
10442                  Values {"Unknown", "Other", "Write Record Supported", 
10443                        "Delete Record Supported", 
10444                        "Can Move Backward in Log", "Freeze Log Supported", 
10445                        "Clear Log Supported", 
10446                        "Supports Addressing by Ordinal Record Number",
10447                        "Variable Length Records Supported", 
10448                        "Variable Formats for Records", 
10449                        "Can Flag Records for Overwrite"}, 
10450                  ModelCorrespondence {
10451                        "CIM_MessageLog.CapabilitiesDescriptions"} 
10452                 ]
10453              uint16 Capabilities[];
10454                 [Description (
10455                   "An array of free-form strings providing more detailed "
10456                   "explanations for any of the Log features indicated in "
10457                   "the Capabilities array. Note, each entry of this array "
10458                   "is related to the entry in the Capabilities array that "
10459 karl  1.1         "is located at the same index."),
10460                  ArrayType ("Indexed"),
10461                  ModelCorrespondence {"CIM_MessageLog.Capabilities"}
10462                 ]
10463              string CapabilitiesDescriptions[];
10464                 [Description (
10465                   "The maximum size, in bytes, to which the Log can grow. "
10466                   "If there is no maximum, then MaxLogSize should be set "
10467                   "to 0."),
10468                  Units ("Bytes")
10469                 ]
10470              uint64 MaxLogSize;
10471                 [Description (
10472                   "The size of the Log header, in bytes, if one is "
10473                   "present. If there is no Log header, then this property "
10474                   "should be set to 0. Headers may include general "
10475                   "information about the Log such as the current number of "
10476                   "records, time of last update, or a pointer to the location "
10477                   "of the first Log entry. Note that this property is NOT the "
10478                   "size of the header for an individual Log entry. The latter "
10479                   "is described by the property, SizeOfRecordHeader."), 
10480 karl  1.1        Units ("Bytes")
10481                 ]
10482              uint64 SizeOfHeader;
10483                 [Description (
10484                   "If the SizeOfHeader property is non-zero, this property "
10485                   "describes the structure and format of the Log header. It "
10486                   "is a free-form string. If the SizeOfHeader property is 0, "
10487                   "then the information in this property is undefined.")
10488                 ]
10489              string HeaderFormat;
10490                 [Description (
10491                   "Maximum size, in bytes, to which an individual Log "
10492                   "entry (record) can grow - if the Capabilities array "
10493                   "includes a value of 7 (\"Variable Length Records "
10494                   "Supported\"). If the Capabilities array does not "
10495                   "include a 7, then the Log only supports fixed length "
10496                   "entries. The size of these entries is described by "
10497                   "this property."), 
10498                  Units ("Bytes")
10499                 ]
10500              uint64 MaxRecordSize;
10501 karl  1.1       [Description (
10502                   "The size of the header for the Log's individual entries, "
10503                   "in bytes, if record headers are defined. If there are no "
10504                   "record headers, then this property should be set to 0. "
10505                   "Record headers may include information such as the type of "
10506                   "the Log entry, the date/time that the entry was last "
10507                   "updated, or a pointer to the start of optional data. Note "
10508                   "that this property defines the header size for individual "
10509                   "records in the Log, while the SizeOfHeader property "
10510                   "describes the Log's overall header, typically located at "
10511                   "the start of the MessageLog."), 
10512                  Units ("Bytes")
10513                 ]
10514              uint64 SizeOfRecordHeader;
10515                 [Description (
10516                   "If the SizeOfRecordHeader property is non-zero, this "
10517                   "property describes the structure and format of the "
10518                   "record headers. It is a free-form string. If the "
10519                   "SizeOfRecordHeader property is 0, then the information "
10520                   "in this property is undefined.")
10521                 ]
10522 karl  1.1    string RecordHeaderFormat;
10523                 [Description (
10524                   "Maximum number of records that can be captured in "
10525                   "the Log. If undefined, a value of zero should be "
10526                   "specified. Note that when the Capabilities array "
10527                   "indicates that variable length records are supported "
10528                   "(value=7), then it is possible that this maximum may "
10529                   "not be achieved.")
10530                 ]
10531              uint64 MaxNumberOfRecords;
10532                 [Description (
10533                   "Current number of entries (records) in the Log."),
10534                  Gauge
10535                 ]
10536              uint64 CurrentNumberOfRecords;
10537                 [Description (
10538                   "An enumeration describing the behavior of the Log, when "
10539                   "it becomes full or near full. For example, the Log may "
10540                   "wrap (value=2) or may simply stop recording entries (value"
10541                   "=7).\n\n"
10542                   "Some of the property's possible values need further "
10543 karl  1.1         "explanation:\n"
10544                   "3=\"Clear When Near Full\" indicates that all of the Log's "
10545                   "entries will be deleted when a specified record capacity is "
10546                   "reached. The capacity is specified in percentage, using the "
10547                   "property, PercentageNearFull. 'Near Full' may be less than "
10548                   "100% if the Log takes time to clear, and a position should "
10549                   "always be available for new records.\n"
10550                   "4=\"Overwrite Outdated When Needed\" describes that Log "
10551                   "entries (timestamped later than the date/time specified in "
10552                   "the property, TimeWhenOutdated) can be overwritten.\n"
10553                   "5=\"Remove Outdated Records\" specifies that records "
10554                   "(timestamped later than the date/time specified in the "
10555                   "property, TimeWhenOutdated) are logically and/or physically "
10556                   "removed from the Log.\n"
10557                   "6=\"Overwrite Specific Records\" indicates that specially "
10558                   "flagged records may be overwritten. This property only makes "
10559                   "sense when the Capabilities array includes a value of 10, "
10560                   "\"Can Flag Records for Overwrite\"."),
10561                  Values {"Unknown", "Other", "Wraps When Full",
10562                        "Clear When Near Full", 
10563                        "Overwrite Outdated When Needed", 
10564 karl  1.1              "Remove Outdated Records",
10565                        "Overwrite Specific Records", 
10566                        "Never Overwrite"},
10567                  ModelCorrespondence {"CIM_MessageLog.OtherPolicyDescription", 
10568                        "CIM_MessageLog.TimeWhenOutdated", 
10569                        "CIM_MessageLog.PercentageNearFull"}
10570                 ]
10571              uint16 OverwritePolicy;
10572                 [Description (
10573                   "When the OverwritePolicy specifies a value of 1 "
10574                   "(\"Other\"), the Log's behavior can be explained "
10575                   "using this property. If OverwritePolicy is not 1, "
10576                   "then this property's contents are undefined."), 
10577                  ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"}
10578                 ]
10579              string OtherPolicyDescription;
10580                 [Description (
10581                   "If the OverwritePolicy is based on 'outdated' records "
10582                   "(values 4 or 5), this property defines when a Log entry "
10583                   "is considered to be outdated - either by time interval or "
10584                   "at a specific date and time."), 
10585 karl  1.1        ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"}
10586                 ]
10587              datetime TimeWhenOutdated;
10588                 [Description (
10589                   "If the OverwritePolicy is based on clearing records "
10590                   "when the Log is near full (value=3), this property defines "
10591                   "the record capacity (in percentage) that is considered to "
10592                   "be 'near full'."),
10593                  Units ("Percent"), 
10594                  ModelCorrespondence {"CIM_MessageLog.OverwritePolicy"}
10595                 ]
10596              uint8 PercentageNearFull;
10597                 [Description (
10598                   "An enumeration describing the last change to the "
10599                   "MessageLog."), 
10600                  Values {"Unknown", "Add", "Delete", "Modify", "Log Cleared"}
10601                 ]
10602              uint16 LastChange;
10603                 [Description (
10604                   "When a change is made to the Log, the date/time of "
10605                   "that modification is captured. This property could be "
10606 karl  1.1         "used to event against any update to the MessageLog.")
10607                 ]
10608              datetime TimeOfLastChange;
10609                 [Description (
10610                   "When a change is made to the Log, the record number that "
10611                   "was modified is captured.")
10612                 ]
10613              uint64 RecordLastChanged;
10614                 [Description (
10615                   "Boolean indicating that the Log is currently frozen and "
10616                   "modifications are not allowed.")
10617                 ]
10618              boolean IsFrozen;
10619                 [Description (
10620                   "An enumeration describing the character set used to record "
10621                   "data in the individual Log entries. For example, the "
10622                   "Log records may contain ASCII data (value=2), or be raw octet "
10623                   "strings (value=10)."), 
10624                  Values {"Unknown", "Other", "ASCII", "Unicode", "ISO2022", 
10625                        "ISO8859", "Extended UNIX Code", "UTF-8", "UCS-2", 
10626                        "Bitmapped Data", "OctetString", 
10627 karl  1.1              "Defined by Individual Records"}
10628                 ]
10629              uint16 CharacterSet; 
10630            
10631                 [Description (
10632                   "Requests that the MessageLog be cleared of all entries. "
10633                   "The return value should be 0 if the request was successfully "
10634                   "executed, 1 if the request is not supported and some other "
10635                   "value if an error occurred. If the request is not supported, "
10636                   "check the Capabilities array that a value of 6 (\"Clear Log "
10637                   "Supported\") is specified.\n\n"
10638                   "Note: In a subclass, the set of possible return codes could "
10639                   "be described using a ValueMap qualifier on the method. The "
10640                   "strings to which the ValueMap contents are 'translated' may "
10641                   "also be specified in the subclass as a Values array "
10642                   "qualifier.") 
10643                 ]
10644              uint32 ClearLog();
10645            
10646                 [Description (
10647                   "Requests that an iteration of the MessageLog be established "
10648 karl  1.1         "and that the iterator be set to the first entry in the Log. "
10649                   "An identifier for the iterator is returned as an output "
10650                   "parameter of the method.\n\n"
10651                   "Regarding iteration, you have 2 choices:  1) Embed iteration "
10652                   "data in the method call, and allow implementations to track/"
10653                   "store this data manually; or, 2) Iterate using a separate "
10654                   "object (for example, class ActiveIterator) as an iteration "
10655                   "agent. The first approach is used here for interoperability. "
10656                   "The second requires an instance of the Iterator object for "
10657                   "EACH iteration in progress. 2's functionality could be "
10658                   "implemented underneath 1.\n\n"
10659                   "The return value from PositionToFirstRecord should be 0 if "
10660                   "the request was successfully executed, 1 if the request is "
10661                   "not supported and some other value if an error occurred. In "
10662                   "a subclass, the set of possible return codes could be specified, "
10663                   "using a ValueMap qualifier on the method. The strings to which "
10664                   "the ValueMap contents are 'translated' may also be specified "
10665                   "in the subclass as a Values array qualifier.") 
10666                 ]
10667              uint32 PositionToFirstRecord ([OUT] string IterationIdentifier);
10668            
10669 karl  1.1       [Description (
10670                   "Requests that the Log's iteration identifier be advanced or "
10671                   "retreated a specific number of records, or set to the "
10672                   "entry at a specified numeric location. These two different "
10673                   "behaviors are accomplished using the input parameters of the "
10674                   "method. Advancing or retreating is achieved by setting the "
10675                   "MoveAbsolute boolean to FALSE, and then specifying the number of "
10676                   "entries to advance or retreat as positive or negative values "
10677                   "in the RecordNumber parameter. Moving to a specific record "
10678                   "number is accomplished by setting the MoveAbsolute input "
10679                   "parameter to TRUE, and then placing the record number into "
10680                   "the RecordNumber parameter. This can only be done if the "
10681                   "Capabilities array includes a value of 7, \"Supports "
10682                   "Addressing by Ordinal Record Number\".\n\n"
10683                   "After the method completes and if ordinal record numbers are "
10684                   "supported (the Capabilities array includes a 7), the current "
10685                   "record number is returned in the RecordNumber output parameter. "
10686                   "Otherwise, the value of the parameter is undefined.\n\n"
10687                   "IterationIdentifier is defined as an Input/Output method "
10688                   "parameter to allow the Log to embed state information in "
10689                   "the Identifier and potentially let the identifier be "
10690 karl  1.1         "maintained by the using application.\n\n"
10691                   "The return value from PositionAtRecord should be 0 if "
10692                   "the request was successfully executed, 1 if the request is "
10693                   "not supported and some other value if an error occurred. If "
10694                   "the request is not supported, check the Capabilities array "
10695                   "regarding support for ordinal record number addressing and "
10696                   "backward movement in the Log (values 7 and 4, respectively).\n\n"
10697                   "Note: In a subclass, the set of possible return codes could "
10698                   "be described using a ValueMap qualifier on the method. The "
10699                   "strings to which the ValueMap contents are 'translated' may "
10700                   "also be specified in the subclass as a Values array "
10701                   "qualifier.") 
10702                 ]
10703              uint32 PositionAtRecord (
10704               [IN, OUT] string IterationIdentifier, 
10705               [IN, Description ("Advancing or retreating the IterationIdentifier "
10706                   "is achieved by setting the MoveAbsolute boolean to FALSE, and "
10707                   "specifying the number of entries to advance or retreat as "
10708                   "positive or negative values in the RecordNumber parameter. "
10709                   "Moving to a specific record number is accomplished by setting "
10710                   "the MoveAbsolute parameter to TRUE, and placing the record "
10711 karl  1.1         "number into the RecordNumber parameter.") ] 
10712                   boolean MoveAbsolute, 
10713               [IN, OUT] sint64 RecordNumber);
10714            
10715                 [Description (
10716                   "Requests that the record indicated by the IterationIdentifier "
10717                   "be retrieved from the MessageLog. After retrieval, the Iteration"
10718                   "Identifier may be advanced to the next record by setting the "
10719                   "PositionToNext input parameter to TRUE. Two output parameters "
10720                   "are defined for the method - RecordData which holds the contents "
10721                   "of the Log entry (as an array of bytes that can be recast to an "
10722                   "appropriate format), and RecordNumber which returns the current "
10723                   "record number addressed via the IterationIdentifier. The "
10724                   "RecordNumber parameter is only defined/valid when the "
10725                   "Capabilities array indicates that ordinal record number "
10726                   "addressing is supported (a value of 7).\n\n"
10727                   "IterationIdentifier is defined as an Input/Output method "
10728                   "parameter to allow the Log to embed state information in "
10729                   "the Identifier and potentially let the identifier be "
10730                   "maintained by the using application.\n\n"
10731                   "The return value from GetRecord should be 0 if the request "
10732 karl  1.1         "was successfully executed, 1 if the request is not supported, "
10733                   "and some other value if an error occurred. In a subclass, the "
10734                   "set of possible return codes could be specified, using a "
10735                   "ValueMap qualifier on the method. The strings to which the "
10736                   "ValueMap contents are 'translated' may also be specified in "
10737                   "the subclass as a Values array qualifier.") 
10738                 ]
10739              uint32 GetRecord (
10740               [IN, OUT] string IterationIdentifier, 
10741               [IN, Description ("Boolean indicating that the Iteration"
10742                   "Identifier should be advanced to the next record, after "
10743                   "retrieving the current Log entry.") ] boolean PositionToNext, 
10744               [OUT] uint64 RecordNumber,
10745               [OUT] uint8 RecordData[]); 
10746            
10747                 [Description (
10748                   "Requests that the record indicated by the IterationIdentifier "
10749                   "be deleted from the MessageLog. After deletion, the Iteration"
10750                   "Identifier may be advanced to the next record by setting the "
10751                   "PositionToNext input parameter to TRUE. If set to FALSE, then "
10752                   "the IterationIdentifier will be positioned at the previous "
10753 karl  1.1         "record. Two output parameters are defined for the method - "
10754                   "RecordData which holds the contents of the deleted Log entry "
10755                   "(as an array of bytes that can be recast to an appropriate "
10756                   "format or discarded), and RecordNumber which returns the current "
10757                   "record number addressed via the IterationIdentifier. The "
10758                   "RecordNumber parameter is only defined/valid when the "
10759                   "Capabilities array indicates that ordinal record number "
10760                   "addressing is supported (a value of 7).\n\n"
10761                   "IterationIdentifier is defined as an Input/Output method "
10762                   "parameter to allow the Log to embed state information in "
10763                   "the Identifier and potentially let the identifier be "
10764                   "maintained by the using application.\n\n"
10765                   "The return value from DeleteRecord should be 0 if the request "
10766                   "was successfully executed, 1 if the request is not supported, "
10767                   "and some other value if an error occurred. If the request is "
10768                   "not supported, check the Capabilities array that a value of 3 "
10769                   "(\"Delete Record Supported\") is specified.\n\n"
10770                   "Note: In a subclass, the set of possible return codes could "
10771                   "be described using a ValueMap qualifier on the method. The "
10772                   "strings to which the ValueMap contents are 'translated' may "
10773                   "also be specified in the subclass as a Values array "
10774 karl  1.1         "qualifier.") 
10775                 ]
10776              uint32 DeleteRecord (
10777               [IN, OUT] string IterationIdentifier, 
10778               [IN, Description ("Boolean that when set to TRUE requests the "
10779                   "IterationIdentifier to be advanced to the next record, "
10780                   "after the current entry is deleted. If set to FALSE, "
10781                   "IterationIdentifier is set to the previous record.") ]
10782                   boolean PositionToNext, 
10783               [OUT] uint64 RecordNumber,
10784               [OUT] uint8 RecordData[]); 
10785            
10786                 [Description (
10787                   "Requests that a record be inserted at the Log position "
10788                   "indicated by the IterationIdentifier. The entry's data is "
10789                   "provided in the RecordData input parameter. After insertion, "
10790                   "the IterationIdentifier may be advanced to the next record "
10791                   "by setting the PositionToNext input parameter to TRUE. "
10792                   "The output parameter, RecordNumber, returns the current "
10793                   "record number addressed via the IterationIdentifier. This "
10794                   "parameter is only defined/valid when the Capabilities array "
10795 karl  1.1         "indicates that ordinal record number addressing is supported " 
10796                   "(a value of 7).\n\n"
10797                   "IterationIdentifier is defined as an Input/Output method "
10798                   "parameter to allow the Log to embed state information in "
10799                   "the Identifier and potentially let the identifier be "
10800                   "maintained by the using application.\n\n"
10801                   "The return value from WriteRecord should be 0 if the request "
10802                   "was successfully executed, 1 if the request is not supported, "
10803                   "and some other value if an error occurred. If the request is "
10804                   "not supported, check the Capabilities array that a value of 2 "
10805                   "(\"Write Record Supported\") is specified.\n\n"
10806                   "Note: In a subclass, the set of possible return codes could "
10807                   "be described using a ValueMap qualifier on the method. The "
10808                   "strings to which the ValueMap contents are 'translated' may "
10809                   "also be specified in the subclass as a Values array "
10810                   "qualifier.") 
10811                 ]
10812              uint32 WriteRecord (
10813               [IN, OUT] string IterationIdentifier, 
10814               [IN, Description ("Boolean indicating that the Iteration"
10815                   "Identifier should be advanced to the next record, after "
10816 karl  1.1         "writing the Log entry.") ] boolean PositionToNext, 
10817               [IN] uint8 RecordData[],
10818               [OUT] uint64 RecordNumber); 
10819            
10820                 [Description (
10821                   "Requests that an iteration of the Log, identified by the "
10822                   "IterationIdentifier input parameter, be stopped. The "
10823                   "return value from CancelIteration should be 0 if the "
10824                   "request was successfully executed, 1 if the request is "
10825                   "not supported and some other value if an error occurred. In "
10826                   "a subclass, the set of possible return codes could be "
10827                   "specified, using a ValueMap qualifier on the method. The "
10828                   "strings to which the ValueMap contents are 'translated' "
10829                   "may also be specified in the subclass as a Values array "
10830                   "qualifier.") 
10831                 ]
10832              uint32 CancelIteration ([IN] string IterationIdentifier);
10833            
10834                 [Description (
10835                   "Requests that the MessageLog be placed in a frozen state "
10836                   "(\"Freeze\" input parameter = TRUE) or 'unfrozen' (= FALSE). "
10837 karl  1.1         "If frozen, modifications to the Log will not be allowed. "
10838                   "If successful, the Log's IsFrozen boolean property will "
10839                   "be updated to reflect the desired state.\n\n"
10840                   "The method's return code should be 0 if the request was "
10841                   "successfully executed, 1 if the request is not supported "
10842                   "and some other value if an error occurred. If the request "
10843                   "is not supported, check the Capabilities array that a value "
10844                   "of 5 (\"Freeze Log Supported\") is specified.\n\n"
10845                   "Note: In a subclass, the set of possible return codes could "
10846                   "be described using a ValueMap qualifier on the method. The "
10847                   "strings to which the ValueMap contents are 'translated' may "
10848                   "also be specified in the subclass as a Values array "
10849                   "qualifier.") 
10850                 ]
10851              uint32 FreezeLog([IN] boolean Freeze);
10852            
10853                 [Description (
10854                   "Requests that the record indicated by the IterationIdentifier "
10855                   "be flagged as overwriteable. This method is only supported "
10856                   "when the Capabilities array includes a value of 10, \"Can Flag "
10857                   "Records for Overwrite\". After updating the entry, the Iteration"
10858 karl  1.1         "Identifier may be advanced to the next record by setting the "
10859                   "PositionToNext input parameter to TRUE. One output parameter "
10860                   "is defined for the method RecordNumber. It returns the "
10861                   "current record number addressed via the Iteration"
10862                   "Identifier. This parameter is only defined/valid when the "
10863                   "Capabilities array indicates that ordinal record number "
10864                   "addressing is supported (a value of 7).\n\n"
10865                   "IterationIdentifier is defined as an Input/Output method "
10866                   "parameter to allow the Log to embed state information in "
10867                   "the Identifier and potentially let the identifier be "
10868                   "maintained by the using application.\n\n"
10869                   "The return value from FlagRecordForOverwrite should be 0 if "
10870                   "the request was successfully executed, 1 if the request is not "
10871                   "supported, and some other value if an error occurred. In a "
10872                   "subclass, the set of possible return codes could be specified, "
10873                   "using a ValueMap qualifier on the method. The strings to which "
10874                   "the ValueMap contents are 'translated' may also be specified "
10875                   "in the subclass as a Values array qualifier.") 
10876                 ]
10877              uint32 FlagRecordForOverwrite (
10878               [IN, OUT] string IterationIdentifier, 
10879 karl  1.1     [IN, Description ("Boolean indicating that the Iteration"
10880                   "Identifier should be advanced to the next record, after "
10881                   "updating the current Log entry.") ] boolean PositionToNext, 
10882               [OUT] uint64 RecordNumber); 
10883           };
10884            
10885           // ===================================================================
10886           // LogRecord
10887           // ===================================================================
10888           
10889              [Description (
10890                  "The LogRecord object can describe the definitional format for "
10891                  "entries in a MessageLog, or can be used to instantiate the "
10892                  "actual records in the Log. The latter approach provides a "
10893                  "great deal more semantic definition and management control over "
10894                  "the individual entries in a MessageLog, than do the record "
10895                  "manipulation methods of the Log class. It is recommended that "
10896                  "the data in individual Log entries be modeled using subclasses "
10897                  "of LogRecord, to avoid the creation of LogRecords with one "
10898                  "property (such as RecordData) without semantics.\n"
10899                  "Definitional formats for LogRecords could be specified by "
10900 karl  1.1        "establishing a naming convention for the RecordID and Message"
10901                  "Timestamp key properties.") 
10902              ] 
10903           class CIM_LogRecord : CIM_ManagedElement
10904           {
10905                   [Propagated("CIM_MessageLog.CreationClassName"), 
10906                    Key, MaxLen (256),
10907                    Description ("The scoping Log's CreationClassName.") ]
10908              string LogCreationClassName;
10909                   [Propagated("CIM_MessageLog.Name"),
10910                    Key, MaxLen (256),
10911                    Description ("The scoping Log's Name.") ]
10912              string LogName;
10913                 [Key, MaxLen (256),
10914                  Description (
10915                   "CreationClassName indicates the name of the class or "
10916                   "the subclass used in the creation of an instance. When "
10917                   "used with the other key properties of this class, this "
10918                   "property allows all instances of this class and its "
10919                   "subclasses to be uniquely identified.") 
10920                 ]
10921 karl  1.1    string CreationClassName;
10922                 [Key, MaxLen (256), 
10923                  Description (
10924                   "RecordID, with the MessageTimestamp property, serve to "
10925                   "uniquely identify the LogRecord within a MessageLog. Note "
10926                   "that this property is different than the RecordNumber "
10927                   "parameters of the MessageLog methods. The latter are ordinal "
10928                   "values only, useful to track position when iterating through "
10929                   "a Log. On the other hand, RecordID is truly an identifier "
10930                   "for an instance of LogRecord. It may be set to the record's "
10931                   "ordinal position, but this is not required.")
10932                 ] 
10933              string RecordID; 
10934                 [Key, Description (
10935                   "A LogRecord's key structure includes a timestamp for "
10936                   "the entry.")
10937                 ]
10938              datetime MessageTimestamp;
10939                 [Description (
10940                   "A free-form string describing the LogRecord's data structure.")
10941                 ]
10942 karl  1.1    string DataFormat;
10943           };
10944            
10945           // ===================================================================
10946           // RecordInLog
10947           // ===================================================================
10948              [Association, Aggregation,
10949               Description (
10950                  "RecordInLog describes the aggregation or location of Log "
10951                  "entries within a MessageLog.")
10952              ]
10953           class CIM_RecordInLog 
10954           {
10955                 [Key, Aggregate, Min (1), Max (1), 
10956                  Description ("The Message Log.") 
10957                 ]
10958              CIM_MessageLog REF MessageLog;
10959                 [Key, Weak, Description (
10960                   "The Log entry contained within the MessageLog.")
10961                 ]
10962              CIM_LogRecord REF LogRecord;
10963 karl  1.1 };
10964            
10965           // ===================================================================
10966           // LogInDeviceFile
10967           // ===================================================================
10968              [Association, Description (
10969                  "MessageLogs can reside in data files, on specially allocated "
10970                  "storage areas such as disks or memory, or output as raw I/O "
10971                  "streams. In fact, a single Log may use each of these mechanisms "
10972                  "to output or capture its contents. The LogInDeviceFile "
10973                  "association describes a Log outputting to a raw I/O stream "
10974                  "DeviceFile - for example, a serial port on a UNIX system.")
10975              ]
10976           class CIM_LogInDeviceFile : CIM_Dependency
10977           {
10978                 [Override ("Antecedent"), Description (
10979                   "The I/O stream DeviceFile.")
10980                 ]
10981              CIM_DeviceFile REF Antecedent;
10982                 [Override ("Dependent"),
10983                  Description ("The MessageLog outputting to the DeviceFile.")
10984 karl  1.1       ]
10985              CIM_MessageLog REF Dependent;
10986           };
10987           
10988           
10989           // ===================================================================
10990           // LogInDataFile
10991           // ===================================================================
10992              [Association, Description (
10993                  "MessageLogs can reside in data files, on specially allocated "
10994                  "storage areas such as disks or memory, or output as raw I/O "
10995                  "streams. In fact, a single Log may use each of these mechanisms "
10996                  "to output or capture its contents. The LogInDataFile "
10997                  "association describes a Log stored as a DataFile.")
10998              ]
10999           class CIM_LogInDataFile : CIM_Dependency
11000           {
11001                 [Override ("Antecedent"), Description (
11002                   "The DataFile.")
11003                 ]
11004              CIM_DataFile REF Antecedent;
11005 karl  1.1       [Override ("Dependent"),
11006                  Description ("The MessageLog residing in the DataFile.")
11007                 ]
11008              CIM_MessageLog REF Dependent;
11009           };
11010            
11011           // ===================================================================
11012           // LogInStorage
11013           // ===================================================================
11014              [Association, Description (
11015                  "MessageLogs can reside in data files, on specially allocated "
11016                  "storage areas such as disks or memory, or output as raw I/O "
11017                  "streams. In fact, a single Log may use each of these mechanisms "
11018                  "to output or capture its contents. The LogInStorage "
11019                  "association describes a Log located in a specially allocated "
11020                  "portion of a StorageExtent. The offset of the Log, within "
11021                  "the Extent, is defined using a property of the association, "
11022                  "StartingOffset.")
11023              ]
11024           class CIM_LogInStorage : CIM_Dependency
11025           {
11026 karl  1.1       [Override ("Antecedent"), Description ("The StorageExtent.") ]
11027              CIM_StorageExtent REF Antecedent;
11028                 [Override ("Dependent"),
11029                  Description ("The MessageLog located within the Extent.")
11030                 ]
11031              CIM_MessageLog REF Dependent;
11032                 [Description (
11033                   "StartingOffset indicates where in the Extent that the Log "
11034                   "begins.")
11035                 ] 
11036              uint64 StartingOffset;
11037           };
11038            
11039           // ===================================================================
11040           // UseOfMessageLog
11041           // ===================================================================
11042              [Association, Description (
11043                  "ManagedSystemElements may record their event, error or "
11044                  "informational data within MessageLogs. The use of a Log to "
11045                  "hold a ManagedSystemElement's data is described by this "
11046                  "association. The type of Element data captured by the Log "
11047 karl  1.1        "can be specified using the RecordedData string property.")
11048              ]
11049           class CIM_UseOfMessageLog : CIM_Dependency
11050           {
11051                 [Override ("Antecedent"), Description ("The MessageLog.") ]
11052              CIM_MessageLog REF Antecedent;
11053                 [Override ("Dependent"), Description (
11054                   "The ManagedSystemElement whose information is recorded in "
11055                   "the MessageLog.")
11056                 ]
11057              CIM_ManagedSystemElement REF Dependent;
11058                 [Description (
11059                   "A free-form string describing the use of the Log by the "
11060                   "ManagedSystemElement.")
11061                 ] 
11062              string RecordedData;
11063           };
11064           
11065            
11066           // ===================================================================
11067           // end of file
11068 karl  1.1 // ===================================================================
11069           

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2