|
/* retoor <retoor@molodetz.nl> */
|
|
#ifndef CPU_H
|
|
#define CPU_H
|
|
|
|
#define MAX_CPUS 256
|
|
|
|
typedef struct {
|
|
unsigned long long user;
|
|
unsigned long long nice;
|
|
unsigned long long system;
|
|
unsigned long long idle;
|
|
unsigned long long iowait;
|
|
unsigned long long irq;
|
|
unsigned long long softirq;
|
|
unsigned long long steal;
|
|
unsigned long long guest;
|
|
unsigned long long guest_nice;
|
|
double usage_percent;
|
|
} CpuCore;
|
|
|
|
typedef struct {
|
|
int num_cores;
|
|
CpuCore total;
|
|
CpuCore cores[MAX_CPUS];
|
|
CpuCore prev_total;
|
|
CpuCore prev_cores[MAX_CPUS];
|
|
double frequency_mhz;
|
|
double min_freq_mhz;
|
|
double max_freq_mhz;
|
|
double temperature;
|
|
unsigned long context_switches;
|
|
unsigned long prev_context_switches;
|
|
double context_switches_per_sec;
|
|
unsigned long interrupts;
|
|
unsigned long prev_interrupts;
|
|
double interrupts_per_sec;
|
|
} CpuInfo;
|
|
|
|
int cpu_info_init(CpuInfo *info);
|
|
int cpu_info_update(CpuInfo *info, double interval);
|
|
|
|
#endif
|