tmf: Use tabs in statistics view for each traces
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.core / src / org / eclipse / linuxtools / internal / lttng / core / state / StateStrings.java
CommitLineData
5d10d135
ASL
1/*******************************************************************************
2 * Copyright (c) 2009 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 * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation
0821f854 11 * Daniel U. Thibault (daniel.thibault@drdc-rddc.gc.ca) - 2011-06-21 Fixes
5d10d135 12 *******************************************************************************/
5945cec9 13package org.eclipse.linuxtools.internal.lttng.core.state;
5d10d135 14
212550ba 15import java.util.Arrays;
5d10d135
ASL
16import java.util.HashMap;
17import java.util.HashSet;
18
19/**
20 * Singleton
0821f854 21 * Establishes relationships of state-related strings. Since the strings and
5d10d135
ASL
22 * relations are fixed, the elements are final i.e. just for reading.
23 *
24 * @author alvaro
5d10d135 25 */
9c4eb5f7
FC
26
27@SuppressWarnings("nls")
5d10d135
ASL
28public class StateStrings {
29
30 // ========================================================================
31 // Table data
32 // =======================================================================
9c4eb5f7 33 public static final String LTTV_STATE_UNBRANDED = "";
0821f854 34 private static StateStrings instance = null;
5d10d135
ASL
35 private final HashMap<String, Events> eventStrMap = new HashMap<String, Events>();
36 private final HashMap<String, Events> stateTransEventMap = new HashMap<String, Events>();
0821f854 37 private final String[] syscall_names = new String[256];
5d10d135
ASL
38 private final String[] trap_names = new String[256];
39 private final String[] irq_names = new String[256];
40 private final String[] soft_irq_names = new String[32];
41
42 private StateStrings() {
43 // Build a Hash map from string name to actual event structure
44 for (Events event : Events.values()) {
45 eventStrMap.put(event.inName, event);
46 if (event.isStateTransition()) {
47 stateTransEventMap.put(event.inName, event);
48 }
49 }
50
51 // Build system call names
52 for (int i = 0; i < 256; i++) {
53 syscall_names[i] = "syscall " + i;
54 }
55
56 // Build trap names
57 for (int i = 0; i < 256; i++) {
58 trap_names[i] = "trap " + i;
59 }
60
61 // Build irq names
62 for (int i = 0; i < 256; i++) {
63 irq_names[i] = "irq " + i;
64 }
65
66 // Build softirq names
67 for (int i = 0; i < 32; i++) {
68 soft_irq_names[i] = "softirq " + i;
69 }
5d10d135
ASL
70 }
71
72 public static StateStrings getInstance() {
0821f854 73 // Create singleton instance if not already done
5d10d135
ASL
74 if (instance == null) {
75 instance = new StateStrings();
76 }
77 return instance;
78 }
79
80 public enum Channels {
0821f854
FC
81 LTT_CHANNEL_FD_STATE("fd_state"), /* file descriptor state events */
82 LTT_CHANNEL_GLOBAL_STATE("global_state"), /* system state dump events */
83 LTT_CHANNEL_IRQ_STATE("irq_state"), /* interrupt request (IRQ) events */
84 LTT_CHANNEL_MODULE_STATE("module_state"), /* modules state events (list of modules) */
85 LTT_CHANNEL_NETIF_STATE("netif_state"), /* network interface events */
86 LTT_CHANNEL_SOFTIRQ_STATE("softirq_state"), /* soft IRQs state events (soft IRQ vector table) */
87 LTT_CHANNEL_SWAP_STATE("swap_state"), /* swap state events */
88 LTT_CHANNEL_SYSCALL_STATE("syscall_state"), /* system calls state events (system call table) */
89 LTT_CHANNEL_TASK_STATE("task_state"), /* process state events */
90 LTT_CHANNEL_VM_STATE("vm_state"), /* virtual memory events (virtual memory table) */
91 LTT_CHANNEL_KPROBE_STATE("kprobe_state"), /* kprobe events (kprobe table) */
92 LTT_CHANNEL_FS("fs"), /* file system events */
93 LTT_CHANNEL_KERNEL("kernel"), /* kernel events */
94 LTT_CHANNEL_MM("mm"), /* memory management events */
95 LTT_CHANNEL_USERSPACE("userspace"), /* user space tracing events */
96 LTT_CHANNEL_BLOCK("block"); /* block devices events */
97 /* remaining channels: */
98/* LTT_CHANNEL_DEFAULT("default"), /* null (i.e. no default) */
99/* LTT_CHANNEL_INPUT("input"), /* LTT control command inputs */
100/* LTT_CHANNEL_IPC("ipc"), /* Inter Process Communication (IPC) events */
101/* LTT_CHANNEL_JBD2("jbd2"), /* Journaling Block Device (JBD) events (JBD2 fork for ext4 file system) */
102/* LTT_CHANNEL_METADATA("metadata"), /* trace meta data */
103/* LTT_CHANNEL_NET("net"), /* networking events */
104/* LTT_CHANNEL_PM("pm"), /* power management events */
105/* LTT_CHANNEL_RCU("rcu"), /* Read-Copy-Update (RCU) events */
5d10d135
ASL
106
107 private final String inName;
108
109 private Channels(String name) {
110 this.inName = name;
111 }
112
113 public String getInName() {
0821f854
FC
114 return this.inName;
115 }
116
5d10d135 117 }
5d10d135 118
5d10d135
ASL
119 public enum Events {
120 LTT_EVENT_SYSCALL_ENTRY("syscall_entry"), /* */
121 LTT_EVENT_SYSCALL_EXIT("syscall_exit"), /* */
122 LTT_EVENT_TRAP_ENTRY("trap_entry"), /* */
123 LTT_EVENT_TRAP_EXIT("trap_exit"), /* */
124 LTT_EVENT_PAGE_FAULT_ENTRY("page_fault_entry"), /* */
125 LTT_EVENT_PAGE_FAULT_EXIT("page_fault_exit"), /* */
126 LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY("page_fault_nosem_entry"), /* */
127 LTT_EVENT_PAGE_FAULT_NOSEM_EXIT("page_fault_nosem_exit"), /* */
128 LTT_EVENT_IRQ_ENTRY("irq_entry"), /* */
129 LTT_EVENT_IRQ_EXIT("irq_exit"), /* */
130 LTT_EVENT_SOFT_IRQ_RAISE("softirq_raise"), /* */
131 LTT_EVENT_SOFT_IRQ_ENTRY("softirq_entry"), /* */
132 LTT_EVENT_SOFT_IRQ_EXIT("softirq_exit"), /* */
133 LTT_EVENT_SCHED_SCHEDULE("sched_schedule"), /* */
134 LTT_EVENT_PROCESS_FORK("process_fork"), /* */
135 LTT_EVENT_KTHREAD_CREATE("kthread_create"), /* */
136 LTT_EVENT_PROCESS_EXIT("process_exit"), /* */
137 LTT_EVENT_PROCESS_FREE("process_free"), /* */
138 LTT_EVENT_EXEC("exec"), /* */
139 LTT_EVENT_PROCESS_STATE("process_state"), /* */
140 LTT_EVENT_STATEDUMP_END("statedump_end"), /* */
141 LTT_EVENT_FUNCTION_ENTRY("function_entry"), /* */
142 LTT_EVENT_FUNCTION_EXIT("function_exit"), /* */
143 LTT_EVENT_THREAD_BRAND("thread_brand"), /* */
144 LTT_EVENT_REQUEST_ISSUE("_blk_request_issue"), /* */
145 LTT_EVENT_REQUEST_COMPLETE("_blk_request_complete"), /* */
146 LTT_EVENT_LIST_INTERRUPT("interrupt"), /* */
147 LTT_EVENT_SYS_CALL_TABLE("sys_call_table"), /* */
148 LTT_EVENT_SOFTIRQ_VEC("softirq_vec"), /* */
149 LTT_EVENT_KPROBE_TABLE("kprobe_table"), /* */
150 LTT_EVENT_KPROBE("kprobe"); /* */
151
152 private final String inName;
153 private final HashSet<Fields> children = new HashSet<Fields>();
154 private Channels parent = null;
0821f854
FC
155 // Default value for the "expected to cause a state transition?" flag
156 // Although most events do cause a state transition, the default is kept
157 // false to make this important property explicit in the static initializer
5d10d135
ASL
158 private boolean stateTransition = false;
159
160 static {
161 associate();
162 }
163
164 private Events(String name) {
165 this.inName = name;
166 }
167
168 public String getInName() {
169 return this.inName;
170 }
171
172 public Channels getParent() {
173 return this.parent;
174 }
175
176 public void setParent(Channels parent) {
177 this.parent = parent;
178 }
179
180 public HashSet<Fields> getChildren() {
181 return children;
182 }
183
184 public boolean isStateTransition() {
185 return stateTransition;
186 }
187
188 private static void associate() {
0821f854 189 // SYSCALL_ENTRY can receive ip (?), syscall_id
5d10d135 190 LTT_EVENT_SYSCALL_ENTRY.setParent(Channels.LTT_CHANNEL_KERNEL);
5d10d135 191 LTT_EVENT_SYSCALL_ENTRY.stateTransition = true;
0821f854 192 LTT_EVENT_SYSCALL_ENTRY.getChildren().add(Fields.LTT_FIELD_SYSCALL_ID);
5d10d135 193
0821f854 194 //SYSCALL_EXIT
5d10d135
ASL
195 LTT_EVENT_SYSCALL_EXIT.setParent(Channels.LTT_CHANNEL_KERNEL);
196 LTT_EVENT_SYSCALL_EXIT.stateTransition = true;
197
0821f854 198 // TRAP_ENTRY
5d10d135
ASL
199 LTT_EVENT_TRAP_ENTRY.setParent(Channels.LTT_CHANNEL_KERNEL);
200 LTT_EVENT_TRAP_ENTRY.getChildren().add(Fields.LTT_FIELD_TRAP_ID);
201 LTT_EVENT_TRAP_ENTRY.stateTransition = true;
202
0821f854 203 // TRAP_EXIT
5d10d135
ASL
204 LTT_EVENT_TRAP_EXIT.setParent(Channels.LTT_CHANNEL_KERNEL);
205 LTT_EVENT_TRAP_EXIT.stateTransition = true;
206
0821f854 207 // PAGE_FAULT_ENTRY
5d10d135 208 LTT_EVENT_PAGE_FAULT_ENTRY.setParent(Channels.LTT_CHANNEL_KERNEL);
0821f854 209 LTT_EVENT_PAGE_FAULT_ENTRY.getChildren().add(Fields.LTT_FIELD_TRAP_ID);
5d10d135
ASL
210 LTT_EVENT_PAGE_FAULT_ENTRY.stateTransition = true;
211
0821f854 212 // PAGE_FAULT_EXIT
5d10d135
ASL
213 LTT_EVENT_PAGE_FAULT_EXIT.setParent(Channels.LTT_CHANNEL_KERNEL);
214 LTT_EVENT_PAGE_FAULT_EXIT.stateTransition = true;
215
0821f854
FC
216 // PAGE_FAULT_NOSEM_ENTRY
217 LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY.setParent(Channels.LTT_CHANNEL_KERNEL);
218 LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY.getChildren().add(Fields.LTT_FIELD_TRAP_ID);
5d10d135
ASL
219 LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY.stateTransition = true;
220
0821f854
FC
221 // PAGE_FAULT_NOSEM_EXIT
222 LTT_EVENT_PAGE_FAULT_NOSEM_EXIT.setParent(Channels.LTT_CHANNEL_KERNEL);
223 LTT_EVENT_PAGE_FAULT_NOSEM_EXIT.getChildren().add(Fields.LTT_FIELD_TRAP_ID);
5d10d135
ASL
224 LTT_EVENT_PAGE_FAULT_NOSEM_EXIT.stateTransition = true;
225
0821f854 226 // IRQ_ENTRY also receives fields kernel_mode, ip and handler (??)
5d10d135
ASL
227 LTT_EVENT_IRQ_ENTRY.setParent(Channels.LTT_CHANNEL_KERNEL);
228 LTT_EVENT_IRQ_ENTRY.getChildren().add(Fields.LTT_FIELD_IRQ_ID);
229 LTT_EVENT_IRQ_ENTRY.stateTransition = true;
230
0821f854 231 // IRQ_EXIT
5d10d135
ASL
232 LTT_EVENT_IRQ_EXIT.setParent(Channels.LTT_CHANNEL_KERNEL);
233 LTT_EVENT_IRQ_EXIT.stateTransition = true;
234
0821f854 235 // SOFT_IRQ_RAISE
5d10d135 236 LTT_EVENT_SOFT_IRQ_RAISE.setParent(Channels.LTT_CHANNEL_KERNEL);
0821f854 237 LTT_EVENT_SOFT_IRQ_RAISE.getChildren().add(Fields.LTT_FIELD_SOFT_IRQ_ID);
5d10d135
ASL
238 LTT_EVENT_SOFT_IRQ_RAISE.stateTransition = true;
239
0821f854 240 // SOFT_IRQ_ENTRY
5d10d135 241 LTT_EVENT_SOFT_IRQ_ENTRY.setParent(Channels.LTT_CHANNEL_KERNEL);
0821f854 242 LTT_EVENT_SOFT_IRQ_ENTRY.getChildren().add(Fields.LTT_FIELD_SOFT_IRQ_ID);
5d10d135
ASL
243 LTT_EVENT_SOFT_IRQ_ENTRY.stateTransition = true;
244
0821f854 245 // SOFT_IRQ_EXIT
5d10d135
ASL
246 LTT_EVENT_SOFT_IRQ_EXIT.setParent(Channels.LTT_CHANNEL_KERNEL);
247 LTT_EVENT_SOFT_IRQ_EXIT.stateTransition = true;
248
0821f854 249 // SCHED_SCHEDULE
5d10d135 250 LTT_EVENT_SCHED_SCHEDULE.setParent(Channels.LTT_CHANNEL_KERNEL);
0821f854
FC
251 LTT_EVENT_SCHED_SCHEDULE.getChildren().add(Fields.LTT_FIELD_PREV_PID);
252 LTT_EVENT_SCHED_SCHEDULE.getChildren().add(Fields.LTT_FIELD_NEXT_PID);
253 LTT_EVENT_SCHED_SCHEDULE.getChildren().add(Fields.LTT_FIELD_PREV_STATE);
5d10d135
ASL
254 LTT_EVENT_SCHED_SCHEDULE.stateTransition = true;
255
0821f854 256 // PROCESS_FORK
5d10d135 257 LTT_EVENT_PROCESS_FORK.setParent(Channels.LTT_CHANNEL_KERNEL);
0821f854
FC
258 LTT_EVENT_PROCESS_FORK.getChildren().add(Fields.LTT_FIELD_PARENT_PID);
259 LTT_EVENT_PROCESS_FORK.getChildren().add(Fields.LTT_FIELD_CHILD_PID);
260 LTT_EVENT_PROCESS_FORK.getChildren().add(Fields.LTT_FIELD_CHILD_TGID);
5d10d135
ASL
261 LTT_EVENT_PROCESS_FORK.stateTransition = true;
262
0821f854 263 // KTHREAD_CREATE
5d10d135
ASL
264 LTT_EVENT_KTHREAD_CREATE.setParent(Channels.LTT_CHANNEL_KERNEL);
265 LTT_EVENT_KTHREAD_CREATE.getChildren().add(Fields.LTT_FIELD_PID);
266 LTT_EVENT_KTHREAD_CREATE.stateTransition = true;
267
0821f854 268 // PROCESS_EXIT
5d10d135
ASL
269 LTT_EVENT_PROCESS_EXIT.setParent(Channels.LTT_CHANNEL_KERNEL);
270 LTT_EVENT_PROCESS_EXIT.getChildren().add(Fields.LTT_FIELD_PID);
271 LTT_EVENT_PROCESS_EXIT.stateTransition = true;
272
0821f854 273 // PROCESS_FREE
5d10d135
ASL
274 LTT_EVENT_PROCESS_FREE.setParent(Channels.LTT_CHANNEL_KERNEL);
275 LTT_EVENT_PROCESS_FREE.getChildren().add(Fields.LTT_FIELD_PID);
276 LTT_EVENT_PROCESS_FREE.stateTransition = true;
277
0821f854 278 // EVENT_EXEC
5d10d135
ASL
279 LTT_EVENT_EXEC.setParent(Channels.LTT_CHANNEL_FS);
280 LTT_EVENT_EXEC.getChildren().add(Fields.LTT_FIELD_FILENAME);
281 LTT_EVENT_EXEC.stateTransition = true;
282
0821f854 283 // EVENT_PROCESS_STATE
5d10d135
ASL
284 LTT_EVENT_PROCESS_STATE.setParent(Channels.LTT_CHANNEL_TASK_STATE);
285 LTT_EVENT_PROCESS_STATE.getChildren().add(Fields.LTT_FIELD_PID);
0821f854 286 LTT_EVENT_PROCESS_STATE.getChildren().add(Fields.LTT_FIELD_PARENT_PID);
5d10d135
ASL
287 LTT_EVENT_PROCESS_STATE.getChildren().add(Fields.LTT_FIELD_NAME);
288 LTT_EVENT_PROCESS_STATE.getChildren().add(Fields.LTT_FIELD_TYPE);
289 LTT_EVENT_PROCESS_STATE.getChildren().add(Fields.LTT_FIELD_MODE);
290 LTT_EVENT_PROCESS_STATE.getChildren().add(Fields.LTT_FIELD_SUBMODE);
291 LTT_EVENT_PROCESS_STATE.getChildren().add(Fields.LTT_FIELD_STATUS);
292 LTT_EVENT_PROCESS_STATE.getChildren().add(Fields.LTT_FIELD_TGID);
293 LTT_EVENT_PROCESS_STATE.stateTransition = true;
294
0821f854
FC
295 // STATEDUMP_END
296 LTT_EVENT_STATEDUMP_END.setParent(Channels.LTT_CHANNEL_GLOBAL_STATE);
5d10d135
ASL
297 LTT_EVENT_STATEDUMP_END.stateTransition = true;
298
0821f854
FC
299 // FUNCTION_ENTRY
300 LTT_EVENT_FUNCTION_ENTRY.setParent(Channels.LTT_CHANNEL_USERSPACE);
301 LTT_EVENT_FUNCTION_ENTRY.getChildren().add(Fields.LTT_FIELD_THIS_FN);
302 LTT_EVENT_FUNCTION_ENTRY.getChildren().add(Fields.LTT_FIELD_CALL_SITE);
303 LTT_EVENT_FUNCTION_ENTRY.stateTransition = true;
5d10d135 304
0821f854
FC
305 // FUNCTION_EXIT
306 LTT_EVENT_FUNCTION_EXIT.setParent(Channels.LTT_CHANNEL_USERSPACE);
307 LTT_EVENT_FUNCTION_EXIT.getChildren().add(Fields.LTT_FIELD_THIS_FN);
308 LTT_EVENT_FUNCTION_EXIT.getChildren().add(Fields.LTT_FIELD_CALL_SITE);
309 LTT_EVENT_FUNCTION_EXIT.stateTransition = true;
310
311 // THREAD_BRAND
312 LTT_EVENT_THREAD_BRAND.setParent(Channels.LTT_CHANNEL_USERSPACE);
313 LTT_EVENT_THREAD_BRAND.getChildren().add(Fields.LTT_FIELD_NAME);
314 LTT_EVENT_THREAD_BRAND.stateTransition = true;
315
316 // REQUEST_ISSUE
5d10d135
ASL
317 LTT_EVENT_REQUEST_ISSUE.setParent(Channels.LTT_CHANNEL_BLOCK);
318 LTT_EVENT_REQUEST_ISSUE.getChildren().add(Fields.LTT_FIELD_MAJOR);
319 LTT_EVENT_REQUEST_ISSUE.getChildren().add(Fields.LTT_FIELD_MINOR);
320 LTT_EVENT_REQUEST_ISSUE.getChildren().add(Fields.LTT_FIELD_OPERATION);
5d10d135
ASL
321 LTT_EVENT_REQUEST_ISSUE.stateTransition = true;
322
0821f854 323 // REQUEST_COMPLETE
5d10d135 324 LTT_EVENT_REQUEST_COMPLETE.setParent(Channels.LTT_CHANNEL_BLOCK);
0821f854
FC
325 LTT_EVENT_REQUEST_COMPLETE.getChildren().add(Fields.LTT_FIELD_MAJOR);
326 LTT_EVENT_REQUEST_COMPLETE.getChildren().add(Fields.LTT_FIELD_MINOR);
327 LTT_EVENT_REQUEST_COMPLETE.getChildren().add(Fields.LTT_FIELD_OPERATION);
5d10d135
ASL
328 LTT_EVENT_REQUEST_COMPLETE.stateTransition = true;
329
0821f854
FC
330 // LIST_INTERRUPT
331 LTT_EVENT_LIST_INTERRUPT.setParent(Channels.LTT_CHANNEL_IRQ_STATE);
332 LTT_EVENT_LIST_INTERRUPT.getChildren().add(Fields.LTT_FIELD_ACTION);
333 LTT_EVENT_LIST_INTERRUPT.getChildren().add(Fields.LTT_FIELD_IRQ_ID);
334 LTT_EVENT_LIST_INTERRUPT.stateTransition = true;
5d10d135 335
0821f854
FC
336 // SYS_CALL_TABLE
337 LTT_EVENT_SYS_CALL_TABLE.setParent(Channels.LTT_CHANNEL_SYSCALL_STATE);
5d10d135 338 LTT_EVENT_SYS_CALL_TABLE.getChildren().add(Fields.LTT_FIELD_ID);
0821f854 339 LTT_EVENT_SYS_CALL_TABLE.getChildren().add(Fields.LTT_FIELD_ADDRESS);
5d10d135
ASL
340 LTT_EVENT_SYS_CALL_TABLE.getChildren().add(Fields.LTT_FIELD_SYMBOL);
341 LTT_EVENT_SYS_CALL_TABLE.stateTransition = true;
342
0821f854 343 // SOFTIRQ_VEC
5d10d135
ASL
344 LTT_EVENT_SOFTIRQ_VEC.setParent(Channels.LTT_CHANNEL_SOFTIRQ_STATE);
345 LTT_EVENT_SOFTIRQ_VEC.getChildren().add(Fields.LTT_FIELD_ID);
346 LTT_EVENT_SOFTIRQ_VEC.getChildren().add(Fields.LTT_FIELD_ADDRESS);
347 LTT_EVENT_SOFTIRQ_VEC.getChildren().add(Fields.LTT_FIELD_SYMBOL);
348 LTT_EVENT_SOFTIRQ_VEC.stateTransition = true;
0821f854
FC
349
350 // KPROBE_TABLE
351 LTT_EVENT_KPROBE_TABLE.setParent(Channels.LTT_CHANNEL_KPROBE_STATE);
352 LTT_EVENT_KPROBE_TABLE.getChildren().add(Fields.LTT_FIELD_IP);
353 LTT_EVENT_KPROBE_TABLE.getChildren().add(Fields.LTT_FIELD_SYMBOL);
354 LTT_EVENT_KPROBE_TABLE.stateTransition = true;
355
356 // KPROBE
357 LTT_EVENT_KPROBE.setParent(Channels.LTT_CHANNEL_KERNEL);
358 LTT_EVENT_KPROBE.getChildren().add(Fields.LTT_FIELD_IP);
359// LTT_EVENT_KPROBE.getChildren().add(Fields.LTT_FIELD_SYMBOL);
360 LTT_EVENT_KPROBE.stateTransition = true;
5d10d135
ASL
361 }
362
0821f854 363 }
5d10d135
ASL
364
365 public enum Fields {
366 LTT_FIELD_SYSCALL_ID("syscall_id"), /* */
367 LTT_FIELD_TRAP_ID("trap_id"), /* */
368 LTT_FIELD_IRQ_ID("irq_id"), /* */
369 LTT_FIELD_SOFT_IRQ_ID("softirq_id"), /* */
370 LTT_FIELD_PREV_PID("prev_pid"), /* */
371 LTT_FIELD_NEXT_PID("next_pid"), /* */
372 LTT_FIELD_PREV_STATE("prev_state"), /* */
373 LTT_FIELD_PARENT_PID("parent_pid"), /* */
374 LTT_FIELD_CHILD_PID("child_pid"), /* */
375 LTT_FIELD_PID("pid"), /* */
376 LTT_FIELD_TGID("tgid"), /* */
377 LTT_FIELD_CHILD_TGID("child_tgid"), /* */
378 LTT_FIELD_FILENAME("filename"), /* */
379 LTT_FIELD_NAME("name"), /* */
380 LTT_FIELD_TYPE("type"), /* */
381 LTT_FIELD_MODE("mode"), /* */
382 LTT_FIELD_SUBMODE("submode"), /* */
383 LTT_FIELD_STATUS("status"), /* */
384 LTT_FIELD_THIS_FN("this_fn"), /* */
385 LTT_FIELD_CALL_SITE("call_site"), /* */
386 LTT_FIELD_MAJOR("major"), /* */
387 LTT_FIELD_MINOR("minor"), /* */
388 LTT_FIELD_OPERATION("direction"), /* */
389 LTT_FIELD_ACTION("action"), /* */
390 LTT_FIELD_ID("id"), /* */
391 LTT_FIELD_ADDRESS("address"), /* */
392 LTT_FIELD_SYMBOL("symbol"), /* */
393 LTT_FIELD_IP("ip"); /* */
394
395 private final String inName;
396
397 private Fields(String name) {
398 this.inName = name;
399 }
400
401 public String getInName() {
402 return this.inName;
403 }
0821f854
FC
404
405 }
5d10d135
ASL
406
407 public enum CpuMode {
408 LTTV_CPU_UNKNOWN("unknown"), /* */
409 LTTV_CPU_IDLE("idle"), /* */
410 LTTV_CPU_BUSY("busy"), /* */
411 LTTV_CPU_IRQ("irq"), /* */
412 LTTV_CPU_SOFT_IRQ("softirq"), /* */
413 LTTV_CPU_TRAP("trap"); /* */
414
0821f854 415 private final String inName;
5d10d135
ASL
416
417 private CpuMode(String name) {
418 this.inName = name;
419 }
420
421 public String getInName() {
422 return this.inName;
423 }
424
425 }
426
427 public enum IRQMode {
428 LTTV_IRQ_UNKNOWN("unknown"), /* */
429 LTTV_IRQ_IDLE("idle"), /* */
430 LTTV_IRQ_BUSY("busy"); /* */
431
0821f854 432 private final String inName;
5d10d135
ASL
433
434 private IRQMode(String name) {
435 this.inName = name;
436 }
437
438 public String getInName() {
439 return this.inName;
440 }
441
442 }
443
444 public enum SoftIRQMode {
445 LTTV_SOFT_IRQ_UNKNOWN("unknown"), /* */
446 LTTV_SOFT_IRQ_IDLE("idle"), /* */
447 LTTV_SOFT_IRQ_PENDING("pending"), /* */
448 LTTV_SOFT_IRQ_BUSY("busy"); /* */
449
0821f854 450 private final String inName;
5d10d135
ASL
451
452 private SoftIRQMode(String name) {
453 this.inName = name;
454 }
455
456 public String getInName() {
457 return this.inName;
458 }
459
460 }
461
462 public enum BdevMode {
463 LTTV_BDEV_UNKNOWN("unknown"), /* */
464 LTTV_BDEV_IDLE("idle"), /* */
465 LTTV_BDEV_BUSY_READING("busy_reading"), /* */
466 LTTV_BDEV_BUSY_WRITING("busy_writing"); /* */
467
0821f854 468 private final String inName;
5d10d135
ASL
469
470 private BdevMode(String name) {
471 this.inName = name;
472 }
473
474 public String getInName() {
475 return this.inName;
476 }
477
478 }
479
480 public enum TrapMode {
481 LTTV_TRAP_UNKNOWN("unknown"), /* */
482 LTTV_TRAP_IDLE("idle"), /* */
483 LTTV_TRAP_BUSY("busy"); /* */
484
0821f854 485 private final String inName;
5d10d135
ASL
486
487 private TrapMode(String name) {
488 this.inName = name;
489 }
490
491 public String getInName() {
492 return this.inName;
493 }
494
495 }
0821f854 496
5d10d135
ASL
497 public enum ProcessType {
498 LTTV_STATE_USER_THREAD("USER_THREAD"), /* */
499 LTTV_STATE_KERNEL_THREAD("KERNEL_THREAD"); /* */
500
0821f854 501 private final String inName;
5d10d135
ASL
502
503 private ProcessType(String name) {
504 this.inName = name;
505 }
506
507 public String getInName() {
508 return this.inName;
509 }
510
511 }
512
513 public enum ProcessStatus {
0821f854
FC
514 LTTV_STATE_UNNAMED("UNNAMED"), /* */
515 LTTV_STATE_WAIT_FORK("WAIT_FORK"), /* */
5d10d135
ASL
516 LTTV_STATE_WAIT_CPU("WAIT_CPU"), /* */
517 LTTV_STATE_EXIT("EXIT"), /* */
518 LTTV_STATE_ZOMBIE("ZOMBIE"), /* */
519 LTTV_STATE_WAIT("WAIT"), /* */
520 LTTV_STATE_RUN("RUN"), /* */
521 LTTV_STATE_DEAD("DEAD"); /* */
522
0821f854 523 private final String inName;
5d10d135
ASL
524
525 private ProcessStatus(String name) {
526 this.inName = name;
527 }
528
529 public String getInName() {
530 return this.inName;
531 }
532
533 }
534
535 public enum ExecutionSubMode {
536 LTTV_STATE_SUBMODE_UNKNOWN("UNKNOWN"), /* */
537 LTTV_STATE_SUBMODE_NONE("NONE"); /* */
538
0821f854 539 private final String inName;
5d10d135
ASL
540
541 private ExecutionSubMode(String name) {
542 this.inName = name;
543 }
544
545 public String getInName() {
546 return this.inName;
547 }
548
549 }
550
551 public enum ExecutionMode {
552 LTTV_STATE_MODE_UNKNOWN("MODE_UNKNOWN"), /* */
553 LTTV_STATE_USER_MODE("USER_MODE"), /* */
554 LTTV_STATE_SYSCALL("SYSCALL"), /* */
555 LTTV_STATE_TRAP("TRAP"), /* */
556 LTTV_STATE_IRQ("IRQ"), /* */
557 LTTV_STATE_SOFT_IRQ("SOFTIRQ"); /* */
558
0821f854 559 private final String inName;
5d10d135
ASL
560
561 private ExecutionMode(String name) {
562 this.inName = name;
563 }
564
565 public String getInName() {
566 return this.inName;
567 }
568
569 }
570
571 public enum GenStates {
572 LTTV_STATE_TRACEFILES("tracefiles"), /* */
573 LTTV_STATE_PROCESSES("processes"), /* */
574 LTTV_STATE_PROCESS("process"), /* */
575 LTTV_STATE_RUNNING_PROCESS("running_process"), /* */
576 LTTV_STATE_EVENT("event"), /* */
577 LTTV_STATE_SAVED_STATES("saved states"), /* */
578 LTTV_STATE_SAVED_STATES_TIME("saved states time"), /* */
579 LTTV_STATE_TIME("time"), /* */
580 LTTV_STATE_HOOKS("saved state hooks"), /* */
581 LTTV_STATE_NAME_TABLES("name tables"), /* */
582 LTTV_STATE_TRACE_STATE_USE_COUNT("trace_state_use_count"), /* */
583 LTTV_STATE_RESOURCE_CPUS("cpu count"), /* */
584 LTTV_STATE_RESOURCE_IRQS("irq resource states"), /* */
585 LTTV_STATE_RESOURCE_SOFT_IRQS("soft irq resource states"), /* */
586 LTTV_STATE_RESOURCE_TRAPS("trap resource states"), /* */
587 LTTV_STATE_RESOURCE_BLKDEVS("blkdevs resource states"); /* */
588
0821f854 589 private final String inName;
5d10d135
ASL
590
591 private GenStates(String name) {
592 this.inName = name;
593 }
594
595 public String getInName() {
596 return this.inName;
597 }
598
599 }
600
601 // ========================================================================
602 // Methods
603 // =======================================================================
0821f854 604
5d10d135 605 /**
0821f854 606 * Return the map from event name strings to Events instances
5d10d135
ASL
607 *
608 * @return the eventstrmap
609 */
610 public HashMap<String, Events> getEventStrmap() {
611 return eventStrMap;
612 }
613
614 /**
0821f854
FC
615 * Return the map from state transition event name strings to Events instances
616 * State transition events are the subset of events that have the attribute stateTransition == True.
5d10d135
ASL
617 *
618 * @return the stateTransEventMap
619 */
620 public HashMap<String, Events> getStateTransEventMap() {
621 return stateTransEventMap;
622 }
623
624 /**
0821f854 625 * @return the mapping from int (0..255) to system call names
5d10d135
ASL
626 */
627 public String[] getSyscallNames() {
212550ba 628 return Arrays.copyOf(syscall_names, syscall_names.length);
5d10d135
ASL
629 }
630
631 /**
0821f854 632 * @return the mapping from int (0..255) to trap names
5d10d135
ASL
633 */
634 public String[] getTrapNames() {
212550ba 635 return Arrays.copyOf(trap_names, trap_names.length);
5d10d135
ASL
636 }
637
638 /**
0821f854 639 * @return the mapping from int (0..255) to IRQ names
5d10d135
ASL
640 */
641 public String[] getIrqNames() {
212550ba 642 return Arrays.copyOf(irq_names, irq_names.length);
5d10d135
ASL
643 }
644
645 /**
0821f854 646 * @return the mapping from int (0..31) to soft IRQ names
5d10d135
ASL
647 */
648 public String[] getSoftIrqNames() {
212550ba 649 return Arrays.copyOf(soft_irq_names, soft_irq_names.length);
5d10d135
ASL
650 }
651
652}
This page took 0.069143 seconds and 5 git commands to generate.