// Copyright (c) 2012 DMTF.  All rights reserved.
   [Version ( "2.34.0" ), 
    UMLPackagePath ( "CIM::Core::Resource" ), 
    Description ( 
       "The ProcessorAllocationSettingData class represents resource "
       "allocation settings specifically related to the allocation of "
       "a processor (CPU)." )]
class CIM_ProcessorAllocationSettingData : CIM_ResourceAllocationSettingData {

      [Description ( 
          "Identifies the processor architecture of the processor, "
          "for programmatic use, using a structured string value "
          "(termed \'processor architecture string value\').\n"
          "This property should not be used to distinguish "
          "instruction sets or instruction set extensions within a "
          "processor architecture; the InstructionSet and "
          "InstructionSetExtension properties are used for that.\n"
          "Different widths of memory addresses should be "
          "distinguished via separate processor architecture values "
          "if the corresponding instruction set architectures are "
          "sufficiently different.\n"
          "The processor architecture should not designate "
          "co-processors that only provide extensions to an "
          "instruction set, such as floating point units - these "
          "should be represented through instruction set extensions.\n"
          "The format for processor architecture string values "
          "shall conform to the \'arch\' ABNF rule:\n"
          "arch = org-id \":\" arch-id\n"
          "org-id = IDENTIFIER\n"
          "arch-id = INST-IDENTIFIER\n"
          "INST-IDENTIFIER = 1*( UPPERALPHA / LOWERALPHA / "
          "UNDERSCORE / DIGIT / \"/\" / \"-\" / \".\")\n"
          "Org-id shall include a copyrighted, trademarked, or "
          "otherwise unique name that is owned by the business "
          "entity that defines the processor architecture string "
          "value, or that is a registered ID assigned to that "
          "business entity by a recognized global authority. In "
          "addition, to ensure uniqueness, org-id and arch-id shall "
          "not contain a colon (:). The business entity that "
          "defines the processor architecture string value does not "
          "need to own or maintain the definition of the processor "
          "architecture identified by the value.\n"
          "Arch-id shall be unique within org-id.\n"
          "IDENTIFIER, UPPERALPHA, LOWERALPHA, UNDERSCORE, DIGIT "
          "are defined in DSP0004.\n"
          "Processor architecture string values defined by DMTF "
          "shall have an org-id of \'DMTF\' and are all defined in "
          "the ValueMap of this property.\n"
          "In addition to the values defined in its ValueMap, this "
          "property may have values not defined in its ValueMap. "
          "Subclasses may override the ValueMap (and Values) "
          "qualifiers to add additional values." ), 
       ValueMap { "DMTF:x86", "DMTF:IA-64", "DMTF:AS/400", 
          "DMTF:Power", "DMTF:S/390", "DMTF:PA-RISC", "DMTF:ARM", 
          "DMTF:MIPS", "DMTF:Alpha", "DMTF:SPARC", "DMTF:68k" }, 
       Values { 
          "Intel x86 (32-bit, 64-bit: x86-64, x64, AMD64, Intel64)", 
          "Intel Itanium Architecture (IA-64, Itanium Processor Architecture (IPA))", 
          "IBM AS/400 Architecture", 
          "Power Architecture (incl. POWER, PowerPC, Cell)", 
          "IBM System/390 and z/Architecture", 
          "HP PA-RISC Architecture", "ARM Architecture", 
          "MIPS Architecture", "Intel/DEC Alpha Architecture", 
          "SPARC Architecture", "Motorola 68000 Family" }, 
       ModelCorrespondence { 
          "CIM_ProcessorAllocationSettingData.InstructionSet", 
          "CIM_ProcessorAllocationSettingData.InstructionSetExtensionName", 
          "CIM_ProcessorAllocationSettingData.InstructionSetExtensionStatus" }]
   string ProcessorArchitecture;

