Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.16-rc6 55 lines 1.2 kB view raw
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 16enum 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 INTEL_PT_OP_VMENTRY, 28}; 29 30enum intel_pt_insn_branch { 31 INTEL_PT_BR_NO_BRANCH, 32 INTEL_PT_BR_INDIRECT, 33 INTEL_PT_BR_CONDITIONAL, 34 INTEL_PT_BR_UNCONDITIONAL, 35}; 36 37struct intel_pt_insn { 38 enum intel_pt_insn_op op; 39 enum intel_pt_insn_branch branch; 40 int length; 41 int32_t rel; 42 unsigned char buf[INTEL_PT_INSN_BUF_SZ]; 43}; 44 45int intel_pt_get_insn(const unsigned char *buf, size_t len, int x86_64, 46 struct intel_pt_insn *intel_pt_insn); 47 48const char *intel_pt_insn_name(enum intel_pt_insn_op op); 49 50int intel_pt_insn_desc(const struct intel_pt_insn *intel_pt_insn, char *buf, 51 size_t buf_len); 52 53int intel_pt_insn_type(enum intel_pt_insn_op op); 54 55#endif