@SuppressWarnings("javadoc")
public interface StateValues {
- /* CPU Status */
- int CPU_STATUS_IDLE = 0;
- int CPU_STATUS_RUN_USERMODE = 1;
- int CPU_STATUS_RUN_SYSCALL = 2;
- int CPU_STATUS_IRQ = 3;
- int CPU_STATUS_SOFTIRQ = 4;
-
- ITmfStateValue CPU_STATUS_IDLE_VALUE = TmfStateValue.newValueInt(CPU_STATUS_IDLE);
- ITmfStateValue CPU_STATUS_RUN_USERMODE_VALUE = TmfStateValue.newValueInt(CPU_STATUS_RUN_USERMODE);
- ITmfStateValue CPU_STATUS_RUN_SYSCALL_VALUE = TmfStateValue.newValueInt(CPU_STATUS_RUN_SYSCALL);
- ITmfStateValue CPU_STATUS_IRQ_VALUE = TmfStateValue.newValueInt(CPU_STATUS_IRQ);
- ITmfStateValue CPU_STATUS_SOFTIRQ_VALUE = TmfStateValue.newValueInt(CPU_STATUS_SOFTIRQ);
-
/* Process status */
int PROCESS_STATUS_UNKNOWN = 0;
int PROCESS_STATUS_WAIT_BLOCKED = 1;
ITmfStateValue PROCESS_STATUS_INTERRUPTED_VALUE = TmfStateValue.newValueInt(PROCESS_STATUS_INTERRUPTED);
ITmfStateValue PROCESS_STATUS_WAIT_FOR_CPU_VALUE = TmfStateValue.newValueInt(PROCESS_STATUS_WAIT_FOR_CPU);
- /* SoftIRQ-specific stuff. -1: null/disabled, >= 0: running on that CPU */
- int SOFT_IRQ_RAISED = -2;
+ /* CPU Status */
+ int CPU_STATUS_IDLE = 0;
+ /**
+ * Soft IRQ raised, could happen in the CPU attribute but should not since
+ * this means that the CPU went idle when a softirq was raised.
+ *
+ * @since 2.0
+ */
+ int CPU_STATUS_SOFT_IRQ_RAISED = (1 << 0);
+ int CPU_STATUS_RUN_USERMODE = (1 << 1);
+ int CPU_STATUS_RUN_SYSCALL = (1 << 2);
+ int CPU_STATUS_SOFTIRQ = (1 << 3);
+ int CPU_STATUS_IRQ = (1 << 4);
+
+ ITmfStateValue CPU_STATUS_IDLE_VALUE = TmfStateValue.newValueInt(CPU_STATUS_IDLE);
+ ITmfStateValue CPU_STATUS_RUN_USERMODE_VALUE = TmfStateValue.newValueInt(CPU_STATUS_RUN_USERMODE);
+ ITmfStateValue CPU_STATUS_RUN_SYSCALL_VALUE = TmfStateValue.newValueInt(CPU_STATUS_RUN_SYSCALL);
+ ITmfStateValue CPU_STATUS_IRQ_VALUE = TmfStateValue.newValueInt(CPU_STATUS_IRQ);
+ ITmfStateValue CPU_STATUS_SOFTIRQ_VALUE = TmfStateValue.newValueInt(CPU_STATUS_SOFTIRQ);
+
+ /** Soft IRQ is raised, CPU is in user mode */
+ ITmfStateValue SOFT_IRQ_RAISED_VALUE = TmfStateValue.newValueInt(CPU_STATUS_SOFT_IRQ_RAISED);
- ITmfStateValue SOFT_IRQ_RAISED_VALUE = TmfStateValue.newValueInt(SOFT_IRQ_RAISED);
+ /**
+ * If the softirq is running and another is raised at the same time.
+ *
+ * @since 2.0
+ */
+ ITmfStateValue SOFT_IRQ_RAISED_RUNNING_VALUE = TmfStateValue.newValueInt(CPU_STATUS_SOFT_IRQ_RAISED | CPU_STATUS_SOFTIRQ);
}