perfmon_pebs_smpl.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __PERFMON_PEBS_SMPL_H__
00021 #define __PERFMON_PEBS_SMPL_H__ 1
00022
00023
00024
00025
00026
00027 #define PFM_PEBS_SMPL_NAME "pebs"
00028
00029 #define PFM_PEBS_NUM_CNT_RESET 8
00030
00031
00032
00033
00034
00035
00036
00037 typedef struct {
00038 uint64_t buf_size;
00039 uint64_t cnt_reset[PFM_PEBS_NUM_CNT_RESET];
00040 uint64_t reserved2[23];
00041 } pfm_pebs_smpl_arg_t;
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 typedef struct {
00054 uint64_t overflows;
00055 uint64_t count;
00056 uint64_t buf_size;
00057 uint64_t pebs_size;
00058 uint32_t version;
00059 uint32_t entry_size;
00060 uint64_t reserved2[11];
00061 } pfm_pebs_smpl_hdr_t;
00062
00063
00064
00065
00066
00067 typedef struct {
00068 uint64_t eflags;
00069 uint64_t ip;
00070 uint64_t eax;
00071 uint64_t ebx;
00072 uint64_t ecx;
00073 uint64_t edx;
00074 uint64_t esi;
00075 uint64_t edi;
00076 uint64_t ebp;
00077 uint64_t esp;
00078 uint64_t r8;
00079 uint64_t r9;
00080 uint64_t r10;
00081 uint64_t r11;
00082 uint64_t r12;
00083 uint64_t r13;
00084 uint64_t r14;
00085 uint64_t r15;
00086 } pfm_pebs_core_smpl_entry_t;
00087
00088
00089
00090
00091
00092 typedef struct {
00093 uint64_t eflags;
00094 uint64_t ip;
00095 uint64_t eax;
00096 uint64_t ebx;
00097 uint64_t ecx;
00098 uint64_t edx;
00099 uint64_t esi;
00100 uint64_t edi;
00101 uint64_t ebp;
00102 uint64_t esp;
00103 uint64_t r8;
00104 uint64_t r9;
00105 uint64_t r10;
00106 uint64_t r11;
00107 uint64_t r12;
00108 uint64_t r13;
00109 uint64_t r14;
00110 uint64_t r15;
00111 uint64_t ia32_perf_global_status;
00112 uint64_t daddr;
00113 uint64_t dsrc_enc;
00114 uint64_t latency;
00115 } pfm_pebs_nhm_smpl_entry_t;
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125 #ifdef __i386__
00126 typedef struct {
00127 uint32_t eflags;
00128 uint32_t ip;
00129 uint32_t eax;
00130 uint32_t ebx;
00131 uint32_t ecx;
00132 uint32_t edx;
00133 uint32_t esi;
00134 uint32_t edi;
00135 uint32_t ebp;
00136 uint32_t esp;
00137 } pfm_pebs_p4_smpl_entry_t;
00138 #else
00139 typedef struct {
00140 uint64_t eflags;
00141 uint64_t ip;
00142 uint64_t eax;
00143 uint64_t ebx;
00144 uint64_t ecx;
00145 uint64_t edx;
00146 uint64_t esi;
00147 uint64_t edi;
00148 uint64_t ebp;
00149 uint64_t esp;
00150 uint64_t r8;
00151 uint64_t r9;
00152 uint64_t r10;
00153 uint64_t r11;
00154 uint64_t r12;
00155 uint64_t r13;
00156 uint64_t r14;
00157 uint64_t r15;
00158 } pfm_pebs_p4_smpl_entry_t;
00159 #endif
00160
00161 #define PFM_PEBS_SMPL_VERSION_MAJ 1U
00162 #define PFM_PEBS_SMPL_VERSION_MIN 0U
00163 #define PFM_PEBS_SMPL_VERSION (((PFM_PEBS_SMPL_VERSION_MAJ&0xffff)<<16)|\
00164 (PFM_PEBS_SMPL_VERSION_MIN & 0xffff))
00165
00166 #endif