]> granicus.if.org Git - sysstat/blob - mpstat.h
Add sysstat simulation test environment
[sysstat] / mpstat.h
1 /*
2  * mpstat: per-processor statistics
3  * (C) 2000-2019 by Sebastien Godard (sysstat <at> orange.fr)
4  */
5
6 #ifndef _MPSTAT_H
7 #define _MPSTAT_H
8
9 #include "common.h"
10
11 /*
12  ***************************************************************************
13  * mpstat's specific system files.
14  ***************************************************************************
15  */
16
17 #define SOFTIRQS        PRE "/proc/softirqs"
18
19 /*
20  ***************************************************************************
21  * Activities definitions.
22  ***************************************************************************
23  */
24
25 #define M_D_CPU         0x0001
26 #define M_D_IRQ_SUM     0x0002
27 #define M_D_IRQ_CPU     0x0004
28 #define M_D_SOFTIRQS    0x0008
29 #define M_D_NODE        0x0010
30
31 #define DISPLAY_CPU(m)          (((m) & M_D_CPU) == M_D_CPU)
32 #define DISPLAY_IRQ_SUM(m)      (((m) & M_D_IRQ_SUM) == M_D_IRQ_SUM)
33 #define DISPLAY_IRQ_CPU(m)      (((m) & M_D_IRQ_CPU) == M_D_IRQ_CPU)
34 #define DISPLAY_SOFTIRQS(m)     (((m) & M_D_SOFTIRQS) == M_D_SOFTIRQS)
35 #define DISPLAY_NODE(m)         (((m) & M_D_NODE) == M_D_NODE)
36
37 /*
38  ***************************************************************************
39  * Keywords and constants.
40  ***************************************************************************
41  */
42
43 /* Indicate that option -P has been used */
44 #define F_P_OPTION      0x01
45 /* 0x02: unused */
46 /* JSON output */
47 #define F_JSON_OUTPUT   0x04
48 /* Indicate that option -N has been used */
49 #define F_N_OPTION      0x08
50
51 #define USE_P_OPTION(m)         (((m) & F_P_OPTION) == F_P_OPTION)
52 #define DISPLAY_JSON_OUTPUT(m)  (((m) & F_JSON_OUTPUT) == F_JSON_OUTPUT)
53 #define USE_N_OPTION(m)         (((m) & F_N_OPTION) == F_N_OPTION)
54
55 #define K_SUM   "SUM"
56 #define K_CPU   "CPU"
57 #define K_SCPU  "SCPU"
58
59 #define NR_IRQCPU_PREALLOC      3
60
61 #define MAX_IRQ_LEN             16
62
63 /*
64  ***************************************************************************
65  * Structures used to store statistics.
66  ***************************************************************************
67  */
68
69 /*
70  * stats_irqcpu->irq_name:  IRQ#-A
71  * stats_irqcpu->interrupt: number of IRQ#-A for proc 0
72  * stats_irqcpu->irq_name:  IRQ#-B
73  * stats_irqcpu->interrupt: number of IRQ#-B for proc 0
74  * ...
75  * stats_irqcpu->irq_name:  (undef'd)
76  * stats_irqcpu->interrupt: number of IRQ#-A for proc 1
77  * stats_irqcpu->irq_name:  (undef'd)
78  * stats_irqcpu->interrupt: number of IRQ#-B for proc 1
79  * ...
80  */
81 struct stats_irqcpu {
82         unsigned int interrupt        __attribute__ ((aligned (4)));
83         char         irq_name[MAX_IRQ_LEN];
84 };
85
86 #define STATS_IRQCPU_SIZE      (sizeof(struct stats_irqcpu))
87
88 #endif