| /******************************************************************************* |
| * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir |
| * |
| * All rights reserved. This program and the accompanying materials are |
| * made available under the terms of the Eclipse Public License 2.0 which |
| * accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| *******************************************************************************/ |
| |
| package org.eclipse.tracecompass.internal.provisional.analysis.lami.core.types; |
| |
| import org.eclipse.jdt.annotation.Nullable; |
| |
| /** |
| * Lami IRQ data type. |
| * |
| * @author Alexandre Montplaisir |
| */ |
| public class LamiIRQ extends LamiData { |
| |
| /** |
| * IRQ type |
| */ |
| public enum Type { |
| /** Hardware IRQ */ |
| HARD, |
| /** Software IRQ */ |
| SOFT |
| } |
| |
| private final Type fType; |
| private final int fNumber; |
| private final @Nullable String fName; |
| |
| /** |
| * Constructor |
| * |
| * @param irqType |
| * IRQ type |
| * @param nb |
| * IRQ number |
| * @param name |
| * IRQ name, null if not available |
| */ |
| public LamiIRQ(Type irqType, int nb, @Nullable String name) { |
| fType = irqType; |
| fNumber = nb; |
| fName = name; |
| } |
| |
| /** |
| * Get this IRQ's name. May be null if unavailable. |
| * |
| * @return The IRQ name |
| */ |
| public @Nullable String getName() { |
| return fName; |
| } |
| |
| /** |
| * Get this IRQ's type |
| * |
| * @return The IRQ type |
| */ |
| public Type getType() { |
| return fType; |
| } |
| |
| /** |
| * Get this IRQ's number. |
| * |
| * @return The IRQ number |
| */ |
| public Integer getNumber() { |
| return fNumber; |
| } |
| |
| @Override |
| public @Nullable String toString() { |
| StringBuilder sb = new StringBuilder(); |
| switch (fType) { |
| case SOFT: |
| sb.append(Messages.LamiIRQ_SoftIRQ).append(' '); |
| break; |
| case HARD: |
| default: |
| sb.append(Messages.LamiIRQ_HardwareIRQ).append(' '); |
| break; |
| } |
| |
| sb.append(String.valueOf(fNumber)); |
| |
| if (fName != null) { |
| sb.append(" (" + fName + ')'); //$NON-NLS-1$ |
| } |
| return sb.toString(); |
| } |
| } |