/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * intel_pt_pkt_decoder.h: Intel Processor Trace support
 * Copyright (c) 2013-2014, Intel Corporation.
 */

#ifndef INCLUDE__INTEL_PT_PKT_DECODER_H__
#define INCLUDE__INTEL_PT_PKT_DECODER_H__

#include <stddef.h>
#include <stdint.h>

#define INTEL_PT_PKT_DESC_MAX	256

#define INTEL_PT_NEED_MORE_BYTES	-1
#define INTEL_PT_BAD_PACKET		-2

#define INTEL_PT_PSB_STR		"\002\202\002\202\002\202\002\202" \
					"\002\202\002\202\002\202\002\202"
#define INTEL_PT_PSB_LEN		16

#define INTEL_PT_PKT_MAX_SZ		16

enum intel_pt_pkt_type {
	INTEL_PT_BAD,
	INTEL_PT_PAD,
	INTEL_PT_TNT,
	INTEL_PT_TIP_PGD,
	INTEL_PT_TIP_PGE,
	INTEL_PT_TSC,
	INTEL_PT_TMA,
	INTEL_PT_MODE_EXEC,
	INTEL_PT_MODE_TSX,
	INTEL_PT_MTC,
	INTEL_PT_TIP,
	INTEL_PT_FUP,
	INTEL_PT_CYC,
	INTEL_PT_VMCS,
	INTEL_PT_PSB,
	INTEL_PT_PSBEND,
	INTEL_PT_CBR,
	INTEL_PT_TRACESTOP,
	INTEL_PT_PIP,
	INTEL_PT_OVF,
	INTEL_PT_MNT,
	INTEL_PT_PTWRITE,
	INTEL_PT_PTWRITE_IP,
	INTEL_PT_EXSTOP,
	INTEL_PT_EXSTOP_IP,
	INTEL_PT_MWAIT,
	INTEL_PT_PWRE,
	INTEL_PT_PWRX,
};

struct intel_pt_pkt {
	enum intel_pt_pkt_type	type;
	int			count;
	uint64_t		payload;
};

const char *intel_pt_pkt_name(enum intel_pt_pkt_type);

int intel_pt_get_packet(const unsigned char *buf, size_t len,
			struct intel_pt_pkt *packet);

int intel_pt_pkt_desc(const struct intel_pt_pkt *packet, char *buf, size_t len);

#endif
