brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 7fb7fe3 Raw
59 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * intel_pt_insn_decoder.h: Intel Processor Trace support4 * 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		3214#define INTEL_PT_INSN_BUF_SZ		1615 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	INTEL_PT_OP_ERETS,29	INTEL_PT_OP_ERETU,30};31 32enum intel_pt_insn_branch {33	INTEL_PT_BR_NO_BRANCH,34	INTEL_PT_BR_INDIRECT,35	INTEL_PT_BR_CONDITIONAL,36	INTEL_PT_BR_UNCONDITIONAL,37};38 39struct intel_pt_insn {40	enum intel_pt_insn_op		op;41	enum intel_pt_insn_branch	branch;42	bool				emulated_ptwrite;43	int				length;44	int32_t				rel;45	unsigned char			buf[INTEL_PT_INSN_BUF_SZ];46};47 48int intel_pt_get_insn(const unsigned char *buf, size_t len, int x86_64,49		      struct intel_pt_insn *intel_pt_insn);50 51const char *intel_pt_insn_name(enum intel_pt_insn_op op);52 53int intel_pt_insn_desc(const struct intel_pt_insn *intel_pt_insn, char *buf,54		       size_t buf_len);55 56int intel_pt_insn_type(enum intel_pt_insn_op op);57 58#endif59