hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef _ASM_INTEL_DS_H
#define _ASM_INTEL_DS_H
 
#include <linux/percpu-defs.h>
 
#define BTS_BUFFER_SIZE        (PAGE_SIZE << 4)
#define PEBS_BUFFER_SIZE    (PAGE_SIZE << 4)
 
/* The maximal number of PEBS events: */
#define MAX_PEBS_EVENTS        8
#define MAX_FIXED_PEBS_EVENTS    4
 
/*
 * A debug store configuration.
 *
 * We only support architectures that use 64bit fields.
 */
struct debug_store {
   u64    bts_buffer_base;
   u64    bts_index;
   u64    bts_absolute_maximum;
   u64    bts_interrupt_threshold;
   u64    pebs_buffer_base;
   u64    pebs_index;
   u64    pebs_absolute_maximum;
   u64    pebs_interrupt_threshold;
   u64    pebs_event_reset[MAX_PEBS_EVENTS + MAX_FIXED_PEBS_EVENTS];
} __aligned(PAGE_SIZE);
 
DECLARE_PER_CPU_PAGE_ALIGNED(struct debug_store, cpu_debug_store);
 
struct debug_store_buffers {
   char    bts_buffer[BTS_BUFFER_SIZE];
   char    pebs_buffer[PEBS_BUFFER_SIZE];
};
 
#endif