machine.h revision 222530
1/*
2 * $FreeBSD: head/contrib/top/machine.h 222530 2011-05-31 15:11:23Z jhb $
3 */
4
5/*
6 *  This file defines the interface between top and the machine-dependent
7 *  module.  It is NOT machine dependent and should not need to be changed
8 *  for any specific machine.
9 */
10
11/*
12 * the statics struct is filled in by machine_init
13 */
14struct statics
15{
16    char **procstate_names;
17    char **cpustate_names;
18    char **memory_names;
19    char **swap_names;
20#ifdef ORDER
21    char **order_names;
22#endif
23    int ncpus;
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
36struct system_info
37{
38    int    last_pid;
39    double load_avg[NUM_AVERAGES];
40    int    p_total;
41    int    P_ACTIVE;     /* number of procs considered "active" */
42    int    *procstates;
43    int    *cpustates;
44    int    *memory;
45    int    *swap;
46    struct timeval boottime;
47    int    ncpus;
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
59struct process_select
60{
61    int idle;		/* show idle processes */
62    int self;		/* show self */
63    int system;		/* show system processes */
64    int thread;		/* show threads */
65    int uid;		/* only this uid (unless uid == -1) */
66    int wcpu;		/* show weighted cpu */
67    int jail;		/* show jail ID */
68    int kidle;		/* show per-CPU idle threads */
69    char *command;	/* only this command (unless == NULL) */
70};
71
72/* routines defined by the machine dependent module */
73
74char *format_header();
75char *format_next_process();
76
77/* non-int routines typically used by the machine dependent module */
78char *printable();
79