| The Gaudi Framework v32r1 (f65d50dc)

pfmlib_pentium4.h
Go to the documentation of this file.
1 /*
2 * Intel Pentium 4 PMU specific types and definitions (32 and 64 bit modes)
3 *
4 * Copyright (c) 2006 IBM Corp.
5 * Contributed by Kevin Corry <kevcorry@us.ibm.com>
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
11 * of the Software, and to permit persons to whom the Software is furnished to do so,
12 * subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in all
15 * copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
18 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
19 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
21 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
22 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 */
24
25 #ifndef __PFMLIB_PENTIUM4_H__
26 #define __PFMLIB_PENTIUM4_H__
27
28 #include <perfmon/pfmlib.h>
29
30 /* ESCR: Event Selection Control Register
31 *
32 * These registers are used to select which event to count along with options
33 * for that event. There are (up to) 45 ESCRs, but each data counter is
34 * restricted to a specific set of ESCRs.
35 */
36
55 #define EVENT_MASK_BITS 16
56 #define EVENT_SELECT_BITS 6
57
58 typedef union {
59 unsigned long val;
60 struct {
61 unsigned long t1_usr : 1;
62 unsigned long t1_os : 1;
63 unsigned long t0_usr : 1;
64 unsigned long t0_os : 1;
65 unsigned long tag_enable : 1;
66 unsigned long tag_value : 4;
67 unsigned long event_mask : EVENT_MASK_BITS;
68 unsigned long event_select : EVENT_SELECT_BITS;
69 unsigned long reserved : 1;
70 } bits;
71 } pentium4_escr_value_t;
72
73 /* CCCR: Counter Configuration Control Register
74 *
75 * These registers are used to configure the data counters. There are 18
76 * CCCRs, one for each data counter.
77 */
78
111 typedef union {
112 unsigned long val;
113 struct {
114 unsigned long reserved1 : 12;
115 unsigned long enable : 1;
116 unsigned long escr_select : 3;
117 unsigned long active_thread : 2;
118 unsigned long compare : 1;
119 unsigned long complement : 1;
120 unsigned long threshold : 4;
121 unsigned long edge : 1;
122 unsigned long force_ovf : 1;
123 unsigned long ovf_pmi_t0 : 1;
124 unsigned long ovf_pmi_t1 : 1;
125 unsigned long reserved2 : 2;
126 unsigned long cascade : 1;
127 unsigned long overflow : 1;
128 } bits;
129 } pentium4_cccr_value_t;
130
131 #endif /* __PFMLIB_PENTIUM4_H__ */
pentium4_escr_value_t::t1_os
unsigned long t1_os
Definition: pfmlib_pentium4.h:62
EVENT_SELECT_BITS
#define EVENT_SELECT_BITS
Definition: pfmlib_pentium4.h:56
pentium4_escr_value_t::t0_usr
unsigned long t0_usr
Definition: pfmlib_pentium4.h:63
pentium4_cccr_value_t::force_ovf
unsigned long force_ovf
Definition: pfmlib_pentium4.h:122
pentium4_cccr_value_t::escr_select
unsigned long escr_select
Definition: pfmlib_pentium4.h:116
pentium4_cccr_value_t::reserved1
unsigned long reserved1
Definition: pfmlib_pentium4.h:114
pentium4_cccr_value_t
pentium4_cccr_value_t
Definition: pfmlib_pentium4.h:111
pentium4_escr_value_t::t0_os
unsigned long t0_os
Definition: pfmlib_pentium4.h:64
pentium4_cccr_value_t::reserved2
unsigned long reserved2
Definition: pfmlib_pentium4.h:125
pentium4_cccr_value_t::cascade
unsigned long cascade
Definition: pfmlib_pentium4.h:126
pentium4_cccr_value_t::ovf_pmi_t0
unsigned long ovf_pmi_t0
Definition: pfmlib_pentium4.h:123
pentium4_escr_value_t::val
unsigned long val
Definition: pfmlib_pentium4.h:59
pentium4_escr_value_t
Definition: pfmlib_pentium4.h:58
pentium4_cccr_value_t::val
unsigned long val
Definition: pfmlib_pentium4.h:112
pentium4_cccr_value_t::threshold
unsigned long threshold
Definition: pfmlib_pentium4.h:120
pentium4_cccr_value_t::ovf_pmi_t1
unsigned long ovf_pmi_t1
Definition: pfmlib_pentium4.h:124
pentium4_escr_value_t::tag_value
unsigned long tag_value
Definition: pfmlib_pentium4.h:66
pentium4_escr_value_t::event_select
unsigned long event_select
Definition: pfmlib_pentium4.h:68
pentium4_cccr_value_t::enable
unsigned long enable
Definition: pfmlib_pentium4.h:115
pfmlib.h
pentium4_cccr_value_t::edge
unsigned long edge
Definition: pfmlib_pentium4.h:121
pentium4_escr_value_t::reserved
unsigned long reserved
Definition: pfmlib_pentium4.h:69
EVENT_MASK_BITS
#define EVENT_MASK_BITS
pentium4_escr_value_t
Definition: pfmlib_pentium4.h:55
pentium4_cccr_value_t::compare
unsigned long compare
Definition: pfmlib_pentium4.h:118
pentium4_cccr_value_t::complement
unsigned long complement
Definition: pfmlib_pentium4.h:119
pentium4_escr_value_t::tag_enable
unsigned long tag_enable
Definition: pfmlib_pentium4.h:65
pentium4_escr_value_t::event_mask
unsigned long event_mask
Definition: pfmlib_pentium4.h:67
pentium4_escr_value_t::t1_usr
unsigned long t1_usr
Definition: pfmlib_pentium4.h:61
pentium4_cccr_value_t::overflow
unsigned long overflow
Definition: pfmlib_pentium4.h:127
pentium4_cccr_value_t::active_thread
unsigned long active_thread
Definition: pfmlib_pentium4.h:117