aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/top/machine.h
diff options
context:
space:
mode:
authorEitan Adler <eadler@FreeBSD.org>2018-05-19 22:40:23 +0000
committerEitan Adler <eadler@FreeBSD.org>2018-05-19 22:40:23 +0000
commit3be6ef06596a345558f15b91721a9021f3aeefba (patch)
tree80915a57f17f5cc4e0142f0c942e74213484ffe3 /usr.bin/top/machine.h
parent4f75b930073ea76db5cc9b51c996fc79e87342cb (diff)
downloadsrc-3be6ef06596a345558f15b91721a9021f3aeefba.tar.gz
src-3be6ef06596a345558f15b91721a9021f3aeefba.zip
Notes
Diffstat (limited to 'usr.bin/top/machine.h')
-rw-r--r--usr.bin/top/machine.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/usr.bin/top/machine.h b/usr.bin/top/machine.h
new file mode 100644
index 000000000000..a7a7e3051c57
--- /dev/null
+++ b/usr.bin/top/machine.h
@@ -0,0 +1,96 @@
+/*
+ * $FreeBSD$
+ */
+
+/*
+ * 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 "top.h"
+
+/*
+ * the statics struct is filled in by machine_init
+ */
+struct statics
+{
+ char **procstate_names;
+ char **cpustate_names;
+ char **memory_names;
+ char **arc_names;
+ char **carc_names;
+ char **swap_names;
+#ifdef ORDER
+ char **order_names;
+#endif
+ int ncpus;
+};
+
+/*
+ * the system_info struct is filled in by a machine dependent routine.
+ */
+
+#ifdef p_active /* uw7 define macro p_active */
+#define P_ACTIVE p_pactive
+#else
+#define P_ACTIVE p_active
+#endif
+
+struct system_info
+{
+ int last_pid;
+ double load_avg[NUM_AVERAGES];
+ int p_total;
+ int P_ACTIVE; /* number of procs considered "active" */
+ int *procstates;
+ int *cpustates;
+ int *memory;
+ int *arc;
+ int *carc;
+ int *swap;
+ struct timeval boottime;
+ int ncpus;
+};
+
+/* cpu_states is an array of percentages * 10. For example,
+ the (integer) value 105 is 10.5% (or .105).
+ */
+
+/*
+ * the process_select struct tells get_process_info what processes we
+ * are interested in seeing
+ */
+
+struct process_select
+{
+ int idle; /* show idle processes */
+ int self; /* show self */
+ int system; /* show system processes */
+ int thread; /* show threads */
+#define TOP_MAX_UIDS 8
+ int uid[TOP_MAX_UIDS]; /* only these uids (unless uid[0] == -1) */
+ int wcpu; /* show weighted cpu */
+ int jid; /* only this jid (unless jid == -1) */
+ int jail; /* show jail ID */
+ int swap; /* show swap usage */
+ int kidle; /* show per-CPU idle threads */
+ char *command; /* only this command (unless == NULL) */
+};
+
+/* routines defined by the machine dependent module */
+
+char *format_header(char *uname_field);
+char *format_next_process(caddr_t 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, char do_unames);
+int proc_owner(int pid);
+
+/* non-int routines typically used by the machine dependent module */
+char *printable(char *string);
+
+#endif /* MACHINE_H */