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