      [Description ( 
          "Identifies the instruction set of the processor within a "
          "processor architecture, for programmatic use, using a "
          "structured string value (termed \'instruction set string value\').\n"
          "The instruction set should not be used to distinguish "
          "instruction set extensions (the InstructionSetExtension "
          "property is used for that).\n"
          "The format for instruction set string values shall "
          "conform to the \'instset\' ABNF rule:\n"
          "instset = org-id \":\" arch-id \":\" instset-id\n"
          "org-id = IDENTIFIER arch-id = INST-IDENTIFIER\n"
          "instset-id = INST-IDENTIFIER\n"
          "Org-id shall include a copyrighted, trademarked, or "
          "otherwise unique name that is owned by the business "
          "entity that defines the instruction set string value, or "
          "that is a registered ID assigned to that business entity "
          "by a recognized global authority. In addition, to ensure "
          "uniqueness, org-id, arch-id and instset-id shall not "
          "contain a colon (:). The business entity that defines "
          "the instruction set string value does not need to own or "
          "maintain the definition of the instruction set "
          "identified by the string value.\n"
          "Arch-id shall be unique within org-id.\n"
          "Instset-id shall be unique within arch-id.\n"
          "IDENTIFIER is defined in DSP0004.\n"
          "INST-IDENTIFIER is defined in the description of the "
          "ProcessorArchitecture property.\n"
          "Instruction set string values defined by DMTF shall have "
          "an org-id of \'DMTF\' and are all defined in the "
          "ValueMap of this property.\n"
          "In addition to the values defined in its ValueMap, this "
          "property may have values not defined in its ValueMap. "
          "Subclasses may override the ValueMap (and Values) "
          "qualifiers to add additional values." ), 
       ValueMap { "DMTF:x86:i386", "DMTF:x86:i486", "DMTF:x86:i586", 
          "DMTF:x86:i686", "DMTF:x86:64", "DMTF:IA-64:IA-64", 
          "DMTF:AS/400:TIMI", "DMTF:Power:Power_2.03", 
          "DMTF:Power:Power_2.04", "DMTF:Power:Power_2.05", 
          "DMTF:Power:Power_2.06", "DMTF:S/390:ESA/390", 
          "DMTF:S/390:z/Architecture", 
          "DMTF:S/390:z/Architecture_2", "DMTF:PA-RISC:PA-RISC_1.0", 
          "DMTF:PA-RISC:PA-RISC_2.0", "DMTF:ARM:A32", 
          "DMTF:ARM:A64", "DMTF:MIPS:MIPS_I", "DMTF:MIPS:MIPS_II", 
          "DMTF:MIPS:MIPS_III", "DMTF:MIPS:MIPS_IV", 
          "DMTF:MIPS:MIPS_V", "DMTF:MIPS:MIPS32", 
          "DMTF:MIPS64:MIPS64", "DMTF:Alpha:Alpha", 
          "DMTF:SPARC:SPARC_V7", "DMTF:SPARC:SPARC_V8", 
          "DMTF:SPARC:SPARC_V9", "DMTF:SPARC:SPARC_JPS1", 
          "DMTF:SPARC:UltraSPARC2005", "DMTF:SPARC:UltraSPARC2007", 
          "DMTF:68k:68000", "DMTF:68k:68010", "DMTF:68k:68020", 
          "DMTF:68k:68030", "DMTF:68k:68040", "DMTF:68k:68060" }, 
       Values { "x86 i386 instruction set", 
          "x86 i486 instruction set", "x86 i586 instruction set", 
          "x86 i686 instruction set", "x86 64-bit instruction set", 
          "IA-64: Intel Itanium Architecture, incl. hardware multithreading and Intel Virtualization Technology (VT-i)", 
          "IBM AS/400 TIMI (Technology Independent Machine Interface, 48-bit)", 
          "Power ISA v2.03 (incl. IBM POWER5)", "Power ISA v2.04", 
          "Power ISA v2.05 (incl. IBM POWER6)", 
          "Power ISA v2.06 (incl. IBM POWER7)", 
          "IBM ESA/390 (ARCHLVL 1, 31-bit)", 
          "IBM z/Architecture 1 (ARCHLVL 2, 64-bit)", 
          "IBM z/Architecture 2 (ARCHLVL 3, 64-bit)", 
          "PA-RISC 1.0 (64-bit)", "PA-RISC 2.0 (64-bit)", 
          "ARM A32 (AArch32, 32-bit)", "ARM A64 (AArch64, 64-bit)", 
          "MIPS I (32-bit)", "MIPS II (32-bit)", 
          "MIPS III (32-bit)", "MIPS IV (32-bit)", 
          "MIPS V (32-bit)", "MIPS32 (32-bit)", "MIPS64 (64-bit)", 
          "DEC Alpha (64-bit)", "SPARC V7 (32-bit)", 
          "SPARC V8 (32-bit)", "SPARC V9 (64-bit)", 
          "SPARC Joint Programming Specification 1 (64-bit)", 
          "UltraSPARC Architecture 2005 (64-bit)", 
          "UltraSPARC Architecture 2007 (64-bit)", 
          "Motorola 68000/008 (24-bit)", 
          "Motorola 68010/012 (24-bit)", "Motorola 68020 (32-bit)", 
          "Motorola 68030 (32-bit)", "Motorola 68040 (32-bit)", 
          "Motorola 68060 (32-bit)" }, 
       ModelCorrespondence { 
          "CIM_ProcessorAllocationSettingData.ProcessorArchitecture", 
          "CIM_ProcessorAllocationSettingData.InstructionSetExtensionName", 
          "CIM_ProcessorAllocationSettingData.InstructionSetExtensionStatus" }]
   string InstructionSet;

