[DTrace-devel] [PATCH] provider: split off tracepoint provider function defs in their own header file
Kris Van Hees
kris.van.hees at oracle.com
Tue May 16 16:39:49 UTC 2023
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
libdtrace/dt_prov_dtrace.c | 2 +-
libdtrace/dt_prov_fbt.c | 2 +-
libdtrace/dt_prov_rawtp.c | 2 +-
libdtrace/dt_prov_sdt.c | 2 +-
libdtrace/dt_prov_syscall.c | 2 +-
libdtrace/dt_prov_uprobe.c | 2 +-
libdtrace/dt_provider.h | 34 -----------------------
libdtrace/dt_provider_tp.c | 2 +-
libdtrace/dt_provider_tp.h | 55 +++++++++++++++++++++++++++++++++++++
9 files changed, 62 insertions(+), 41 deletions(-)
create mode 100644 libdtrace/dt_provider_tp.h
diff --git a/libdtrace/dt_prov_dtrace.c b/libdtrace/dt_prov_dtrace.c
index e03d6c4b..939ab1cc 100644
--- a/libdtrace/dt_prov_dtrace.c
+++ b/libdtrace/dt_prov_dtrace.c
@@ -14,7 +14,7 @@
#include "dt_dctx.h"
#include "dt_cg.h"
-#include "dt_provider.h"
+#include "dt_provider_tp.h"
#include "dt_probe.h"
#include "uprobes.h"
diff --git a/libdtrace/dt_prov_fbt.c b/libdtrace/dt_prov_fbt.c
index d43a0e56..19917560 100644
--- a/libdtrace/dt_prov_fbt.c
+++ b/libdtrace/dt_prov_fbt.c
@@ -33,7 +33,7 @@
#include "dt_dctx.h"
#include "dt_cg.h"
-#include "dt_provider.h"
+#include "dt_provider_tp.h"
#include "dt_probe.h"
#include "dt_pt_regs.h"
diff --git a/libdtrace/dt_prov_rawtp.c b/libdtrace/dt_prov_rawtp.c
index 55caaed8..9148e715 100644
--- a/libdtrace/dt_prov_rawtp.c
+++ b/libdtrace/dt_prov_rawtp.c
@@ -33,7 +33,7 @@
#include "dt_bpf.h"
#include "dt_cg.h"
#include "dt_bpf.h"
-#include "dt_provider.h"
+#include "dt_provider_tp.h"
#include "dt_probe.h"
#include "dt_pt_regs.h"
diff --git a/libdtrace/dt_prov_sdt.c b/libdtrace/dt_prov_sdt.c
index 606ac25f..0bbe0fa8 100644
--- a/libdtrace/dt_prov_sdt.c
+++ b/libdtrace/dt_prov_sdt.c
@@ -30,7 +30,7 @@
#include "dt_dctx.h"
#include "dt_cg.h"
#include "dt_bpf.h"
-#include "dt_provider.h"
+#include "dt_provider_tp.h"
#include "dt_probe.h"
#include "dt_pt_regs.h"
diff --git a/libdtrace/dt_prov_syscall.c b/libdtrace/dt_prov_syscall.c
index 6b40bdcc..ff07d671 100644
--- a/libdtrace/dt_prov_syscall.c
+++ b/libdtrace/dt_prov_syscall.c
@@ -31,7 +31,7 @@
#include "dt_dctx.h"
#include "dt_cg.h"
-#include "dt_provider.h"
+#include "dt_provider_tp.h"
#include "dt_probe.h"
#include "dt_pt_regs.h"
diff --git a/libdtrace/dt_prov_uprobe.c b/libdtrace/dt_prov_uprobe.c
index f2b0707b..929aa3f6 100644
--- a/libdtrace/dt_prov_uprobe.c
+++ b/libdtrace/dt_prov_uprobe.c
@@ -16,7 +16,7 @@
#include "dt_dctx.h"
#include "dt_cg.h"
#include "dt_list.h"
-#include "dt_provider.h"
+#include "dt_provider_tp.h"
#include "dt_probe.h"
#include "dt_pid.h"
#include "dt_string.h"
diff --git a/libdtrace/dt_provider.h b/libdtrace/dt_provider.h
index 51a691cc..14abc518 100644
--- a/libdtrace/dt_provider.h
+++ b/libdtrace/dt_provider.h
@@ -18,18 +18,6 @@
extern "C" {
#endif
-/*
- * Tracepoint group naming format for DTrace providers. Providers may append
- * to this format string as needed.
- *
- * GROUP_DATA provides the necessary data items to populate the format string
- * (PID of the dtrace process and the provider name). GROUP_SFMT is like
- * GROUP_FMT, but for sscanf().
- */
-#define GROUP_FMT "dt_%d_%s"
-#define GROUP_SFMT "dt_%d_%ms"
-#define GROUP_DATA getpid(), prvname
-
struct dt_probe;
/*
@@ -104,28 +92,6 @@ typedef struct dt_provider {
uint_t pv_flags; /* flags (see below) */
} dt_provider_t;
-typedef struct tp_probe tp_probe_t;
-
-extern tp_probe_t *dt_tp_alloc(dtrace_hdl_t *dtp);
-extern int dt_tp_attach(dtrace_hdl_t *dtp, tp_probe_t *tpp, int bpf_fd);
-extern int dt_tp_is_created(const tp_probe_t *tpp);
-extern int dt_tp_event_info(dtrace_hdl_t *dtp, FILE *f, int skip,
- tp_probe_t *tpp, int *argcp,
- dt_argdesc_t **argvp);
-extern void dt_tp_detach(dtrace_hdl_t *dtp, tp_probe_t *tpp);
-extern void dt_tp_destroy(dtrace_hdl_t *dtp, tp_probe_t *tpp);
-
-extern struct dt_probe *dt_tp_probe_insert(dtrace_hdl_t *dtp,
- dt_provider_t *prov,
- const char *prv, const char *mod,
- const char *fun, const char *prb);
-extern int dt_tp_probe_attach(dtrace_hdl_t *dtp, const struct dt_probe *prp,
- int bpf_fd);
-extern int dt_tp_probe_attach_raw(dtrace_hdl_t *dtp, const struct dt_probe *prp,
- int bpf_fd);
-extern void dt_tp_probe_detach(dtrace_hdl_t *dtp, const struct dt_probe *prp);
-extern void dt_tp_probe_destroy(dtrace_hdl_t *dtp, void *datap);
-
#define DT_PROVIDER_INTF 0x1 /* provider interface declaration */
#define DT_PROVIDER_IMPL 0x2 /* provider implementation is loaded */
#define DT_PROVIDER_PID 0x4 /* provider is a PID provider */
diff --git a/libdtrace/dt_provider_tp.c b/libdtrace/dt_provider_tp.c
index b42c244f..f3e03323 100644
--- a/libdtrace/dt_provider_tp.c
+++ b/libdtrace/dt_provider_tp.c
@@ -13,7 +13,7 @@
#include <linux/perf_event.h>
#include "dt_bpf.h"
-#include "dt_provider.h"
+#include "dt_provider_tp.h"
#include "dt_probe.h"
#include "dt_impl.h"
diff --git a/libdtrace/dt_provider_tp.h b/libdtrace/dt_provider_tp.h
new file mode 100644
index 00000000..8bc432b7
--- /dev/null
+++ b/libdtrace/dt_provider_tp.h
@@ -0,0 +1,55 @@
+/*
+ * Oracle Linux DTrace.
+ * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
+ * Licensed under the Universal Permissive License v 1.0 as shown at
+ * http://oss.oracle.com/licenses/upl.
+ */
+
+#ifndef _DT_PROVIDER_TP_H
+#define _DT_PROVIDER_TP_H
+
+#include <dt_provider.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Tracepoint group naming format for DTrace providers. Providers may append
+ * to this format string as needed.
+ *
+ * GROUP_DATA provides the necessary data items to populate the format string
+ * (PID of the dtrace process and the provider name). GROUP_SFMT is like
+ * GROUP_FMT, but for sscanf().
+ */
+#define GROUP_FMT "dt_%d_%s"
+#define GROUP_SFMT "dt_%d_%ms"
+#define GROUP_DATA getpid(), prvname
+
+typedef struct tp_probe tp_probe_t;
+
+extern tp_probe_t *dt_tp_alloc(dtrace_hdl_t *dtp);
+extern int dt_tp_attach(dtrace_hdl_t *dtp, tp_probe_t *tpp, int bpf_fd);
+extern int dt_tp_is_created(const tp_probe_t *tpp);
+extern int dt_tp_event_info(dtrace_hdl_t *dtp, FILE *f, int skip,
+ tp_probe_t *tpp, int *argcp,
+ dt_argdesc_t **argvp);
+extern void dt_tp_detach(dtrace_hdl_t *dtp, tp_probe_t *tpp);
+extern void dt_tp_destroy(dtrace_hdl_t *dtp, tp_probe_t *tpp);
+
+extern struct dt_probe *dt_tp_probe_insert(dtrace_hdl_t *dtp,
+ dt_provider_t *prov,
+ const char *prv, const char *mod,
+ const char *fun, const char *prb);
+extern int dt_tp_probe_attach(dtrace_hdl_t *dtp, const struct dt_probe *prp,
+ int bpf_fd);
+extern int dt_tp_probe_attach_raw(dtrace_hdl_t *dtp, const struct dt_probe *prp,
+ int bpf_fd);
+extern void dt_tp_probe_detach(dtrace_hdl_t *dtp, const struct dt_probe *prp);
+extern void dt_tp_probe_destroy(dtrace_hdl_t *dtp, void *datap);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DT_PROVIDER_TP_H */
--
2.40.1
More information about the DTrace-devel
mailing list