summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/netronome/nfp/nfp_asm.h
diff options
context:
space:
mode:
authorJakub Kicinski2018-01-12 05:29:14 +0100
committerDaniel Borkmann2018-01-14 23:36:30 +0100
commitce4ebfd859c33ea098bfa2e1b4623128046f59c8 (patch)
treee5fce8510ee95c5978b2bc80aeaefe20e7ebfcc3 /drivers/net/ethernet/netronome/nfp/nfp_asm.h
parentnfp: bpf: parse function call and map capabilities (diff)
downloadkernel-qcow2-linux-ce4ebfd859c33ea098bfa2e1b4623128046f59c8.tar.gz
kernel-qcow2-linux-ce4ebfd859c33ea098bfa2e1b4623128046f59c8.tar.xz
kernel-qcow2-linux-ce4ebfd859c33ea098bfa2e1b4623128046f59c8.zip
nfp: bpf: add helpers for updating immediate instructions
Immediate loads are used to load the return address of a helper. We need to be able to update those loads for relocations. Immediate loads can be slightly more complex and spread over two instructions in general, but here we only care about simple loads of small (< 65k) constants, so complex cases are not handled. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_asm.h')
-rw-r--r--drivers/net/ethernet/netronome/nfp/nfp_asm.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_asm.h b/drivers/net/ethernet/netronome/nfp/nfp_asm.h
index 20e51cb60e69..5f9291db98e0 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_asm.h
+++ b/drivers/net/ethernet/netronome/nfp/nfp_asm.h
@@ -138,6 +138,10 @@ enum immed_shift {
IMMED_SHIFT_2B = 2,
};
+u16 immed_get_value(u64 instr);
+void immed_set_value(u64 *instr, u16 immed);
+void immed_add_value(u64 *instr, u16 offset);
+
#define OP_SHF_BASE 0x08000000000ULL
#define OP_SHF_A_SRC 0x000000000ffULL
#define OP_SHF_SC 0x00000000300ULL