1 /*******************************************************************************
2 * Copyright (c) 2014, 2015 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
.analysis
.os
.linux
.core
.trace
;
15 import java
.util
.Collection
;
17 import org
.eclipse
.jdt
.annotation
.Nullable
;
20 * Interface to define "concepts" present in the Linux kernel (represented by
21 * its tracepoints), that can then be exposed by different tracers under
24 * @author Alexandre Montplaisir
26 // The methods are named after the TRACE_EVENT's, should be straightforward
27 @SuppressWarnings("javadoc")
28 public interface IKernelAnalysisEventLayout
{
30 // ------------------------------------------------------------------------
32 // ------------------------------------------------------------------------
34 IKernelAnalysisEventLayout DEFAULT_LAYOUT
= DefaultEventLayout
.INSTANCE
;
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.)
41 * TODO Change to a default method with Java 8?
43 String INITIAL_SYSCALL_NAME
= "clone"; //$NON-NLS-1$
45 // ------------------------------------------------------------------------
47 // ------------------------------------------------------------------------
49 String
eventIrqHandlerEntry();
50 String
eventIrqHandlerExit();
51 String
eventSoftIrqEntry();
52 String
eventSoftIrqExit();
53 String
eventSoftIrqRaise();
54 String
eventSchedSwitch();
57 String
eventSchedPiSetprio();
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();
69 String
eventSchedProcessExec();
72 String
eventSchedProcessWakeup();
75 String
eventSchedProcessWakeupNew();
78 String
eventHRTimerExpireEntry();
81 String
eventHRTimerExpireExit();
82 // ------------------------------------------------------------------------
84 // ------------------------------------------------------------------------
89 String
fieldPrevTid();
90 String
fieldPrevState();
91 String
fieldNextComm();
92 String
fieldNextTid();
93 String
fieldChildComm();
94 String
fieldParentTid();
95 String
fieldChildTid();
104 String
fieldStatus();
107 String
fieldPrevComm();
110 String
fieldFilename();
116 String
fieldNewPrio();
119 String
fieldNextPrio();