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

   1 a.dunfey 1.1 // ===================================================================
   2              // Title:  Device Storage Extents
   3              // $State: Preliminary $
   4              // $Date: 2005/01/05 00:54:00 $
   5              // $Source: /home/dmtf2/dotorg/var/cvs/repositories/dev/Schema/MOF/Device_StorageExtents.mof,v $
   6              // $Revision: 1.12 $
   7              // ===================================================================
   8              //#pragma inLine ("Includes/copyright.inc")
   9              // Copyright 1998-2005 Distributed Management Task Force, Inc. (DMTF).
  10              // All rights reserved.
  11              // DMTF is a not-for-profit association of industry members dedicated
  12              // to promoting enterprise and systems management and interoperability.
  13              // DMTF specifications and documents may be reproduced for uses
  14              // consistent with this purpose by members and non-members,
  15              // provided that correct attribution is given.
  16              // As DMTF specifications may be revised from time to time,
  17              // the particular version and release date should always be noted.
  18              // 
  19              // Implementation of certain elements of this standard or proposed
  20              // standard may be subject to third party patent rights, including
  21              // provisional patent rights (herein "patent rights"). DMTF makes
  22 a.dunfey 1.1 // no representations to users of the standard as to the existence
  23              // of such rights, and is not responsible to recognize, disclose, or
  24              // identify any or all such third party patent right, owners or
  25              // claimants, nor for any incomplete or inaccurate identification or
  26              // disclosure of such rights, owners or claimants. DMTF shall have no
  27              // liability to any party, in any manner or circumstance, under any
  28              // legal theory whatsoever, for failure to recognize, disclose, or
  29              // identify any such third party patent rights, or for such party's
  30              // reliance on the standard or incorporation thereof in its product,
  31              // protocols or testing procedures. DMTF shall have no liability to
  32              // any party implementing such standard, whether such implementation
  33              // is foreseeable or not, nor to any patent owner or claimant, and shall
  34              // have no liability or responsibility for costs or losses incurred if
  35              // a standard is withdrawn or modified after publication, and shall be
  36              // indemnified and held harmless by any party implementing the
  37              // standard from any and all claims of infringement by a patent owner
  38              // for such implementations.
  39              // 
  40              // For information about patents held by third-parties which have
  41              // notified the DMTF that, in their opinion, such patent may relate to
  42              // or impact implementations of DMTF standards, visit
  43 a.dunfey 1.1 // http://www.dmtf.org/about/policies/disclosures.php.
  44              //#pragma inLine
  45              // ===================================================================
  46              // Description: The Device Model extends the management concepts that
  47              //              are related to LogicalDevices. This file describes
  48              //              the modeling of storage hierarchies (extents,
  49              //              volumes, partitions, etc.).
  50              // 
  51              //              The object classes below are listed in an order that
  52              //              avoids forward references. Required objects, defined
  53              //              by other working groups, are omitted.
  54              // ==================================================================
  55              // Change Log for v2.9 Preliminary Company Review
  56              // CR1465 - Corrected compile errors and warnings.
  57              // CR1426 - Change description for GenericDiskPartition to better
  58              //          match the usage of parameters of CreateOrModifyPartition
  59              //          method.
  60              // 
  61              // Change Log for v2.9 Preliminary
  62              // CR1353 - Promote some properties from StorageVolume to
  63              //          Storage Extent
  64 a.dunfey 1.1 // CR1349 - Updates to disk partition model
  65              // 
  66              // Change Log for v2.8 Final
  67              // (CR1304 Errata) - Fix typo in StorageVolume.NameFormat and also
  68              // mangled
  69              //          description.
  70              // CR1202 - Remove Experimental Quaifiers
  71              // CR1027 - Clarify StorageVolume.NameFormat
  72              // 
  73              // Change Log for v2.8 Preliminary
  74              // CR891 - Add NameFormat to StorageVolume
  75              // 
  76              // Change Log for v2.7 Final
  77              // CR970 - Removal of the Experimental qualifier
  78              //       - Remove several properties from StorageVolume and make them
  79              //         Experimental in 2.8
  80              // 
  81              // Change Log for v2.7
  82              // CR722 - Add ProtectedExtentBasedOn, CompositeExtent, and
  83              //         CompositeExtentBasedOn
  84              // CR882 - Deprecate Snapshot and SnapshotOfExtent. Therefore moved
  85 a.dunfey 1.1 //         definitions to SccExtents.mof
  86              // CR884 - Move RAID centric properties from StorageExtent to
  87              //         StorageVolume
  88              // ==================================================================
  89              
  90              #pragma locale ("en_US")
  91              
  92              
  93              // ===================================================================
  94              // MediaPresent
  95              // ===================================================================
  96                 [Association, Version ( "2.6.0" ), Description (
  97                     "Where a StorageExtent must be accessed through a MediaAccess "
  98                     "Device, this relationship is described by the MediaPresent "
  99                     "association."), 
 100                  MappingStrings { "MIF.DMTF|Storage Devices|001.8" }]
 101              class CIM_MediaPresent : CIM_Dependency {
 102              
 103                    [Override ( "Antecedent" ), Description (
 104                        "The MediaAccessDevice.")]
 105                 CIM_MediaAccessDevice REF Antecedent;
 106 a.dunfey 1.1 
 107                    [Override ( "Dependent" ), Description (
 108                        "The StorageExtent accessed using the MediaAccessDevice.")]
 109                 CIM_StorageExtent REF Dependent;
 110              
 111                    [Description (
 112                        "Boolean indicating that the accessed StorageExtent is fixed "
 113                        "in the MediaAccessDevice and can not be ejected.")]
 114                 boolean FixedMedia;
 115              };
 116              
 117              
 118              // ===================================================================
 119              // RealizesExtent
 120              // ===================================================================
 121                 [Association, Version ( "2.6.0" ), Description (
 122                     "StorageExtents can be realized by PhysicalComponents. For "
 123                     "example, disks or tapes are realized by PhysicalMedia. Memory "
 124                     "is realized by PhysicalMemory. This relationship of Extents to "
 125                     "PhysicalComponents is made explicit by the RealizesExtent "
 126                     "association. In addition, the StartingAddress of the "
 127 a.dunfey 1.1        "StorageExtent on the Component is specified here.")]
 128              class CIM_RealizesExtent : CIM_Realizes {
 129              
 130                    [Override ( "Antecedent" ), Max ( 1 ), Description (
 131                        "The PhysicalComponent on which the Extent is realized.")]
 132                 CIM_PhysicalComponent REF Antecedent;
 133              
 134                    [Override ( "Dependent" ), Description (
 135                        "The StorageExtent that is located on the Component.")]
 136                 CIM_StorageExtent REF Dependent;
 137              
 138                    [Description (
 139                        "The starting address on the PhysicalComponent where the "
 140                        "StorageExtent begins. Ending address of the StorageExtent "
 141                        "is determined using the NumberOfBlocks and Block Size "
 142                        "properties of the StorageExtent object.")]
 143                 uint64 StartingAddress;
 144              };
 145              
 146              
 147              // ===================================================================
 148 a.dunfey 1.1 // RealizedOnSide
 149              // ===================================================================
 150                 [Association, Version ( "2.6.0" ), Description (
 151                     "Since removable PhysicalMedia can be dual-sided, there is the "
 152                     "possibility for StorageExtents to be realized on a single side "
 153                     "of the Media. This association is a specialization of the "
 154                     "RealizesExtent relationship, adding a Side property to express "
 155                     "the Media's orientation details.")]
 156              class CIM_RealizedOnSide : CIM_RealizesExtent {
 157              
 158                    [Override ( "Antecedent" ), Max ( 1 ), Description (
 159                        "The PhysicalMedia on which the Extent is realized.")]
 160                 CIM_PhysicalMedia REF Antecedent;
 161              
 162                    [Override ( "Dependent" ), Description (
 163                        "The StorageExtent that is located on the Component.")]
 164                 CIM_StorageExtent REF Dependent;
 165              
 166                    [Description (
 167                        "An enumeration expressing on which 'Side' the Extent is "
 168                        "realized. Since sides can be named by various schemes (0/1 "
 169 a.dunfey 1.1           "or A/B), both schemes are expressed in the Values array of "
 170                        "this property."), 
 171                     ValueMap { "0", "1", "2", "3", "4" }, 
 172                     Values { "Unknown", "Side 0", "Side 1", "Side A", "Side B" }]
 173                 uint16 Side;
 174              };
 175              
 176              
 177              // ===================================================================
 178              // StorageVolume
 179              // ===================================================================
 180                 [Version ( "2.8.1000" ), Description (
 181                     "A StorageVolume is a StorageExtent that is published for use "
 182                     "outside of the scoping System. For SCSI storage target "
 183                     "devices, StorageVolumes are used to represent target Block "
 184                     "devices, (peripheral device type codes 0h (i.e, "
 185                     "direct-access), 4h (i.e., write-once), 5h (i.e., CD/DVD), 7h "
 186                     "(i.e., optical memory), and Eh (i.e., simplified "
 187                     "direct-access).); \n"
 188                     "Stream devices, (peripheral device type codes 1h (i.e., \n"
 189                     "sequential-access) and 3h (i.e., processor).). \n"
 190 a.dunfey 1.1        "In these case, StorageVolume.Name will be derived from SCSI "
 191                     "volume as documented in StorageExtent.Nameformat and "
 192                     "NameNamespace Descriptions. \n"
 193                     "\n"
 194                     "The 'Exported' value from StorageExtent.ExtentStatus[] MUST be "
 195                     "in all instances of StorageVolume to maintain the semantic of "
 196                     "'published' described above.")]
 197              class CIM_StorageVolume : CIM_StorageExtent {
 198              
 199                    [Override ( "Name" ), Description (
 200                        "A unique identifier for the Volume."), 
 201                     MappingStrings { "ANSI|T10|SCSI SPC-3|8.6" }, 
 202                     ModelCorrespondence { "CIM_StorageVolume.NameFormat" }]
 203                 string Name;
 204              
 205                    [Override ( "NameFormat" ), Description (
 206                        "A subset of StorageExtent name formats apply to "
 207                        "StorageVolumes."), 
 208                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
 209                        "10","11" }, 
 210                     Values { "Unknown", "Other", "VPD83NAA6", "VPD83NAA5",
 211 a.dunfey 1.1           "VPD83Type2", "VPD83Type1", "VPD83Type0", "SNVM", "NodeWWN",
 212                        "NAA", "EUI64", "T10VID" }]
 213                 uint16 NameFormat;
 214              
 215                    [Override ( "NameNamespace" ), Description (
 216                        "A subset of StorageExtent name spaces apply to "
 217                        "StorageVolume."), 
 218                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" }, 
 219                     Values { "Unknown", "Other", "VPD83Type3", "VPD83Type2",
 220                        "VPD83Type1", "VPD80", "NodeWWN", "SNVM" }]
 221                 uint16 NameNamespace;
 222              };
 223              
 224              
 225              // ===================================================================
 226              // MediaPartition
 227              // ===================================================================
 228                 [Version ( "2.6.0" ), Description (
 229                     "A MediaPartition is a presentation of a contiguous range of "
 230                     "logical blocks and has identifying data written on/to it. It "
 231                     "may include a signature written by the OS or by an "
 232 a.dunfey 1.1        "application. This class is a common superclass for Disk and "
 233                     "TapePartions. Partitions are directly realized by Physical "
 234                     "Media (indicated by the RealizesExtent association) or built "
 235                     "on StorageVolumes (indicated by the BasedOn association).")]
 236              class CIM_MediaPartition : CIM_StorageExtent {
 237              
 238                    [Description (
 239                        "Boolean indicating that the Partition is labeled as "
 240                        "bootable. (Note that this does not mean that an Operating "
 241                        "System is actually loaded on the Partition.) With the "
 242                        "advent of bootable Tape and other bootable media, this "
 243                        "property is included in the higher level MediaPartition "
 244                        "class, rather than in a subclass such as DiskPartition.")]
 245                 boolean Bootable;
 246              
 247                    [Description (
 248                        "Boolean indicating that the Partition is available and may "
 249                        "be allocated for use.")]
 250                 boolean Allocatable;
 251              
 252                    [Description (
 253 a.dunfey 1.1           "An identifying string written to the Partition. Additional "
 254                        "information related to this 'Signature' may be found in the "
 255                        "properties, SignatureState and SignatureAlgorithm."), 
 256                     ModelCorrespondence { "CIM_MediaPartition.SignatureState",
 257                        "CIM_MediaPartition.SignatureAlgorithm" }]
 258                 string Signature;
 259              
 260                    [Description (
 261                        "A free-form string describing the algorithm used to define "
 262                        "the Partition Signature. The value of this property is "
 263                        "dependent on the Signature's State."), 
 264                     ModelCorrespondence { "CIM_MediaPartition.Signature",
 265                        "CIM_MediaPartition.SignatureState" }]
 266                 string SignatureAlgorithm;
 267              
 268                    [Description (
 269                        "An enumeration describing the state of the Partition's "
 270                        "identifying Signature string. Information such as "
 271                        "\"Uninitialized\" (value=2), or \"Assigned by Owning "
 272                        "Application\" (value=5) are possible entries."), 
 273                     ValueMap { "0", "1", "2", "3", "4", "5" }, 
 274 a.dunfey 1.1        Values { "Unknown", "Unimplemented", "Uninitialized",
 275                        "Calculated by Operating System",
 276                        "Calculated by a Media Manager",
 277                        "Assigned by Owning Application" }, 
 278                     ModelCorrespondence { "CIM_MediaPartition.Signature",
 279                        "CIM_MediaPartition.SignatureAlgorithm" }]
 280                 string SignatureState;
 281              
 282                    [Description (
 283                        "Boolean indicating that the Partition can be grown/extended "
 284                        "without reformatting.")]
 285                 boolean Extendable;
 286              };
 287              
 288              // ===================================================================
 289              // GenericDiskPartition
 290              // ===================================================================
 291                 [Experimental, Version ( "2.8.1000" ), Description (
 292                     "A DiskPartition is a presentation of a contiguous range of "
 293                     "logical blocks that is identifiable by the Operating System by "
 294                     "the associated DiskPartitionConfigurationCapabilities and by "
 295 a.dunfey 1.1        "the properties of the subclasses of this class. \n"
 296                     "\n"
 297                     "Each concrete partition style (the subclasses of "
 298                     "GenericDiskPartition) has some way of tracking a starting "
 299                     "block number and either the ending block or number of blocks. "
 300                     "CIM models this with the StartingAddress and EndingAddress "
 301                     "properties of the BasedOn association between the partition "
 302                     "and its underlying volume/extent. The NumberOfBlocks and "
 303                     "ConsumableBlocks properties inherited from StorageExtent also "
 304                     "need to be consistent or omitted by the instrumentation. "
 305                     "Partition numbers are modeled as BasedOn.OrderIndex. \n"
 306                     "\n"
 307                     "Note that all the concrete DiskPartition instances BasedOn the "
 308                     "same underlying extent) MUST share the same partition style "
 309                     "(i.e. all must have the same subclass type). \n"
 310                     "\n"
 311                     "The abstract qualifier can not be used on this class because "
 312                     "its superclass is not abstract. But instances of subclasses "
 313                     "this class should be instantiated, not instances of "
 314                     "GenericDiskPartition itself.")]
 315              class CIM_GenericDiskPartition : CIM_MediaPartition {
 316 a.dunfey 1.1 };
 317              
 318              // ===================================================================
 319              // DiskPartition (X86 MBR)
 320              // ===================================================================
 321                 [Version ( "2.8.1000" ), Description (
 322                     "A DiskPartition is a subclass of GenericDiskPartition for MBR "
 323                     "(Master Boot Record) style partitions used in X86 platforms "
 324                     "such as Windows and Linux.")]
 325              class CIM_DiskPartition : CIM_GenericDiskPartition {
 326              
 327                    [Description (
 328                        "Boolean indicating that the DiskPartition is labelled as "
 329                        "the primary partition for a ComputerSystem.")]
 330                 boolean PrimaryPartition;
 331              
 332                    [Description (
 333                        "The type of Partition."), 
 334                     ValueMap { "0", "1", "2", "3" }, 
 335                     Values { "Unknown", "Primary", "Extended", "Logical" }]
 336                 uint16 PartitionType;
 337 a.dunfey 1.1 
 338                    [Description (
 339                        "The 'sub' type of a primary, extended, or logical "
 340                        "Partition. The list of possible values corresponds to the "
 341                        "decimal representation of the typical values in the "
 342                        "Partition record."), 
 343                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
 344                        "10", "11", "12", "14", "15", "16", "17", "18", "20", "22",
 345                        "23", "27", "28", "33", "35", "36", "38", "49", "51", "52",
 346                        "53", "54", "55", "60", "64", "65", "66", "67", "80", "81",
 347                        "82", "83", "84", "85", "86", "97", "99", "100", "101",
 348                        "102", "103", "104", "105", "113", "115", "116", "117",
 349                        "118", "119", "120", "121", "128", "129", "130", "131",
 350                        "132", "134", "135", "147", "148", "161", "163", "164",
 351                        "165", "166", "177", "179", "180", "182", "183", "184",
 352                        "193", "196", "198", "199", "216", "219", "225", "227",
 353                        "228", "229", "230", "239", "240", "241", "242", "243",
 354                        "244", "246", "254", "255", "65535" }, 
 355                     Values { "Empty | Microsoft", "DOS 12-bit FAT", "XENIX root",
 356                        "XENIX usr", "DOS 16-bit FAT", "DOS Extended",
 357                        "DOS 16-bit FAT (> 32MB)",
 358 a.dunfey 1.1           "OS/2 HPFS | Win NTFS | QNX Ver 2 | Adv UNIX",
 359                        "AIX Boot | OS /2 | Dell (Array) | Commodore DOS",
 360                        "AIX Data, Coherent", "OS/2 Boot Manager", "32-bit FAT",
 361                        "32-bit FAT", "Microsoft 16-bit FAT",
 362                        "Microsoft DOS Extended", "OPUS | OS/2 2.0",
 363                        "OS/2 (MOSS) Inactive Type 1",
 364                        "Compaq Diagnostics Partition | Microsoft",
 365                        "OS/2 (MOSS) Inactive Type 4", "OS/2 (MOSS) Inactive Type 6",
 366                        "OS/2 (MOSS) Inactive Type 7", "OS/2 (MOSS) Inactive Type B",
 367                        "OS/2 (MOSS) Inactive Type C", "Microsoft", "Microsoft",
 368                        "Microsoft", "Microsoft", "Microsoft", "Microsoft",
 369                        "Microsoft", "OS/2 Logical Volume Manager", "Microsoft",
 370                        "OS/2 JFS Log", "PowerQuest", "VENIX 80286 | Series/1 Disk",
 371                        "Personal RISC Boot", "Veritas", "Veritas",
 372                        "OnTrack Disk Manager Read Only DOS",
 373                        "OnTrack Disk Manager Read/Write DOS",
 374                        "CPM | Microport System V/386 | OnTrack Disk Mgr | " 
 375                        "Microsoft", "OnTrack Disk Manager",
 376                        "OnTrack Disk Manager Non-DOS",
 377                        "Micro House EZ-Drive Non-DOS",
 378                        "Golden Bow Vfeature | Microsoft",
 379 a.dunfey 1.1           "Storage Dimensions SpeedStor | Microsoft",
 380                        "UNIX - AT&T System V/386 | SCO UNIX",
 381                        "Novell NetWare | Speedstore", "Novell NetWare",
 382                        "Novell NetWare", "Novell", "Novell", "Novell", "Microsoft",
 383                        "Microsoft", "Microsoft", "PC/IX IBM", "Microsoft",
 384                        "QNX POSIX", "QNX POSIX (Secondary)",
 385                        "QNX POSIX (Secondary)",
 386                        "Minix (<=1.4a) | Linux | Microsoft",
 387                        "Minix (>=1.4b) | Microsoft", "Linux Swap | Prime",
 388                        "Linux Native | Apple", "System Hibernation for APM",
 389                        "Microsoft", "HPFS FT mirror", "Amoeba | Microsoft",
 390                        "Amoeba BBT | Microsoft", "Microsoft", "Microsoft",
 391                        "Microsoft", "BSD/386", "Microsoft", "Microsoft",
 392                        "Microsoft", "Microsoft", "Microsoft", "BSDI fs | Microsoft",
 393                        "BSDI Swap | Microsoft", "Microsoft", "Microsoft",
 394                        "Microsoft", "Syrinx | HPFS FT Disabled Mirror", "CP/M 86",
 395                        "Digital Research CPM-86 | Concurrent DOS | OUTRIGGER",
 396                        "SpeedStor 12-bit FAT Extended",
 397                        "DOS Read-Only | Storage Dimensions",
 398                        "SpeedStor 16-bit FAT Extended", "Microsoft", "Microsoft",
 399                        "Intel", "OS/2 Raw Data", "Storage Dimensions",
 400 a.dunfey 1.1           "DOS (Secondary)", "Microsoft",
 401                        "SpeedStor Large | Storage Dimensions", "Microsoft",
 402                        "Lan Step | SpeedStor | IBM PS/2 IML", "Bad Block Tables",
 403                        "Unknown" }]
 404                 uint16 PartitionSubtype;
 405              
 406                    [Override ( "NameFormat" ), Description (
 407                        "DiskPartition names MUST use OS Device Name format. In "
 408                        "cases where the partition names can not be used by "
 409                        "applications programmatically (for example, open()) the "
 410                        "NameFormat SHOULD be 'Other'."), 
 411                     ValueMap { "0", "12" }, 
 412                     Values { "Other", "OS Device Name" }]
 413                 uint16 NameFormat = 12;
 414              
 415                    [Override ( "NameNamespace" ), Description (
 416                        "DiskPartition names MUST use OS Device Namespace."), 
 417                     ValueMap { "0", "8" }, 
 418                     Values { "Other", "OS Device Namespace" }]
 419                 uint16 NameNamespace = 8;
 420              };
 421 a.dunfey 1.1 
 422              // ===================================================================
 423              // EFIDiskParition
 424              // ===================================================================
 425                 [Experimental, Version ( "2.8.1000" ), Description (
 426                     "EFI is a newer partitioning style that supports volumes larger "
 427                     "than the 2 terabyte max of other partition styles. EFI in "
 428                     "general is associated with PC X86 architectures, but EFI "
 429                     "partitions are OS and platform independent. EFI uses 16 byte "
 430                     "GUIDs (Globally Unique IDs) for certain properties. The "
 431                     "DeviceId property inherited from LogicalDevice should be a "
 432                     "GUID for EFIDIskPartitions; this string property should be "
 433                     "formatted as a 32 character string with two text bytes "
 434                     "representing each binary byte. EFI specifications call for a "
 435                     "Protective MBR table (PMBR) in block 0 followed by an EFI GPT "
 436                     "(GUID Partition Table). The MBR must describe a single active "
 437                     "partition - the EFI Partition that occupies the rest of the "
 438                     "disk. The user only sees the EFI style partitions in this "
 439                     "second MBR partition. This could be modelled as two tiers, but "
 440                     "since the specification requires this precise behavior with no "
 441                     "management at the MBR level, only the EFI style partitions are "
 442 a.dunfey 1.1        "exposed through the CIM model.")]
 443              class CIM_EFIDiskPartition : CIM_GenericDiskPartition {
 444              
 445                    [Description (
 446                        "The PartitionType as defined in the EFI specs and platform "
 447                        "specific documentation - GUID format. This string property "
 448                        "MUST be formatted with two text bytes representing each "
 449                        "binary byte.")]
 450                 string PartitionType;
 451              };
 452              
 453              // ===================================================================
 454              // VTOCDiskParition
 455              // ===================================================================
 456                 [Experimental, Version ( "2.8.1000" ), Description (
 457                     "VTOC is a partitioning scheme used on Sun Solaris and some "
 458                     "other OSes based on BSD Unix. VTOC partitions are also known "
 459                     "as slices. VTOC allows partitions to overlap. A VTOC disk "
 460                     "always contains 8 slices, but not all need to be in use.")]
 461              class CIM_VTOCDiskPartition : CIM_GenericDiskPartition {
 462              
 463 a.dunfey 1.1       [Description (
 464                        "The VTOC partition flags."), 
 465                     ValueMap { "1", "10" }, 
 466                     Values { "Unmountable", "Read Only" }]
 467                 uint16 Flags[];
 468              
 469                    [Description (
 470                        "The VTOC tag. This is selected by the user to provide a "
 471                        "about the content of the partition. These are the names and "
 472                        "values already used in the VTOC definitions."), 
 473                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
 474                        "10" }, 
 475                     Values { "Unassigned", "Boot", "Root", "Swap", "USR", "Backup",
 476                        "Stand", "Var", "Home", "Alternate Sector", "CacheFS" }]
 477                 uint16 Tag;
 478              
 479                    [Description (
 480                        "A string value generated by the format utility based on the "
 481                        "disk vendor and product IDs and the capacity.")]
 482                 string AsciiLabel;
 483              };
 484 a.dunfey 1.1 
 485              // ===================================================================
 486              // DiskPartitionConfigurationCapabilities
 487              // ===================================================================
 488                 [Experimental, Version ( "2.8.1000" ), Description (
 489                     "DiskPartitionConfigurationCapabilities instances describe a "
 490                     "partition style supported by the platform. An instance of this "
 491                     "class is associated with a volume (or partition) when a "
 492                     "partition table is installed (see "
 493                     "DiskPartitionConfigurationService.SetPartitionStyle.) All "
 494                     "partitions based on an underlying volume/partition have are of "
 495                     "the partition subclass corresponding to this capabilities "
 496                     "class.")]
 497              class CIM_DiskPartitionConfigurationCapabilities : CIM_Capabilities {
 498              
 499                    [Required, Description (
 500                        "The partition style (i.e partition table type) associated "
 501                        "with this capabilities instance."), 
 502                     ValueMap { "2", "3", "4" }, 
 503                     Values { "MBR", "EFI", "VTOC" }]
 504                 uint16 PartitionStyle;
 505 a.dunfey 1.1 
 506                    [Description (
 507                        "Some partitions can act as a container for other "
 508                        "partitions. If sub partitions are not supported, this "
 509                        "should be set to NULL."), 
 510                     ValueMap { "1", "2", "3", "4" }, 
 511                     Values { "Other", "MBR", "VTOC", "EFI" },
 512                     ArrayType ( "Indexed" )]
 513                 uint16 ValidSubPartitionStyles[];
 514              
 515                    [Description (
 516                        "A string describing the partition style if the "
 517                        "corresponding entry in ValidSubPartitionStyles is 'Other'."), 
 518                     ArrayType ( "Indexed" )]
 519                 string OtherValidSubPartitionStyles[];
 520              
 521                    [Description (
 522                        "The version number associated with this partition style.")]
 523                 uint16 Version;
 524              
 525                    [Required, Description (
 526 a.dunfey 1.1           "The maximum number of partitions that can be BasedOn the "
 527                        "Underlying extent.")]
 528                 uint16 MaxNumberOfPartitions;
 529              
 530                    [Required, Description (
 531                        "The number of GenericDiskPartition subclass instances "
 532                        "instantiated by DiskPartitionConfigurationService "
 533                        "SetPartitionStyle method.")]
 534                 uint16 SettingStyleInstantiatedPartitions;
 535              
 536                    [Required, Description (
 537                        "The largest partition size (in blocks) of this style "
 538                        "supported on this platform."), 
 539                     Units ( "Blocks" )]
 540                 uint64 MaxCapacity;
 541              
 542                    [Required, Description (
 543                        "The platform supports partitions with overlapping address "
 544                        "ranges.")]
 545                 boolean OverlapAllowed = FALSE;
 546              
 547 a.dunfey 1.1       [Required, Description (
 548                        "The number of block occupied by the partition table and "
 549                        "other metadata. The effective block size for partitions is "
 550                        "the StorageExtent's ConsumableBlocks minus this size."), 
 551                     Units ( "Blocks" ), 
 552                     ModelCorrespondence { "CIM_StorageExtent.ConsumableBlocks" }]
 553                 uint32 PartitionTableSize;
 554              };
 555              
 556              // ===================================================================
 557              // DiskPartitionConfigurationService
 558              // ===================================================================
 559                 [Experimental, Version ( "2.8.1000" ), Description (
 560                     "DiskPartitionConfigurationService provides methods for clients "
 561                     "to configure DiskPartitions.")]
 562              class CIM_DiskPartitionConfigurationService : CIM_Service {
 563              
 564                    [Description (
 565                        "Describes the partitioning schemes supported by the "
 566                        "platform. AIX and HP_UX do not allow partitions. Linux "
 567                        "allows volumes with and without partitions, Solaris "
 568 a.dunfey 1.1           "requires Partitions. No more than a single instance of this "
 569                        "class MAY be instantiated on a system. If set to 'No "
 570                        "partitions allowed' then the methods of this service are "
 571                        "not available."), 
 572                     ValueMap { "2", "3", "4" }, 
 573                     Values { "No partitions allowed",
 574                        "Volumes may be partitioned or treated as whole",
 575                        "Volumes must be partitioned" }]
 576                 uint16 PartitioningSchemes;
 577              
 578                    [Description (
 579                        "This method installs a partition table on an extent of the "
 580                        "specified partition style, creates DiskPartition instances "
 581                        "if SettingStyleInstantiatedPartitions is non-zero, and "
 582                        "BasedOn associations between the underlying extent and the "
 583                        "new partition instances. As a side effect, the usable block "
 584                        "size of the underlying extent is reduced by the block size "
 585                        "of the metadata reserved by the partition table and "
 586                        "associated metadata. This size is in the PartitionTableSize "
 587                        "property of the associated "
 588                        "DiskPartitionConfigurationCapabilities instance."), 
 589 a.dunfey 1.1        ValueMap { "0", "1", "2", "3", "4", "5", "..", "0x1000",
 590                        "0x1001", "0x1002", "..", "0x8000.." }, 
 591                     Values { "Success", "Not Supported", "Unknown", "Timeout",
 592                        "Failed", "Invalid Parameter", "DMTF Reserved",
 593                        "Extent already has partition table",
 594                        "Requested Extent too large",
 595                        "Style not supported by Service", "Method Reserved",
 596                        "Vendor Specific" }]
 597                 uint32 SetPartitionStyle (
 598                    
 599                       [IN, Description (
 600                           "A reference to the extent (volume or partition) where "
 601                           "this style (partition table) will be installed.")]
 602                    CIM_StorageExtent REF Extent,
 603                    
 604                       [IN, Description (
 605                           "A reference to the "
 606                           "DiskPartitionConfigurationCapabilities instance "
 607                           "describing the desired partition style.")]
 608                    CIM_DiskPartitionConfigurationCapabilities REF PartitionStyle ); 
 609              
 610 a.dunfey 1.1       [Description (
 611                        "This method creates a new partition if the Partition "
 612                        "parameter is null or modifies the partition specified. If "
 613                        "the starting and ending address parameters are null, the "
 614                        "resulting partition will occupy the entire underlying "
 615                        "extent. If a the DeviceFileName parameter is non-null, a "
 616                        "LogicalDisk instance is created BasedOn the partition. The "
 617                        "underlying extent MUST be associated to a capabilities "
 618                        "class describing the installed partition style (partition "
 619                        "table); this association is established using "
 620                        "SetPartitionStyle()."), 
 621                     ValueMap { "0", "1", "2", "3", "4", "5", "..", "0x1000",
 622                        "0x1001", "0x1002", "0x1003", "0x1004", "..", "0x8000.." }, 
 623                     Values { "Success", "Not Supported", "Unknown", "Timeout",
 624                        "Failed", "Invalid Parameter", "DMTF Reserved",
 625                        "Overlap Not Supported", "No Available Partitions",
 626                        "Specified partition not on specified extent",
 627                        "Device File Name not valid",
 628                        "LogicalDisk with different DeviceFileName exists",
 629                        "Method Reserved", "Vendor Specific" }]
 630                 uint32 CreateOrModifyPartition ( 
 631 a.dunfey 1.1          [IN, Description (
 632                           "A reference to the underlying extent the partition is "
 633                           "base on.")]
 634                    CIM_StorageExtent REF extent,
 635                    
 636                       [IN, Description (
 637                           "The starting block number.")]
 638                    uint64 StartingAddress,
 639                    
 640                       [IN, Description (
 641                           "The ending block number.")]
 642                    uint64 EndingAddress,
 643                    
 644                       [IN, Description (
 645                           "The platform-specific special file name to be assigned "
 646                           "to the LogicalDisk instance BasedOn the new "
 647                           "DiskPartition instance.")]
 648                    string DeviceFileName,
 649                    
 650                       [IN, OUT, Description (
 651                           "A reference an existing partition instance to modify or "
 652 a.dunfey 1.1              "null to request a new partition.")]
 653                    CIM_GenericDiskPartition REF Partition); 
 654              
 655              };
 656              
 657              // ===================================================================
 658              // InstalledPartitionTable
 659              // ===================================================================
 660                 [Association, Version ( "2.8.1000" ), Description (
 661                     "This association describes the attributes of a partition table "
 662                     "installed in an extent. The attributes are in the capabilities "
 663                     "class.")]
 664              class CIM_InstalledPartitionTable : CIM_Dependency {
 665              
 666                    [Experimental, Override ( "Antecedent" ), Max ( 1 ), 
 667                     Description (
 668                        "The DiskPartitionConfigurationCapabilities describing the "
 669                        "capabilities of partitions based on this extent.")]
 670                 CIM_DiskPartitionConfigurationCapabilities REF Antecedent;
 671              
 672                    [Override ( "Dependent" ), Description (
 673 a.dunfey 1.1           "The extent 'hosting' the partitions \n"
 674                        ".")]
 675                 CIM_StorageExtent REF Dependent;
 676              };
 677              
 678              // ===================================================================
 679              // DiskPartitionBasedOnVolume
 680              // ===================================================================
 681                 [Association, Version ( "2.8.1000" ), Description (
 682                     "DiskPartitions should be BasedOn a single StorageVolume (for "
 683                     "example, exposed by a hardware RAID cabinet), an SCC "
 684                     "VolumeSet, or realized directly in PhysicalMedia. The first "
 685                     "two relationships are made explicit in this association. The "
 686                     "latter is conveyed by the RealizesDiskPartition association.")]
 687              class CIM_DiskPartitionBasedOnVolume : CIM_BasedOn {
 688              
 689                    [Override ( "Antecedent" ), Max ( 1 ), Description (
 690                        "The StorageVolume.")]
 691                 CIM_StorageVolume REF Antecedent;
 692              
 693                    [Override ( "Dependent" ), Description (
 694 a.dunfey 1.1           "The DiskPartition which is built on the Volume.")]
 695                 CIM_GenericDiskPartition REF Dependent;
 696              };
 697              
 698              
 699              // ===================================================================
 700              // RealizesDiskPartition
 701              // ===================================================================
 702                 [Association, Version ( "2.8.1000" ), Description (
 703                     "DiskPartitions can be directly realized on a PhysicalMedia. "
 704                     "This is used to model the creation of Partitions on a raw SCSI "
 705                     "or IDE drive, using the fdisk (DOS and Unix) or pdisk (Unix) "
 706                     "command. The StartingAddress of the DiskPartition on the "
 707                     "PhysicalMedia is also specified as a property of this "
 708                     "relationship. An alternative is that Partitions can be BasedOn "
 709                     "StorageVolumes, such as a VolumeSet or a Volume exposed by a "
 710                     "hardware RAID cabinet. The latter relationship is modeled "
 711                     "using the DiskPartitionBasedOnVolume association.")]
 712              class CIM_RealizesDiskPartition : CIM_RealizesExtent {
 713              
 714                    [Override ( "Antecedent" ), Max ( 1 ), Description (
 715 a.dunfey 1.1           "The PhysicalMedia on which the Extent is realized.")]
 716                 CIM_PhysicalMedia REF Antecedent;
 717              
 718                    [Override ( "Dependent" ), Description (
 719                        "The DiskPartition that is located on the Media.")]
 720                 CIM_GenericDiskPartition REF Dependent;
 721              };
 722              
 723              
 724              // ===================================================================
 725              // TapePartition
 726              // ===================================================================
 727                 [Version ( "2.6.0" ), Description (
 728                     "Capabilities and management of a TapePartition StorageExtent. "
 729                     "Note that if a PhysicalTape is not partitioned, only a generic "
 730                     "StorageExtent that represents the entire Tape should be "
 731                     "instantiated. TapePartitions may be BasedOn other "
 732                     "StorageExtents or directly Realized on a PhysicalTape.")]
 733              class CIM_TapePartition : CIM_MediaPartition {
 734              
 735                    [Override ( "NameFormat" ), Description (
 736 a.dunfey 1.1           "TapePartition names are application specific."), 
 737                     ValueMap { "0", "1" }, 
 738                     Values { "Other", "Unknown" }]
 739                 uint16 NameFormat = 1;
 740              
 741                    [Override ( "NameNamespace" ), Description (
 742                        "TapePartition names are application specific."), 
 743                     ValueMap { "0", "1" }, 
 744                     Values { "Other", "Unknown" }]
 745                 uint16 NameNamespace = 1;
 746              
 747                    [Description (
 748                        "Number of blocks that are currently unused/not written on "
 749                        "the Partition. When this number is multiplied by the "
 750                        "BlockSize, inherited from StorageExtent, the total number "
 751                        "of bytes available for writing can be computed."), 
 752                     Gauge]
 753                 uint64 UnusedBlocks;
 754              };
 755              
 756              
 757 a.dunfey 1.1 // ===================================================================
 758              // TapePartitionOnSurface
 759              // ===================================================================
 760                 [Association, Version ( "2.6.0" ), Description (
 761                     "TapePartitionOnSurface represents the ability to have one or "
 762                     "more TapePartitions on each surface of a PhysicalTape. The "
 763                     "individual surfaces are represented as instances of "
 764                     "CIM_StorageExtent.")]
 765              class CIM_TapePartitionOnSurface : CIM_BasedOn {
 766              
 767                    [Override ( "Antecedent" ), Max ( 1 ), Description (
 768                        "The StorageExtent that represents the Tape's surface.")]
 769                 CIM_StorageExtent REF Antecedent;
 770              
 771                    [Override ( "Dependent" ), Description (
 772                        "The TapePartition which is built on the Extent.")]
 773                 CIM_TapePartition REF Dependent;
 774              };
 775              
 776              
 777              // ===================================================================
 778 a.dunfey 1.1 // RealizesTapePartition
 779              // ===================================================================
 780                 [Association, Version ( "2.6.0" ), Description (
 781                     "TapePartitions are realized on PhysicalTape. This relationship "
 782                     "is made explicit by the RealizesTapePartition association.")]
 783              class CIM_RealizesTapePartition : CIM_RealizesExtent {
 784              
 785                    [Override ( "Antecedent" ), Max ( 1 ), Description (
 786                        "The PhysicalTape on which the Partition is realized.")]
 787                 CIM_PhysicalTape REF Antecedent;
 788              
 789                    [Override ( "Dependent" ), Description (
 790                        "The TapePartition that is located on the Media.")]
 791                 CIM_TapePartition REF Dependent;
 792              };
 793              
 794              
 795              // ===================================================================
 796              // LogicalDisk
 797              // ===================================================================
 798                 [Version ( "2.8.1000" ), Description (
 799 a.dunfey 1.1        "A LogicalDisk is a presentation of a contiguous range of "
 800                     "logical blocks that is identifiable by applications such as "
 801                     "filesystems via the Name field. (DeviceID (key) may use the "
 802                     "same name or some other unique text such as a UUID.) For "
 803                     "example in a Windows environment, the Name field MAY contain a "
 804                     "drive letter. In a Unix environment, it would contain the "
 805                     "access path (for example, '/dev/...'); and in a NetWare "
 806                     "environment, MaY contain the volume name. LogicalDisks are "
 807                     "typically built on a DiskPartition or other LogicalDisks (for "
 808                     "instance, those exposed by a software volume manager). "
 809                     "However, it can be based on other StorageExtents, like "
 810                     "CIM_Memory, in the case of a RAM disk. \n"
 811                     "\n"
 812                     "LogicalDisks SHOULD set the 'Exported' value in ExtentStatus[] "
 813                     "if they are intended for application use.")]
 814              class CIM_LogicalDisk : CIM_StorageExtent {
 815              
 816                    [Override ( "NameFormat" ), Description (
 817                        "LogicalDisk names MUST use OS Device Name format."), 
 818                     ValueMap { "0", "12" }, 
 819                     Values { "Other", "OS Device Name" }]
 820 a.dunfey 1.1    uint16 NameFormat = 12;
 821              
 822                    [Override ( "NameNamespace" ), Description (
 823                        "LogicalDisk names MUST use OS Device Namespace."), 
 824                     ValueMap { "0", "8" }, 
 825                     Values { "Other", "OS Device Namespace" }]
 826                 uint16 NameNamespace = 8;
 827              };
 828              
 829              
 830              // ===================================================================
 831              // LogicalDiskBasedOnExtent
 832              // ===================================================================
 833                 [Association, Version ( "2.6.0" ), Description (
 834                     "LogicalDisks can be BasedOn a single StorageVolume, Memory (in "
 835                     "the case of a RAM Disk), a DiskPartition or other "
 836                     "StorageExtent. These relationships are made explicit in this "
 837                     "association. Subclasses of the association, LogicalDiskBasedOn "
 838                     "Partition and LogicalDiskBasedOnVolume, detail the 'typical' "
 839                     "semantics.")]
 840              class CIM_LogicalDiskBasedOnExtent : CIM_BasedOn {
 841 a.dunfey 1.1 
 842                    [Override ( "Antecedent" ), Max ( 1 ), Description (
 843                        "The StorageExtent.")]
 844                 CIM_StorageExtent REF Antecedent;
 845              
 846                    [Override ( "Dependent" ), Description (
 847                        "The LogicalDisk which is built on the StorageExtent.")]
 848                 CIM_LogicalDisk REF Dependent;
 849              };
 850              
 851              
 852              // ===================================================================
 853              // LogicalDiskBasedOnVolume
 854              // ===================================================================
 855                 [Association, Version ( "2.6.0" ), Description (
 856                     "LogicalDisks can be BasedOn a single Volume (for example, "
 857                     "exposed by a software volume manager), or be BasedOn a Disk "
 858                     "Partition directly. The former relationship is made explicit "
 859                     "in this association.")]
 860              class CIM_LogicalDiskBasedOnVolume : CIM_LogicalDiskBasedOnExtent {
 861              
 862 a.dunfey 1.1       [Override ( "Antecedent" ), Max ( 1 ), Description (
 863                        "The StorageVolume.")]
 864                 CIM_StorageVolume REF Antecedent;
 865              
 866                    [Override ( "Dependent" ), Description (
 867                        "The LogicalDisk which is built on the StorageExtent.")]
 868                 CIM_LogicalDisk REF Dependent;
 869              };
 870              
 871              
 872              // ===================================================================
 873              // LogicalDiskBasedOnPartition
 874              // ===================================================================
 875                 [Association, Version ( "2.6.0" ), Description (
 876                     "LogicalDisks can be BasedOn a DiskPartition. For example, a "
 877                     "personal computer's C: drive may be located on a Partition on "
 878                     "local PhysicalMedia. In this association of LogicalDisks to "
 879                     "Partitions, note that the cardinality of the Antecedent, Disk "
 880                     "Partition, is Max (1). This dictates that a LogicalDisk can "
 881                     "not span more than one Partition. However, there are cases "
 882                     "where this is true. When it occurs, the LogicalDisk is really "
 883 a.dunfey 1.1        "based on some kind of RAID configuration (for example, a "
 884                     "mirror or stripe set). In these scenarios, the LogicalDisk is "
 885                     "more correctly BasedOn a StorageVolume. To prevent incorrectly "
 886                     "using the LogicalDiskBasedOnPartition association, the Max (1) "
 887                     "qualifier was put on the Antecedent reference to the "
 888                     "DiskPartition.")]
 889              class CIM_LogicalDiskBasedOnPartition : CIM_LogicalDiskBasedOnExtent {
 890              
 891                    [Override ( "Antecedent" ), Max ( 1 ), Description (
 892                        "The DiskPartition.")]
 893                 CIM_GenericDiskPartition REF Antecedent;
 894              
 895                    [Override ( "Dependent" ), Description (
 896                        "The LogicalDisk which is built on the StorageExtent.")]
 897                 CIM_LogicalDisk REF Dependent;
 898              };
 899              
 900              
 901              // ===================================================================
 902              // ProtectedExtentBasedOn
 903              // ===================================================================
 904 a.dunfey 1.1    [Association, Version ( "2.7.0" ), Description (
 905                     "Protected StorageExtents map to an underlying StorageExtent. "
 906                     "This mapping includes information about the placement of check "
 907                     "data on the underlying extent. The mapping is made explicit in "
 908                     "this association.")]
 909              class CIM_ProtectedExtentBasedOn : CIM_BasedOn {
 910              
 911                    [Override ( "Antecedent" ), Description (
 912                        "The underlying StorageExtent.")]
 913                 CIM_StorageExtent REF Antecedent;
 914              
 915                    [Override ( "Dependent" ), Description (
 916                        "The Protected Space is built on this StorageExtent.")]
 917                 CIM_StorageExtent REF Dependent;
 918              
 919                    [Override ( "StartingAddress" ), Description (
 920                        "The starting logical block address of the underlying "
 921                        "StorageExtent from which this protected StorageExtent is "
 922                        "derived. In SCC, this is equivalent to the START LBA_P "
 923                        "field in the Redundancy Group P_Extent Descriptor."), 
 924                     MappingStrings { "MIF.DMTF|Physical Extent|001.2" }]
 925 a.dunfey 1.1    uint64 StartingAddress;
 926              
 927                    [Description (
 928                        "The size of the protected space. Note that this is limited "
 929                        "by the Antecedent->NumberOfBlocks, but is included "
 930                        "explicitly to provide for the DMTF MIF mapping. In SCC, "
 931                        "this is equivalent to the NUMBER OF LBA_P(s) field in the "
 932                        "Redundancy Group P_Extent Descriptor."), 
 933                     MappingStrings { "MIF.DMTF|Physical Extent|001.3" }, 
 934                     ModelCorrespondence { "CIM_StorageExtent.NumberOfBlocks" }]
 935                 uint64 NumberOfBlocks;
 936              
 937                    [Description (
 938                        "The block size of the protected space. Note that this is "
 939                        "limited by the Antecedent->BlockSize. In SCC, this is "
 940                        "equivalent to the NUMBER OF BYTES PER LBA_P field in the "
 941                        "Redundancy Group P_Extent Descriptor."), 
 942                     Units ( "Bytes" ), 
 943                     MappingStrings { "MIF.DMTF|Physical Extent|001.4" }, 
 944                     ModelCorrespondence { "CIM_StorageExtent.BlockSize" }]
 945                 uint64 BlockSize;
 946 a.dunfey 1.1 
 947                    [Description (
 948                        "Number of bytes of user data to skip before starting the "
 949                        "check data interleave."), 
 950                     Units ( "Bytes" ), 
 951                     MappingStrings { "MIF.DMTF|Physical Extent|001.6" }]
 952                 uint64 UnitsBeforeCheckDataInterleave;
 953              
 954                    [Description (
 955                        "Number of bytes to be reserved for check data."), 
 956                     Units ( "Bytes" ), 
 957                     MappingStrings { "MIF.DMTF|Physical Extent|001.7" }]
 958                 uint64 UnitsOfCheckData;
 959              
 960                    [Description (
 961                        "Number of bytes to be reserved for user data."), 
 962                     Units ( "Bytes" ), 
 963                     MappingStrings { "MIF.DMTF|Physical Extent|001.8" }]
 964                 uint64 UnitsOfUserData;
 965              };
 966              
 967 a.dunfey 1.1 
 968              // ===================================================================
 969              // CompositeExtent
 970              // ===================================================================
 971                 [Version ( "2.7.0" ), Description (
 972                     "A CompositeExtent is used to model the distribution of user "
 973                     "data across one or more underlying StorageExtents, which may "
 974                     "or not be protected by some redundancy mechanism. "
 975                     "CompositeExtents represent a contiguous range of logical "
 976                     "blocks. CompositeExtents may overlap, however, the underlying "
 977                     "StorageExtents within the overlap shall not contain any check "
 978                     "data. Distribution of check data may be specified using the "
 979                     "CompositeExtentBasedOn association.")]
 980              class CIM_CompositeExtent : CIM_StorageExtent {
 981              
 982                    [Override ( "NumberOfBlocks" ), 
 983                     MappingStrings { "MIF.DMTF|Volume Set|001.3" }]
 984                 uint64 NumberOfBlocks;
 985              
 986                    [Description (
 987                        "Number of contiguous underlying StorageExtents counted "
 988 a.dunfey 1.1           "before looping back to the first underlying StorageExtent "
 989                        "of the current stripe. It is the number of StorageExtents "
 990                        "forming the user data stripe."), 
 991                     MappingStrings { "MIF.DMTF|Volume Set|001.4" }]
 992                 uint64 ExtentStripeLength;
 993              
 994                    [Description (
 995                        "Number of StorageExtents to stripe as a collective set. In "
 996                        "SCC, this value is defined as the number of stripes to "
 997                        "count before continuing to map into the next contiguous set "
 998                        "of Extents, beyond the current stripe."), 
 999                     MappingStrings { "MIF.DMTF|Volume Set|001.5" }]
1000                 uint64 ExtentInterleaveDepth;
1001              
1002                    [Description (
1003                        "True indicates that the data is concatenated across the "
1004                        "various StorageExtents in the Group.")]
1005                 boolean IsConcatenated;
1006              };
1007              
1008              
1009 a.dunfey 1.1 // ===================================================================
1010              // CompositeExtentBasedOn
1011              // ===================================================================
1012                 [Association, Version ( "2.7.0" ), Description (
1013                     "This specialization defines how data is striped across "
1014                     "StorageExtents. Additionally, it includes information on "
1015                     "distribution of check data so that the 'usual case' RAID "
1016                     "devices can be created in one step.")]
1017              class CIM_CompositeExtentBasedOn : CIM_BasedOn {
1018              
1019                    [Override ( "Antecedent" ), Min ( 1 ), Description (
1020                        "The underlying StorageExtent.")]
1021                 CIM_StorageExtent REF Antecedent;
1022              
1023                    [Override ( "Dependent" ), Description (
1024                        "The CompositeExtent which is built on the StorageExtent.")]
1025                 CIM_CompositeExtent REF Dependent;
1026              
1027                    [Required, Override ( "OrderIndex" ), Description (
1028                        "Order matters to CompositeExtents. An example of the use of "
1029                        "this property is when defining a RAID-0 striped array of 3 "
1030 a.dunfey 1.1           "disks. The resultant RAID array is a CompositeExtent that "
1031                        "is dependent on (as described by CompositeExtentBasedOn) "
1032                        "the StorageExtents that represent each of the 3 disks. The "
1033                        "OrderIndex of each CompositeExtentBasedOn association from "
1034                        "the disk Extents to the RAID array could be specified as 1, "
1035                        "2 and 3 to indicate the order in which the disk Extents are "
1036                        "used to access the RAID data."), 
1037                     MappingStrings { "MIF.DMTF|Protected Space Extent|001.1" }]
1038                 uint16 OrderIndex;
1039              
1040                    [Description (
1041                        "True if logical blocks in the underlying StorageExtents are "
1042                        "mapped in decrementing order. This property corresponds to "
1043                        "the INCDEC value in the SCC-2 Volume Set PS_Extent "
1044                        "Descriptor.")]
1045                 boolean LBAsMappedByDecrementing;
1046              
1047                    [Description (
1048                        "True if the logical block mapping algorithm includes check "
1049                        "data bytes. This property corresponds to the NOCHKSKIP "
1050                        "attribute in the SCC-2 Volume Set PS_Extent Descriptor.")]
1051 a.dunfey 1.1    boolean LBAMappingIncludesCheckData;
1052              
1053                    [Description (
1054                        "The total number of blocks that will be consumed on the "
1055                        "Dependent Extent. This is limited by the Antecedent's "
1056                        "NumberOfBlocks, but is included explicitly to provide for "
1057                        "the DMTF MIF mapping. In SCC, this is equivalent to the "
1058                        "NUMBER OF LBA_PS(s) field in the Volume Set PS_Extent "
1059                        "Descriptor."), 
1060                     MappingStrings { "MIF.DMTF|Protected Space Extent|001.3" }, 
1061                     ModelCorrespondence { "CIM_StorageExtent.NumberOfBlocks" }]
1062                 uint64 NumberOfBlocks;
1063              
1064                    [Description (
1065                        "The Dependent's BlockSize is limited by the Antecedent's. "
1066                        "In SCC, this is equivalent to the NUMBER OF BYTES PER "
1067                        "LBA_PS field in the RedundancyGroup P_Extent Descriptor."), 
1068                     Units ( "Bytes" ), 
1069                     MappingStrings { "MIF.DMTF|Protected Space Extent|001.4" }, 
1070                     ModelCorrespondence { "CIM_StorageExtent.BlockSize" }]
1071                 uint64 BlockSize;
1072 a.dunfey 1.1 
1073                    [Description (
1074                        "Number of bytes which form the stripe size for the "
1075                        "Dependent StorageExtent. If the CompositeExtent is "
1076                        "concatenated instead of striped, then UserDataStripeDepth "
1077                        "should be set to zero."), 
1078                     Units ( "Bytes" ), 
1079                     MappingStrings { "MIF.DMTF|Protected Space Extent|001.6" }]
1080                 uint64 UserDataStripeDepth;
1081              
1082                    [Description (
1083                        "Number of bytes of user data to skip before starting the "
1084                        "check data interleave."), 
1085                     Units ( "Bytes" ), 
1086                     MappingStrings { "MIF.DMTF|Physical Extent|001.6" }]
1087                 uint64 UnitsBeforeCheckDataInterleave;
1088              
1089                    [Description (
1090                        "Number of bytes to be reserved for check data."), 
1091                     Units ( "Bytes" ), 
1092                     MappingStrings { "MIF.DMTF|Physical Extent|001.7" }]
1093 a.dunfey 1.1    uint64 UnitsOfCheckData;
1094              
1095                    [Description (
1096                        "Number of bytes to be reserved for user data."), 
1097                     Units ( "Bytes" ), 
1098                     MappingStrings { "MIF.DMTF|Physical Extent|001.8" }]
1099                 uint64 UnitsOfUserData;
1100              };
1101              
1102              
1103              // ===================================================================
1104              // StorageError
1105              // ===================================================================
1106                 [Version ( "2.6.0" ), Description (
1107                     "StorageError defines blocks of media or memory space that are "
1108                     "mapped 'out of use' due to errors. The Key of the class is the "
1109                     "StartingAddress of the bytes in error.")]
1110              class CIM_StorageError : CIM_ManagedElement {
1111              
1112                    [Key, Propagated ( "CIM_StorageExtent.SystemCreationClassName" ), 
1113                     Description (
1114 a.dunfey 1.1           "The scoping System's CreationClassName."), 
1115                     MaxLen ( 256 )]
1116                 string SystemCreationClassName;
1117              
1118                    [Key, Propagated ( "CIM_StorageExtent.SystemName" ), 
1119                     Description (
1120                        "The scoping System's Name."), 
1121                     MaxLen ( 256 )]
1122                 string SystemName;
1123              
1124                    [Key, Propagated ( "CIM_StorageExtent.CreationClassName" ), 
1125                     Description (
1126                        "The scoping StorageExtent's CreationClassName."), 
1127                     MaxLen ( 256 )]
1128                 string DeviceCreationClassName;
1129              
1130                    [Key, Propagated ( "CIM_StorageExtent.DeviceID" ), Description (
1131                        "The scoping StorageExtent's DeviceID."), 
1132                     MaxLen ( 64 )]
1133                 string DeviceID;
1134              
1135 a.dunfey 1.1       [Key, Description (
1136                        "The starting address of the bytes in error.")]
1137                 uint64 StartingAddress;
1138              
1139                    [Description (
1140                        "The ending address of the bytes in error.")]
1141                 uint64 EndingAddress;
1142              };
1143              
1144              
1145              // ===================================================================
1146              // StorageDefect
1147              // ===================================================================
1148                 [Association, Aggregation, Version ( "2.6.0" ), Description (
1149                     "The StorageDefect aggregation collects the StorageErrors for a "
1150                     "StorageExtent.")]
1151              class CIM_StorageDefect {
1152              
1153                    [Key, Aggregate, Min ( 1 ), Max ( 1 ), Description (
1154                        "The Extent reference defines the StorageExtent on which the "
1155                        "errors occurred.")]
1156 a.dunfey 1.1    CIM_StorageExtent REF Extent;
1157              
1158                    [Key, Weak, Description (
1159                        "Error references the Error object, defining the starting "
1160                        "and ending addresses that are 'mapped out' of the Storage "
1161                        "Extent.")]
1162                 CIM_StorageError REF Error;
1163              };
1164              
1165              
1166              // ===================================================================
1167              // end of file
1168              // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2