aboutsummaryrefslogtreecommitdiff
path: root/sim/bpf
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2021-06-26 23:18:40 -0400
committerMike Frysinger <vapier@gentoo.org>2021-06-27 10:53:15 -0400
commit76f11310dfe5815ac6045fcd76eb3bbdc85678ae (patch)
tree385880f64eb2484adf0a797c2e44f80502532dee /sim/bpf
parent5db3a175cc173c00607db959cfa401d0055f7dd4 (diff)
downloadgdb-76f11310dfe5815ac6045fcd76eb3bbdc85678ae.zip
gdb-76f11310dfe5815ac6045fcd76eb3bbdc85678ae.tar.gz
gdb-76f11310dfe5815ac6045fcd76eb3bbdc85678ae.tar.bz2
sim: bpf: include more local headers & fix broken funcs
Various files were not including the relevant headers, or some funcs were missing prototypes entirely, leading to mismatch between the actual definition of the functions. Add includes to a few places and fix the broken functions that are uncovered as a result. Fixing some compile warnings (e.g. missing prototypes) often find real bugs.
Diffstat (limited to 'sim/bpf')
-rw-r--r--sim/bpf/ChangeLog13
-rw-r--r--sim/bpf/bpf-helpers.c2
-rw-r--r--sim/bpf/bpf-helpers.h4
-rw-r--r--sim/bpf/bpf.c15
-rw-r--r--sim/bpf/sim-main.h1
5 files changed, 25 insertions, 10 deletions
diff --git a/sim/bpf/ChangeLog b/sim/bpf/ChangeLog
index b53b986..039f2c7 100644
--- a/sim/bpf/ChangeLog
+++ b/sim/bpf/ChangeLog
@@ -1,5 +1,18 @@
2021-06-27 Mike Frysinger <vapier@gentoo.org>
+ * bpf-helpers.c: Include bpf-helpers.h.
+ * bpf-helpers.h (bpf_trace_printk): Change return type to int.
+ (bpfbf_breakpoint): New prototype.
+ * bpf.c: Include decode-be.h & decode-le.h.
+ (bpfbf_ebpfle_init_idesc_table): Delete prototype.
+ (bpfbf_ebpfbe_init_idesc_table): Delete prototype.
+ (bpfbf_model_insn_after): Add 3rd argument.
+ (bpf_def_model_init): Add 1st argument.
+ (bpfbf_prepare_run): Mark static.
+ * sim-main.h: Include bpf-helpers.h.
+
+2021-06-27 Mike Frysinger <vapier@gentoo.org>
+
* bpf-helpers.c (bpf_trace_printk): Add casts to every value printf.
2021-06-27 Mike Frysinger <vapier@gentoo.org>
diff --git a/sim/bpf/bpf-helpers.c b/sim/bpf/bpf-helpers.c
index d72c22a..e33f520 100644
--- a/sim/bpf/bpf-helpers.c
+++ b/sim/bpf/bpf-helpers.c
@@ -32,6 +32,8 @@
#include "cgen-ops.h"
#include "cpu.h"
+#include "bpf-helpers.h"
+
/* bpf_trace_printk is a printk-like facility for debugging.
In the kernel, it appends a line to the Linux's tracing debugging
diff --git a/sim/bpf/bpf-helpers.h b/sim/bpf/bpf-helpers.h
index 686a534..73cfbb7 100644
--- a/sim/bpf/bpf-helpers.h
+++ b/sim/bpf/bpf-helpers.h
@@ -26,6 +26,8 @@ enum bpf_kernel_helper
#undef DEF_HELPER
};
-void bpf_trace_printk (SIM_CPU *current_cpu);
+int bpf_trace_printk (SIM_CPU *current_cpu);
+
+VOID bpfbf_breakpoint (SIM_CPU *current_cpu);
#endif /* ! BPF_HELPERS_H */
diff --git a/sim/bpf/bpf.c b/sim/bpf/bpf.c
index 9e78960..de77da8 100644
--- a/sim/bpf/bpf.c
+++ b/sim/bpf/bpf.c
@@ -30,15 +30,12 @@
#include "cpuall.h"
#include "decode.h"
+#include "decode-be.h"
+#include "decode-le.h"
+
#include "defs-le.h" /* For SCACHE */
#include "bpf-helpers.h"
-/* It is not possible to include both defs-le.h and defs-be.h due to
- duplicated definitions, so we need a bunch of forward declarations
- here. */
-extern void bpfbf_ebpfle_init_idesc_table (SIM_CPU *);
-extern void bpfbf_ebpfbe_init_idesc_table (SIM_CPU *);
-
uint64_t skb_data_offset;
IDESC *bpf_idesc_le;
@@ -84,7 +81,7 @@ bpfbf_model_insn_before (SIM_CPU *current_cpu, int first_p)
}
void
-bpfbf_model_insn_after (SIM_CPU *current_cpu, int first_p)
+bpfbf_model_insn_after (SIM_CPU *current_cpu, int first_p, int cycles)
{
/* XXX */
}
@@ -209,7 +206,7 @@ bpfbf_breakpoint (SIM_CPU *current_cpu)
several ISAs. This should be fixed in CGEN. */
static void
-bpf_def_model_init (void)
+bpf_def_model_init (SIM_CPU *cpu)
{
/* Do nothing. */
}
@@ -220,7 +217,7 @@ bpfbf_prepare_run (SIM_CPU *cpu)
/* Nothing. */
}
-void
+static void
bpf_engine_run_full (SIM_CPU *cpu)
{
if (CURRENT_TARGET_BYTE_ORDER == BFD_ENDIAN_LITTLE)
diff --git a/sim/bpf/sim-main.h b/sim/bpf/sim-main.h
index 571c14c..dd56268 100644
--- a/sim/bpf/sim-main.h
+++ b/sim/bpf/sim-main.h
@@ -27,6 +27,7 @@
#include "sim-base.h"
#include "cgen-sim.h"
#include "bpf-sim.h"
+#include "bpf-helpers.h"
struct _sim_cpu