xref: /freebsd/usr.bin/procstat/procstat.h (revision 28f4cf9217c27edea42c5c024c9e71816890bb3c)
13d91be41SRobert Watson /*-
24d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
31de7b4b8SPedro F. Giffuni  *
43d91be41SRobert Watson  * Copyright (c) 2007 Robert N. M. Watson
5474b62b8SAllan Jude  * Copyright (c) 2015 Allan Jude <allanjude@freebsd.org>
686be94fcSTycho Nightingale  * Copyright (c) 2017 Dell EMC
73d91be41SRobert Watson  * All rights reserved.
83d91be41SRobert Watson  *
93d91be41SRobert Watson  * Redistribution and use in source and binary forms, with or without
103d91be41SRobert Watson  * modification, are permitted provided that the following conditions
113d91be41SRobert Watson  * are met:
123d91be41SRobert Watson  * 1. Redistributions of source code must retain the above copyright
133d91be41SRobert Watson  *    notice, this list of conditions and the following disclaimer.
143d91be41SRobert Watson  * 2. Redistributions in binary form must reproduce the above copyright
153d91be41SRobert Watson  *    notice, this list of conditions and the following disclaimer in the
163d91be41SRobert Watson  *    documentation and/or other materials provided with the distribution.
173d91be41SRobert Watson  *
183d91be41SRobert Watson  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
193d91be41SRobert Watson  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
203d91be41SRobert Watson  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
213d91be41SRobert Watson  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
223d91be41SRobert Watson  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
233d91be41SRobert Watson  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
243d91be41SRobert Watson  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
253d91be41SRobert Watson  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
263d91be41SRobert Watson  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
273d91be41SRobert Watson  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
283d91be41SRobert Watson  * SUCH DAMAGE.
293d91be41SRobert Watson  */
303d91be41SRobert Watson 
31474b62b8SAllan Jude #include <libxo/xo.h>
32474b62b8SAllan Jude 
333d91be41SRobert Watson #ifndef PROCSTAT_H
343d91be41SRobert Watson #define	PROCSTAT_H
353d91be41SRobert Watson 
36474b62b8SAllan Jude #define PROCSTAT_XO_VERSION "1"
37474b62b8SAllan Jude 
382a243b95SBrooks Davis enum {
392a243b95SBrooks Davis 	PS_OPT_CAPABILITIES	= 0x01,
402a243b95SBrooks Davis 	PS_OPT_NOHEADER		= 0x02,
412a243b95SBrooks Davis 	PS_OPT_PERTHREAD	= 0x04,
422a243b95SBrooks Davis 	PS_OPT_SIGNUM		= 0x08,
43085e0494SKonstantin Belousov 	PS_OPT_VERBOSE		= 0x10,
44085e0494SKonstantin Belousov 	PS_MODE_COMPAT		= 0x20,
45e79866ddSKonstantin Belousov 	PS_MODE_NO_KINFO_PROC	= 0x40,
462a243b95SBrooks Davis };
472a243b95SBrooks Davis 
482a243b95SBrooks Davis #define PS_SUBCOMMAND_OPTS			\
492a243b95SBrooks Davis 	(PS_OPT_CAPABILITIES | PS_OPT_SIGNUM |	\
502a243b95SBrooks Davis 	    PS_OPT_PERTHREAD | PS_OPT_VERBOSE)
512a243b95SBrooks Davis 
522a243b95SBrooks Davis extern int	procstat_opts;
533d91be41SRobert Watson 
543d91be41SRobert Watson struct kinfo_proc;
553d91be41SRobert Watson void	kinfo_proc_sort(struct kinfo_proc *kipp, int count);
563d32d4a7SEric van Gyzen const char *	kinfo_proc_thread_name(const struct kinfo_proc *kipp);
573d91be41SRobert Watson 
58a5229a25SKonstantin Belousov void	procstat_advlocks(struct procstat *prstat, struct kinfo_proc *kipp);
59729e63c3SMikolaj Golub void	procstat_args(struct procstat *prstat, struct kinfo_proc *kipp);
6061e1b7c6SMikolaj Golub void	procstat_auxv(struct procstat *prstat, struct kinfo_proc *kipp);
612a243b95SBrooks Davis void	procstat_basic(struct procstat *prstat, struct kinfo_proc *kipp);
6266e2f999SMikolaj Golub void	procstat_bin(struct procstat *prstat, struct kinfo_proc *kipp);
63e40d6078SMikolaj Golub void	procstat_cred(struct procstat *prstat, struct kinfo_proc *kipp);
64cee9136cSScott Long void	procstat_cs(struct procstat *prstat, struct kinfo_proc *kipp);
65729e63c3SMikolaj Golub void	procstat_env(struct procstat *prstat, struct kinfo_proc *kipp);
660daf62d9SStanislav Sedov void	procstat_files(struct procstat *prstat, struct kinfo_proc *kipp);
67*28f4cf92SKonstantin Belousov void	procstat_kqueues(struct procstat *prstat, struct kinfo_proc *kipp);
682a243b95SBrooks Davis void	procstat_kstack(struct procstat *prstat, struct kinfo_proc *kipp);
695ac9320dSKonstantin Belousov void	procstat_rlimitusage(struct procstat *procstat,
705ac9320dSKonstantin Belousov 	    struct kinfo_proc *kipp);
71085e0494SKonstantin Belousov void	procstat_pargs(struct procstat *prstat, struct kinfo_proc *kipp);
72085e0494SKonstantin Belousov void	procstat_penv(struct procstat *prstat, struct kinfo_proc *kipp);
732a243b95SBrooks Davis void	procstat_ptlwpinfo(struct procstat *prstat, struct kinfo_proc *kipp);
74085e0494SKonstantin Belousov void	procstat_pwdx(struct procstat *prstat, struct kinfo_proc *kipp);
7521b4f75aSMikolaj Golub void	procstat_rlimit(struct procstat *prstat, struct kinfo_proc *kipp);
76dc0aa067SJohn Baldwin void	procstat_rusage(struct procstat *prstat, struct kinfo_proc *kipp);
7724d57fa8SKonstantin Belousov void	procstat_sigfastblock(struct procstat *procstat,
7824d57fa8SKonstantin Belousov 	    struct kinfo_proc *kipp);
790daf62d9SStanislav Sedov void	procstat_sigs(struct procstat *prstat, struct kinfo_proc *kipp);
80efade150SMikolaj Golub void	procstat_threads(struct procstat *prstat, struct kinfo_proc *kipp);
810daf62d9SStanislav Sedov void	procstat_threads_sigs(struct procstat *prstat, struct kinfo_proc *kipp);
82eee7107cSMikolaj Golub void	procstat_vm(struct procstat *prstat, struct kinfo_proc *kipp);
833d91be41SRobert Watson 
843d91be41SRobert Watson #endif /* !PROCSTAT_H */
85