1 a.dunfey 1.1 // ===================================================================
2 // Title: Device_DeviceElements
3 // $State: Exp $
4 // $Date: 2004/11/29 18:31:42 $
5 // $RCSfile: Device_DeviceElements.mof,v $
6 // $Revision: 1.3.2.3 $
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 defines the
48 // basic concepts that generally apply to all devices,
49 // such as error statistics and connections between
50 // devices.
51 //
52 // The object classes below are listed in an order that
53 // avoids forward references. Required objects, defined
54 // by other working groups, are omitted.
55 // ==================================================================
56 // Change Log for v2.8 Final
57 // CR1202 - Remove Experimental Qualifiers
58 // CR1223 - SysDev Omnibus CR - Minor MOF corrections.
59 //
60 // Change Log for v2.8 Preliminary
61 // CR943 - Move error code data from LogicalDevice to
62 // DeviceErrorCountData
63 // CR1049 - Add DeviceSoftwareIdentity
64 a.dunfey 1.1 // CR1092 - Move DeviceSoftwareIdentity to Core28_Device.mof
65 //
66 // Change Log for v2.7 Final
67 // CR942 - Rename DeviceErrorCountData to DeviceErrorData.
68 // CR970 - Removal of the Experimental qualifier.
69 //
70 // Change Log for v2.7
71 // CR621 - Add PackageDependency
72 // CR622 - Fix the DMI mapping string to include the attribute number
73 // DeviceErrorCounts.CriticalErrorCount, .MajorErrorCount, &
74 // .WarningCount
75 // CR721 - Add DeviceErrorCountData that is part of the new statistics
76 // hierarchy
77 // ==================================================================
78
79 #pragma locale ("en_US")
80
81
82 // ===================================================================
83 // DeviceConnection
84 // ===================================================================
85 a.dunfey 1.1 [Association, Version ( "2.6.0" ), Description (
86 "The DeviceConnection relationship indicates that two or more "
87 "Device are connected together.")]
88 class CIM_DeviceConnection : CIM_Dependency {
89
90 [Override ( "Antecedent" ), Description (
91 "A LogicalDevice.")]
92 CIM_LogicalDevice REF Antecedent;
93
94 [Override ( "Dependent" ), Description (
95 "A second LogicalDevice connected to the Antecedent Device.")]
96 CIM_LogicalDevice REF Dependent;
97
98 [Description (
99 "When several bus and/or connection speeds are possible, the "
100 "NegotiatedSpeed property defines the one in use between the "
101 "Devices. Speed is specified in bits per second. If "
102 "connection or bus speeds are not negotiated, or if this "
103 "information is not available/important to Device "
104 "management, the property should be set to 0."),
105 Units ( "Bits per Second" ),
106 a.dunfey 1.1 MappingStrings { "MIF.DMTF|Bus Port Association|001.2" }]
107 uint64 NegotiatedSpeed;
108
109 [Description (
110 "When several bus and/or connection data widths are "
111 "possible, the NegotiatedDataWidth property defines the one "
112 "in use between the Devices. Data width is specified in "
113 "bits. If data width is not negotiated, or if this "
114 "information is not available/important to Device "
115 "management, the property should be set to 0."),
116 Units ( "Bits" ),
117 MappingStrings { "MIF.DMTF|Bus Port Association|001.3" }]
118 uint32 NegotiatedDataWidth;
119 };
120
121
122 // ===================================================================
123 // DeviceIdentity
124 // ===================================================================
125 [Association, Version ( "2.6.0" ), Description (
126 "CIM_DeviceIdentity indicates that two LogicalDevices represent "
127 a.dunfey 1.1 "different aspects of the same underlying entity. This "
128 "association refines the CIM_LogicalIdentity superclass by "
129 "restricting it to the Device level and defining its use in "
130 "well understood scenarios. One of these scenarios is to "
131 "represent that a Device is both a 'bus' entity and a "
132 "'functional' entity. For example, a Device could be both a PCI "
133 "Device (or a USB Device), as well as a CIM_Keyboard. The other "
134 "scenario is where a Device plays multiple functional roles "
135 "that can not be distinguished by their hardware realization "
136 "alone. For example, a Fibre Channel adapter might have aspects "
137 "of both a NetworkAdapter and a SCSIController.")]
138 class CIM_DeviceIdentity : CIM_LogicalIdentity {
139
140 [Override ( "SystemElement" ), Description (
141 "SystemElement represents one aspect of the Device.")]
142 CIM_LogicalDevice ref SystemElement;
143
144 [Override ( "SameElement" ), Description (
145 "SameElement represents an alternate aspect of the System "
146 "entity.")]
147 CIM_LogicalDevice ref SameElement;
148 a.dunfey 1.1 };
149
150
151 // ==================================================================
152 // PackageDependency
153 // ==================================================================
154 [Association, Version ( "2.6.0" ), Description (
155 "A LogicalDevice is installed in a Package such as a Chassis or "
156 "a Rack, not for a specific Device, but to function with the "
157 "Package in general. This relationship is described by the "
158 "PackageDependency association.")]
159 class CIM_PackageDependency : CIM_Dependency {
160
161 [Override ( "Antecedent" ), Description (
162 "The Logical Device for the Package.")]
163 CIM_LogicalDevice REF Antecedent;
164
165 [Override ( "Dependent" ), Description (
166 "The PhysicalPackage whose environment is affected.")]
167 CIM_PhysicalPackage REF Dependent;
168 };
169 a.dunfey 1.1
170
171 // ===================================================================
172 // DeviceSoftware
173 // ===================================================================
174 [Association, Version ( "2.6.0" ), Description (
175 "The DeviceSoftware relationship identifies any software that "
176 "is associated with a Device - such as drivers, configuration "
177 "or application software, or firmware.")]
178 class CIM_DeviceSoftware : CIM_Dependency {
179
180 [Override ( "Antecedent" ), Description (
181 "The SoftwareElement.")]
182 CIM_SoftwareElement REF Antecedent;
183
184 [Override ( "Dependent" ), Description (
185 "The LogicalDevice that requires or uses the software.")]
186 CIM_LogicalDevice REF Dependent;
187
188 [Description (
189 "An enumerated integer to indicate the role this software "
190 a.dunfey 1.1 "plays in regards to its associated Device. For example, "
191 "this software could be instrumentation (value=5) or "
192 "firmware (6)."),
193 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
194 Values { "Unknown", "Other", "Driver", "Configuration Software",
195 "Application Software", "Instrumentation", "Firmware",
196 "BIOS", "Boot ROM" },
197 MappingStrings { "MIF.DMTF|SubComponent Software|001.2" },
198 ModelCorrespondence { "CIM_DeviceSoftware.PurposeDescription" }]
199 uint16 Purpose;
200
201 [Description (
202 "A free-form string to provide more information for the "
203 "Purpose property, e.g. \"Application Software\"."),
204 ModelCorrespondence { "CIM_DeviceSoftware.Purpose" }]
205 string PurposeDescription;
206
207 [Description (
208 "Boolean indicating that the software is 'burned into' or "
209 "otherwise located on the hardware of the LogicalDevice.")]
210 boolean LoadedOnDevice;
211 a.dunfey 1.1
212 [Description (
213 "Boolean indicating whether the software is upgradeable, "
214 "when it is LoadedOnDevice. Software that is loaded as part "
215 "of the OperatingSystem is typically changeable and "
216 "upgradeable. However, when DeviceSoftware is burned into "
217 "EEPROM or a chip that Realizes the LogicalDevice, then it "
218 "may not be upgradeable. This property indicates the ability "
219 "to update and upgrade DeviceSoftware.")]
220 boolean UpgradeableOnDevice;
221 };
222
223
224 // ==================================================================
225 // DeviceErrorCounts
226 // ==================================================================
227 [Version ( "2.7.0" ), Description (
228 "DeviceErrorCounts is a statistical class containing error- "
229 "related counters for a LogicalDevice. The types of errors are "
230 "as defined by CCITT (Rec X.733) and ISO (IEC 10164-4). Note "
231 "that the CIM_DeviceErrorCountData class uses a simplified "
232 a.dunfey 1.1 "naming/identity algorithm as compared to this class. "
233 "DeviceErrorCounts is not deprecated since its naming algorithm "
234 "is still in use in various implementations.")]
235 class CIM_DeviceErrorCounts : CIM_StatisticalInformation {
236
237 [Key, Propagated ( "CIM_LogicalDevice.SystemCreationClassName" ),
238 Description (
239 "The scoping System's CreationClassName."),
240 MaxLen ( 256 )]
241 string SystemCreationClassName;
242
243 [Key, Propagated ( "CIM_LogicalDevice.SystemName" ),
244 Description (
245 "The scoping System's Name."),
246 MaxLen ( 256 )]
247 string SystemName;
248
249 [Key, Propagated ( "CIM_LogicalDevice.CreationClassName" ),
250 Description (
251 "The scoping Device's CreationClassName."),
252 MaxLen ( 256 )]
253 a.dunfey 1.1 string DeviceCreationClassName;
254
255 [Key, Propagated ( "CIM_LogicalDevice.DeviceID" ), Description (
256 "The scoping Device's ID."),
257 MaxLen ( 64 )]
258 string DeviceID;
259
260 [Key, Override ( "Name" ), Description (
261 "The inherited Name serves as part of the key for the "
262 "DeviceErrorCounts instance. The object is scoped by the "
263 "LogicalDevice to which the statistics apply."),
264 MaxLen ( 256 )]
265 string Name;
266
267 [Description (
268 "Count of the indeterminate errors."),
269 Counter]
270 uint64 IndeterminateErrorCount;
271
272 [Description (
273 "Count of the critical errors."),
274 a.dunfey 1.1 Counter,
275 MappingStrings { "MIF.DMTF|Operational State|006.7" }]
276 uint64 CriticalErrorCount;
277
278 [Description (
279 "Count of the major errors."),
280 Counter,
281 MappingStrings { "MIF.DMTF|Operational State|006.8" }]
282 uint64 MajorErrorCount;
283
284 [Description (
285 "Count of the minor errors."),
286 Counter]
287 uint64 MinorErrorCount;
288
289 [Description (
290 "Count of the warnings."),
291 Counter,
292 MappingStrings { "MIF.DMTF|Operational State|006.9" }]
293 uint64 WarningCount;
294
295 a.dunfey 1.1 [Description (
296 "Method to reset the error and warning counters. The method "
297 "takes one parameter as input - an integer indicating which "
298 "counter to reset. For this input parameter, 0 indicates "
299 "all, 1 indicates a reset of the indeterminate error "
300 "counter, 2 the critical error counter, 3 the major error "
301 "counter, 4 the minor error counter and 5 the warning "
302 "counter. The method returns 0 if successful, 1 if not "
303 "supported, and any other value if an error occurred. A "
304 "method is specified so that the LogicalDevice's "
305 "instrumentation, which tabulates the errors and warnings, "
306 "can also reset its internal processing and counters. \n"
307 "In a subclass, the set of possible return codes could be "
308 "specified, using a ValueMap qualifier on the method. The "
309 "strings to which the ValueMap contents are 'translated' may "
310 "also be specified in the subclass as a Values array "
311 "qualifier.")]
312 uint32 ResetCounter (
313 [IN, Description (
314 "The counter to reset."),
315 ValueMap { "0", "1", "2", "3", "4", "5" },
316 a.dunfey 1.1 Values { "All", "Indeterminate Error Counter",
317 "Critical Error Counter", "Major Error Counter",
318 "Minor Error Counter", "Warning Counter" }]
319 uint16 SelectedCounter);
320 };
321
322
323 // ==================================================================
324 // ErrorCountersForDevice
325 // ==================================================================
326 [Association, Version ( "2.6.0" ), Description (
327 "ErrorCountersForDevice relates the DeviceErrorCounts class to "
328 "the LogicalDevice to which it applies.")]
329 class CIM_ErrorCountersForDevice : CIM_Statistics {
330
331 [Override ( "Stats" ), Weak, Description (
332 "The statistical object - in this case, the error counter "
333 "class.")]
334 CIM_DeviceErrorCounts REF Stats;
335
336 [Override ( "Element" ), Min ( 1 ), Max ( 1 ), Description (
337 a.dunfey 1.1 "The Device to which the error counters apply.")]
338 CIM_LogicalDevice REF Element;
339 };
340
341
342 // ==================================================================
343 // DeviceErrorData
344 // ==================================================================
345 [Version ( "2.8.0" ), Description (
346 "DeviceErrorData is a statistical class containing error- "
347 "related counters for a LogicalDevice. The types of errors are "
348 "as defined by CCITT (Rec X.733) and ISO (IEC 10164-4). The "
349 "element whose statistics are described is associated using the "
350 "relationship, ElementStatisticalData. Note that this class "
351 "uses a simplified identity/naming algorithm over "
352 "CIM_DeviceErrorCounts.")]
353 class CIM_DeviceErrorData : CIM_StatisticalData {
354
355 [Description (
356 "Count of the indeterminate errors."),
357 Counter]
358 a.dunfey 1.1 uint64 IndeterminateErrorCount;
359
360 [Description (
361 "Count of the critical errors."),
362 Counter,
363 MappingStrings { "MIF.DMTF|Operational State|006.7" }]
364 uint64 CriticalErrorCount;
365
366 [Description (
367 "Count of the major errors."),
368 Counter,
369 MappingStrings { "MIF.DMTF|Operational State|006.8" }]
370 uint64 MajorErrorCount;
371
372 [Description (
373 "Count of the minor errors."),
374 Counter]
375 uint64 MinorErrorCount;
376
377 [Description (
378 "Count of the warnings."),
379 a.dunfey 1.1 Counter,
380 MappingStrings { "MIF.DMTF|Operational State|006.9" }]
381 uint64 WarningCount;
382
383 [Description (
384 "LastErrorCode captures the last error code reported by the "
385 "LogicalDevice. While the device is in this error condition, "
386 "then the LogicalDevice's OperationalStatus should not "
387 "reflect an 'Okay' status. Once this error condition is "
388 "cleared, then the LogicalDevice's OperationalStatus should "
389 "report an 'Okay' status.")]
390 string LastErrorCode;
391
392 [Description (
393 "ErrorDescription is a free-form string supplying more "
394 "information about the error recorded in LastErrorCode, and "
395 "information on any corrective actions that may be taken.")]
396 string ErrorDescription;
397
398 };
399
400 a.dunfey 1.1
401 // ===================================================================
402 // end of file
403 // ===================================================================
|