File: [local] / src / usr.bin / top / machine.h (download)
Revision 1.31, Wed Aug 26 16:21:28 2020 UTC (3 years, 9 months ago) by kn
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8 Changes since 1.30: +4 -3 lines
Add "t" to toggle the display of routing tables
Swap the WAIT column with RTABLE (and vice versa); WAIT is wide enough to
fit RTABLE, somewhat adds additional value to STATE and seems therefore most
appropiate to hide in favour of RTABLE.
Filtering rtables with "T" does not toggle the column, just like filtering
users with "u" does not toggle between user and thread id.
Feedback jmc
OK remi
|
/* $OpenBSD: machine.h,v 1.31 2020/08/26 16:21:28 kn Exp $ */
/*
* Top users/processes display for Unix
* Version 3
*
* Copyright (c) 1984, 1989, William LeFebvre, Rice University
* Copyright (c) 1989, 1990, 1992, William LeFebvre, Northwestern University
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR OR HIS EMPLOYER BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* 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.
*/
/*
* the statics struct is filled in by machine_init
*/
struct statics {
char **procstate_names;
char **cpustate_names;
char **memory_names;
char **order_names;
};
/*
* the system_info struct is filled in by a machine dependent routine.
*/
struct system_info {
pid_t last_pid;
double load_avg[NUM_AVERAGES];
int p_total;
int p_active; /* number of procs considered
* "active" */
int *procstates;
int64_t *cpustates;
int *cpuonline;
int *memory;
};
/*
* 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 system; /* show system processes */
int threads; /* show threads */
uid_t uid; /* only this uid (unless uid == -1) */
uid_t huid; /* hide this uid (unless huid == -1) */
pid_t pid; /* only this pid (unless pid == -1) */
int rtable; /* show routing tables */
int rtableid; /* only this rtable (unless rtableid == -1) */
int hrtableid; /* hide this rtable (unless hrtableid == -1) */
char *command;/* only this command (unless == NULL) */
};
/* prototypes */
extern int display_init(struct statics *);
/* machine.c */
extern int machine_init(struct statics *);
extern char *format_header(char *, char *);
extern void get_system_info(struct system_info *);
extern struct handle
*get_process_info(struct system_info *, struct process_select *,
int (*) (const void *, const void *));
extern void skip_processes(struct handle *, int);
extern char *format_next_process(struct handle *,
const char *(*)(uid_t, int), int, pid_t *);
extern uid_t proc_owner(pid_t);
extern struct kinfo_proc *getprocs(int, int, int *);
int getncpu(void);
int getncpuonline(void);
int getfscale(void);