source: trunk/packages/xen-3.1/xen-3.1/xen/arch/x86/oprofile/op_x86_model.h @ 34

Last change on this file since 34 was 34, checked in by hartmans, 18 years ago

Add xen and xen-common

File size: 1.2 KB
Line 
1/**
2 * @file op_x86_model.h
3 * interface to x86 model-specific MSR operations
4 *
5 * @remark Copyright 2002 OProfile authors
6 * @remark Read the file COPYING
7 *
8 * @author Graydon Hoare
9 */
10
11#ifndef OP_X86_MODEL_H
12#define OP_X86_MODEL_H
13
14struct op_saved_msr {
15        unsigned int high;
16        unsigned int low;
17};
18
19struct op_msr {
20        unsigned long addr;
21        struct op_saved_msr saved;
22};
23
24struct op_msrs {
25        struct op_msr * counters;
26        struct op_msr * controls;
27};
28
29struct pt_regs;
30
31/* The model vtable abstracts the differences between
32 * various x86 CPU model's perfctr support.
33 */
34struct op_x86_model_spec {
35        unsigned int const num_counters;
36        unsigned int const num_controls;
37        void (*fill_in_addresses)(struct op_msrs * const msrs);
38        void (*setup_ctrs)(struct op_msrs const * const msrs);
39        int (*check_ctrs)(unsigned int const cpu, 
40                          struct op_msrs const * const msrs,
41                          struct cpu_user_regs * const regs);
42        void (*start)(struct op_msrs const * const msrs);
43        void (*stop)(struct op_msrs const * const msrs);
44};
45
46extern struct op_x86_model_spec const op_ppro_spec;
47extern struct op_x86_model_spec const op_p4_spec;
48extern struct op_x86_model_spec const op_p4_ht2_spec;
49extern struct op_x86_model_spec const op_athlon_spec;
50
51#endif /* OP_X86_MODEL_H */
Note: See TracBrowser for help on using the repository browser.