[DTrace-devel] [PATCH] Split out dt_cg* function prototypes into a dt_cg.h file
Kris Van Hees
kris.van.hees at oracle.com
Wed Sep 2 13:56:58 PDT 2020
The prototypes for various code generator functions (dt_cg*()) were
found in dt_impl.h even though only a small part of the libdtrace code
actually needs them.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
libdtrace/dt_as.h | 1 +
libdtrace/dt_cc.c | 1 +
libdtrace/dt_cg.c | 1 +
libdtrace/dt_cg.h | 32 ++++++++++++++++++++++++++++++++
libdtrace/dt_impl.h | 8 --------
libdtrace/dt_prov_dtrace.c | 1 +
libdtrace/dt_prov_fbt.c | 2 +-
libdtrace/dt_prov_profile.c | 1 +
libdtrace/dt_prov_sdt.c | 2 +-
libdtrace/dt_prov_syscall.c | 2 +-
10 files changed, 40 insertions(+), 11 deletions(-)
create mode 100644 libdtrace/dt_cg.h
diff --git a/libdtrace/dt_as.h b/libdtrace/dt_as.h
index bfbcdaec..59e65c4c 100644
--- a/libdtrace/dt_as.h
+++ b/libdtrace/dt_as.h
@@ -9,6 +9,7 @@
#define _DT_AS_H
#include <sys/types.h>
+#include <sys/dtrace_types.h>
#include <linux/bpf.h>
#ifdef __cplusplus
diff --git a/libdtrace/dt_cc.c b/libdtrace/dt_cc.c
index f1ac0776..d0c47bc0 100644
--- a/libdtrace/dt_cc.c
+++ b/libdtrace/dt_cc.c
@@ -88,6 +88,7 @@
#include <dt_ident.h>
#include <dt_string.h>
#include <dt_impl.h>
+#include <dt_cg.h>
#include <dt_bpf.h>
#include <bpf_asm.h>
diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 46da8f33..e888eae5 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -13,6 +13,7 @@
#include <errno.h>
#include <dt_impl.h>
+#include <dt_cg.h>
#include <dt_grammar.h>
#include <dt_parser.h>
#include <dt_printf.h>
diff --git a/libdtrace/dt_cg.h b/libdtrace/dt_cg.h
new file mode 100644
index 00000000..a4c6fb28
--- /dev/null
+++ b/libdtrace/dt_cg.h
@@ -0,0 +1,32 @@
+/*
+ * Oracle Linux DTrace.
+ * Copyright (c) 2020, 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_CG_H
+#define _DT_CG_H
+
+#include <dt_as.h>
+#include <dt_pcb.h>
+#include <dt_state.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void dt_cg(dt_pcb_t *, dt_node_t *);
+extern void dt_cg_xsetx(dt_irlist_t *, dt_ident_t *, uint_t, int, uint64_t);
+extern dt_irnode_t *dt_cg_node_alloc(uint_t, struct bpf_insn);
+extern void dt_cg_tramp_prologue_act(dt_pcb_t *pcb, uint_t lbl_exit,
+ dt_activity_t act);
+extern void dt_cg_tramp_prologue(dt_pcb_t *pcb, uint_t lbl_exit);
+extern void dt_cg_tramp_epilogue(dt_pcb_t *pcb, uint_t lbl_exit);
+extern void dt_cg_tramp_epilogue_advance(dt_pcb_t *pcb, uint_t lbl_exit);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DT_CG_H */
diff --git a/libdtrace/dt_impl.h b/libdtrace/dt_impl.h
index b7d53dd9..510517ce 100644
--- a/libdtrace/dt_impl.h
+++ b/libdtrace/dt_impl.h
@@ -775,14 +775,6 @@ extern dtrace_difo_t *dt_program_construct(dtrace_hdl_t *dtp,
extern void dt_pragma(dt_node_t *);
extern int dt_reduce(dtrace_hdl_t *, dt_version_t);
-extern void dt_cg(dt_pcb_t *, dt_node_t *);
-extern void dt_cg_xsetx(dt_irlist_t *, dt_ident_t *, uint_t, int, uint64_t);
-extern dt_irnode_t *dt_cg_node_alloc(uint_t, struct bpf_insn);
-extern void dt_cg_tramp_prologue_act(dt_pcb_t *pcb, uint_t lbl_exit,
- dt_activity_t act);
-extern void dt_cg_tramp_prologue(dt_pcb_t *pcb, uint_t lbl_exit);
-extern void dt_cg_tramp_epilogue(dt_pcb_t *pcb, uint_t lbl_exit);
-extern void dt_cg_tramp_epilogue_advance(dt_pcb_t *pcb, uint_t lbl_exit);
extern dtrace_difo_t *dt_as(dt_pcb_t *);
extern void dt_dis_program(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, FILE *fp);
extern void dt_dis_difo(const dtrace_difo_t *dp, FILE *fp);
diff --git a/libdtrace/dt_prov_dtrace.c b/libdtrace/dt_prov_dtrace.c
index af3c4242..388d0386 100644
--- a/libdtrace/dt_prov_dtrace.c
+++ b/libdtrace/dt_prov_dtrace.c
@@ -12,6 +12,7 @@
#include <bpf_asm.h>
+#include "dt_cg.h"
#include "dt_provider.h"
#include "dt_probe.h"
diff --git a/libdtrace/dt_prov_fbt.c b/libdtrace/dt_prov_fbt.c
index c9845fe6..7511dbd2 100644
--- a/libdtrace/dt_prov_fbt.c
+++ b/libdtrace/dt_prov_fbt.c
@@ -31,7 +31,7 @@
#include <bpf_asm.h>
-#include "dt_impl.h"
+#include "dt_cg.h"
#include "dt_bpf_builtins.h"
#include "dt_provider.h"
#include "dt_probe.h"
diff --git a/libdtrace/dt_prov_profile.c b/libdtrace/dt_prov_profile.c
index 6e066694..5496ffe1 100644
--- a/libdtrace/dt_prov_profile.c
+++ b/libdtrace/dt_prov_profile.c
@@ -11,6 +11,7 @@
#include <bpf_asm.h>
+#include "dt_cg.h"
#include "dt_bpf.h"
#include "dt_probe.h"
diff --git a/libdtrace/dt_prov_sdt.c b/libdtrace/dt_prov_sdt.c
index 3c2edcc1..85587c8a 100644
--- a/libdtrace/dt_prov_sdt.c
+++ b/libdtrace/dt_prov_sdt.c
@@ -27,7 +27,7 @@
#include <bpf_asm.h>
-#include "dt_impl.h"
+#include "dt_cg.h"
#include "dt_bpf.h"
#include "dt_bpf_builtins.h"
#include "dt_provider.h"
diff --git a/libdtrace/dt_prov_syscall.c b/libdtrace/dt_prov_syscall.c
index 754422f0..5d3ab75d 100644
--- a/libdtrace/dt_prov_syscall.c
+++ b/libdtrace/dt_prov_syscall.c
@@ -29,7 +29,7 @@
#include <bpf_asm.h>
-#include "dt_impl.h"
+#include "dt_cg.h"
#include "dt_bpf_builtins.h"
#include "dt_provider.h"
#include "dt_probe.h"
--
2.28.0
More information about the DTrace-devel
mailing list