Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
tools
perf
util
sort.h
Go to the documentation of this file.
1
#ifndef __PERF_SORT_H
2
#define __PERF_SORT_H
3
#include "../builtin.h"
4
5
#include "
util.h
"
6
7
#include "
color.h
"
8
#include <linux/list.h>
9
#include "
cache.h
"
10
#include <linux/rbtree.h>
11
#include "
symbol.h
"
12
#include "string.h"
13
#include "
callchain.h
"
14
#include "
strlist.h
"
15
#include "
values.h
"
16
17
#include "../perf.h"
18
#include "
debug.h
"
19
#include "
header.h
"
20
21
#include "
parse-options.h
"
22
#include "
parse-events.h
"
23
24
#include "
thread.h
"
25
#include "
sort.h
"
26
27
extern
regex_t
parent_regex
;
28
extern
const
char
*
sort_order
;
29
extern
const
char
default_parent_pattern
[];
30
extern
const
char
*
parent_pattern
;
31
extern
const
char
default_sort_order
[];
32
extern
int
sort__need_collapse
;
33
extern
int
sort__has_parent
;
34
extern
int
sort__has_sym
;
35
extern
int
sort__branch_mode
;
36
extern
struct
sort_entry
sort_comm
;
37
extern
struct
sort_entry
sort_dso
;
38
extern
struct
sort_entry
sort_sym
;
39
extern
struct
sort_entry
sort_parent
;
40
extern
struct
sort_entry
sort_dso_from
;
41
extern
struct
sort_entry
sort_dso_to
;
42
extern
struct
sort_entry
sort_sym_from
;
43
extern
struct
sort_entry
sort_sym_to
;
44
extern
enum
sort_type
sort__first_dimension
;
45
46
struct
he_stat
{
47
u64
period
;
48
u64
period_sys
;
49
u64
period_us
;
50
u64
period_guest_sys
;
51
u64
period_guest_us
;
52
u32
nr_events
;
53
};
54
61
struct
hist_entry
{
62
struct
rb_node
rb_node_in
;
63
struct
rb_node
rb_node
;
64
struct
he_stat
stat
;
65
struct
map_symbol
ms
;
66
struct
thread
*
thread
;
67
u64
ip
;
68
s32
cpu
;
69
70
/* XXX These two should move to some tree widget lib */
71
u16
row_offset
;
72
u16
nr_rows
;
73
74
bool
init_have_children
;
75
char
level
;
76
bool
used
;
77
u8
filtered
;
78
char
*
srcline
;
79
struct
symbol
*
parent
;
80
unsigned
long
position
;
81
union
{
82
struct
hist_entry
*
pair
;
83
struct
rb_root
sorted_chain
;
84
};
85
struct
branch_info
*
branch_info
;
86
struct
hists
*
hists
;
87
struct
callchain_root
callchain
[0];
88
};
89
90
enum
sort_type
{
91
SORT_PID
,
92
SORT_COMM
,
93
SORT_DSO
,
94
SORT_SYM
,
95
SORT_PARENT
,
96
SORT_CPU
,
97
SORT_DSO_FROM
,
98
SORT_DSO_TO
,
99
SORT_SYM_FROM
,
100
SORT_SYM_TO
,
101
SORT_MISPREDICT
,
102
SORT_SRCLINE
,
103
};
104
105
/*
106
* configurable sorting bits
107
*/
108
109
struct
sort_entry
{
110
struct
list_head
list
;
111
112
const
char
*
se_header
;
113
114
int64_t (*
se_cmp
)(
struct
hist_entry
*,
struct
hist_entry
*);
115
int64_t (*
se_collapse
)(
struct
hist_entry
*,
struct
hist_entry
*);
116
int
(*
se_snprintf
)(
struct
hist_entry
*
self
,
char
*
bf
,
size_t
size
,
117
unsigned
int
width
);
118
u8
se_width_idx
;
119
bool
elide
;
120
};
121
122
extern
struct
sort_entry
sort_thread
;
123
extern
struct
list_head
hist_entry__sort_list
;
124
125
void
setup_sorting
(
const
char
*
const
usagestr[],
const
struct
option
*
opts
);
126
extern
int
sort_dimension__add
(
const
char
*);
127
void
sort_entry__setup_elide
(
struct
sort_entry
*
self
,
struct
strlist
*
list
,
128
const
char
*list_name, FILE *
fp
);
129
130
#endif
/* __PERF_SORT_H */
Generated on Thu Jan 10 2013 14:52:36 for Linux Kernel by
1.8.2