// =================================================================== // Title: System Unix 2.7 // Filename: System27_Unix.mof // Version: 2.7.0 // Release: Preliminary // Date: 07/08/02 // =================================================================== // Copyright 2002 Distributed Management Task Force, Inc. (DMTF). // All rights reserved. // DMTF is a not-for-profit association of industry members dedicated // to promoting enterprise and systems management and interoperability. // DMTF specifications and documents may be reproduced for uses // consistent with this purpose by members and non-members, // provided that correct attribution is given. // As DMTF specifications may be revised from time to time, // the particular version and release date should always be noted. // // Implementation of certain elements of this standard or proposed // standard may be subject to third party patent rights, including // provisional patent rights (herein "patent rights"). DMTF makes // no representations to users of the standard as to the existence // of such rights, and is not responsible to recognize, disclose, or // identify any or all such third party patent right, owners or // claimants, nor for any incomplete or inaccurate identification or // disclosure of such rights, owners or claimants. DMTF shall have no // liability to any party, in any manner or circumstance, under any // legal theory whatsoever, for failure to recognize, disclose, or // identify any such third party patent rights, or for such party's // reliance on the standard or incorporation thereof in its product, // protocols or testing procedures. DMTF shall have no liability to // any party implementing such standard, whether such implementation // is foreseeable or not, nor to any patent owner or claimant, and shall // have no liability or responsibility for costs or losses incurred if // a standard is withdrawn or modified after publication, and shall be // indemnified and held harmless by any party implementing the // standard from any and all claims of infringement by a patent owner // for such implementations. // // For information about patents held by third-parties which have // notified the DMTF that, in their opinion, such patent may relate to // or impact implementations of DMTF standards, visit // http://www.dmtf.org/about/policies/disclosures.php. // =================================================================== // Description: The System Model defines system related management // concepts. This file defines the specific subclasses // needed to manage Unix Systems. // // The object classes below are listed in an order that // avoids forward references. Required objects, defined // by other working groups, are omitted. // ================================================================== // Change Log for v2.7 - None // =================================================================== #pragma locale ("en_US") // =================================================================== // UnixLocalFileSystem // =================================================================== [Version ("2.6.0"), Description ( "A class derived from LocalFileSystem that represents the Unix " "environment view of a file store controlled by a ComputerSystem " "through local means (e.g., direct device driver access). In " "this case, the file store is managed directly by the " "ComputerSystem without the need for another computer to act " "as a file server. This definition does not breakdown in the " "case of a Clustered File System. In this scenario, the " "FileSystem is a LocalFileSystem, weak to the Cluster.") ] class CIM_UnixLocalFileSystem : CIM_LocalFileSystem { [Description ( "The number of free inodes present in the file system. " "This value is only valid if TotalSlots is non-zero."), MappingStrings{"MIF.DMTF|Host File System|001.12"}, ModelCorrespondence {"CIM_UnixLocalFileSystem.TotalSlots"} ] uint64 FreeInodes; [Description ( "The total number of inodes available in the file system. " "A value of zero for TotalInodes indicates that this file " "system does not have a preset limit."), MappingStrings{"MIF.DMTF|Host File System|001.11"} ] uint64 TotalInodes; [Description ( "The reserve data capacity of the file system in bytes."), MappingStrings{"MIF.DMTF|Host File System|001.15"}, Units("Bytes") ] uint64 FSReservedCapacity; }; // =================================================================== // UnixProcess // =================================================================== [Version ("2.6.0"), Description ( "Each instance of the CIM_UnixProcess class represents a single " "instance of a running program. A user of the Operating System " "will typically see a Process as an application or task. Within " "an OperatingSystem, a Process is defined by a workspace of " "memory resources and environmental settings that are allocated " "to it. On a multitasking System, this workspace prevents " "intrusion of resources by other Processes. Additionally, a " "Process can execute as multiple Threads, all which run within " "the same workspace.") ] class CIM_UnixProcess : CIM_Process { [Required, Description ( "The parent process ID of this executing process."), MappingStrings{"MIF.DMTF|Process Information|001.2"} ] string ParentProcessID; [Required, Description ( "The Real User ID of this currently executing process."), MappingStrings{"MIF.DMTF|Process Information|001.4"} ] uint64 RealUserID; [Required, Description ( "The Group ID of this currently executing process."), MappingStrings{"MIF.DMTF|Process Information|001.2"} ] uint64 ProcessGroupID; [Description ( "If part of a group of processes are under the control " "of a session leader, this property holds the session " "ID for the group.") ] uint64 ProcessSessionID; [Description ( "The TTY currently associated with this process."), MappingStrings{"MIF.DMTF|Process Information|001.5"} ] string ProcessTTY; [Description ( "The executing process's command path."), MappingStrings{"MIF.DMTF|Process Information|001.7"} ] string ModulePath; [Description ( "The operating system parameters provided to the executing " "process. These are the argv[] values."), MappingStrings{"MIF.DMTF|Process Information|001.8"} ] string Parameters[]; [Description ( "The process's 'nice' value. Used to compute its priority."), MappingStrings{"MIF.DMTF|Process Information|001.11"} ] uint32 ProcessNiceValue; [Description ( "A description of the event this process is currently " "sleeping for. The precise nature of this string is " "implementation defined, but is typically the address of a " "system data structure that will be modified when the event " "occurs. This string only has meaning when the ExecutionState " "is \"Blocked\" or \"SuspendedBlocked\"."), ModelCorrespondence {"CIM_Process.ExecutionState"} ] string ProcessWaitingForEvent; }; // =================================================================== // UnixProcessStatisticalInformation // =================================================================== [Version ("2.6.0"), Description ( "The statistics associated with a Unix process.") ] class CIM_UnixProcessStatisticalInformation : CIM_StatisticalInformation { [Propagated("CIM_Process.CSCreationClassName"), Key, MaxLen (256), Description ( "The scoping Process's ComputerSystem CreationClassName.") ] string CSCreationClassName; [Propagated("CIM_Process.CSName"), Key, MaxLen (256), Description ("The scoping Process's ComputerSystem Name.") ] string CSName; [Propagated("CIM_Process.OSCreationClassName"), Key, MaxLen (256), Description ( "The scoping Process's OperatingSystem " "CreationClassName.") ] string OSCreationClassName; [Propagated("CIM_Process.OSName"), Key, MaxLen (256), Description ("The scoping Process's OperatingSystem Name.") ] string OSName; [Propagated("CIM_Process.Handle"), Key, MaxLen (256), Description ("The scoping Process's Handle.") ] string Handle; [Propagated("CIM_Process.CreationClassName"), Key, MaxLen (256), Description ( "The scoping Process's CreationClassName.") ] string ProcessCreationClassName; [Key, MaxLen (256), Override ("Name"), Description ( "A string used to identify the related statistics " "of a Process.") ] string Name; [Description ( "A string used to identify the related statistics of a " "Process. This key allows multiple instances of statistics to " "correspond to a single process. The multiple " "instances could be used in applications such as " "time-sliced statistics."), MappingStrings{"MIF.DMTF|Process Information|001.12"}, Units("Percent") ] uint32 CPUTime; [Description ("The number of KiloBytes of real text space " "used by the process."), MappingStrings{"MIF.DMTF|Process Information|001.15"}, Units("KiloBytes") ] uint64 RealText; [Description ("The number of KiloBytes of real data " "space used by the process."), MappingStrings{"MIF.DMTF|Process Information|001.16"}, Units("KiloBytes") ] uint64 RealData; [Description ("The number of KiloBytes of real stack space " "used by the process."), MappingStrings{"MIF.DMTF|Process Information|001.17"}, Units("KiloBytes") ] uint64 RealStack; [Description ( "The number of KiloBytes of virtual text space used by the " "process."), MappingStrings{"MIF.DMTF|Process Information|001.18"}, Units("KiloBytes") ] uint64 VirtualText; [Description ( "The number of KiloBytes of virtual data space used by the " "process."), MappingStrings{"MIF.DMTF|Process Information|001.19"}, Units("KiloBytes") ] uint64 VirtualData; [Description ( "The number of KiloBytes of virtual stack space used by the " "process."), MappingStrings{"MIF.DMTF|Process Information|001.20"}, Units("KiloBytes") ] uint64 VirtualStack; [Description ( "The number of KiloBytes of virtual space used for memory " "mapped files by the process."), MappingStrings{"MIF.DMTF|Process Information|001.22"}, Units("KiloBytes") ] uint64 VirtualMemoryMappedFileSize; [Description ( "The number of KiloBytes of shared memory used by the" "process."), MappingStrings{"MIF.DMTF|Process Information|001.21"}, Units("KiloBytes") ] uint64 VirtualSharedMemory; [Description ( "CPU time of terminated child processes in clock ticks"), Units ("Clock Ticks"), Counter] uint64 CpuTimeDeadChildren; [Description ( "System time of terminated child processes in clock ticks"), Units ("Clock Ticks"), Counter] uint64 SystemTimeDeadChildren; }; // ================================================================== // UnixProcessStatistics // ================================================================== [Association, Version ("2.6.0"), Description ( "CIM_UnixProcessStatistics is an association that relates a " "CIM_UnixProcess to its StatisticalInformation.") ] class CIM_UnixProcessStatistics : CIM_Statistics { [Override ("Element"), Min (1), Max (1), Description ( "The Process for which statistical or metric " "data is defined.") ] CIM_UnixProcess REF Element; [Override ("Stats"), Weak, Description ( "The UNIX Process statistical information/object.") ] CIM_UnixProcessStatisticalInformation REF Stats; }; // =================================================================== // UnixThread // =================================================================== [Version ("2.6.0"), Description ( "Threads represent the ability to execute units of a Process " "or task in parallel. A UnixThread inherits from the " "superclass, CIM_Thread, which is weak to the Process. The " "values used are defined in sched.h and psched.h.") ] class CIM_UnixThread : CIM_Thread { [Description ( "Indicates the thread's scheduling policy. Set to \"Other\" " "when using OtherSchedPolicy to specifiy additional values. " "\"Other\" represents SCHED_OTHER as defined in sched.h" ), ValueMap {"0", "1", "2", "3"}, Values {"Unknown", "Other", "SCHED_FIFO", "SCHED_RR"}, ModelCorrespondence {"CIM_UnixThread.OtherSchedPolicy"} ] uint16 SchedPolicy; [Description ( "Indicates the thread's scheduling policy when SchedPolicy " "is set to \"Other\"."), ModelCorrespondence {"CIM_UnixThread.SchedPolicy"} ] string OtherSchedPolicy; [Description ( "Indicates the size of the guard area for a created thread's " "stack.") ] string GuardSize; [Description ( "Indicates the creation state of the thread."), ValueMap {"0", "2", "3"}, Values {"Unknown", "PTHREAD_CREATE_DETACHED", "PTHREAD_CREATE_JOINABLE"} ] uint16 DetachState; [Description ( "Indicates how the scheduling attributes are to be set."), ValueMap {"0", "2", "3"}, Values {"Unknown", "PTHREAD_INHERIT_SCHED", "PTHREAD_EXPLICIT_SCHED"} ] uint16 InheritSched; [Description ( "Indicates the contention scope of the thread."), ValueMap {"0", "2", "3"}, Values {"Unknown", "PTHREAD_SCOPE_SYSTEM", "PTHREAD_SCOPE_PROCESS"} ] uint16 ContentionScope; [Description ( "Indicates the size of storage to be used for the thread's " "stack.") ] string StackSize; [Description ( "Indicates the thread's concurrency level.") ] uint64 ConcurrencyLevel; [Description ( "Indicates the thread's cancelability state."), ValueMap {"0", "2", "3"}, Values {"Unknown", "PTHREAD_CANCEL_ENABLE", "PTHREAD_CANCEL_DISABLE"} ] uint16 CancelState; [Description ( "Indicates the thread's cancelability type."), ValueMap {"0", "2", "3"}, Values {"Unknown", "PTHREAD_CANCEL_DEFERRED", "PTHREAD_CANCEL_ASYNCHRONOUS"} ] uint16 CancelType; }; // =================================================================== // UnixFile // =================================================================== [Version ("2.6.0"), Description ( "The UnixFile class holds properties that are valid for various " "subclasses of LogicalFile, in a Unix environment. This is " "defined as a separate and unique class since it is applicable " "to Unix files, directories, etc. It is associated via a " "FileIdentity relationship to these subclasses of LogicalFile. " "Unless this approach of creating and associating a separate " "class is used, it is necessary to subclass each of the " "inheritance hierarchies under LogicalFile, duplicating the " "properties in this class. The referenced _PC* and _POSIX* " "constants are defined in unistd.h. Some properties indicate " "whether the UNIX implementation support a feature such as " "asynchronous I/O or priority I/O. If supported, sysconf " "returns the value as defined in the appropriate header file " "such as unistd.h. If a feature is not supported, then pathconf " "returns a -1. In this case, the corresponding property should " "be returned without any value.") ] class CIM_UnixFile : CIM_LogicalElement { [Propagated ("CIM_LogicalFile.CSCreationClassName"), Key, MaxLen (256), Description ("The scoping ComputerSystem's CreationClassName.") ] string CSCreationClassName; [Propagated ("CIM_LogicalFile.CSName"), Key, MaxLen (256), Description ("The scoping ComputerSystem's Name.") ] string CSName; [Propagated ("CIM_LogicalFile.FSCreationClassName"), Key, MaxLen (256), Description ("The scoping FileSystem's CreationClassName.") ] string FSCreationClassName; [Propagated ("CIM_LogicalFile.FSName"), Key, MaxLen (256), Description ("The scoping FileSystem's Name.") ] string FSName; [Propagated ("CIM_LogicalFile.CreationClassName"), Key, MaxLen (256), Description ( "The scoping LogicalFile's CreationClassName. ") ] string LFCreationClassName; [Propagated ("CIM_LogicalFile.Name"), Key, MaxLen (1024), Description ( "The scoping LogicalFile's Name. ") ] string LFName; [Required, Description ("An Identifer that uniquely describes the owner " "of this file.") ] string UserID; [Required, Description ("An identifier that describes the group that " "owns this file.") ] string GroupID; [Description ("Indicates restricted deletion for directories, " "or possible implementation defined properties for executable " "files. For directories this is known as the sticky bit.") ] boolean SaveText; [Description ("Count of the number of names for this file." ), Counter ] uint64 LinkCount; [Description ("File Inode number, as printed by \"ls -i\"."), MappingStrings {"UNIX.TOG|ls -i"} ] string FileInodeNumber; [Description ("Indicates whether the associated file has setuid " "permissions.") ] boolean SetUid; [Description ("Indicates whether the associated file has setgid " "permissions.") ] boolean SetGid; [Description ("The time that the Inode was last modified. " "This includes the Inode creation time, state modification, " "and etc.") ] datetime LastModifiedInode; [Description ("Maximum number of links to a single file. "), MinValue(8), MappingStrings {"POSIX.TOG|pathconf|_PC_LINK_MAX"} ] uint64 LinkMax; [Description ("Maximum number of bytes in a filename, not " "including terminating null."), MinValue(14), Units ("Bytes"), MappingStrings {"POSIX.TOG|pathconf|_POSIX_NAME_MAX"} ] uint64 NameMax; [Description ("Maximum number of bytes in a pathname, including " "the terminating null character."), MinValue(255), Units ("Bytes"), MappingStrings {"POSIX.TOG|pathconf|_POSIX_PATH_MAX"} ] uint64 PathMax; [Description ("The use of chown() is restricted to a process " "with appropriate privileges. chown() is used to change the " "group ID of a file. The group ID can be changed to the " "effective group ID or one of its supplementary group IDs."), MappingStrings {"POSIX.TOG|pathconf|_PC_CHOWN_RESTRICTED"} ] uint64 PosixChownRestricted; [Description ("Indicates whether pathname components longer " "than NameMax generate an error."), ModelCorrespondence {"CIM_UnixFile.NameMax"}, MappingStrings {"POSIX.TOG|pathconf|_PC_NO_TRUNC"} ] uint64 PosixNoTrunc; [Description ("Indicates whether asynchronous input or output " "operations may be performed for the associated file."), MappingStrings {"POSIX.TOG|pathconf|_PC_ASYNC_IO"} ] uint64 PosixAsyncIo; [Description ("Indicates whether prioritized input or output " "operations may be performed for the associated file."), MappingStrings {"POSIX.TOG|pathconf|_PC_PRIO_IO"} ] uint64 PosixPrioIo; [Description ("Indicates whether synchronised input or output " "operations may be performed for the associated file."), MappingStrings {"POSIX.TOG|pathconf|_PC_SYNC_IO"} ] uint64 PosixSyncIo; }; // =================================================================== // FileIdentity // =================================================================== [Association, Version ("2.6.0"), Description ( "CIM_FileIdentity indicates that a UnixFile describes Unix-" "specific aspects of the various subclasses of LogicalFile. " "The association exists since it forces UnixFile to be " "weak to (scoped by) the LogicalFile. This is not true in " "the association's superclass, LogicalIdentity.") ] class CIM_FileIdentity : CIM_LogicalIdentity { [Override ("SystemElement"), Min (1), Max (1), Description ("The Logical File.") ] CIM_LogicalFile ref SystemElement; [Override ("SameElement"), Weak, Max (1), Description ( "SameElement represents the additional aspects of the " "Unix/Linux Logical file.") ] CIM_UnixFile ref SameElement; }; // =================================================================== // UnixDirectory // =================================================================== [Version ("2.6.0"), Description ( "UnixDirectory is a type of File that logically groups UnixFiles " "'contained' in it.") ] class CIM_UnixDirectory : CIM_Directory { [Description ("Minimum number of bits needed to represent " "the maximum size of a Unix file allowed in the specified " "directory, as a signed integer value. Thus, a value of 32 " "indicates a maximum size of 2**31 bytes."), MinValue(32), Units ("Bits"), MappingStrings {"POSIX.TOG|pathconf|_PC_FILESIZEBITS"} ] uint64 FileSizeBits; }; // =================================================================== // UnixDeviceFile // =================================================================== [Version ("2.6.0"), Description ( "DeviceFile is a special type of LogicalFile that represents a " "Device. This class is a specialization of DeviceFile for a Unix " "environment.") ] class CIM_UnixDeviceFile : CIM_DeviceFile { [Description ("The type of device file"), ValueMap {"0", "1", "2", "3"}, Values {"Unknown", "Other", "Block", "Character"}, ModelCorrespondence {"CIM_UnixDeviceFile.OtherTypeDescription"} ] uint16 DeviceFileType; [Description ("Additional information when the Type property is " "set to \"Other\"."), ModelCorrespondence {"CIM_UnixDeviceFile.Type"} ] string OtherTypeDescription; [Required, Description ( "The device Identifier: this is the st_rdev field " "in the stat structure.") ] string DeviceId; [Description ("Additional information provided by the driver. " "This property may be null if no information is available, or " "a general description of the device when available, e.g. " "\"Non-rewind tape streamer\".") ] string DeviceDescription; [Required, Description ( "The Device's Major Id.") ] string DeviceMajor; [Required, Description ( "The Device's Minor Id.") ] string DeviceMinor; }; // =================================================================== // end of file // ===================================================================