summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdtrace/common/dtrace.h
diff options
context:
space:
mode:
authorbmc <none@none>2005-08-30 14:48:05 -0700
committerbmc <none@none>2005-08-30 14:48:05 -0700
commita1b5e537933659371285214eae1db2603e6364b4 (patch)
tree0e310d875940b00d01f2e43f9481f1bbc706165f /usr/src/lib/libdtrace/common/dtrace.h
parent20bfb7bbfd42ba8121fb6ca123254c43402579ca (diff)
downloadillumos-joyent-a1b5e537933659371285214eae1db2603e6364b4.tar.gz
6256581 System got a hang or a panic with dtrace+kmdb
6264573 unanchored dtrace_getpcstack is rather imprecise toward function end 6289517 dtrace doesn't like fd_intr anymore 6291378 dtrace helpers can interfere with the use of kmdb 6295554 dtrace doesn't report errors in ERROR probes 6311947 add umod()/ufunc()/usym(), mod()/func()/sym() 6311952 buffered handler should be called after printing each tuple element 6311956 drops induced by END are not recorded 6311958 should indicate missing jstack() frames due to string table overflows 6311960 allow some DTrace options to be set dynamically 6311963 jstack() produces stacks packed with "StubRoutines" 6311975 allow boolean DTrace options to be unset 6315028 allow quantize()/lquantize() increments to be D expressions 6315033 add dtrace_addr2str()/dtrace_uaddr2str() to libdtrace API 6315034 add ucaller variable 6315035 enablings containing USDT probes are not dynamically reevaluated 6315037 cannot aggregate on the return value of some subroutines 6315039 including <sys/kstat.h> in a D script induces compile-time error 6315087 stack() not correctly printed for 32-bit consumers on amd64 kernel 6315975 flowindent should operate on any probe ending in "-entry"/"-return" 6317350 symbol tables should not be discarded for UNDEAD processes
Diffstat (limited to 'usr/src/lib/libdtrace/common/dtrace.h')
-rw-r--r--usr/src/lib/libdtrace/common/dtrace.h38
1 files changed, 28 insertions, 10 deletions
diff --git a/usr/src/lib/libdtrace/common/dtrace.h b/usr/src/lib/libdtrace/common/dtrace.h
index efeb44550a..6d8fa80dc9 100644
--- a/usr/src/lib/libdtrace/common/dtrace.h
+++ b/usr/src/lib/libdtrace/common/dtrace.h
@@ -267,7 +267,7 @@ typedef struct dtrace_errdata {
const char *dteda_msg; /* preconstructed message */
} dtrace_errdata_t;
-typedef int dtrace_handle_err_f(dtrace_errdata_t *, void *);
+typedef int dtrace_handle_err_f(const dtrace_errdata_t *, void *);
extern int dtrace_handle_err(dtrace_hdl_t *, dtrace_handle_err_f *, void *);
typedef enum {
@@ -278,7 +278,9 @@ typedef enum {
DTRACEDROP_DYNDIRTY, /* dyn drop due to dirty */
DTRACEDROP_SPEC, /* speculative drop */
DTRACEDROP_SPECBUSY, /* spec drop due to busy */
- DTRACEDROP_SPECUNAVAIL /* spec drop due to unavail */
+ DTRACEDROP_SPECUNAVAIL, /* spec drop due to unavail */
+ DTRACEDROP_STKSTROVERFLOW, /* stack string tab overflow */
+ DTRACEDROP_DBLERROR /* error in ERROR probe */
} dtrace_dropkind_t;
typedef struct dtrace_dropdata {
@@ -290,7 +292,7 @@ typedef struct dtrace_dropdata {
const char *dtdda_msg; /* preconstructed message */
} dtrace_dropdata_t;
-typedef int dtrace_handle_drop_f(dtrace_dropdata_t *, void *);
+typedef int dtrace_handle_drop_f(const dtrace_dropdata_t *, void *);
extern int dtrace_handle_drop(dtrace_hdl_t *, dtrace_handle_drop_f *, void *);
typedef void dtrace_handle_proc_f(struct ps_prochandle *, void *);
@@ -300,14 +302,26 @@ typedef struct dtrace_bufdata {
dtrace_hdl_t *dtbda_handle; /* handle to DTrace library */
const char *dtbda_buffered; /* buffered output */
dtrace_probedata_t *dtbda_probe; /* probe data */
- dtrace_recdesc_t *dtbda_recdesc; /* record description */
- dtrace_aggdata_t *dtbda_aggdata; /* aggregation data, if agg. */
+ const dtrace_recdesc_t *dtbda_recdesc; /* record description */
+ const dtrace_aggdata_t *dtbda_aggdata; /* aggregation data, if agg. */
} dtrace_bufdata_t;
-typedef int dtrace_handle_buffered_f(dtrace_bufdata_t *, void *);
+typedef int dtrace_handle_buffered_f(const dtrace_bufdata_t *, void *);
extern int dtrace_handle_buffered(dtrace_hdl_t *,
dtrace_handle_buffered_f *, void *);
+typedef struct dtrace_setoptdata {
+ dtrace_hdl_t *dtsda_handle; /* handle to DTrace library */
+ const dtrace_probedata_t *dtsda_probe; /* probe data */
+ const char *dtsda_option; /* option that was set */
+ dtrace_optval_t dtsda_oldval; /* old value */
+ dtrace_optval_t dtsda_newval; /* new value */
+} dtrace_setoptdata_t;
+
+typedef int dtrace_handle_setopt_f(const dtrace_setoptdata_t *, void *);
+extern int dtrace_handle_setopt(dtrace_hdl_t *,
+ dtrace_handle_setopt_f *, void *);
+
/*
* DTrace Aggregate Interface
*/
@@ -337,7 +351,7 @@ struct dtrace_aggdata {
caddr_t *dtada_percpu_delta; /* per CPU delta, if avail */
};
-typedef int dtrace_aggregate_f(dtrace_aggdata_t *, void *);
+typedef int dtrace_aggregate_f(const dtrace_aggdata_t *, void *);
typedef int dtrace_aggregate_walk_f(dtrace_hdl_t *,
dtrace_aggregate_f *, void *);
@@ -501,10 +515,14 @@ struct dtrace_vector {
/*
* DTrace Utility Functions
*
- * Library clients can use these functions to convert between string and
- * integer probe descriptions and the dtrace_probedesc_t representation
- * and to perform similar conversions on stability attributes.
+ * Library clients can use these functions to convert addresses strings, to
+ * convert between string and integer probe descriptions and the
+ * dtrace_probedesc_t representation, and to perform similar conversions on
+ * stability attributes.
*/
+extern int dtrace_addr2str(dtrace_hdl_t *, uint64_t, char *, int);
+extern int dtrace_uaddr2str(dtrace_hdl_t *, pid_t, uint64_t, char *, int);
+
extern int dtrace_xstr2desc(dtrace_hdl_t *, dtrace_probespec_t,
const char *, int, char *const [], dtrace_probedesc_t *);