root/kernel/bpf/disasm.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /* Copyright (c) 2011-2014 PLUMgrid, http://plumgrid.com
   3  * Copyright (c) 2016 Facebook
   4  */
   5 
   6 #ifndef __BPF_DISASM_H__
   7 #define __BPF_DISASM_H__
   8 
   9 #include <linux/bpf.h>
  10 #include <linux/kernel.h>
  11 #include <linux/stringify.h>
  12 #ifndef __KERNEL__
  13 #include <stdio.h>
  14 #include <string.h>
  15 #endif
  16 
  17 extern const char *const bpf_alu_string[16];
  18 extern const char *const bpf_class_string[8];
  19 
  20 const char *func_id_name(int id);
  21 
  22 typedef __printf(2, 3) void (*bpf_insn_print_t)(void *private_data,
  23                                                 const char *, ...);
  24 typedef const char *(*bpf_insn_revmap_call_t)(void *private_data,
  25                                               const struct bpf_insn *insn);
  26 typedef const char *(*bpf_insn_print_imm_t)(void *private_data,
  27                                             const struct bpf_insn *insn,
  28                                             __u64 full_imm);
  29 
  30 struct bpf_insn_cbs {
  31         bpf_insn_print_t        cb_print;
  32         bpf_insn_revmap_call_t  cb_call;
  33         bpf_insn_print_imm_t    cb_imm;
  34         void                    *private_data;
  35 };
  36 
  37 void print_bpf_insn(const struct bpf_insn_cbs *cbs,
  38                     const struct bpf_insn *insn,
  39                     bool allow_ptr_leaks);
  40 #endif

/* [<][>][^][v][top][bottom][index][help] */