Linux Perf
intel-pt-pkt-decoder.h
Go to the documentation of this file.
1 /*
2  * intel_pt_pkt_decoder.h: Intel Processor Trace support
3  * Copyright (c) 2013-2014, Intel Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  */
15 
16 #ifndef INCLUDE__INTEL_PT_PKT_DECODER_H__
17 #define INCLUDE__INTEL_PT_PKT_DECODER_H__
18 
19 #include <stddef.h>
20 #include <stdint.h>
21 
22 #define INTEL_PT_PKT_DESC_MAX 256
23 
24 #define INTEL_PT_NEED_MORE_BYTES -1
25 #define INTEL_PT_BAD_PACKET -2
26 
27 #define INTEL_PT_PSB_STR "\002\202\002\202\002\202\002\202" \
28  "\002\202\002\202\002\202\002\202"
29 #define INTEL_PT_PSB_LEN 16
30 
31 #define INTEL_PT_PKT_MAX_SZ 16
32 
62 };
63 
64 struct intel_pt_pkt {
66  int count;
67  uint64_t payload;
68 };
69 
70 const char *intel_pt_pkt_name(enum intel_pt_pkt_type);
71 
72 int intel_pt_get_packet(const unsigned char *buf, size_t len,
73  struct intel_pt_pkt *packet);
74 
75 int intel_pt_pkt_desc(const struct intel_pt_pkt *packet, char *buf, size_t len);
76 
77 #endif
const char * intel_pt_pkt_name(enum intel_pt_pkt_type)
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)
enum intel_pt_pkt_type type