vmm: Fix use-after-free in load_elf()
[akaros.git] / user / perfmon / events / intel_ivbep_unc_ubo_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  * PMU: ivbep_unc_ubo (Intel IvyBridge-EP U-Box uncore PMU)
26  */
27
28 static const intel_x86_umask_t ivbep_unc_u_event_msg[]={
29   { .uname = "DOORBELL_RCVD",
30     .udesc  = "TBD",
31     .ucode  = 0x800,
32     .uflags = INTEL_X86_NCOMBO,
33   },
34   { .uname = "INT_PRIO",
35     .udesc  = "TBD",
36     .ucode  = 0x1000,
37     .uflags = INTEL_X86_NCOMBO,
38   },
39   { .uname = "IPI_RCVD",
40     .udesc  = "TBD",
41     .ucode  = 0x400,
42     .uflags = INTEL_X86_NCOMBO,
43   },
44   { .uname = "MSI_RCVD",
45     .udesc  = "TBD",
46     .ucode  = 0x200,
47     .uflags = INTEL_X86_NCOMBO,
48   },
49   { .uname = "VLW_RCVD",
50     .udesc  = "TBD",
51     .ucode  = 0x100,
52     .uflags = INTEL_X86_NCOMBO,
53   },
54 };
55
56
57 static const intel_x86_umask_t ivbep_unc_u_phold_cycles[]={
58   { .uname = "ASSERT_TO_ACK",
59     .udesc  = "Number of cycles asserted to ACK",
60     .ucode  = 0x100,
61     .uflags = INTEL_X86_NCOMBO,
62   },
63   { .uname = "ACK_TO_DEASSERT",
64     .udesc  = "Number of cycles ACK to deassert",
65     .ucode  = 0x100,
66     .uflags = INTEL_X86_NCOMBO,
67   },
68 };
69
70 static const intel_x86_entry_t intel_ivbep_unc_u_pe[]={
71   { .name = "UNC_U_EVENT_MSG",
72     .desc = "VLW Received",
73     .code = 0x42,
74     .cntmsk = 0x3,
75     .ngrp = 1,
76     .modmsk = IVBEP_UNC_UBO_ATTRS,
77     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_u_event_msg),
78     .umasks  = ivbep_unc_u_event_msg
79   },
80   { .name = "UNC_U_LOCK_CYCLES",
81     .desc = "IDI Lock/SplitLock Cycles",
82     .code = 0x44,
83     .cntmsk = 0x3,
84     .modmsk = IVBEP_UNC_UBO_ATTRS,
85   },
86   { .name = "UNC_U_PHOLD_CYCLES",
87     .desc = "Cycles PHOLD asserts to Ack",
88     .code = 0x45,
89     .cntmsk = 0x3,
90     .ngrp = 1,
91     .modmsk = IVBEP_UNC_UBO_ATTRS,
92     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_u_phold_cycles),
93     .umasks  = ivbep_unc_u_phold_cycles
94   },
95   { .name = "UNC_U_RACU_REQUESTS",
96     .desc = "RACU requests",
97     .code = 0x46,
98     .cntmsk = 0x3,
99     .modmsk = IVBEP_UNC_UBO_ATTRS,
100   },
101 };