diff options
author | Mike Frysinger <vapier@gentoo.org> | 2021-06-26 23:18:40 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2021-06-27 10:53:15 -0400 |
commit | 76f11310dfe5815ac6045fcd76eb3bbdc85678ae (patch) | |
tree | 385880f64eb2484adf0a797c2e44f80502532dee | |
parent | 5db3a175cc173c00607db959cfa401d0055f7dd4 (diff) | |
download | gdb-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.
-rw-r--r-- | sim/bpf/ChangeLog | 13 | ||||
-rw-r--r-- | sim/bpf/bpf-helpers.c | 2 | ||||
-rw-r--r-- | sim/bpf/bpf-helpers.h | 4 | ||||
-rw-r--r-- | sim/bpf/bpf.c | 15 | ||||
-rw-r--r-- | sim/bpf/sim-main.h | 1 |
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 |