diff options
Diffstat (limited to 'include/net-snmp/agent/hardware/cpu.h')
-rw-r--r-- | include/net-snmp/agent/hardware/cpu.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/include/net-snmp/agent/hardware/cpu.h b/include/net-snmp/agent/hardware/cpu.h new file mode 100644 index 0000000..f6e43e5 --- /dev/null +++ b/include/net-snmp/agent/hardware/cpu.h @@ -0,0 +1,68 @@ +typedef struct netsnmp_cpu_info_s netsnmp_cpu_info; +extern int cpu_num; + + /* For rolling averages */ +struct netsnmp_cpu_history { + unsigned long long user_hist; + unsigned long long sys_hist; + unsigned long long idle_hist; + unsigned long long nice_hist; + unsigned long long total_hist; + + unsigned long long ctx_hist; + unsigned long long intr_hist; + unsigned long long swpi_hist; + unsigned long long swpo_hist; + unsigned long long pagei_hist; + unsigned long long pageo_hist; +}; + +struct netsnmp_cpu_info_s { + int idx; + /* For hrDeviceTable */ + char name[ SNMP_MAXBUF ]; + char descr[ SNMP_MAXBUF ]; + int status; + + /* For UCD cpu stats */ + unsigned long long user_ticks; + unsigned long long nice_ticks; + unsigned long long sys_ticks; + unsigned long long idle_ticks; + unsigned long long wait_ticks; + unsigned long long kern_ticks; + unsigned long long intrpt_ticks; + unsigned long long sirq_ticks; + unsigned long long steal_ticks; + unsigned long long guest_ticks; + unsigned long long guestnice_ticks; + + unsigned long long total_ticks; + unsigned long long sys2_ticks; /* For non-atomic system counts */ + + /* For paging-related UCD stats */ + /* XXX - Do these belong elsewhere ?? */ + /* XXX - Do Not Use - Subject to Change */ + unsigned long long pageIn; + unsigned long long pageOut; + unsigned long long swapIn; + unsigned long long swapOut; + unsigned long long nInterrupts; + unsigned long long nCtxSwitches; + + struct netsnmp_cpu_history *history; + + netsnmp_cpu_info *next; +}; + + + /* + * Possibly not all needed ?? + */ +netsnmp_cpu_info *netsnmp_cpu_get_first( void ); +netsnmp_cpu_info *netsnmp_cpu_get_next( netsnmp_cpu_info* ); +netsnmp_cpu_info *netsnmp_cpu_get_byIdx( int, int ); +netsnmp_cpu_info *netsnmp_cpu_get_byName( char*, int ); + +netsnmp_cache *netsnmp_cpu_get_cache( void ); +int netsnmp_cpu_load( void ); |