From 76f11310dfe5815ac6045fcd76eb3bbdc85678ae Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 26 Jun 2021 23:18:40 -0400 Subject: [PATCH] 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. --- sim/bpf/ChangeLog | 13 +++++++++++++ sim/bpf/bpf-helpers.c | 2 ++ sim/bpf/bpf-helpers.h | 4 +++- sim/bpf/bpf.c | 15 ++++++--------- sim/bpf/sim-main.h | 1 + 5 files changed, 25 insertions(+), 10 deletions(-) diff --git a/sim/bpf/ChangeLog b/sim/bpf/ChangeLog index b53b986472d..039f2c7b4bc 100644 --- a/sim/bpf/ChangeLog +++ b/sim/bpf/ChangeLog @@ -1,3 +1,16 @@ +2021-06-27 Mike Frysinger + + * 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 * bpf-helpers.c (bpf_trace_printk): Add casts to every value printf. diff --git a/sim/bpf/bpf-helpers.c b/sim/bpf/bpf-helpers.c index d72c22a09be..e33f5203551 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 686a53497e0..73cfbb7fa9c 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 9e78960ddcc..de77da851ee 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 571c14c67bc..dd562682564 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 -- 2.30.2