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 );
int netsnmp_cpu_arch_load(netsnmp_cache *cache, void *magic);
