diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2017-08-16 16:37:34 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2017-08-17 17:55:41 +0200 |
commit | d86c13d143989a961eba149e3abfab9e3f471744 (patch) | |
tree | c16c260c24712819cb967415ec79e58e26d3e4bf /lib | |
parent | 3695a1ba8dcd16459e0f35b74e88dbef48d21861 (diff) | |
parent | 54ba4ce2973113d8f4315d4fc90e16a9b4476ea6 (diff) |
Merge tag 'elfutils-0.170'
elfutils 0.170 release
Change-Id: I37d03645902b9f0a9fb708af1551db8843537799
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ChangeLog | 5 | ||||
-rw-r--r-- | lib/Makefile.am | 2 | ||||
-rw-r--r-- | lib/bpf.h | 82 |
3 files changed, 88 insertions, 1 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog index d9109529..7cfa768a 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -37,6 +37,11 @@ * system.h: Drop mempcpy replacement. * xstrndup.c: Don't include system.h. +2017-07-18 Mark Wielaard <mark@klomp.org> + + * bpf.h: New file. + * Makefile.am (noinst_HEADERS): Add bpf.h + 2017-05-05 Mark Wielaard <mark@klomp.org> * printversion.c (print_version): Update copyright year. diff --git a/lib/Makefile.am b/lib/Makefile.am index 48947c64..7caafa3e 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -38,7 +38,7 @@ libeu_a_SOURCES = xstrdup.c xstrndup.c xmalloc.c next_prime.c \ color.c printversion.c noinst_HEADERS = fixedsizehash.h libeu.h system.h dynamicsizehash.h list.h \ - md5.h sha1.h eu-config.h color.h printversion.h + md5.h sha1.h eu-config.h color.h printversion.h bpf.h EXTRA_DIST = dynamicsizehash.c features.h.in if !GPROF diff --git a/lib/bpf.h b/lib/bpf.h new file mode 100644 index 00000000..db80a51e --- /dev/null +++ b/lib/bpf.h @@ -0,0 +1,82 @@ +/* Minimal extended BPF constants as alternative for linux/bpf.h. */ + +#ifndef _ELFUTILS_BPF_H +#define _ELFUTILS_BPF_H 1 + +#include <stdint.h> + +#define BPF_CLASS(code) ((code) & 0x07) + +#define BPF_LD 0x00 +#define BPF_LDX 0x01 +#define BPF_ST 0x02 +#define BPF_STX 0x03 +#define BPF_ALU 0x04 +#define BPF_JMP 0x05 +#define BPF_RET 0x06 +#define BPF_MISC 0x07 + +#define BPF_ALU64 0x07 + +#define BPF_JNE 0x50 +#define BPF_JSGT 0x60 +#define BPF_JSGE 0x70 +#define BPF_CALL 0x80 +#define BPF_EXIT 0x90 + +#define BPF_W 0x00 +#define BPF_H 0x08 +#define BPF_B 0x10 + +#define BPF_IMM 0x00 +#define BPF_ABS 0x20 +#define BPF_IND 0x40 +#define BPF_MEM 0x60 +#define BPF_LEN 0x80 +#define BPF_MSH 0xa0 + +#define BPF_DW 0x18 +#define BPF_XADD 0xc0 + +#define BPF_ADD 0x00 +#define BPF_SUB 0x10 +#define BPF_MUL 0x20 +#define BPF_DIV 0x30 +#define BPF_OR 0x40 +#define BPF_AND 0x50 +#define BPF_LSH 0x60 +#define BPF_RSH 0x70 +#define BPF_NEG 0x80 +#define BPF_MOD 0x90 +#define BPF_XOR 0xa0 + +#define BPF_MOV 0xb0 +#define BPF_ARSH 0xc0 + +#define BPF_JA 0x00 +#define BPF_JEQ 0x10 +#define BPF_JGT 0x20 +#define BPF_JGE 0x30 +#define BPF_JSET 0x40 + +#define BPF_K 0x00 +#define BPF_X 0x08 + +#define BPF_END 0xd0 +#define BPF_TO_LE 0x00 +#define BPF_TO_BE 0x08 + +#define BPF_PSEUDO_MAP_FD 1 + +#define MAX_BPF_REG 10 + +struct bpf_insn +{ + uint8_t code; + uint8_t dst_reg:4; + uint8_t src_reg:4; + int16_t off; + int32_t imm; +}; + +#endif |