d68c80b64bf4b5f2b192fa2b20b77ea0d22529d2
[dragonfly.git] / contrib / top / machine.h
1 /*
2  * $FreeBSD: src/contrib/top/machine.h,v 1.4.6.1 2002/08/11 17:09:25 dwmalone Exp $
3  * $DragonFly: src/contrib/top/machine.h,v 1.4 2006/10/03 12:20:11 y0netan1 Exp $
4  */
5
6 /*
7  *  This file defines the interface between top and the machine-dependent
8  *  module.  It is NOT machine dependent and should not need to be changed
9  *  for any specific machine.
10  */
11
12 /*
13  * the statics struct is filled in by machine_init
14  */
15 struct statics
16 {
17     const char **procstate_names;
18     const char **cpustate_names;
19     const char **memory_names;
20     const char **swap_names;
21 #ifdef ORDER
22     const char **order_names;
23 #endif
24 };
25
26 /*
27  * the system_info struct is filled in by a machine dependent routine.
28  */
29
30 #ifdef p_active     /* uw7 define macro p_active */
31 #define P_ACTIVE p_pactive
32 #else
33 #define P_ACTIVE p_active
34 #endif
35
36 /* CPU1 states follow those of CPU0, and so on for SMP */
37 struct system_info
38 {
39     int    last_pid;
40     double load_avg[NUM_AVERAGES];
41     int    p_total;
42     int    P_ACTIVE;     /* number of procs considered "active" */
43     int    *procstates;
44     int    *cpustates;
45     int    *memory;
46     int    *swap;
47     struct timeval boottime;
48 };
49
50 /* cpu_states is an array of percentages * 10.  For example, 
51    the (integer) value 105 is 10.5% (or .105).
52  */
53
54 /*
55  * the process_select struct tells get_process_info what processes we
56  * are interested in seeing
57  */
58
59 struct process_select
60 {
61     int idle;           /* show idle processes */
62     int self;           /* show self */
63     int system;         /* show system processes */
64     int threads;        /* show threads */
65     int only_threads;   /* show only threads */
66     int uid;            /* only this uid (unless uid == -1) */
67     char *command;      /* only this command (unless == NULL) */
68 };
69
70 /* routines defined by the machine dependent module */
71
72 char *format_header(const char *);
73 char *format_next_process(caddr_t, char *(*func)(long));
74 int machine_init(struct statics *statics);