      [Description ( 
          "Identifies the instruction set extensions of the "
          "processor within a processor architecture, for "
          "programmatic use, using a structured string value "
          "(termed \'extension string value\').\n"
          "Instruction set extensions provide instructions or "
          "capabilities in addition to instructions or capabilities "
          "provided by the instruction set that is being extended.\n"
          "The format for extension string values shall conform to "
          "the \'extension\' ABNF rule:\n"
          "extension = org-id \":\" arch-id \":\" extension-id\n"
          "org-id = IDENTIFIER\n"
          "arch-id = INST-IDENTIFIER\n"
          "extension-id = INST-IDENTIFIER\n"
          "Org-id shall include a copyrighted, trademarked, or "
          "otherwise unique name that is owned by the business "
          "entity that defines the instruction set string value, or "
          "that is a registered ID assigned to that business entity "
          "by a recognized global authority. In addition, to ensure "
          "uniqueness, org-id, arch-id and instset-id shall not "
          "contain a colon (:). The business entity that defines "
          "the extension string value does not need to own or "
          "maintain the definition of the instruction set extension "
          "identified by the string value.\n"
          "Instset-id shall be unique within org-id.\n"
          "Arch-id shall be unique within org-id.\n"
          "IDENTIFIER is defined in DSP0004.\n"
          "INST-IDENTIFIER is defined in the description of the "
          "ProcessorArchitecture property.\n"
          "Extension string values defined by DMTF shall have an "
          "org-id of \'DMTF\' and are all defined in the ValueMap "
          "of this property.\n"
          "In addition to the values defined in its ValueMap, this "
          "property may have values not defined in its ValueMap. "
          "Subclasses may override the ValueMap (and Values) "
          "qualifiers to add additional values.\n"
          "This array shall be index-correlated with the "
          "InstructionSetExtensionStatus array.\n"
          "The following older x86 instruction set features are not "
          "supported by the ValueMap of this property:\n"
          "- 3DNowPrefetch: PREFETCH and PREFETCHW instruction support\n"
          "- CLFSH: CLFLUSH instruction support\n"
          "- CMOV: conditional move instructions\n"
          "- CMPXCHG8B: CMPXCHG8B instruction\n"
          "- DE: debugging extensions\n"
          "- FXSR: FXSAVE and FXRSTOR instructions\n"
          "- LM: long mode\n"
          "- LahfSahf: LAHF and SAHF instruction support in 64-bit mode\n"
          "- MCA: Machine check architecture\n"
          "- MCE: Machine check exception\n"
          "- MONITOR: MONITOR/MWAIT instructions\n"
          "- MSR: AMD model-specific registers, with RDMSR and "
          "WRMSR instructions\n"
          "- MTRR: memory-type range registers\n"
          "- OSXSAVE: XSAVE (and related) instructions are enabled\n"
          "- PAE: physical-address extensions\n"
          "- PAT: page attribute table\n"
          "- PGE: page global extension\n"
          "- POPCNT: POPCNT instruction\n"
          "- PSE: page-size extensions\n"
          "- PSE36: page-size extensions\n"
          "- RDTSCP: RDTSCP instruction\n"
          "- SSE: SSE instructions (prefetch subset)\n"
          "- SKINIT: SKINIT and STGI are supported\n"
          "- SysEnterSysExit: SYSENTER and SYSEXIT instructions\n"
          "- TSC: Time Stamp Counter. RDTSC and RDTSCP instruction support\n"
          "- VME: Virtual-Mode Enhancements\n"
          "- WDT: Watch Dog Timer support\n"
          "- XSAVE: XSAVE (and related) instructions are supported "
          "by hardware" ), 
       ValueMap { "DMTF:x86:3DNow", "DMTF:x86:3DNowExt", 
          "DMTF:x86:ABM", "DMTF:x86:AES", "DMTF:x86:AVX", 
          "DMTF:x86:AVX2", "DMTF:x86:BMI", "DMTF:x86:CX16", 
          "DMTF:x86:F16C", "DMTF:x86:FSGSBASE", "DMTF:x86:LWP", 
          "DMTF:x86:MMX", "DMTF:x86:PCLMUL", "DMTF:x86:RDRND", 
          "DMTF:x86:SSE2", "DMTF:x86:SSE3", "DMTF:x86:SSSE3", 
          "DMTF:x86:SSE4A", "DMTF:x86:SSE41", "DMTF:x86:SSE42", 
          "DMTF:x86:FMA3", "DMTF:x86:FMA4", "DMTF:x86:XOP", 
          "DMTF:x86:TBM", "DMTF:x86:VT-d", "DMTF:x86:VT-x", 
          "DMTF:x86:EPT", "DMTF:x86:SVM", "DMTF:PA-RISC:MAX", 
          "DMTF:PA-RISC:MAX2", "DMTF:ARM:DSP", 
          "DMTF:ARM:Jazelle-DBX", "DMTF:ARM:Thumb", 
          "DMTF:ARM:Thumb-2", "DMTF:ARM:ThumbEE)", "DMTF:ARM:VFP", 
          "DMTF:ARM:NEON", "DMTF:ARM:TrustZone", "DMTF:MIPS:MDMX", 
          "DMTF:MIPS:MIPS-3D", "DMTF:Alpha:BWX", "DMTF:Alpha:FIX", 
          "DMTF:Alpha:CIX", "DMTF:Alpha:MVI" }, 
       Values { "x86 3DNow: AMD 3DNow! instructions", 
          "x86 3DNowExt: Extensions to AMD 3DNow! instructions", 
          "x86 ABM: Advanced Bit Manipulation instructions: LZCNT", 
          "x86 AES: Advanced Encryption Standard instructions: AES*, PCLMULQDQ", 
          "x86 AVX: Advanced Vector Extensions", 
          "x86 AVX2: Advanced Vector Extensions 2", 
          "x86 BMI: Bit Manipulation Instructions: LZCNT, POPCNT", 
          "x86 CX16: CMPXCHG16B instruction", 
          "x86 F16C: Half-precision convert instructions", 
          "x86 FSGSBASE: ?", 
          "x86 LWP: Lightweight Profiling support", 
          "x86 MMX: MMX instructions", 
          "x86 PCLMUL: PCLMUL* instructions", "x86 RDRND: ?", 
          "x86 SSE2: SSE2 instructions", 
          "x86 SSE3: SSE3 instructions", 
          "x86 SSSE3: Supplemental SSE3 instructions", 
          "x86 SSE4A: SSE4A instructions: EXTRQ, INSERTQ, MOVNTSS, and MOVNTSD", 
          "x86 SSE41: SSE4.1 instructions", 
          "x86 SSE42: SSE4.2 instructions", 
          "x86 FMA3: SSE5 Fused Multiply-Add 3 instructions", 
          "x86 FMA4: SSE5 Fused Multiply-Add 4 instructions", 
          "x86 XOP: SSE5 Extended Operation instructions", 
          "x86 TBM: Trailing Bit Manipulation instructions", 
          "x86 VT-d: Intel Virtualization Technology for Directed I/O", 
          "x86 VT-x: Intel Virtualization Technology", 
          "x86 EPT: Intel VT-x with Extended Page Tables", 
          "x86 SVM: AMD virtualization (AMD-V, Secure Virtual Machine (SVM))", 
          "PA-RISC Multimedia Acceleration eXtensions (MAX)", 
          "PA-RISC Multimedia Acceleration eXtensions v2 (MAX2)", 
          "ARM DSP enhancement instructions (DSP)", 
          "ARM Jazelle DBX (Direct Bytecode eXecution)", 
          "ARM Thumb mode", "ARM Thumb-2 mode", 
          "ARM ThumbEE mode (Jazelle RCT (Runtime Compilation Target), Thumb-2EE)", 
          "ARM Vector Floating Point (VFP) Extension", 
          "ARM Advanced SIMD Extension (NEON, MPE (Media Processing Engine))", 
          "ARM Security Extensions (TrustZone Technology)", 
          "MIPS Digital Media eXtension (MDMX)", 
          "MIPS instructions for 3D graphics operations (MIPS-3D)", 
          "DEC Alpha Byte/Word Extension (BWX)", 
          "DEC Alpha Square-root and Floating-point Convert Extension (FIX)", 
          "DEC Alpha Count Extension (CIX)", 
          "DEC Alpha Motion Video Instructions (MVI)" }, 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_ProcessorAllocationSettingData.ProcessorArchitecture", 
          "CIM_ProcessorAllocationSettingData.InstructionSet", 
          "CIM_ProcessorAllocationSettingData.InstructionSetExtensionStatus" }]
   string InstructionSetExtensionName[];

      [Description ( 
          "Enablement status of the instruction set extensions "
          "specified in the corresponding array elements of the "
          "InstructionSetExtensionName property, for programmatic use.\n"
          "This array shall be index-correlated with the "
          "InstructionSetExtensionName array." ), 
       ValueMap { "Unknown", "Enabled", "Disabled" }, 
       Values { "The enablement status of the extension is unknown", 
          "The extension is currently enabled", 
          "The extension is currently disabled" }, 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_ProcessorAllocationSettingData.ProcessorArchitecture", 
          "CIM_ProcessorAllocationSettingData.InstructionSet", 
          "CIM_ProcessorAllocationSettingData.InstructionSetExtensionName" }]
   string InstructionSetExtensionStatus[];


};
