fdc953da091e976169bf99ef09aa6a000334199b
[deliverable/tracecompass.git] / analysis / org.eclipse.tracecompass.analysis.os.linux.core / src / org / eclipse / tracecompass / analysis / os / linux / core / trace / IKernelAnalysisEventLayout.java
1 /*******************************************************************************
2 * Copyright (c) 2014, 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.analysis.os.linux.core.trace;
14
15 import java.util.Collection;
16
17 import org.eclipse.jdt.annotation.Nullable;
18
19 /**
20 * Interface to define "concepts" present in the Linux kernel (represented by
21 * its tracepoints), that can then be exposed by different tracers under
22 * different names.
23 *
24 * @author Alexandre Montplaisir
25 */
26 // The methods are named after the TRACE_EVENT's, should be straightforward
27 @SuppressWarnings("javadoc")
28 public interface IKernelAnalysisEventLayout {
29
30 // ------------------------------------------------------------------------
31 // Common definitions
32 // ------------------------------------------------------------------------
33
34 IKernelAnalysisEventLayout DEFAULT_LAYOUT = DefaultEventLayout.INSTANCE;
35
36 /**
37 * Whenever a process appears for the first time in a trace, we assume it
38 * starts inside this system call. (The syscall prefix is defined by the
39 * implementer of this interface.)
40 *
41 * TODO Change to a default method with Java 8?
42 */
43 String INITIAL_SYSCALL_NAME = "clone"; //$NON-NLS-1$
44
45 // ------------------------------------------------------------------------
46 // Event names
47 // ------------------------------------------------------------------------
48
49 String eventIrqHandlerEntry();
50 String eventIrqHandlerExit();
51 String eventSoftIrqEntry();
52 String eventSoftIrqExit();
53 String eventSoftIrqRaise();
54 String eventSchedSwitch();
55
56 /** @since 1.0 */
57 String eventSchedPiSetprio();
58
59 Collection<String> eventsSchedWakeup();
60 String eventSchedProcessFork();
61 String eventSchedProcessExit();
62 String eventSchedProcessFree();
63 @Nullable String eventStatedumpProcessState();
64 String eventSyscallEntryPrefix();
65 String eventCompatSyscallEntryPrefix();
66 String eventSyscallExitPrefix();
67
68 /** @since 2.0 */
69 String eventSchedProcessExec();
70
71 /** @since 2.0 */
72 String eventSchedProcessWakeup();
73
74 /** @since 2.0 */
75 String eventSchedProcessWakeupNew();
76
77 /** @since 2.0 */
78 String eventHRTimerExpireEntry();
79
80 /** @since 2.0 */
81 String eventHRTimerExpireExit();
82 // ------------------------------------------------------------------------
83 // Event field names
84 // ------------------------------------------------------------------------
85
86 String fieldIrq();
87 String fieldVec();
88 String fieldTid();
89 String fieldPrevTid();
90 String fieldPrevState();
91 String fieldNextComm();
92 String fieldNextTid();
93 String fieldChildComm();
94 String fieldParentTid();
95 String fieldChildTid();
96
97 /** @since 2.0 */
98 String fieldComm();
99
100 /** @since 2.0 */
101 String fieldName();
102
103 /** @since 2.0 */
104 String fieldStatus();
105
106 /** @since 2.0 */
107 String fieldPrevComm();
108
109 /** @since 2.0 */
110 String fieldFilename();
111
112 /** @since 1.0 */
113 String fieldPrio();
114
115 /** @since 1.0 */
116 String fieldNewPrio();
117
118 /** @since 1.0 */
119 String fieldNextPrio();
120 }
This page took 0.035091 seconds and 4 git commands to generate.