Interface Attributes
DTrace describes interfaces using a triplet of attributes consisting of two stability levels and
a dependency class. By convention, the interface attributes are written in the following
order, separated by slashes:
name-stability / data-stability / dependency-classThe name stability of an interface describes the stability level associated with its name
as it appears in your D program or on the dtrace(1M) command-line. For example,
the execname D variable is a Stable name: Sun guarantees that this identifier
will continue to be supported in your D programs according to the rules
described for Stable interfaces above.
The data stability of an interface is distinct from the stability associated with the
interface name. This stability level describes Sun's commitment to maintaining the data formats
used by the interface and any associated data semantics. For example, the pid
D variable is a Stable interface: process IDs are a Stable concept in
Solaris, and Sun guarantees that the pid variable will be of type pid_t
with the semantic that it is set to the process ID corresponding to
the thread that fired a given probe in accordance with the rules
for Stable interfaces.
The dependency class of an interface is distinct from its name and data stability,
and describes whether the interface is specific to the current operating platform or
microprocessor.
DTrace and the D compiler track the stability attributes for all of the
DTrace interface entities, including providers, probe descriptions, D variables, D functions, types, and
program statements themselves, as we'll see shortly. Notice that all three values can
vary independently. For example, the curthread D variable has Stable/Private/Common attributes: the variable name
is Stable and is Common to all Solaris operating platforms, but this variable
provides access to a Private data format that is an artifact of the
Solaris kernel implementation. Most D variables are provided with Stable/Stable/Common attributes, as are
the variables you define.