vmm: Fix use-after-free in load_elf()
[akaros.git] / user / perfmon / events / intel_snbep_unc_r2pcie_events.h
1 /*
2  * Copyright (c) 2012 Google, Inc
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: snbep_unc_r2pcie (Intel SandyBridge-EP R2PCIe uncore)
28  */
29
30 static const intel_x86_umask_t snbep_unc_r2_ring_ad_used[]={
31   { .uname = "CCW_EVEN",
32     .udesc  = "Counter-clockwise and even ring polarity",
33     .ucode  = 0x400,
34   },
35   { .uname = "CCW_ODD",
36     .udesc  = "Counter-clockwise and odd ring polarity",
37     .ucode  = 0x800,
38   },
39   { .uname = "CW_EVEN",
40     .udesc  = "Clockwise and even ring polarity",
41     .ucode  = 0x100,
42   },
43   { .uname = "CW_ODD",
44     .udesc  = "Clockwise and odd ring polarity",
45     .ucode  = 0x200,
46   },
47   { .uname = "CW_ANY",
48     .udesc  = "Clockwise with any polarity",
49     .ucode  = 0x300,
50   },
51   { .uname = "CCW_ANY",
52     .udesc  = "Counter-clockwise with any polarity",
53     .ucode  = 0xc00,
54   },
55   { .uname = "ANY",
56     .udesc  = "any direction and any polarity",
57     .ucode  = 0xf00,
58     .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
59   },
60 };
61
62 static const intel_x86_umask_t snbep_unc_r2_ring_iv_used[]={
63   { .uname = "ANY",
64     .udesc  = "R2 IV Ring in Use",
65     .ucode  = 0xf00,
66     .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
67   },
68 };
69
70 static const intel_x86_umask_t snbep_unc_r2_rxr_cycles_ne[]={
71   { .uname = "DRS",
72     .udesc  = "DRS Ingress queue",
73     .ucode  = 0x800,
74     .uflags = INTEL_X86_NCOMBO,
75   },
76   { .uname = "NCB",
77     .udesc  = "NCB Ingress queue",
78     .ucode  = 0x1000,
79     .uflags = INTEL_X86_NCOMBO,
80   },
81   { .uname = "NCS",
82     .udesc  = "NCS Ingress queue",
83     .ucode  = 0x2000,
84     .uflags = INTEL_X86_NCOMBO,
85   },
86 };
87
88 static const intel_x86_umask_t snbep_unc_r2_txr_cycles_full[]={
89   { .uname = "AD",
90     .udesc  = "AD Egress queue",
91     .ucode  = 0x100,
92     .uflags = INTEL_X86_NCOMBO,
93   },
94   { .uname = "AK",
95     .udesc  = "AK Egress queue",
96     .ucode  = 0x200,
97     .uflags = INTEL_X86_NCOMBO,
98   },
99   { .uname = "BL",
100     .udesc  = "BL Egress queue",
101     .ucode  = 0x400,
102     .uflags = INTEL_X86_NCOMBO,
103   },
104 };
105
106 static const intel_x86_entry_t intel_snbep_unc_r2_pe[]={
107   { .name = "UNC_R2_CLOCKTICKS",
108     .desc = "Number of uclks in domain",
109     .code = 0x1,
110     .cntmsk = 0xf,
111     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
112   },
113   { .name = "UNC_R2_RING_AD_USED",
114     .desc = "R2 AD Ring in Use",
115     .code = 0x7,
116     .cntmsk = 0xf,
117     .ngrp = 1,
118     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
119     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r2_ring_ad_used),
120     .umasks  = snbep_unc_r2_ring_ad_used
121   },
122   { .name = "UNC_R2_RING_AK_USED",
123     .desc = "R2 AK Ring in Use",
124     .code = 0x8,
125     .cntmsk = 0xf,
126     .ngrp = 1,
127     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
128     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r2_ring_ad_used),
129     .umasks  = snbep_unc_r2_ring_ad_used /* shared */
130   },
131   { .name = "UNC_R2_RING_BL_USED",
132     .desc = "R2 BL Ring in Use",
133     .code = 0x9,
134     .cntmsk = 0xf,
135     .ngrp = 1,
136     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
137     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r2_ring_ad_used),
138     .umasks  = snbep_unc_r2_ring_ad_used /* shared */
139   },
140   { .name = "UNC_R2_RING_IV_USED",
141     .desc = "R2 IV Ring in Use",
142     .code = 0xa,
143     .cntmsk = 0xf,
144     .ngrp = 1,
145     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
146     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r2_ring_iv_used),
147     .umasks  = snbep_unc_r2_ring_iv_used
148   },
149   { .name = "UNC_R2_RXR_AK_BOUNCES",
150     .desc = "AK Ingress Bounced",
151     .code = 0x12,
152     .cntmsk = 0x1,
153     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
154   },
155   { .name = "UNC_R2_RXR_CYCLES_NE",
156     .desc = "Ingress Cycles Not Empty",
157     .code = 0x10,
158     .cntmsk = 0x3,
159     .ngrp = 1,
160     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
161     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r2_rxr_cycles_ne),
162     .umasks  = snbep_unc_r2_rxr_cycles_ne
163   },
164   { .name = "UNC_R2_TXR_CYCLES_FULL",
165     .desc = "Egress Cycles Full",
166     .code = 0x25,
167     .cntmsk = 0x1,
168     .ngrp = 1,
169     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
170     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r2_txr_cycles_full),
171     .umasks  = snbep_unc_r2_txr_cycles_full
172   },
173   { .name = "UNC_R2_TXR_CYCLES_NE",
174     .desc = "Egress Cycles Not Empty",
175     .code = 0x23,
176     .cntmsk = 0x1,
177     .ngrp = 1,
178     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
179     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r2_txr_cycles_full),
180     .umasks  = snbep_unc_r2_txr_cycles_full /* shared */
181   },
182   { .name = "UNC_R2_TXR_INSERTS",
183     .desc = "Egress allocations",
184     .code = 0x24,
185     .cntmsk = 0x1,
186     .modmsk = SNBEP_UNC_R2PCIE_ATTRS,
187   },
188 };