diff options
Diffstat (limited to 'tools/bpf/bpf_jit_disasm.c')
-rw-r--r-- | tools/bpf/bpf_jit_disasm.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tools/bpf/bpf_jit_disasm.c b/tools/bpf/bpf_jit_disasm.c index 75bf526a0168..58c2bab4ef6e 100644 --- a/tools/bpf/bpf_jit_disasm.c +++ b/tools/bpf/bpf_jit_disasm.c | |||
@@ -72,7 +72,14 @@ static void get_asm_insns(uint8_t *image, size_t len, int opcodes) | |||
72 | 72 | ||
73 | disassemble_init_for_target(&info); | 73 | disassemble_init_for_target(&info); |
74 | 74 | ||
75 | #ifdef DISASM_FOUR_ARGS_SIGNATURE | ||
76 | disassemble = disassembler(info.arch, | ||
77 | bfd_big_endian(bfdf), | ||
78 | info.mach, | ||
79 | bfdf); | ||
80 | #else | ||
75 | disassemble = disassembler(bfdf); | 81 | disassemble = disassembler(bfdf); |
82 | #endif | ||
76 | assert(disassemble); | 83 | assert(disassemble); |
77 | 84 | ||
78 | do { | 85 | do { |
@@ -165,7 +172,8 @@ static uint8_t *get_last_jit_image(char *haystack, size_t hlen, | |||
165 | { | 172 | { |
166 | char *ptr, *pptr, *tmp; | 173 | char *ptr, *pptr, *tmp; |
167 | off_t off = 0; | 174 | off_t off = 0; |
168 | int ret, flen, proglen, pass, ulen = 0; | 175 | unsigned int proglen; |
176 | int ret, flen, pass, ulen = 0; | ||
169 | regmatch_t pmatch[1]; | 177 | regmatch_t pmatch[1]; |
170 | unsigned long base; | 178 | unsigned long base; |
171 | regex_t regex; | 179 | regex_t regex; |
@@ -192,7 +200,7 @@ static uint8_t *get_last_jit_image(char *haystack, size_t hlen, | |||
192 | } | 200 | } |
193 | 201 | ||
194 | ptr = haystack + off - (pmatch[0].rm_eo - pmatch[0].rm_so); | 202 | ptr = haystack + off - (pmatch[0].rm_eo - pmatch[0].rm_so); |
195 | ret = sscanf(ptr, "flen=%d proglen=%d pass=%d image=%lx", | 203 | ret = sscanf(ptr, "flen=%d proglen=%u pass=%d image=%lx", |
196 | &flen, &proglen, &pass, &base); | 204 | &flen, &proglen, &pass, &base); |
197 | if (ret != 4) { | 205 | if (ret != 4) { |
198 | regfree(®ex); | 206 | regfree(®ex); |
@@ -232,7 +240,7 @@ static uint8_t *get_last_jit_image(char *haystack, size_t hlen, | |||
232 | } | 240 | } |
233 | 241 | ||
234 | assert(ulen == proglen); | 242 | assert(ulen == proglen); |
235 | printf("%d bytes emitted from JIT compiler (pass:%d, flen:%d)\n", | 243 | printf("%u bytes emitted from JIT compiler (pass:%d, flen:%d)\n", |
236 | proglen, pass, flen); | 244 | proglen, pass, flen); |
237 | printf("%lx + <x>:\n", base); | 245 | printf("%lx + <x>:\n", base); |
238 | 246 | ||