1 /*******************************************************************************
2 * Copyright (c) 2012, 2014 Ericsson
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
10 * Alexandre Montplaisir - Initial API and implementation
11 ******************************************************************************/
13 package org
.eclipse
.tracecompass
.internal
.lttng2
.kernel
.core
.trace
.layout
;
15 import java
.util
.Collection
;
17 import org
.eclipse
.jdt
.annotation
.NonNull
;
19 import com
.google
.common
.collect
.ImmutableList
;
22 * This file defines all the known event and field names for LTTng kernel
23 * traces, for versions of lttng-modules up to 2.5.
25 * These should not be externalized, since they need to match exactly what the
26 * tracer outputs. If you want to localize them in a view, you should do a
27 * mapping in the view itself.
29 * @author Alexandre Montplaisir
31 @SuppressWarnings("nls")
32 public class LttngEventLayout
implements IKernelAnalysisEventLayout
{
35 private static final String IRQ_HANDLER_ENTRY
= "irq_handler_entry";
36 private static final String IRQ_HANDLER_EXIT
= "irq_handler_exit";
37 private static final String SOFTIRQ_ENTRY
= "softirq_entry";
38 private static final String SOFTIRQ_EXIT
= "softirq_exit";
39 private static final String SOFTIRQ_RAISE
= "softirq_raise";
40 private static final String SCHED_SWITCH
= "sched_switch";
42 @SuppressWarnings("null")
43 private static final @NonNull Collection
<String
> SCHED_WAKEUP_EVENTS
= ImmutableList
.of("sched_wakeup", "sched_wakeup_new");
45 private static final String SCHED_PROCESS_FORK
= "sched_process_fork";
46 private static final String SCHED_PROCESS_EXIT
= "sched_process_exit";
47 private static final String SCHED_PROCESS_FREE
= "sched_process_free";
48 private static final String STATEDUMP_PROCESS_STATE
= "lttng_statedump_process_state";
50 private static final String SYSCALL_ENTRY_PREFIX
= "sys_";
51 private static final String COMPAT_SYSCALL_ENTRY_PREFIX
= "compat_sys_";
52 private static final String SYSCALL_EXIT_PREFIX
= "exit_syscall";
55 private static final String IRQ
= "irq";
56 private static final String TID
= "tid";
57 private static final String VEC
= "vec";
58 private static final String PREV_TID
= "prev_tid";
59 private static final String PREV_STATE
= "prev_state";
60 private static final String NEXT_COMM
= "next_comm";
61 private static final String NEXT_TID
= "next_tid";
62 private static final String PARENT_TID
= "parent_tid";
63 private static final String CHILD_COMM
= "child_comm";
64 private static final String CHILD_TID
= "child_tid";
66 /** All instances are the same. Only provide a static instance getter */
67 protected LttngEventLayout() {
70 private static final IKernelAnalysisEventLayout INSTANCE
= new LttngEventLayout();
73 * Get an instance of this event layout
75 * This object is completely immutable, so no need to create additional
76 * instances via the constructor.
78 * @return The instance
80 public static IKernelAnalysisEventLayout
getInstance() {
84 // ------------------------------------------------------------------------
86 // ------------------------------------------------------------------------
89 public String
eventIrqHandlerEntry() {
90 return IRQ_HANDLER_ENTRY
;
94 public String
eventIrqHandlerExit() {
95 return IRQ_HANDLER_EXIT
;
99 public String
eventSoftIrqEntry() {
100 return SOFTIRQ_ENTRY
;
104 public String
eventSoftIrqExit() {
109 public String
eventSoftIrqRaise() {
110 return SOFTIRQ_RAISE
;
114 public String
eventSchedSwitch() {
119 public Collection
<String
> eventsSchedWakeup() {
120 return SCHED_WAKEUP_EVENTS
;
124 public String
eventSchedProcessFork() {
125 return SCHED_PROCESS_FORK
;
129 public String
eventSchedProcessExit() {
130 return SCHED_PROCESS_EXIT
;
134 public String
eventSchedProcessFree() {
135 return SCHED_PROCESS_FREE
;
139 public String
eventStatedumpProcessState() {
140 return STATEDUMP_PROCESS_STATE
;
144 public String
eventSyscallEntryPrefix() {
145 return SYSCALL_ENTRY_PREFIX
;
149 public String
eventCompatSyscallEntryPrefix() {
150 return COMPAT_SYSCALL_ENTRY_PREFIX
;
154 public String
eventSyscallExitPrefix() {
155 return SYSCALL_EXIT_PREFIX
;
158 // ------------------------------------------------------------------------
160 // ------------------------------------------------------------------------
163 public String
fieldIrq() {
168 public String
fieldVec() {
173 public String
fieldTid() {
178 public String
fieldPrevTid() {
183 public String
fieldPrevState() {
188 public String
fieldNextComm() {
193 public String
fieldNextTid() {
198 public String
fieldChildComm() {
203 public String
fieldParentTid() {
208 public String
fieldChildTid() {