1 /* SPDX-License-Identifier: (GPL-2.0-only OR B << 2 /* Copyright (c) 2011-2014 PLUMgrid, http://pl 1 /* Copyright (c) 2011-2014 PLUMgrid, http://plumgrid.com 3 * Copyright (c) 2016 Facebook 2 * Copyright (c) 2016 Facebook >> 3 * >> 4 * This program is free software; you can redistribute it and/or >> 5 * modify it under the terms of version 2 of the GNU General Public >> 6 * License as published by the Free Software Foundation. >> 7 * >> 8 * This program is distributed in the hope that it will be useful, but >> 9 * WITHOUT ANY WARRANTY; without even the implied warranty of >> 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> 11 * General Public License for more details. 4 */ 12 */ 5 13 6 #ifndef __BPF_DISASM_H__ 14 #ifndef __BPF_DISASM_H__ 7 #define __BPF_DISASM_H__ 15 #define __BPF_DISASM_H__ 8 16 9 #include <linux/bpf.h> 17 #include <linux/bpf.h> 10 #include <linux/kernel.h> 18 #include <linux/kernel.h> 11 #include <linux/stringify.h> 19 #include <linux/stringify.h> 12 #ifndef __KERNEL__ << 13 #include <stdio.h> << 14 #include <string.h> << 15 #endif << 16 20 17 extern const char *const bpf_alu_string[16]; 21 extern const char *const bpf_alu_string[16]; 18 extern const char *const bpf_class_string[8]; 22 extern const char *const bpf_class_string[8]; 19 23 20 const char *func_id_name(int id); 24 const char *func_id_name(int id); 21 25 22 typedef __printf(2, 3) void (*bpf_insn_print_t !! 26 struct bpf_verifier_env; 23 !! 27 typedef void (*bpf_insn_print_cb)(struct bpf_verifier_env *env, 24 typedef const char *(*bpf_insn_revmap_call_t)( !! 28 const char *, ...); 25 !! 29 void print_bpf_insn(bpf_insn_print_cb verbose, struct bpf_verifier_env *env, 26 typedef const char *(*bpf_insn_print_imm_t)(vo !! 30 const struct bpf_insn *insn, bool allow_ptr_leaks); 27 co !! 31 28 __ << 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 << 38 const struct bpf_insn *ins << 39 bool allow_ptr_leaks); << 40 #endif 32 #endif 41 33
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.