Skip to content
Navigation Menu
Toggle navigation
Sign in
In this repository
All GitHub Enterprise
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub Enterprise
↵
Jump to
↵
In this organization
All GitHub Enterprise
↵
Jump to
↵
In this repository
All GitHub Enterprise
↵
Jump to
↵
Sign in
Reseting focus
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
mariux64
/
linux
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
2
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
Files
0f940cb
Documentation
arch
block
crypto
drivers
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
firewire
perf
Documentation
arch
bench
scripts
util
include
scripting-engines
ui
PERF-VERSION-GEN
abspath.c
alias.c
bitmap.c
build-id.c
build-id.h
cache.h
callchain.c
callchain.h
color.c
color.h
config.c
cpumap.c
cpumap.h
ctype.c
debug.c
debug.h
debugfs.c
debugfs.h
environment.c
event.c
event.h
exec_cmd.c
exec_cmd.h
generate-cmdlist.sh
header.c
header.h
help.c
help.h
hist.c
hist.h
hweight.c
levenshtein.c
levenshtein.h
map.c
map.h
pager.c
parse-events.c
parse-events.h
parse-options.c
parse-options.h
path.c
probe-event.c
probe-event.h
probe-finder.c
probe-finder.h
pstack.c
pstack.h
quote.c
quote.h
run-command.c
run-command.h
session.c
session.h
sigchain.c
sigchain.h
sort.c
sort.h
strbuf.c
strbuf.h
string.c
strlist.c
strlist.h
svghelper.c
svghelper.h
symbol.c
symbol.h
thread.c
thread.h
trace-event-info.c
trace-event-parse.c
trace-event-read.c
trace-event-scripting.c
trace-event.h
types.h
usage.c
util.c
util.h
values.c
values.h
wrapper.c
.gitignore
CREDITS
MANIFEST
Makefile
builtin-annotate.c
builtin-bench.c
builtin-buildid-cache.c
builtin-buildid-list.c
builtin-diff.c
builtin-help.c
builtin-inject.c
builtin-kmem.c
builtin-kvm.c
builtin-list.c
builtin-lock.c
builtin-probe.c
builtin-record.c
builtin-report.c
builtin-sched.c
builtin-stat.c
builtin-test.c
builtin-timechart.c
builtin-top.c
builtin-trace.c
builtin.h
command-list.txt
design.txt
feature-tests.mak
perf-archive.sh
perf.c
perf.h
usb
usr
virt
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
MAINTAINERS
Makefile
README
REPORTING-BUGS
Breadcrumbs
linux
/
tools
/
perf
/
util
/
trace-event-scripting.c
Blame
Blame
Latest commit
History
History
167 lines (140 loc) · 4.24 KB
Breadcrumbs
linux
/
tools
/
perf
/
util
/
trace-event-scripting.c
Top
File metadata and controls
Code
Blame
167 lines (140 loc) · 4.24 KB
Raw
/* * trace-event-scripting. Scripting engine common and initialization code. * * Copyright (C) 2009-2010 Tom Zanussi <tzanussi@gmail.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <errno.h> #include "../perf.h" #include "util.h" #include "trace-event.h" struct scripting_context *scripting_context; static int stop_script_unsupported(void) { return 0; } static void process_event_unsupported(int cpu __unused, void *data __unused, int size __unused, unsigned long long nsecs __unused, char *comm __unused) { } static void print_python_unsupported_msg(void) { fprintf(stderr, "Python scripting not supported." " Install libpython and rebuild perf to enable it.\n" "For example:\n # apt-get install python-dev (ubuntu)" "\n # yum install python-devel (Fedora)" "\n etc.\n"); } static int python_start_script_unsupported(const char *script __unused, int argc __unused, const char **argv __unused) { print_python_unsupported_msg(); return -1; } static int python_generate_script_unsupported(const char *outfile __unused) { print_python_unsupported_msg(); return -1; } struct scripting_ops python_scripting_unsupported_ops = { .name = "Python", .start_script = python_start_script_unsupported, .stop_script = stop_script_unsupported, .process_event = process_event_unsupported, .generate_script = python_generate_script_unsupported, }; static void register_python_scripting(struct scripting_ops *scripting_ops) { int err; err = script_spec_register("Python", scripting_ops); if (err) die("error registering Python script extension"); err = script_spec_register("py", scripting_ops); if (err) die("error registering py script extension"); scripting_context = malloc(sizeof(struct scripting_context)); } #ifdef NO_LIBPYTHON void setup_python_scripting(void) { register_python_scripting(&python_scripting_unsupported_ops); } #else extern struct scripting_ops python_scripting_ops; void setup_python_scripting(void) { register_python_scripting(&python_scripting_ops); } #endif static void print_perl_unsupported_msg(void) { fprintf(stderr, "Perl scripting not supported." " Install libperl and rebuild perf to enable it.\n" "For example:\n # apt-get install libperl-dev (ubuntu)" "\n # yum install 'perl(ExtUtils::Embed)' (Fedora)" "\n etc.\n"); } static int perl_start_script_unsupported(const char *script __unused, int argc __unused, const char **argv __unused) { print_perl_unsupported_msg(); return -1; } static int perl_generate_script_unsupported(const char *outfile __unused) { print_perl_unsupported_msg(); return -1; } struct scripting_ops perl_scripting_unsupported_ops = { .name = "Perl", .start_script = perl_start_script_unsupported, .stop_script = stop_script_unsupported, .process_event = process_event_unsupported, .generate_script = perl_generate_script_unsupported, }; static void register_perl_scripting(struct scripting_ops *scripting_ops) { int err; err = script_spec_register("Perl", scripting_ops); if (err) die("error registering Perl script extension"); err = script_spec_register("pl", scripting_ops); if (err) die("error registering pl script extension"); scripting_context = malloc(sizeof(struct scripting_context)); } #ifdef NO_LIBPERL void setup_perl_scripting(void) { register_perl_scripting(&perl_scripting_unsupported_ops); } #else extern struct scripting_ops perl_scripting_ops; void setup_perl_scripting(void) { register_perl_scripting(&perl_scripting_ops); } #endif
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
You can’t perform that action at this time.