43108927d02159e6a3bb8b1320522719ccbc0eb8
[deliverable/tracecompass.git] / 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 // ------------------------------------------------------------------------
69 // Event field names
70 // ------------------------------------------------------------------------
71
72 String fieldIrq();
73 String fieldVec();
74 String fieldTid();
75 String fieldPrevTid();
76 String fieldPrevState();
77 String fieldNextComm();
78 String fieldNextTid();
79 String fieldChildComm();
80 String fieldParentTid();
81 String fieldChildTid();
82
83 /** @since 1.0 */
84 String fieldPrio();
85
86 /** @since 1.0 */
87 String fieldNewPrio();
88
89 /** @since 1.0 */
90 String fieldNextPrio();
91 }
This page took 0.033682 seconds and 4 git commands to generate.