1 kumpf 1.2 // ===================================================================
2 // Title: System Resources 2.7
3 // Filename: System27_SystemResources.mof
4 // Version: 2.7.2
5 // Release: Final
6 // Date: 04/29/03
7 // ===================================================================
8 // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 kumpf 1.2 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 kumpf 1.2 // ===================================================================
44 // Description: The System Model defines system related management
45 // concepts. This file defines the specific concepts for
46 // identifying and managing system hardware and
47 // software resources.
48 //
49 // The object classes below are listed in an order that
50 // avoids forward references. Required objects, defined
51 // by other working groups, are omitted.
52 // ==================================================================
53 // Change Log for v2.7 Final
54 // CR969 - Remove the experimental qualifier
55 //
56 // Change Log for v2.7
57 // CR757 - Change the subclassing of SystemResource from LogicalElement
58 // to EnabledLogicalElement
59 // CR769 - Update the Decription of SystemResource
60 // - Add property SystemResource.ImplementationInfo
61 // - Add ResourceOfSystem
62 // - Change subclassing of ComputerSystemResource to Resource
63 // OfSystem
64 kumpf 1.2 // CR771 - Add the Composition qualifer to ComputerSystemResource,
65 // CIM_ComputerSystemIRQ, CIM_ComputerSystemMappedIO,
66 // and CIM_ComputerSystemDMA
67 // ==================================================================
68
69 #pragma locale ("en_US")
70
71
72 // ===================================================================
73 // SystemResource
74 // ===================================================================
75 [Abstract, Version ("2.7.0"), Description (
76 "An entity managed by BIOS, an OperatingSystem or other software, "
77 "which is available for use by application software and/or "
78 "LogicalDevices. Resources are individually identified and "
79 "allocated entities, that are assignable, reservable, counted/"
80 "tracked, releasable, reset-able, etc. Examples of software "
81 "Resources are message queues, shared memory segments (identified "
82 "by a key value), and named pipes, while examples of hardware "
83 "Resources (in an x86 environment) are IRQs, DMA channels and "
84 "memory mapped I/O.") ]
85 kumpf 1.2 class CIM_SystemResource : CIM_EnabledLogicalElement {
86
87 [Description (
88 "Boolean indicating whether the Resource can be shared.") ]
89 boolean Shareable;
90
91 [Description (
92 "Indicates whether the Resource is implemented in hardware, "
93 "software or both."),
94 ValueMap {"0", "2", "3", "4"},
95 Values {"Unknown", "Hardware Only", "Software Only",
96 "Hardware and Software"} ]
97 uint16 ImplementationInfo;
98 };
99
100
101 // ===================================================================
102 // IRQ
103 // ===================================================================
104 [Version ("2.6.0"), Description (
105 "Personal computer architecture IRQ.") ]
106 kumpf 1.2 class CIM_IRQ : CIM_SystemResource {
107
108 [Propagated("CIM_ComputerSystem.CreationClassName"),
109 Key, MaxLen (256),
110 Description ("The scoping ComputerSystem's "
111 "CreationClassName.") ]
112 string CSCreationClassName;
113
114 [Propagated("CIM_ComputerSystem.Name"),
115 Key, MaxLen (256),
116 Description ("The scoping ComputerSystem's Name.") ]
117 string CSName;
118
119 [Key, MaxLen (256),
120 Description (
121 "CreationClassName indicates the name of the class or "
122 "the subclass used in the creation of an instance. When "
123 "used with the other key properties of this class, this "
124 "property allows all instances of this class and its "
125 "subclasses to be uniquely identified.") ]
126 string CreationClassName;
127 kumpf 1.2
128 [Key,
129 Description ("A part of the object's key value, IRQ Number."),
130 MappingStrings {"MIF.DMTF|IRQ|002.1"} ]
131 uint32 IRQNumber;
132
133 [Description ("Availability of the IRQ."),
134 ValueMap {"1", "2", "3", "4", "5"},
135 Values {"Other", "Unknown", "Available",
136 "In Use/Not Available",
137 "In Use and Available/Shareable"},
138 MappingStrings {"MIF.DMTF|IRQ|002.2"} ]
139 uint16 Availability;
140
141 [Description (
142 "IRQ trigger type indicating whether edge (value=4) "
143 "or level triggered (value=3) interrupts occur. Also, "
144 "\"Other\" (1) and \"Unknown\" (2) may be defined."),
145 ValueMap {"1", "2", "3", "4"},
146 Values {"Other", "Unknown", "Level", "Edge"},
147 MappingStrings {"MIF.DMTF|IRQ|002.3",
148 kumpf 1.2 "MIF.DMTF|System Resource IRQ Info|001.2"} ]
149 uint16 TriggerType;
150
151 [Description (
152 "IRQ trigger level indicating whether the interrupt is "
153 "triggered by the hardware signal going high (value=4) "
154 "or low (value=3). Also, \"Other\" (1) and "
155 "\"Unknown\" (2) may be defined."),
156 ValueMap {"1", "2", "3", "4"},
157 Values {"Other", "Unknown", "Active Low", "Active High"},
158 MappingStrings {"MIF.DMTF|System Resource IRQ Info|001.3"} ]
159 uint16 TriggerLevel;
160
161 [Override ("Shareable"),
162 Description (
163 "Boolean indicating whether the IRQ can be shared."),
164 MappingStrings {"MIF.DMTF|IRQ|002.4"} ]
165 boolean Shareable;
166
167 [Description (
168 "The Hardware property indicates whether the interrupt "
169 kumpf 1.2 "is hardware or software based. (If TRUE, the interrupt is "
170 "hardware based.) On a personal computer, a hardware IRQ "
171 "is a physical wire to a programmable interrupt "
172 "controller (PIC) chip, through which the CPU can be "
173 "notified of time critical events. Some IRQ lines are "
174 "reserved for standard Devices such as the keyboard, floppy "
175 "disk drives, and the system clock. A software interrupt "
176 "is a programmatic mechanism to allow an application to "
177 "get the attention of the Processor.") ]
178 boolean Hardware;
179 };
180
181 // ===================================================================
182 // MemoryMappedIO
183 // ===================================================================
184 [Version ("2.6.0"), Description (
185 "Personal Computer architecture Memory Mapped I/O. This class "
186 "addresses both memory and port I/O resources. The property, "
187 "MappedResource, defines whether memory or I/O is mapped (and "
188 "for I/O whether the mapping is to a memory or a port space).") ]
189 class CIM_MemoryMappedIO : CIM_SystemResource {
190 kumpf 1.2
191 [Propagated("CIM_ComputerSystem.CreationClassName"),
192 Key, MaxLen (256),
193 Description ("The scoping ComputerSystem's CreationClassName.") ]
194 string CSCreationClassName;
195
196 [Propagated("CIM_ComputerSystem.Name"),
197 Key, MaxLen (256),
198 Description ("The scoping ComputerSystem's Name.") ]
199 string CSName;
200
201 [Key, MaxLen (256),
202 Description (
203 "CreationClassName indicates the name of the class or "
204 "the subclass used in the creation of an instance. When "
205 "used with the other key properties of this class, this "
206 "property allows all instances of this class and its "
207 "subclasses to be uniquely identified.") ]
208 string CreationClassName;
209
210 [Key, Description (
211 kumpf 1.2 "A part of the object's key value, the starting address of "
212 "memory mapped I/O."),
213 MappingStrings {"MIF.DMTF|Memory Mapped I/O|001.1"} ]
214 uint64 StartingAddress;
215
216 [Description ("Ending address of memory mapped I/O."),
217 MappingStrings {"MIF.DMTF|Memory Mapped I/O|001.2"} ]
218 uint64 EndingAddress;
219
220 [Description (
221 "Type of memory mapped I/O. MappedResource defines whether "
222 "memory or I/O is mapped, and for I/O, whether the mapping "
223 "is to a memory or a port space."),
224 ValueMap {"0", "1", "2", "3"},
225 Values {"Other", "Mapped Memory", "I/O Mapped to Memory Space",
226 "I/O Mapped to Port Space"} ]
227 uint16 MappedResource;
228 };
229
230
231 // ===================================================================
232 kumpf 1.2 // MemoryResource
233 // ===================================================================
234 [Version ("2.6.0"), Description (
235 "Since the MemoryMappedIO class applies to memory AND port "
236 "resources, there is the potential for key conflict. For example, "
237 "both a memory resource and a port resource may be located at "
238 "address 0. Since StartingAddress is the distinguishing key of "
239 "MemoryMappedIO, two instances would be created with the same key. "
240 "This is prevented by defining memory and port resource subclasses "
241 "of MemoryMappedIO, and allowing the CreationClassName key property "
242 "to distinguish between them and force uniqueness in their keys.") ]
243 class CIM_MemoryResource : CIM_MemoryMappedIO {
244 };
245
246
247 // ===================================================================
248 // PortResource
249 // ===================================================================
250 [Version ("2.6.0"), Description (
251 "Since the MemoryMappedIO class applies to memory AND port "
252 "resources, there is the potential for key conflict. For example, "
253 kumpf 1.2 "both a memory resource and a port resource may be located at "
254 "address 0. Since StartingAddress is the distinguishing key of "
255 "MemoryMappedIO, two instances would be created with the same key. "
256 "This is prevented by defining memory and port resource subclasses "
257 "of MemoryMappedIO, and allowing the CreationClassName key property "
258 "to distinguish between them and force uniqueness in their keys.") ]
259 class CIM_PortResource : CIM_MemoryMappedIO {
260 };
261
262
263 // ===================================================================
264 // DMA
265 // ===================================================================
266 [Version ("2.6.0"), Description (
267 "Personal computer architecture DMA.") ]
268 class CIM_DMA : CIM_SystemResource {
269
270 [Propagated("CIM_ComputerSystem.CreationClassName"),
271 Key, MaxLen (256),
272 Description ("The scoping ComputerSystem's "
273 "CreationClassName.") ]
274 kumpf 1.2 string CSCreationClassName;
275
276 [Propagated("CIM_ComputerSystem.Name"),
277 Key, MaxLen (256),
278 Description ("The scoping ComputerSystem's Name.") ]
279 string CSName;
280
281 [Key, MaxLen (256),
282 Description (
283 "CreationClassName indicates the name of the class or "
284 "the subclass used in the creation of an instance. When "
285 "used with the other key properties of this class, this "
286 "property allows all instances of this class and its "
287 "subclasses to be uniquely identified.") ]
288 string CreationClassName;
289
290 [Key, Description (
291 "A part of the object's key value, the DMA Channel number."),
292 MappingStrings {"MIF.DMTF|DMA|001.1"} ]
293 uint32 DMAChannel;
294
295 kumpf 1.2 [Description ("Availability of the DMA."),
296 ValueMap {"1", "2", "3", "4", "5"},
297 Values {"Other", "Unknown", "Available",
298 "In Use/Not Available",
299 "In Use and Available/Shareable"},
300 MappingStrings {"MIF.DMTF|DMA|001.2"} ]
301 uint16 Availability;
302
303 [Description (
304 "Indication that the DMA Channel supports burst mode."),
305 MappingStrings {"MIF.DMTF|DMA|001.3"} ]
306 boolean BurstMode;
307
308 [Description (
309 "An array indicating all the transfer widths (in bits) "
310 "supported by this DMA Channel. Permissible values "
311 "are 8, 16, 32, 64 or 128 bits. If unknown, enter 0."),
312 Units ("Bits"),
313 ValueMap {"0", "8", "16", "32", "64", "128"},
314 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.2"} ]
315 uint16 TransferWidths[];
316 kumpf 1.2
317 [Description (
318 "An integer indicating the DMA Channel address size in "
319 "bits. Permissible values are 8, 16, 32 or 64 bits. "
320 "If unknown, enter 0."),
321 Units ("Bits"),
322 ValueMap {"0", "8", "16", "32", "64"},
323 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.3"} ]
324 uint16 AddressSize;
325
326 [Description (
327 "The maximum number of bytes that can be transferred by this "
328 "DMA Channel. If unknown, enter 0."),
329 Units ("Bytes"),
330 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.4"} ]
331 uint32 MaxTransferSize;
332
333 [Description (
334 "Indicates whether DMA may execute in 'count by byte' mode "
335 "(value=4) or not (value=3). Also, \"Other\" (1) and "
336 "\"Unknown\" (2) may be defined."),
337 kumpf 1.2 ValueMap {"1", "2", "3", "4"},
338 Values {"Other", "Unknown",
339 "Not execute in 'count by byte' mode",
340 "Execute in 'count by byte' mode"},
341 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.7"} ]
342 uint16 ByteMode;
343
344 [Description (
345 "Indicates whether DMA may execute in 'count by word' mode "
346 "(value=4) or not (value=3). Also, \"Other\" (1) and "
347 "\"Unknown\" (2) may be defined."),
348 ValueMap {"1", "2", "3", "4"},
349 Values {"Other", "Unknown",
350 "Not execute in 'count by word' mode",
351 "Execute in 'count by word' mode"},
352 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.8"} ]
353 uint16 WordMode;
354
355 [Description (
356 "DMA channel timing. For example, \"Type A\" (value "
357 "=4) or \"Type F\" (6) could be specified."),
358 kumpf 1.2 ValueMap {"1", "2", "3", "4", "5", "6"},
359 Values {"Other", "Unknown", "ISA Compatible", "Type A",
360 "Type B", "Type F"},
361 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.9"} ]
362 uint16 ChannelTiming;
363
364 [Description (
365 "Indicates whether C type (burst) timing is supported "
366 "(value=5) or not (value=4). Also, \"Other\" (1), "
367 "\"Unknown\" (2) and \"ISA Compatible\" (3) are defined."),
368 ValueMap {"1", "2", "3", "4", "5"},
369 Values {"Other", "Unknown", "ISA Compatible", "Not Supported",
370 "Supported"},
371 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.10"} ]
372 uint16 TypeCTiming;
373 };
374
375
376 // ===================================================================
377 // ResourceOfSystem
378 // ===================================================================
379 kumpf 1.2 [Association, Aggregation, Composition,
380 Version ("2.7.2"), Description (
381 "An association between a System and a SystemResource that "
382 "exists and is allocated in the context of the System.") ]
383 class CIM_ResourceOfSystem : CIM_SystemComponent {
384
385 [Override ("GroupComponent"), Aggregate,
386 Min (1), Max (1), Description (
387 "The System in whose context the Resource exists and is "
388 "allocated.") ]
389 CIM_System REF GroupComponent;
390
391 [Override ("PartComponent"),
392 Description ("A Resource of the System.") ]
393 CIM_SystemResource REF PartComponent;
394 };
395
396
397 // ===================================================================
398 // ComputerSystemResource
399 // ===================================================================
400 kumpf 1.2 [Association, Aggregation, Composition, Version ("2.7.0"),
401 Description (
402 "An association between a ComputerSystem and the System"
403 "Resources available on it.") ]
404 class CIM_ComputerSystemResource : CIM_ResourceOfSystem {
405
406 [Override ("GroupComponent"), Aggregate,
407 Min (1), Max (1), Description ("The ComputerSystem.") ]
408 CIM_ComputerSystem REF GroupComponent;
409
410 [Override ("PartComponent"),
411 Description ("A SystemResource of the ComputerSystem.") ]
412 CIM_SystemResource REF PartComponent;
413 };
414
415
416 // ===================================================================
417 // ComputerSystemIRQ
418 // ===================================================================
419 [Association, Aggregation, Composition, Version ("2.7.0"),
420 Description (
421 kumpf 1.2 "An association between a ComputerSystem and the IRQs "
422 "available on it.") ]
423 class CIM_ComputerSystemIRQ : CIM_ComputerSystemResource {
424
425 [Override ("GroupComponent"), Aggregate,
426 Min (1), Max (1), Description ("The ComputerSystem.") ]
427 CIM_ComputerSystem REF GroupComponent;
428
429 [Override ("PartComponent"), Weak,
430 Description ("An IRQ of the ComputerSystem.") ]
431 CIM_IRQ REF PartComponent;
432 };
433
434
435 // ===================================================================
436 // ComputerSystemMappedIO
437 // ===================================================================
438 [Association, Aggregation, Composition, Version ("2.7.0"),
439 Description (
440 "An association between a ComputerSystem and the Memory "
441 "Mapped I/O ports available on it.") ]
442 kumpf 1.2 class CIM_ComputerSystemMappedIO : CIM_ComputerSystemResource {
443
444 [Override ("GroupComponent"), Aggregate,
445 Min (1), Max (1), Description ("The ComputerSystem.") ]
446 CIM_ComputerSystem REF GroupComponent;
447
448 [Override ("PartComponent"), Weak,
449 Description (
450 "A memory mapped I/O port of the ComputerSystem.") ]
451 CIM_MemoryMappedIO REF PartComponent;
452 };
453
454
455 // ===================================================================
456 // ComputerSystemDMA
457 // ===================================================================
458 [Association, Aggregation, Composition, Version ("2.7.0"),
459 Description (
460 "An association between a ComputerSystem and the DMA channels "
461 "available on it.") ]
462 class CIM_ComputerSystemDMA : CIM_ComputerSystemResource {
463 kumpf 1.2
464 [Override ("GroupComponent"), Aggregate,
465 Min (1), Max (1), Description ("The ComputerSystem.") ]
466 CIM_ComputerSystem REF GroupComponent;
467
468 [Override ("PartComponent"), Weak,
469 Description ("A DMA channel of the ComputerSystem.") ]
470 CIM_DMA REF PartComponent;
471 };
472
473
474 // ===================================================================
475 // AllocatedResource
476 // ===================================================================
477 [Association, Version ("2.6.0"), Description (
478 "An association between LogicalDevices and SystemResources, "
479 "indicating that the Resource is assigned to the Device.") ]
480 class CIM_AllocatedResource : CIM_Dependency {
481
482 [Override ("Antecedent"),
483 Description ("The Resource.") ]
484 kumpf 1.2 CIM_SystemResource REF Antecedent;
485
486 [Override ("Dependent"),
487 Description (
488 "The LogicalDevice to which the Resource is assigned.") ]
489 CIM_LogicalDevice REF Dependent;
490 };
491
492
493 // ===================================================================
494 // AllocatedDMA
495 // ===================================================================
496 [Association, Version ("2.6.0"), Description (
497 "An association between a LogicalDevice and a DMA System"
498 "Resource indicating that the DMA Channel is assigned to the "
499 "Device.") ]
500 class CIM_AllocatedDMA : CIM_AllocatedResource {
501
502 [Override ("Antecedent"),
503 Description ("The DMA Channel.") ]
504 CIM_DMA REF Antecedent;
505 kumpf 1.2
506 [Override ("Dependent"),
507 Description (
508 "The LogicalDevice to which the Resource is assigned.") ]
509 CIM_LogicalDevice REF Dependent;
510
511 [Description (
512 "Boolean indicating whether the LogicalDevice can act as a "
513 "bus master on the DMA Channel."),
514 MappingStrings {"MIF.DMTF|System Resource DMA Info|001.6"} ]
515 boolean BusMaster;
516 };
517
518
519 // ===================================================================
520 // end of file
521 // ===================================================================
|