1 tony 1.1 // ===================================================================
2 // Title: System Unix 2.8
3 // Filename: System28_Unix.mof
4 // Version: 2.8
5 // Status: Final
6 // Date: Jan 26, 2004
7 // ===================================================================
8 // Copyright 2001-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 tony 1.1 // 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 tony 1.1 // ===================================================================
44 // Description: The System Model defines system related management
45 // concepts. This file defines the specific subclasses
46 // needed to manage Unix Systems.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.8 Final
53 // CR1233 - Sysdev omnibus CR - Minor MOF fixes
54 //
55 // Change Log for v2.7 - None
56 // ===================================================================
57
58 #pragma locale ("en_US")
59
60
61 // ===================================================================
62 // UnixLocalFileSystem
63 // ===================================================================
64 tony 1.1 [Version ( "2.8.0" ), Description (
65 "A class derived from LocalFileSystem that represents the Unix "
66 "environment view of a file store controlled by a "
67 "ComputerSystem through local means (e.g., direct device driver "
68 "access). In this case, the file store is managed directly by "
69 "the ComputerSystem without the need for another computer to "
70 "act as a file server. This definition does not breakdown in "
71 "the case of a Clustered File System. In this scenario, the "
72 "FileSystem is a LocalFileSystem, weak to the Cluster.")]
73 class CIM_UnixLocalFileSystem : CIM_LocalFileSystem {
74
75 [Description (
76 "The number of free inodes present in the file system. This "
77 "value is only valid if TotalSlots is non-zero."),
78 MappingStrings { "MIF.DMTF|Host File System|001.12" },
79 ModelCorrespondence { "CIM_UnixLocalFileSystem.TotalInodes" }]
80 uint64 FreeInodes;
81
82 [Description (
83 "The total number of inodes available in the file system. A "
84 "value of zero for TotalInodes indicates that this file "
85 tony 1.1 "system does not have a preset limit."),
86 MappingStrings { "MIF.DMTF|Host File System|001.11" }]
87 uint64 TotalInodes;
88
89 [Description (
90 "The reserve data capacity of the file system in bytes."),
91 Units ( "Bytes" ),
92 MappingStrings { "MIF.DMTF|Host File System|001.15" }]
93 uint64 FSReservedCapacity;
94 };
95
96
97 // ===================================================================
98 // UnixProcess
99 // ===================================================================
100 [Version ( "2.6.0" ), Description (
101 "Each instance of the CIM_UnixProcess class represents a single "
102 "instance of a running program. A user of the Operating System "
103 "will typically see a Process as an application or task. Within "
104 "an OperatingSystem, a Process is defined by a workspace of "
105 "memory resources and environmental settings that are allocated "
106 tony 1.1 "to it. On a multitasking System, this workspace prevents "
107 "intrusion of resources by other Processes. Additionally, a "
108 "Process can execute as multiple Threads, all which run within "
109 "the same workspace.")]
110 class CIM_UnixProcess : CIM_Process {
111
112 [Required, Description (
113 "The parent process ID of this executing process."),
114 MappingStrings { "MIF.DMTF|Process Information|001.2" }]
115 string ParentProcessID;
116
117 [Required, Description (
118 "The Real User ID of this currently executing process."),
119 MappingStrings { "MIF.DMTF|Process Information|001.4" }]
120 uint64 RealUserID;
121
122 [Required, Description (
123 "The Group ID of this currently executing process."),
124 MappingStrings { "MIF.DMTF|Process Information|001.2" }]
125 uint64 ProcessGroupID;
126
127 tony 1.1 [Description (
128 "If part of a group of processes are under the control of a "
129 "session leader, this property holds the session ID for the "
130 "group.")]
131 uint64 ProcessSessionID;
132
133 [Description (
134 "The TTY currently associated with this process."),
135 MappingStrings { "MIF.DMTF|Process Information|001.5" }]
136 string ProcessTTY;
137
138 [Description (
139 "The executing process's command path."),
140 MappingStrings { "MIF.DMTF|Process Information|001.7" }]
141 string ModulePath;
142
143 [Description (
144 "The operating system parameters provided to the executing "
145 "process. These are the argv[] values."),
146 MappingStrings { "MIF.DMTF|Process Information|001.8" }]
147 string Parameters[];
148 tony 1.1
149 [Description (
150 "The process's 'nice' value. Used to compute its priority."),
151 MappingStrings { "MIF.DMTF|Process Information|001.11" }]
152 uint32 ProcessNiceValue;
153
154 [Description (
155 "A description of the event this process is currently "
156 "sleeping for. The precise nature of this string is "
157 "implementation defined, but is typically the address of a "
158 "system data structure that will be modified when the event "
159 "occurs. This string only has meaning when the "
160 "ExecutionState is \"Blocked\" or \"SuspendedBlocked\"."),
161 ModelCorrespondence { "CIM_Process.ExecutionState" }]
162 string ProcessWaitingForEvent;
163 };
164
165
166 // ===================================================================
167 // UnixProcessStatisticalInformation
168 // ===================================================================
169 tony 1.1 [Version ( "2.6.0" ), Description (
170 "The statistics associated with a Unix process.")]
171 class CIM_UnixProcessStatisticalInformation : CIM_StatisticalInformation {
172
173 [Key, Propagated ( "CIM_Process.CSCreationClassName" ),
174 Description (
175 "The scoping Process's ComputerSystem CreationClassName."),
176 MaxLen ( 256 )]
177 string CSCreationClassName;
178
179 [Key, Propagated ( "CIM_Process.CSName" ), Description (
180 "The scoping Process's ComputerSystem Name."),
181 MaxLen ( 256 )]
182 string CSName;
183
184 [Key, Propagated ( "CIM_Process.OSCreationClassName" ),
185 Description (
186 "The scoping Process's OperatingSystem CreationClassName."),
187 MaxLen ( 256 )]
188 string OSCreationClassName;
189
190 tony 1.1 [Key, Propagated ( "CIM_Process.OSName" ), Description (
191 "The scoping Process's OperatingSystem Name."),
192 MaxLen ( 256 )]
193 string OSName;
194
195 [Key, Propagated ( "CIM_Process.Handle" ), Description (
196 "The scoping Process's Handle."),
197 MaxLen ( 256 )]
198 string Handle;
199
200 [Key, Propagated ( "CIM_Process.CreationClassName" ),
201 Description (
202 "The scoping Process's CreationClassName."),
203 MaxLen ( 256 )]
204 string ProcessCreationClassName;
205
206 [Key, Override ( "Name" ), Description (
207 "A string used to identify the related statistics of a "
208 "Process."),
209 MaxLen ( 256 )]
210 string Name;
211 tony 1.1
212 [Description (
213 "A string used to identify the related statistics of a "
214 "Process. This key allows multiple instances of statistics "
215 "to correspond to a single process. The multiple instances "
216 "could be used in applications such as time-sliced "
217 "statistics."),
218 Units ( "Percent" ),
219 MappingStrings { "MIF.DMTF|Process Information|001.12" }]
220 uint32 CPUTime;
221
222 [Description (
223 "The number of KiloBytes of real text space used by the "
224 "process."),
225 Units ( "KiloBytes" ),
226 MappingStrings { "MIF.DMTF|Process Information|001.15" }]
227 uint64 RealText;
228
229 [Description (
230 "The number of KiloBytes of real data space used by the "
231 "process."),
232 tony 1.1 Units ( "KiloBytes" ),
233 MappingStrings { "MIF.DMTF|Process Information|001.16" }]
234 uint64 RealData;
235
236 [Description (
237 "The number of KiloBytes of real stack space used by the "
238 "process."),
239 Units ( "KiloBytes" ),
240 MappingStrings { "MIF.DMTF|Process Information|001.17" }]
241 uint64 RealStack;
242
243 [Description (
244 "The number of KiloBytes of virtual text space used by the "
245 "process."),
246 Units ( "KiloBytes" ),
247 MappingStrings { "MIF.DMTF|Process Information|001.18" }]
248 uint64 VirtualText;
249
250 [Description (
251 "The number of KiloBytes of virtual data space used by the "
252 "process."),
253 tony 1.1 Units ( "KiloBytes" ),
254 MappingStrings { "MIF.DMTF|Process Information|001.19" }]
255 uint64 VirtualData;
256
257 [Description (
258 "The number of KiloBytes of virtual stack space used by the "
259 "process."),
260 Units ( "KiloBytes" ),
261 MappingStrings { "MIF.DMTF|Process Information|001.20" }]
262 uint64 VirtualStack;
263
264 [Description (
265 "The number of KiloBytes of virtual space used for memory "
266 "mapped files by the process."),
267 Units ( "KiloBytes" ),
268 MappingStrings { "MIF.DMTF|Process Information|001.22" }]
269 uint64 VirtualMemoryMappedFileSize;
270
271 [Description (
272 "The number of KiloBytes of shared memory used by the "
273 "process."),
274 tony 1.1 Units ( "KiloBytes" ),
275 MappingStrings { "MIF.DMTF|Process Information|001.21" }]
276 uint64 VirtualSharedMemory;
277
278 [Description (
279 "CPU time of terminated child processes in clock ticks."),
280 Units ( "Clock Ticks" ), Counter]
281 uint64 CpuTimeDeadChildren;
282
283 [Description (
284 "System time of terminated child processes in clock ticks."),
285 Units ( "Clock Ticks" ), Counter]
286 uint64 SystemTimeDeadChildren;
287 };
288
289
290 // ==================================================================
291 // UnixProcessStatistics
292 // ==================================================================
293 [Association, Version ( "2.6.0" ), Description (
294 "CIM_UnixProcessStatistics is an association that relates a "
295 tony 1.1 "CIM_UnixProcess to its StatisticalInformation.")]
296 class CIM_UnixProcessStatistics : CIM_Statistics {
297
298 [Override ( "Element" ), Min ( 1 ), Max ( 1 ), Description (
299 "The Process for which statistical or metric data is "
300 "defined.")]
301 CIM_UnixProcess REF Element;
302
303 [Override ( "Stats" ), Weak, Description (
304 "The UNIX Process statistical information/object.")]
305 CIM_UnixProcessStatisticalInformation REF Stats;
306 };
307
308
309 // ===================================================================
310 // UnixThread
311 // ===================================================================
312 [Version ( "2.6.0" ), Description (
313 "Threads represent the ability to execute units of a Process or "
314 "task in parallel. A UnixThread inherits from the superclass, "
315 "CIM_Thread, which is weak to the Process. The values used are "
316 tony 1.1 "defined in sched.h and psched.h.")]
317 class CIM_UnixThread : CIM_Thread {
318
319 [Description (
320 "Indicates the thread's scheduling policy. Set to \"Other\" "
321 "when using OtherSchedPolicy to specifiy additional values. "
322 "\"Other\" represents SCHED_OTHER as defined in sched.h."),
323 ValueMap { "0", "1", "2", "3" },
324 Values { "Unknown", "Other", "SCHED_FIFO", "SCHED_RR" },
325 ModelCorrespondence { "CIM_UnixThread.OtherSchedPolicy" }]
326 uint16 SchedPolicy;
327
328 [Description (
329 "Indicates the thread's scheduling policy when SchedPolicy "
330 "is set to \"Other\"."),
331 ModelCorrespondence { "CIM_UnixThread.SchedPolicy" }]
332 string OtherSchedPolicy;
333
334 [Description (
335 "Indicates the size of the guard area for a created thread's "
336 "stack.")]
337 tony 1.1 string GuardSize;
338
339 [Description (
340 "Indicates the creation state of the thread."),
341 ValueMap { "0", "2", "3" },
342 Values { "Unknown", "PTHREAD_CREATE_DETACHED",
343 "PTHREAD_CREATE_JOINABLE" }]
344 uint16 DetachState;
345
346 [Description (
347 "Indicates how the scheduling attributes are to be set."),
348 ValueMap { "0", "2", "3" },
349 Values { "Unknown", "PTHREAD_INHERIT_SCHED",
350 "PTHREAD_EXPLICIT_SCHED" }]
351 uint16 InheritSched;
352
353 [Description (
354 "Indicates the contention scope of the thread."),
355 ValueMap { "0", "2", "3" },
356 Values { "Unknown", "PTHREAD_SCOPE_SYSTEM",
357 "PTHREAD_SCOPE_PROCESS" }]
358 tony 1.1 uint16 ContentionScope;
359
360 [Description (
361 "Indicates the size of storage to be used for the thread's "
362 "stack.")]
363 string StackSize;
364
365 [Description (
366 "Indicates the thread's concurrency level.")]
367 uint64 ConcurrencyLevel;
368
369 [Description (
370 "Indicates the thread's cancelability state."),
371 ValueMap { "0", "2", "3" },
372 Values { "Unknown", "PTHREAD_CANCEL_ENABLE",
373 "PTHREAD_CANCEL_DISABLE" }]
374 uint16 CancelState;
375
376 [Description (
377 "Indicates the thread's cancelability type."),
378 ValueMap { "0", "2", "3" },
379 tony 1.1 Values { "Unknown", "PTHREAD_CANCEL_DEFERRED",
380 "PTHREAD_CANCEL_ASYNCHRONOUS" }]
381 uint16 CancelType;
382 };
383
384
385 // ===================================================================
386 // UnixFile
387 // ===================================================================
388 [Version ( "2.6.0" ), Description (
389 "The UnixFile class holds properties that are valid for various "
390 "subclasses of LogicalFile, in a Unix environment. This is "
391 "defined as a separate and unique class since it is applicable "
392 "to Unix files, directories, etc. It is associated via a "
393 "FileIdentity relationship to these subclasses of LogicalFile. "
394 "Unless this approach of creating and associating a separate "
395 "class is used, it is necessary to subclass each of the "
396 "inheritance hierarchies under LogicalFile, duplicating the "
397 "properties in this class. The referenced _PC* and _POSIX* "
398 "constants are defined in unistd.h. Some properties indicate "
399 "whether the UNIX implementation support a feature such as "
400 tony 1.1 "asynchronous I/O or priority I/O. If supported, sysconf "
401 "returns the value as defined in the appropriate header file "
402 "such as unistd.h. If a feature is not supported, then pathconf "
403 "returns a -1. In this case, the corresponding property should "
404 "be returned without any value.")]
405 class CIM_UnixFile : CIM_LogicalElement {
406
407 [Key, Propagated ( "CIM_LogicalFile.CSCreationClassName" ),
408 Description (
409 "The scoping ComputerSystem's CreationClassName."),
410 MaxLen ( 256 )]
411 string CSCreationClassName;
412
413 [Key, Propagated ( "CIM_LogicalFile.CSName" ), Description (
414 "The scoping ComputerSystem's Name."),
415 MaxLen ( 256 )]
416 string CSName;
417
418 [Key, Propagated ( "CIM_LogicalFile.FSCreationClassName" ),
419 Description (
420 "The scoping FileSystem's CreationClassName."),
421 tony 1.1 MaxLen ( 256 )]
422 string FSCreationClassName;
423
424 [Key, Propagated ( "CIM_LogicalFile.FSName" ), Description (
425 "The scoping FileSystem's Name."),
426 MaxLen ( 256 )]
427 string FSName;
428
429 [Key, Propagated ( "CIM_LogicalFile.CreationClassName" ),
430 Description (
431 "The scoping LogicalFile's CreationClassName."),
432 MaxLen ( 256 )]
433 string LFCreationClassName;
434
435 [Key, Propagated ( "CIM_LogicalFile.Name" ), Description (
436 "The scoping LogicalFile's Name."),
437 MaxLen ( 1024 )]
438 string LFName;
439
440 [Required, Description (
441 "An Identifer that uniquely describes the owner of this "
442 tony 1.1 "file.")]
443 string UserID;
444
445 [Required, Description (
446 "An identifier that describes the group that owns this file.")]
447 string GroupID;
448
449 [Description (
450 "Indicates restricted deletion for directories, or possible "
451 "implementation defined properties for executable files. For "
452 "directories this is known as the sticky bit.")]
453 boolean SaveText;
454
455 [Description (
456 "Count of the number of names for this file."),
457 Counter]
458 uint64 LinkCount;
459
460 [Description (
461 "File Inode number, as printed by \"ls -i\"."),
462 MappingStrings { "UNIX.TOG|ls -i" }]
463 tony 1.1 string FileInodeNumber;
464
465 [Description (
466 "Indicates whether the associated file has setuid "
467 "permissions.")]
468 boolean SetUid;
469
470 [Description (
471 "Indicates whether the associated file has setgid "
472 "permissions.")]
473 boolean SetGid;
474
475 [Description (
476 "The time that the Inode was last modified. This includes "
477 "the Inode creation time, state modification, and etc.")]
478 datetime LastModifiedInode;
479
480 [Description (
481 "Maximum number of links to a single file."),
482 MinValue ( 8 ),
483 MappingStrings { "POSIX.TOG|pathconf|_PC_LINK_MAX" }]
484 tony 1.1 uint64 LinkMax;
485
486 [Description (
487 "Maximum number of bytes in a filename, not including "
488 "terminating null."),
489 Units ( "Bytes" ), MinValue ( 14 ),
490 MappingStrings { "POSIX.TOG|pathconf|_POSIX_NAME_MAX" }]
491 uint64 NameMax;
492
493 [Description (
494 "Maximum number of bytes in a pathname, including the "
495 "terminating null character."),
496 Units ( "Bytes" ), MinValue ( 255 ),
497 MappingStrings { "POSIX.TOG|pathconf|_POSIX_PATH_MAX" }]
498 uint64 PathMax;
499
500 [Description (
501 "The use of chown() is restricted to a process with "
502 "appropriate privileges. chown() is used to change the group "
503 "ID of a file. The group ID can be changed to the effective "
504 "group ID or one of its supplementary group IDs."),
505 tony 1.1 MappingStrings { "POSIX.TOG|pathconf|_PC_CHOWN_RESTRICTED" }]
506 uint64 PosixChownRestricted;
507
508 [Description (
509 "Indicates whether pathname components longer than NameMax "
510 "generate an error."),
511 MappingStrings { "POSIX.TOG|pathconf|_PC_NO_TRUNC" },
512 ModelCorrespondence { "CIM_UnixFile.NameMax" }]
513 uint64 PosixNoTrunc;
514
515 [Description (
516 "Indicates whether asynchronous input or output operations "
517 "may be performed for the associated file."),
518 MappingStrings { "POSIX.TOG|pathconf|_PC_ASYNC_IO" }]
519 uint64 PosixAsyncIo;
520
521 [Description (
522 "Indicates whether prioritized input or output operations "
523 "may be performed for the associated file."),
524 MappingStrings { "POSIX.TOG|pathconf|_PC_PRIO_IO" }]
525 uint64 PosixPrioIo;
526 tony 1.1
527 [Description (
528 "Indicates whether synchronised input or output operations "
529 "may be performed for the associated file."),
530 MappingStrings { "POSIX.TOG|pathconf|_PC_SYNC_IO" }]
531 uint64 PosixSyncIo;
532 };
533
534
535 // ===================================================================
536 // FileIdentity
537 // ===================================================================
538 [Association, Version ( "2.6.0" ), Description (
539 "CIM_FileIdentity indicates that a UnixFile describes Unix- "
540 "specific aspects of the various subclasses of LogicalFile. The "
541 "association exists since it forces UnixFile to be weak to "
542 "(scoped by) the LogicalFile. This is not true in the "
543 "association's superclass, LogicalIdentity.")]
544 class CIM_FileIdentity : CIM_LogicalIdentity {
545
546 [Override ( "SystemElement" ), Min ( 1 ), Max ( 1 ),
547 tony 1.1 Description (
548 "The Logical File.")]
549 CIM_LogicalFile ref SystemElement;
550
551 [Override ( "SameElement" ), Weak, Max ( 1 ), Description (
552 "SameElement represents the additional aspects of the "
553 "Unix/Linux Logical file.")]
554 CIM_UnixFile ref SameElement;
555 };
556
557
558 // ===================================================================
559 // UnixDirectory
560 // ===================================================================
561 [Version ( "2.6.0" ), Description (
562 "UnixDirectory is a type of File that logically groups "
563 "UnixFiles 'contained' in it.")]
564 class CIM_UnixDirectory : CIM_Directory {
565
566 [Description (
567 "Minimum number of bits needed to represent the maximum size "
568 tony 1.1 "of a Unix file allowed in the specified directory, as a "
569 "signed integer value. Thus, a value of 32 indicates a "
570 "maximum size of 2**31 bytes."),
571 Units ( "Bits" ), MinValue ( 32 ),
572 MappingStrings { "POSIX.TOG|pathconf|_PC_FILESIZEBITS" }]
573 uint64 FileSizeBits;
574 };
575
576
577 // ===================================================================
578 // UnixDeviceFile
579 // ===================================================================
580 [Version ( "2.8.0" ), Description (
581 "DeviceFile is a special type of LogicalFile that represents a "
582 "Device. This class is a specialization of DeviceFile for a "
583 "Unix environment.")]
584 class CIM_UnixDeviceFile : CIM_DeviceFile {
585
586 [Description (
587 "The type of device file."),
588 ValueMap { "0", "1", "2", "3" },
589 tony 1.1 Values { "Unknown", "Other", "Block", "Character" },
590 ModelCorrespondence { "CIM_UnixDeviceFile.OtherTypeDescription"
591 }]
592 uint16 DeviceFileType;
593
594 [Description (
595 "Additional information when the DeviceFileType property is "
596 "set to \"Other\"."),
597 ModelCorrespondence { "CIM_UnixDeviceFile.DeviceFileType" }]
598 string OtherTypeDescription;
599
600 [Required, Description (
601 "The device Identifier: this is the st_rdev field in the "
602 "stat structure.")]
603 string DeviceId;
604
605 [Description (
606 "Additional information provided by the driver. This "
607 "property may be null if no information is available, or a "
608 "general description of the device when available, e.g. "
609 "\"Non-rewind tape streamer\".")]
610 tony 1.1 string DeviceDescription;
611
612 [Required, Description (
613 "The Device's Major Id.")]
614 string DeviceMajor;
615
616 [Required, Description (
617 "The Device's Minor Id.")]
618 string DeviceMinor;
619 };
620
621
622 // ===================================================================
623 // end of file
624 // ===================================================================
|