root/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * intel_pt_insn_decoder.h: Intel Processor Trace support
   4  * Copyright (c) 2013-2014, Intel Corporation.
   5  */
   6 
   7 #ifndef INCLUDE__INTEL_PT_INSN_DECODER_H__
   8 #define INCLUDE__INTEL_PT_INSN_DECODER_H__
   9 
  10 #include <stddef.h>
  11 #include <stdint.h>
  12 
  13 #define INTEL_PT_INSN_DESC_MAX          32
  14 #define INTEL_PT_INSN_BUF_SZ            16
  15 
  16 enum intel_pt_insn_op {
  17         INTEL_PT_OP_OTHER,
  18         INTEL_PT_OP_CALL,
  19         INTEL_PT_OP_RET,
  20         INTEL_PT_OP_JCC,
  21         INTEL_PT_OP_JMP,
  22         INTEL_PT_OP_LOOP,
  23         INTEL_PT_OP_IRET,
  24         INTEL_PT_OP_INT,
  25         INTEL_PT_OP_SYSCALL,
  26         INTEL_PT_OP_SYSRET,
  27 };
  28 
  29 enum intel_pt_insn_branch {
  30         INTEL_PT_BR_NO_BRANCH,
  31         INTEL_PT_BR_INDIRECT,
  32         INTEL_PT_BR_CONDITIONAL,
  33         INTEL_PT_BR_UNCONDITIONAL,
  34 };
  35 
  36 struct intel_pt_insn {
  37         enum intel_pt_insn_op           op;
  38         enum intel_pt_insn_branch       branch;
  39         int                             length;
  40         int32_t                         rel;
  41         unsigned char                   buf[INTEL_PT_INSN_BUF_SZ];
  42 };
  43 
  44 int intel_pt_get_insn(const unsigned char *buf, size_t len, int x86_64,
  45                       struct intel_pt_insn *intel_pt_insn);
  46 
  47 const char *intel_pt_insn_name(enum intel_pt_insn_op op);
  48 
  49 int intel_pt_insn_desc(const struct intel_pt_insn *intel_pt_insn, char *buf,
  50                        size_t buf_len);
  51 
  52 int intel_pt_insn_type(enum intel_pt_insn_op op);
  53 
  54 #endif

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