diff options
author | Dave Thaler <dthaler@microsoft.com> | 2023-03-10 23:38:14 +0000 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-03-13 22:10:45 -0700 |
commit | b9fe8e8d03d0df28b2431e3aaf8e115cf7bf2f65 (patch) | |
tree | 37527d6f70ba8eeca32171dd56f81e56c3d9307d /Documentation/bpf | |
parent | ab4c15feb2ebcf9f4abe31457d7cbc8f3de9c2ab (diff) | |
download | lwn-b9fe8e8d03d0df28b2431e3aaf8e115cf7bf2f65.tar.gz lwn-b9fe8e8d03d0df28b2431e3aaf8e115cf7bf2f65.zip |
bpf, docs: Add signed comparison example
Improve clarity by adding an example of a signed comparison instruction
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Acked-by: David Vernet <void@manifault.com>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/r/20230310233814.4641-1-dthaler1968@googlemail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'Documentation/bpf')
-rw-r--r-- | Documentation/bpf/instruction-set.rst | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Documentation/bpf/instruction-set.rst b/Documentation/bpf/instruction-set.rst index 5e43e14abe80..b44640589055 100644 --- a/Documentation/bpf/instruction-set.rst +++ b/Documentation/bpf/instruction-set.rst @@ -11,7 +11,8 @@ Documentation conventions ========================= For brevity, this document uses the type notion "u64", "u32", etc. -to mean an unsigned integer whose width is the specified number of bits. +to mean an unsigned integer whose width is the specified number of bits, +and "s32", etc. to mean a signed integer of the specified number of bits. Registers and calling convention ================================ @@ -264,6 +265,14 @@ BPF_JSLE 0xd0 PC += off if dst <= src signed The eBPF program needs to store the return value into register R0 before doing a BPF_EXIT. +Example: + +``BPF_JSGE | BPF_X | BPF_JMP32`` (0x7e) means:: + + if (s32)dst s>= (s32)src goto +offset + +where 's>=' indicates a signed '>=' comparison. + Helper functions ~~~~~~~~~~~~~~~~ |