diff options
Diffstat (limited to 'usr.bin/top/machine.h')
-rw-r--r-- | usr.bin/top/machine.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/usr.bin/top/machine.h b/usr.bin/top/machine.h new file mode 100644 index 000000000000..b4f2f1a8bd50 --- /dev/null +++ b/usr.bin/top/machine.h @@ -0,0 +1,103 @@ +/* + */ + +/* + * This file defines the interface between top and the machine-dependent + * module. It is NOT machine dependent and should not need to be changed + * for any specific machine. + */ +#ifndef MACHINE_H +#define MACHINE_H + +#include <sys/time.h> +#include <sys/types.h> + +#define NUM_AVERAGES 3 + +/* Log base 2 of 1024 is 10 (2^10 == 1024) */ +#define LOG1024 10 + +/* + * the statics struct is filled in by machine_init + */ +struct statics +{ + const char * const *procstate_names; + const char * const *cpustate_names; + const char * const *memory_names; + const char * const *arc_names; + const char * const *carc_names; + const char * const *swap_names; + const char * const *order_names; + int nbatteries; + int ncpus; +}; + +/* + * the system_info struct is filled in by a machine dependent routine. + */ + +struct system_info +{ + int last_pid; + double load_avg[NUM_AVERAGES]; + int p_total; + int p_pactive; /* number of procs considered "active" */ + int *procstates; + int *cpustates; + int *memory; + int *arc; + int *carc; + int *swap; + struct timeval boottime; + int battery; + int ncpus; +}; + +/* + * the process_select struct tells get_process_info what processes + * and information we are interested in seeing + */ + +struct process_select +{ + bool idle; /* show idle processes */ + bool self; /* show self */ + bool system; /* show system processes */ + bool thread; /* show threads */ + bool thread_id; /* show thread ids */ +#define TOP_MAX_UIDS 8 + int uid[TOP_MAX_UIDS]; /* only these uids (unless uid[0] == -1) */ + bool wcpu; /* show weighted cpu */ + int jid; /* only this jid (unless jid == -1) */ + bool jail; /* show jail ID */ + bool swap; /* show swap usage */ + bool kidle; /* show per-CPU idle threads */ + int pid; /* only this pid (unless pid == -1) */ + char *command; /* only this command (unless == NULL) */ +}; + +/* routines defined by the machine dependent module */ + +struct handle; + +char *format_header(const char *uname_field); +char *format_next_process(struct handle* handle, char *(*get_userid)(int), + int flags); +void toggle_pcpustats(void); +void get_system_info(struct system_info *si); +int machine_init(struct statics *statics); + +/* non-int routines typically used by the machine dependent module */ +struct sort_info; + +extern struct process_select ps; + +void * +get_process_info(struct system_info *si, struct process_select *sel, + const struct sort_info *); + +const struct sort_info *get_sort_info(const char *name); +void dump_sort_names(FILE *fp); + +#endif /* MACHINE_H */ |