cpu.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. typedef struct netsnmp_cpu_info_s netsnmp_cpu_info;
  2. extern int cpu_num;
  3. /* For rolling averages */
  4. struct netsnmp_cpu_history {
  5. unsigned long long user_hist;
  6. unsigned long long sys_hist;
  7. unsigned long long idle_hist;
  8. unsigned long long nice_hist;
  9. unsigned long long total_hist;
  10. unsigned long long ctx_hist;
  11. unsigned long long intr_hist;
  12. unsigned long long swpi_hist;
  13. unsigned long long swpo_hist;
  14. unsigned long long pagei_hist;
  15. unsigned long long pageo_hist;
  16. };
  17. struct netsnmp_cpu_info_s {
  18. int idx;
  19. /* For hrDeviceTable */
  20. char name[ SNMP_MAXBUF ];
  21. char descr[ SNMP_MAXBUF ];
  22. int status;
  23. /* For UCD cpu stats */
  24. unsigned long long user_ticks;
  25. unsigned long long nice_ticks;
  26. unsigned long long sys_ticks;
  27. unsigned long long idle_ticks;
  28. unsigned long long wait_ticks;
  29. unsigned long long kern_ticks;
  30. unsigned long long intrpt_ticks;
  31. unsigned long long sirq_ticks;
  32. unsigned long long steal_ticks;
  33. unsigned long long guest_ticks;
  34. unsigned long long guestnice_ticks;
  35. unsigned long long total_ticks;
  36. unsigned long long sys2_ticks; /* For non-atomic system counts */
  37. /* For paging-related UCD stats */
  38. /* XXX - Do these belong elsewhere ?? */
  39. /* XXX - Do Not Use - Subject to Change */
  40. unsigned long long pageIn;
  41. unsigned long long pageOut;
  42. unsigned long long swapIn;
  43. unsigned long long swapOut;
  44. unsigned long long nInterrupts;
  45. unsigned long long nCtxSwitches;
  46. struct netsnmp_cpu_history *history;
  47. netsnmp_cpu_info *next;
  48. };
  49. /*
  50. * Possibly not all needed ??
  51. */
  52. netsnmp_cpu_info *netsnmp_cpu_get_first( void );
  53. netsnmp_cpu_info *netsnmp_cpu_get_next( netsnmp_cpu_info* );
  54. netsnmp_cpu_info *netsnmp_cpu_get_byIdx( int, int );
  55. netsnmp_cpu_info *netsnmp_cpu_get_byName( char*, int );
  56. netsnmp_cache *netsnmp_cpu_get_cache( void );
  57. int netsnmp_cpu_load( void );
  58. int netsnmp_cpu_arch_load(netsnmp_cache *cache, void *magic);