cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

disasm.h (1070B)


      1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
      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
     17extern const char *const bpf_alu_string[16];
     18extern const char *const bpf_class_string[8];
     19
     20const char *func_id_name(int id);
     21
     22typedef __printf(2, 3) void (*bpf_insn_print_t)(void *private_data,
     23						const char *, ...);
     24typedef const char *(*bpf_insn_revmap_call_t)(void *private_data,
     25					      const struct bpf_insn *insn);
     26typedef const char *(*bpf_insn_print_imm_t)(void *private_data,
     27					    const struct bpf_insn *insn,
     28					    __u64 full_imm);
     29
     30struct 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
     37void print_bpf_insn(const struct bpf_insn_cbs *cbs,
     38		    const struct bpf_insn *insn,
     39		    bool allow_ptr_leaks);
     40#endif