You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.5 KiB
71 lines
1.5 KiB
#ifndef HEADER_PCPMachine |
|
#define HEADER_PCPMachine |
|
/* |
|
htop - PCPMachine.h |
|
(C) 2014 Hisham H. Muhammad |
|
Released under the GNU GPLv2+, see the COPYING file |
|
in the source distribution for its full text. |
|
*/ |
|
|
|
#include <stdbool.h> |
|
#include <sys/types.h> |
|
|
|
#include "Hashtable.h" |
|
#include "Machine.h" |
|
#include "UsersTable.h" |
|
|
|
#include "pcp/Platform.h" |
|
#include "linux/ZswapStats.h" |
|
#include "zfs/ZfsArcStats.h" |
|
|
|
|
|
typedef enum CPUMetric_ { |
|
CPU_TOTAL_TIME, |
|
CPU_USER_TIME, |
|
CPU_SYSTEM_TIME, |
|
CPU_SYSTEM_ALL_TIME, |
|
CPU_IDLE_ALL_TIME, |
|
CPU_IDLE_TIME, |
|
CPU_NICE_TIME, |
|
CPU_IOWAIT_TIME, |
|
CPU_IRQ_TIME, |
|
CPU_SOFTIRQ_TIME, |
|
CPU_STEAL_TIME, |
|
CPU_GUEST_TIME, |
|
CPU_GUESTNICE_TIME, |
|
|
|
CPU_TOTAL_PERIOD, |
|
CPU_USER_PERIOD, |
|
CPU_SYSTEM_PERIOD, |
|
CPU_SYSTEM_ALL_PERIOD, |
|
CPU_IDLE_ALL_PERIOD, |
|
CPU_IDLE_PERIOD, |
|
CPU_NICE_PERIOD, |
|
CPU_IOWAIT_PERIOD, |
|
CPU_IRQ_PERIOD, |
|
CPU_SOFTIRQ_PERIOD, |
|
CPU_STEAL_PERIOD, |
|
CPU_GUEST_PERIOD, |
|
CPU_GUESTNICE_PERIOD, |
|
|
|
CPU_FREQUENCY, |
|
|
|
CPU_METRIC_COUNT |
|
} CPUMetric; |
|
|
|
typedef struct PCPMachine_ { |
|
Machine super; |
|
int smaps_flag; |
|
double period; |
|
double timestamp; /* previous sample timestamp */ |
|
|
|
pmAtomValue* cpu; /* aggregate values for each metric */ |
|
pmAtomValue** percpu; /* per-processor values for each metric */ |
|
pmAtomValue* values; /* per-processor buffer for just one metric */ |
|
|
|
ZfsArcStats zfs; |
|
/*ZramStats zram; -- not needed, calculated in-line in Platform.c */ |
|
ZswapStats zswap; |
|
} PCPMachine; |
|
|
|
#endif
|
|
|