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