Lines Matching full:provider
69 #define DTRACE_PROVNONE 0 /* invalid provider identifier */
70 #define DTRACE_METAPROVNONE 0 /* invalid meta-provider identifier */
229 #define DIF_VAR_PROBEPROV 0x0112 /* probe provider */
729 dof_stridx_t dofp_provider; /* provider string */
784 dof_stridx_t dofpv_name; /* provider name string */
785 dof_attr_t dofpv_provattr; /* provider attributes */
889 char dtpd_provider[DTRACE_PROVNAMELEN]; /* probe provider name */
1167 * of greater stability; the provider indicates such a translated argument by
1169 * Finally, the provider may indicate which argument value a given argument
1184 * Each DTrace provider advertises the name and data stability of each of its
1186 * The D compiler can query the provider attributes (dtrace_pattr_t below) in
1234 dtrace_attribute_t dtpa_provider; /* provider attributes */
1242 char dtvd_name[DTRACE_PROVNAMELEN]; /* provider name */
1255 #define DTRACEIOC_PROVIDER (DTRACEIOC | 1) /* provider query */
1299 * provider name "dtrace" and the module name "helper", and the name of the
1366 * DTrace Provider API
1373 * The provider API has two halves: the API that the providers consume from
1376 * 1 Framework-to-Provider API
1380 * The Framework-to-Provider API is represented by the dtrace_pops structure
1381 * that the provider passes to the framework when registering itself. This
1399 * Called to indicate that the provider should provide all probes. If the
1401 * no probe matched a specified probe -- if the provider has the ability to
1408 * second argument is a pointer to a probe description that the provider may
1409 * wish to consider when creating custom probes. The provider is expected to
1411 * any necessary probes. dtps_provide() may be called even if the provider
1412 * has made available all probes; the provider should check the return value
1413 * of dtrace_probe_create() to handle this case. Note that the provider need
1426 * the provider may not call any DTrace API that affects its registration with
1429 * that the provider may (and indeed, is expected to) call probe-related
1437 * Called to indicate that the provider should provide all probes in the
1455 * register or unregister. This means that the provider may not call any
1458 * dtrace_condense(). However, the context is such that the provider may (and
1461 * that the provider need not implement both dtps_provide() and
1478 * with the probe may change without subsequent calls into the provider.
1479 * When the number of ECBs drops to zero, the provider will be explicitly
1546 * dtps_suspend(). As interrupts are disabled, the provider is afforded
1547 * little latitude; the provider is expected to do no more than a store to
1575 * dtps_resume(). As interrupts are disabled, the provider is afforded
1576 * little latitude; the provider is expected to do no more than a store to
1607 * register or unregister. This means that the provider may not call any
1691 * provider should free all state associated with the probe. The framework
1708 * 2 Provider-to-Framework API
1712 * The Provider-to-Framework API provides the mechanism for the provider to
1714 * probes and (most importantly) to fire probes. The Provider-to-Framework
1717 * dtrace_register() <-- Register a provider with the DTrace framework
1718 * dtrace_unregister() <-- Remove a provider's DTrace registration
1719 * dtrace_invalidate() <-- Invalidate the specified provider
1720 * dtrace_condense() <-- Remove a provider's unenabled probes
1733 * dtrace_register() registers the calling provider with the DTrace
1739 * The first argument is the name of the provider. The second argument is a
1740 * pointer to the stability attributes for the provider. The third argument
1741 * is the privilege flags for the provider, and must be some combination of:
1743 * DTRACE_PRIV_NONE <= All users may enable probes from this provider
1746 * enable probes from this provider
1749 * enable probes from this provider
1752 * may enable probes from this provider
1770 * provider. This argument should be NULL if the privilege flags don't
1777 * The fifth argument is a DTrace provider operations vector, which provides
1778 * the implementation for the Framework-to-Provider API. (See Section 1,
1781 * members (if the provider so desires, _one_ of these members may be left
1782 * NULL -- denoting that the provider only implements the other) and (2)
1787 * each function in the Framework-to-Provider API. This argument may have
1791 * dtrace_register() successfully completes, the provider identifier will be
1797 * On success, dtrace_register() returns 0 and stores the new provider's
1804 * provider name) or because the attributes were invalid.
1810 * dtrace_register() may induce calls to dtrace_provide(); the provider must
1818 * Unregisters the specified provider from the DTrace framework. It should
1823 * The only argument is the provider identifier, as returned from a
1825 * dtrace_unregister(), the DTrace framework will call back into the provider
1828 * the Framework-to-Provider API.
1844 * Framework-to-Provider API, the caller may not hold any lock across
1846 * Provider API functions. Additionally, mod_lock may not be held.
1852 * Invalidates the specified provider. All subsequent probe lookups for the
1853 * specified provider will fail, but its probes will not be removed.
1857 * The only argument is the provider identifier, as returned from a
1858 * successful call to dtrace_register(). In general, a provider's probes
1860 * an entire provider, regardless of whether or not probes are enabled or
1863 * provider's probes.
1869 * Removes all the unenabled probes for the given provider. This function is
1871 * provider just as many of its associated probes as it can.
1875 * As with dtrace_unregister(), the sole argument is the provider identifier
1878 * given provider's dtps_destroy() entry point for each of the provider's
1890 * dtrace_condense() that is also acquired in the provider's entry points.
1902 * That is, once a provider has registered with DTrace, it waits to hear
1907 * the provider must not make any other Provider-to-Framework API call.
1922 * The first argument is the provider identifier, as returned from a
1938 * provider when a probe-specific operation is called. (e.g., via
1941 * Note that it is up to the provider to be sure that the probe that it
1942 * creates does not already exist -- if the provider is unsure of the probe's
1967 * The first argument is the provider identifier, as returned from a
1972 * provider and matches all of the non-NULL matching criteria.
1973 * dtrace_probe_lookup() is generally used by a provider to be check the
1995 * The first argument is the provider identifier, as returned from a
1999 * provider-specific components to it: the provider can create the probe
2000 * once with provider-specific state, and then add to the state by looking
2007 * by the specified provider, NULL is returned.
2031 * however the provider defines it.
2090 * DTrace Meta Provider API
2095 * present, there is only one type of meta provider and only one meta
2096 * provider may be registered with the DTrace framework at a time. The
2097 * sole meta provider type provides user-land static tracing facilities
2098 * by taking meta probe descriptions and adding a corresponding provider
2101 * 1 Framework-to-Provider
2105 * The Framework-to-Provider API is represented by the dtrace_mops structure
2106 * that the meta provider passes to the framework when registering itself as
2107 * a meta provider. This structure consists of the following members:
2109 * dtms_create_probe() <-- Add a new probe to a created provider
2110 * dtms_provide_pid() <-- Create a new provider for a given process
2111 * dtms_remove_pid() <-- Remove a previously created provider
2118 * Called by the DTrace framework to create a new probe in a provider
2119 * created by this meta provider.
2124 * The second argument is the provider cookie for the associated provider;
2136 * register or unregister. This means that the meta provider cannot call
2138 * such that the provider may (and is expected to) call provider-related
2139 * DTrace provider APIs including dtrace_probe_create().
2146 * Called by the DTrace framework to instantiate a new provider given the
2147 * description of the provider and probes in the mprov argument. The
2148 * meta provider should call dtrace_register() to insert the new provider
2155 * helper provider. The third argument is the process identifier for
2156 * process associated with this new provider. Note that the name of the
2157 * provider as passed to dtrace_register() should be the contatenation of
2163 * The cookie for the provider that the meta provider creates. This is
2170 * register or unregister. This means that the meta provider cannot call
2172 * is such that the provider may -- and is expected to -- call
2173 * provider-related DTrace provider APIs including dtrace_register().
2180 * Called by the DTrace framework to remove a provider that had previously
2182 * provider need not remove the provider immediately, but this entry
2183 * point indicates that the provider should be removed as soon as possible
2190 * provider. The third argument is the process identifier for process
2191 * associated with this new provider.
2201 * register or unregister. This means that the meta provider cannot call
2203 * is such that the provider may -- and is expected to -- call
2204 * provider-related DTrace provider APIs including dtrace_unregister().
2223 char *dthpv_provname; /* provider name */