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