vmm: Fix use-after-free in load_elf()
[akaros.git] / user / perfmon / events / intel_ivbep_unc_r2pcie_events.h
1 /*
2  * Copyright (c) 2014 Google Inc. All rights reserved
3  * Contributed by Stephane Eranian <eranian@gmail.com>
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
6  * of this software and associated documentation files (the "Software"), to deal
7  * in the Software without restriction, including without limitation the rights
8  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9  * of the Software, and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
16  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
17  * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
19  * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
20  * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * This file is part of libpfm, a performance monitoring support library for
23  * applications on Linux.
24  *
25  * This file has been automatically generated.
26  *
27  * PMU: ivbep_unc_r2pcie (Intel IvyBridge-EP R2PCIe uncore)
28  */
29
30 static const intel_x86_umask_t ivbep_unc_r2_ring_ad_used[]={
31   { .uname = "CCW_VR0_EVEN",
32     .udesc  = "Counter-clockwise and even ring polarity on virtual ring 0",
33     .ucode  = 0x400,
34   },
35   { .uname = "CCW_VR0_ODD",
36     .udesc  = "Counter-clockwise and odd ring polarity on virtual ring 0",
37     .ucode  = 0x800,
38   },
39   { .uname = "CW_VR0_EVEN",
40     .udesc  = "Clockwise and even ring polarity on virtual ring 0",
41     .ucode  = 0x100,
42   },
43   { .uname = "CW_VR0_ODD",
44     .udesc  = "Clockwise and odd ring polarity on virtual ring 0",
45     .ucode  = 0x200,
46   },
47   { .uname = "CCW_VR1_EVEN",
48     .udesc  = "Counter-clockwise and even ring polarity on virtual ring 1",
49     .ucode  = 0x400,
50   },
51   { .uname = "CCW_VR1_ODD",
52     .udesc  = "Counter-clockwise and odd ring polarity on virtual ring 1",
53     .ucode  = 0x800,
54   },
55   { .uname = "CW_VR1_EVEN",
56     .udesc  = "Clockwise and even ring polarity on virtual ring 1",
57     .ucode  = 0x100,
58   },
59   { .uname = "CW_VR1_ODD",
60     .udesc  = "Clockwise and odd ring polarity on virtual ring 1",
61     .ucode  = 0x200,
62   },
63   { .uname = "CW",
64     .udesc  = "Clockwise with any polarity on either virtual rings",
65     .ucode  = 0x3300,
66     .uflags = INTEL_X86_NCOMBO,
67   },
68   { .uname = "CCW",
69     .udesc  = "Counter-clockwise with any polarity on either virtual rings",
70     .ucode  = 0xcc00,
71     .uflags = INTEL_X86_NCOMBO,
72   },
73 };
74
75 static const intel_x86_umask_t ivbep_unc_r2_rxr_ak_bounces[]={
76   { .uname = "CW",
77     .udesc  = "Clockwise",
78     .ucode  = 0x100,
79   },
80   { .uname = "CCW",
81     .udesc  = "Counter-clockwise",
82     .ucode  = 0x200,
83   },
84 };
85
86 static const intel_x86_umask_t ivbep_unc_r2_rxr_occupancy[]={
87   { .uname = "DRS",
88     .udesc  = "DRS Ingress queue",
89     .ucode  = 0x800,
90     .uflags = INTEL_X86_DFL,
91   },
92 };
93
94 static const intel_x86_umask_t ivbep_unc_r2_ring_iv_used[]={
95   { .uname = "CW",
96     .udesc  = "Clockwise with any polarity on either virtual rings",
97     .ucode  = 0x3300,
98     .uflags = INTEL_X86_NCOMBO,
99   },
100   { .uname = "CCW",
101     .udesc  = "Counter-clockwise with any polarity on either virtual rings",
102     .ucode  = 0xcc00,
103     .uflags = INTEL_X86_NCOMBO,
104   },
105   { .uname = "ANY",
106     .udesc  = "any direction and any polarity on any virtual ring",
107     .ucode  = 0xff00,
108     .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
109   },
110 };
111
112 static const intel_x86_umask_t ivbep_unc_r2_rxr_cycles_ne[]={
113   { .uname = "NCB",
114     .udesc  = "NCB Ingress queue",
115     .ucode  = 0x1000,
116   },
117   { .uname = "NCS",
118     .udesc  = "NCS Ingress queue",
119     .ucode  = 0x2000,
120   },
121 };
122
123 static const intel_x86_umask_t ivbep_unc_r2_txr_cycles_full[]={
124   { .uname = "AD",
125     .udesc  = "AD Egress queue",
126     .ucode  = 0x100,
127   },
128   { .uname = "AK",
129     .udesc  = "AK Egress queue",
130     .ucode  = 0x200,
131   },
132   { .uname = "BL",
133     .udesc  = "BL Egress queue",
134     .ucode  = 0x400,
135   },
136 };
137
138 static const intel_x86_entry_t intel_ivbep_unc_r2_pe[]={
139   { .name = "UNC_R2_CLOCKTICKS",
140     .desc = "Number of uclks in domain",
141     .code = 0x1,
142     .cntmsk = 0xf,
143     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
144   },
145   { .name = "UNC_R2_RING_AD_USED",
146     .desc = "R2 AD Ring in Use",
147     .code = 0x7,
148     .cntmsk = 0xf,
149     .ngrp = 1,
150     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
151     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_ring_ad_used),
152     .umasks  = ivbep_unc_r2_ring_ad_used
153   },
154   { .name = "UNC_R2_RING_AK_USED",
155     .desc = "R2 AK Ring in Use",
156     .code = 0x8,
157     .cntmsk = 0xf,
158     .ngrp = 1,
159     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
160     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_ring_ad_used),
161     .umasks  = ivbep_unc_r2_ring_ad_used /* shared */
162   },
163   { .name = "UNC_R2_RING_BL_USED",
164     .desc = "R2 BL Ring in Use",
165     .code = 0x9,
166     .cntmsk = 0xf,
167     .ngrp = 1,
168     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
169     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_ring_ad_used),
170     .umasks  = ivbep_unc_r2_ring_ad_used /* shared */
171   },
172   { .name = "UNC_R2_RING_IV_USED",
173     .desc = "R2 IV Ring in Use",
174     .code = 0xa,
175     .cntmsk = 0xf,
176     .ngrp = 1,
177     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
178     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_ring_iv_used),
179     .umasks  = ivbep_unc_r2_ring_iv_used
180   },
181   { .name = "UNC_R2_RXR_AK_BOUNCES",
182     .desc = "AK Ingress Bounced",
183     .code = 0x12,
184     .cntmsk = 0x1,
185     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
186     .ngrp = 1,
187     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_rxr_ak_bounces),
188     .umasks  = ivbep_unc_r2_rxr_ak_bounces
189   },
190   { .name = "UNC_R2_RXR_OCCUPANCY",
191     .desc = "Ingress occupancy accumulator",
192     .code = 0x13,
193     .cntmsk = 0x1,
194     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
195     .ngrp = 1,
196     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_rxr_occupancy),
197     .umasks  = ivbep_unc_r2_rxr_occupancy
198   },
199   { .name = "UNC_R2_RXR_CYCLES_NE",
200     .desc = "Ingress Cycles Not Empty",
201     .code = 0x10,
202     .cntmsk = 0x3,
203     .ngrp = 1,
204     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
205     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_rxr_cycles_ne),
206     .umasks  = ivbep_unc_r2_rxr_cycles_ne
207   },
208   { .name = "UNC_R2_RXR_INSERTS",
209     .desc = "Ingress inserts",
210     .code = 0x11,
211     .cntmsk = 0x3,
212     .ngrp = 1,
213     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
214     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_rxr_cycles_ne),
215     .umasks  = ivbep_unc_r2_rxr_cycles_ne, /* shared */
216   },
217   { .name = "UNC_R2_TXR_CYCLES_FULL",
218     .desc = "Egress Cycles Full",
219     .code = 0x25,
220     .cntmsk = 0x1,
221     .ngrp = 1,
222     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
223     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_txr_cycles_full),
224     .umasks  = ivbep_unc_r2_txr_cycles_full
225   },
226   { .name = "UNC_R2_TXR_CYCLES_NE",
227     .desc = "Egress Cycles Not Empty",
228     .code = 0x23,
229     .cntmsk = 0x1,
230     .ngrp = 1,
231     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
232     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_txr_cycles_full),
233     .umasks  = ivbep_unc_r2_txr_cycles_full /* shared */
234   },
235   { .name = "UNC_R2_TXR_NACK_CCW",
236     .desc = "Egress counter-clockwise BACK",
237     .code = 0x28,
238     .cntmsk = 0x1,
239     .ngrp = 1,
240     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
241     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_txr_cycles_full),
242     .umasks  = ivbep_unc_r2_txr_cycles_full /* shared */
243   },
244   { .name = "UNC_R2_TXR_NACK_CW",
245     .desc = "Egress clockwise BACK",
246     .code = 0x26,
247     .cntmsk = 0x1,
248     .ngrp = 1,
249     .modmsk = IVBEP_UNC_R2PCIE_ATTRS,
250     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r2_txr_cycles_full),
251     .umasks  = ivbep_unc_r2_txr_cycles_full /* shared */
252   },
253 };