Remove unneeded checkNotNull() calls
[deliverable/tracecompass.git] / lttng / org.eclipse.tracecompass.lttng2.kernel.core / src / org / eclipse / tracecompass / internal / lttng2 / kernel / core / trace / layout / LttngEventLayout.java
1 /*******************************************************************************
2 * Copyright (c) 2012, 2015 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Alexandre Montplaisir - Initial API and implementation
11 ******************************************************************************/
12
13 package org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout;
14
15 import java.util.Collection;
16
17 import org.eclipse.jdt.annotation.NonNull;
18 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
19
20 import com.google.common.collect.ImmutableList;
21
22 /**
23 * This file defines all the known event and field names for LTTng kernel
24 * traces, for versions of lttng-modules up to 2.5.
25 *
26 * These should not be externalized, since they need to match exactly what the
27 * tracer outputs. If you want to localize them in a view, you should do a
28 * mapping in the view itself.
29 *
30 * @author Alexandre Montplaisir
31 */
32 @SuppressWarnings("nls")
33 public class LttngEventLayout implements IKernelAnalysisEventLayout {
34
35 /* Event names */
36 private static final String IRQ_HANDLER_ENTRY = "irq_handler_entry";
37 private static final String IRQ_HANDLER_EXIT = "irq_handler_exit";
38 private static final String SOFTIRQ_ENTRY = "softirq_entry";
39 private static final String SOFTIRQ_EXIT = "softirq_exit";
40 private static final String SOFTIRQ_RAISE = "softirq_raise";
41 private static final String HRTIMER_START = "hrtimer_start";
42 private static final String HRTIMER_CANCEL = "hrtimer_cancel";
43 private static final String HRTIMER_EXPIRE_ENTRY = "hrtimer_expire_entry";
44 private static final String HRTIMER_EXPIRE_EXIT = "hrtimer_expire_exit";
45 private static final String SCHED_SWITCH = "sched_switch";
46 private static final String SCHED_PI_SETPRIO = "sched_pi_setprio";
47
48 private static final String SCHED_TTWU = "sched_ttwu";
49 private static final String SCHED_WAKEUP = "sched_wakeup";
50 private static final String SCHED_WAKEUP_NEW = "sched_wakeup_new";
51 private static final Collection<String> SCHED_WAKEUP_EVENTS =
52 ImmutableList.of(SCHED_WAKEUP, SCHED_WAKEUP_NEW);
53
54 private static final String SCHED_PROCESS_FORK = "sched_process_fork";
55 private static final String SCHED_PROCESS_EXIT = "sched_process_exit";
56 private static final String SCHED_PROCESS_FREE = "sched_process_free";
57 private static final String SCHED_PROCESS_EXEC = "sched_process_exec";
58 private static final String STATEDUMP_PROCESS_STATE = "lttng_statedump_process_state";
59
60 private static final String SYSCALL_ENTRY_PREFIX = "sys_";
61 private static final String COMPAT_SYSCALL_ENTRY_PREFIX = "compat_sys_";
62 private static final String SYSCALL_EXIT_PREFIX = "exit_syscall";
63
64 /* Field names */
65 private static final String IRQ = "irq";
66 private static final String TID = "tid";
67 private static final String VEC = "vec";
68 private static final String PREV_TID = "prev_tid";
69 private static final String PREV_STATE = "prev_state";
70 private static final String NEXT_COMM = "next_comm";
71 private static final String NEXT_TID = "next_tid";
72 private static final String PARENT_TID = "parent_tid";
73 private static final String CHILD_COMM = "child_comm";
74 private static final String CHILD_TID = "child_tid";
75 private static final String PRIO = "prio";
76 private static final String NEXT_PRIO = "next_prio";
77 private static final String NEW_PRIO = "newprio";
78 private static final String COMM = "comm";
79 private static final String NAME = "name";
80 private static final String STATUS = "status";
81 private static final String PREV_COMM = "prev_comm";
82 private static final String FILENAME = "filename";
83 private static final String HRTIMER = "hrtimer";
84 private static final String HRTIMER_FUNCTION = "function";
85 private static final String HRTIMER_EXPIRES = "expires";
86 private static final String HRTIMER_NOW = "now";
87 private static final String HRTIMER_SOFT_EXPIRES = "softexpires";
88
89 /** All instances are the same. Only provide a static instance getter */
90 protected LttngEventLayout() {
91 }
92
93 private static final IKernelAnalysisEventLayout INSTANCE = new LttngEventLayout();
94
95 /**
96 * Get an instance of this event layout
97 *
98 * This object is completely immutable, so no need to create additional
99 * instances via the constructor.
100 *
101 * @return The instance
102 */
103 public static IKernelAnalysisEventLayout getInstance() {
104 return INSTANCE;
105 }
106
107 // ------------------------------------------------------------------------
108 // Event names
109 // ------------------------------------------------------------------------
110
111 @Override
112 public String eventIrqHandlerEntry() {
113 return IRQ_HANDLER_ENTRY;
114 }
115
116 @Override
117 public String eventIrqHandlerExit() {
118 return IRQ_HANDLER_EXIT;
119 }
120
121 @Override
122 public String eventSoftIrqEntry() {
123 return SOFTIRQ_ENTRY;
124 }
125
126 @Override
127 public String eventSoftIrqExit() {
128 return SOFTIRQ_EXIT;
129 }
130
131 @Override
132 public String eventSoftIrqRaise() {
133 return SOFTIRQ_RAISE;
134 }
135
136 @Override
137 public String eventSchedSwitch() {
138 return SCHED_SWITCH;
139 }
140
141 @Override
142 public String eventSchedPiSetprio() {
143 return SCHED_PI_SETPRIO;
144 }
145
146 @Override
147 public Collection<String> eventsSchedWakeup() {
148 return SCHED_WAKEUP_EVENTS;
149 }
150
151 @Override
152 public String eventSchedProcessFork() {
153 return SCHED_PROCESS_FORK;
154 }
155
156 @Override
157 public String eventSchedProcessExit() {
158 return SCHED_PROCESS_EXIT;
159 }
160
161 @Override
162 public String eventSchedProcessFree() {
163 return SCHED_PROCESS_FREE;
164 }
165
166 @Override
167 public @NonNull String eventStatedumpProcessState() {
168 return STATEDUMP_PROCESS_STATE;
169 }
170
171 @Override
172 public String eventSyscallEntryPrefix() {
173 return SYSCALL_ENTRY_PREFIX;
174 }
175
176 @Override
177 public String eventCompatSyscallEntryPrefix() {
178 return COMPAT_SYSCALL_ENTRY_PREFIX;
179 }
180
181 @Override
182 public String eventSyscallExitPrefix() {
183 return SYSCALL_EXIT_PREFIX;
184 }
185
186 @Override
187 public String eventCompatSyscallExitPrefix() {
188 /*
189 * In LTTng < 2.6, the same generic event name is used for both standard
190 * and compat syscalls.
191 */
192 return SYSCALL_EXIT_PREFIX;
193 }
194
195 // ------------------------------------------------------------------------
196 // Event field names
197 // ------------------------------------------------------------------------
198
199 @Override
200 public String fieldIrq() {
201 return IRQ;
202 }
203
204 @Override
205 public String fieldVec() {
206 return VEC;
207 }
208
209 @Override
210 public String fieldTid() {
211 return TID;
212 }
213
214 @Override
215 public String fieldPrevTid() {
216 return PREV_TID;
217 }
218
219 @Override
220 public String fieldPrevState() {
221 return PREV_STATE;
222 }
223
224 @Override
225 public String fieldNextComm() {
226 return NEXT_COMM;
227 }
228
229 @Override
230 public String fieldNextTid() {
231 return NEXT_TID;
232 }
233
234 @Override
235 public String fieldChildComm() {
236 return CHILD_COMM;
237 }
238
239 @Override
240 public String fieldParentTid() {
241 return PARENT_TID;
242 }
243
244 @Override
245 public String fieldChildTid() {
246 return CHILD_TID;
247 }
248
249 @Override
250 public String fieldPrio() {
251 return PRIO;
252 }
253
254 @Override
255 public String fieldNewPrio() {
256 return NEW_PRIO;
257 }
258
259 @Override
260 public String fieldNextPrio() {
261 return NEXT_PRIO;
262 }
263
264 @Override
265 public String fieldComm() {
266 return COMM;
267 }
268
269 @Override
270 public String fieldName() {
271 return NAME;
272 }
273
274 @Override
275 public String fieldStatus() {
276 return STATUS;
277 }
278
279 @Override
280 public String fieldPrevComm() {
281 return PREV_COMM;
282 }
283
284 @Override
285 public String fieldFilename() {
286 return FILENAME;
287 }
288
289 @Override
290 public String eventSchedProcessExec() {
291 return SCHED_PROCESS_EXEC;
292 }
293
294 @Override
295 public String eventSchedProcessWakeup() {
296 return SCHED_WAKEUP;
297 }
298
299 @Override
300 public String eventSchedProcessWakeupNew() {
301 return SCHED_WAKEUP_NEW;
302 }
303
304 @Override
305 public String eventHRTimerStart() {
306 return HRTIMER_START;
307 }
308
309 @Override
310 public String eventHRTimerCancel() {
311 return HRTIMER_CANCEL;
312 }
313
314 @Override
315 public String eventHRTimerExpireEntry() {
316 return HRTIMER_EXPIRE_ENTRY;
317 }
318
319 @Override
320 public String eventHRTimerExpireExit() {
321 return HRTIMER_EXPIRE_EXIT;
322 }
323
324 /**
325 * Event indicating the source of the wakeup signal.
326 *
327 * @return The name of the event
328 * @since 2.0
329 */
330 public String eventSchedProcessTTWU() {
331 return SCHED_TTWU;
332 }
333
334 @Override
335 public String fieldHRtimer() {
336 return HRTIMER;
337 }
338 @Override
339 public String fieldHRtimerFunction() {
340 return HRTIMER_FUNCTION;
341 }
342
343 @Override
344 public String fieldHRtimerExpires() {
345 return HRTIMER_EXPIRES;
346 }
347
348 @Override
349 public String fieldHRtimerSoftexpires() {
350 return HRTIMER_SOFT_EXPIRES;
351 }
352 @Override
353 public String fieldHRtimerNow() {
354 return HRTIMER_NOW;
355 }
356
357 }
This page took 0.039671 seconds and 6 git commands to generate.