summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdtrace/common/dtrace.h
diff options
context:
space:
mode:
authorbmc <none@none>2005-11-29 12:13:13 -0800
committerbmc <none@none>2005-11-29 12:13:13 -0800
commit30ef842d708d30553d7fbc8348a381664ef62a73 (patch)
treedb619e231e837dcd55b4406b14b366d6d4355db2 /usr/src/lib/libdtrace/common/dtrace.h
parent0ec5755428223b8105e488e8fddc19de4db26521 (diff)
downloadillumos-gate-30ef842d708d30553d7fbc8348a381664ef62a73.tar.gz
6340196 Probe effect when using strings in aggregations could be reduced
6350216 get_hwc_spec() runs in quadratic time 6350217 printa() refuses to use %Y/%T format specifiers 6350219 aggregation/assoc. array error messages should use "key" nomenclature 6350221 undefined behavior when lquantize() is used inconsistently 6350223 printa() should support multiple aggregations 6350224 need aggregation sorting options 6350225 need private dtrace(1M) option for buffered handler debugging
Diffstat (limited to 'usr/src/lib/libdtrace/common/dtrace.h')
-rw-r--r--usr/src/lib/libdtrace/common/dtrace.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/usr/src/lib/libdtrace/common/dtrace.h b/usr/src/lib/libdtrace/common/dtrace.h
index 6d8fa80dc9..3d5998cb2f 100644
--- a/usr/src/lib/libdtrace/common/dtrace.h
+++ b/usr/src/lib/libdtrace/common/dtrace.h
@@ -49,14 +49,13 @@ extern "C" {
* Please refer to the "Solaris Dynamic Tracing Guide" for more information.
*/
-#define DTRACE_VERSION 1 /* library ABI interface version */
+#define DTRACE_VERSION 2 /* library ABI interface version */
struct ps_prochandle;
typedef struct dtrace_hdl dtrace_hdl_t;
typedef struct dtrace_prog dtrace_prog_t;
typedef struct dtrace_vector dtrace_vector_t;
typedef struct dtrace_aggdata dtrace_aggdata_t;
-typedef int64_t dtrace_aggvarid_t;
#define DTRACE_O_NODEV 0x01 /* do not open dtrace(7D) device */
#define DTRACE_O_NOSYS 0x02 /* do not load /system/object modules */
@@ -298,12 +297,18 @@ extern int dtrace_handle_drop(dtrace_hdl_t *, dtrace_handle_drop_f *, void *);
typedef void dtrace_handle_proc_f(struct ps_prochandle *, void *);
extern int dtrace_handle_proc(dtrace_hdl_t *, dtrace_handle_proc_f *, void *);
+#define DTRACE_BUFDATA_AGGKEY 0x0001 /* aggregation key */
+#define DTRACE_BUFDATA_AGGVAL 0x0002 /* aggregation value */
+#define DTRACE_BUFDATA_AGGFORMAT 0x0004 /* aggregation format data */
+#define DTRACE_BUFDATA_AGGLAST 0x0008 /* last for this key/val */
+
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 */
const dtrace_recdesc_t *dtbda_recdesc; /* record description */
const dtrace_aggdata_t *dtbda_aggdata; /* aggregation data, if agg. */
+ uint32_t dtbda_flags; /* flags; see above */
} dtrace_bufdata_t;
typedef int dtrace_handle_buffered_f(const dtrace_bufdata_t *, void *);
@@ -354,6 +359,8 @@ struct dtrace_aggdata {
typedef int dtrace_aggregate_f(const dtrace_aggdata_t *, void *);
typedef int dtrace_aggregate_walk_f(dtrace_hdl_t *,
dtrace_aggregate_f *, void *);
+typedef int dtrace_aggregate_walk_joined_f(const dtrace_aggdata_t **,
+ const int, void *);
extern void dtrace_aggregate_clear(dtrace_hdl_t *);
extern int dtrace_aggregate_snap(dtrace_hdl_t *);
@@ -362,6 +369,12 @@ extern int dtrace_aggregate_print(dtrace_hdl_t *, FILE *,
extern int dtrace_aggregate_walk(dtrace_hdl_t *, dtrace_aggregate_f *, void *);
+extern int dtrace_aggregate_walk_joined(dtrace_hdl_t *,
+ dtrace_aggvarid_t *, int, dtrace_aggregate_walk_joined_f *, void *);
+
+extern int dtrace_aggregate_walk_sorted(dtrace_hdl_t *,
+ dtrace_aggregate_f *, void *);
+
extern int dtrace_aggregate_walk_keysorted(dtrace_hdl_t *,
dtrace_aggregate_f *, void *);