xref: /freebsd/bin/ps/ps.h (revision 1f7d2501824fda6eed4bd2c81b4af3ee052c451a)
14b88c807SRodney W. Grimes /*-
24b88c807SRodney W. Grimes  * Copyright (c) 1990, 1993
34b88c807SRodney W. Grimes  *	The Regents of the University of California.  All rights reserved.
44b88c807SRodney W. Grimes  *
54b88c807SRodney W. Grimes  * Redistribution and use in source and binary forms, with or without
64b88c807SRodney W. Grimes  * modification, are permitted provided that the following conditions
74b88c807SRodney W. Grimes  * are met:
84b88c807SRodney W. Grimes  * 1. Redistributions of source code must retain the above copyright
94b88c807SRodney W. Grimes  *    notice, this list of conditions and the following disclaimer.
104b88c807SRodney W. Grimes  * 2. Redistributions in binary form must reproduce the above copyright
114b88c807SRodney W. Grimes  *    notice, this list of conditions and the following disclaimer in the
124b88c807SRodney W. Grimes  *    documentation and/or other materials provided with the distribution.
134b88c807SRodney W. Grimes  * 3. All advertising materials mentioning features or use of this software
144b88c807SRodney W. Grimes  *    must display the following acknowledgement:
154b88c807SRodney W. Grimes  *	This product includes software developed by the University of
164b88c807SRodney W. Grimes  *	California, Berkeley and its contributors.
174b88c807SRodney W. Grimes  * 4. Neither the name of the University nor the names of its contributors
184b88c807SRodney W. Grimes  *    may be used to endorse or promote products derived from this software
194b88c807SRodney W. Grimes  *    without specific prior written permission.
204b88c807SRodney W. Grimes  *
214b88c807SRodney W. Grimes  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
224b88c807SRodney W. Grimes  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
234b88c807SRodney W. Grimes  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
244b88c807SRodney W. Grimes  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
254b88c807SRodney W. Grimes  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
264b88c807SRodney W. Grimes  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
274b88c807SRodney W. Grimes  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
284b88c807SRodney W. Grimes  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
294b88c807SRodney W. Grimes  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
304b88c807SRodney W. Grimes  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
314b88c807SRodney W. Grimes  * SUCH DAMAGE.
324b88c807SRodney W. Grimes  *
334b88c807SRodney W. Grimes  *	@(#)ps.h	8.1 (Berkeley) 5/31/93
342a456239SPeter Wemm  * $FreeBSD$
354b88c807SRodney W. Grimes  */
364b88c807SRodney W. Grimes 
374b88c807SRodney W. Grimes #define	UNLIMITED	0	/* unlimited terminal width */
383929d518SDoug Rabson enum type { CHAR, UCHAR, SHORT, USHORT, INT, UINT, LONG, ULONG, KPTR };
394b88c807SRodney W. Grimes 
404b88c807SRodney W. Grimes typedef struct kinfo {
411f7d2501SKirk McKusick 	struct kinfo_proc *ki_p;	/* kinfo_proc structure */
424b88c807SRodney W. Grimes 	char *ki_args;		/* exec args */
434b88c807SRodney W. Grimes 	char *ki_env;		/* environment */
441f7d2501SKirk McKusick 	int ki_valid;		/* 1 => uarea stuff valid */
454b88c807SRodney W. Grimes } KINFO;
464b88c807SRodney W. Grimes 
474b88c807SRodney W. Grimes /* Variables. */
484b88c807SRodney W. Grimes typedef struct varent {
494b88c807SRodney W. Grimes 	struct varent *next;
504b88c807SRodney W. Grimes 	struct var *var;
514b88c807SRodney W. Grimes } VARENT;
524b88c807SRodney W. Grimes 
534b88c807SRodney W. Grimes typedef struct var {
544b88c807SRodney W. Grimes 	char	*name;		/* name(s) of variable */
554b88c807SRodney W. Grimes 	char	*header;	/* default header */
564b88c807SRodney W. Grimes 	char	*alias;		/* aliases */
574b88c807SRodney W. Grimes #define	COMM	0x01		/* needs exec arguments and environment (XXX) */
584b88c807SRodney W. Grimes #define	LJUST	0x02		/* left adjust on output (trailing blanks) */
594b88c807SRodney W. Grimes #define	USER	0x04		/* needs user structure */
606a2d726bSJordan K. Hubbard #define	DSIZ	0x08		/* field size is dynamic*/
614b88c807SRodney W. Grimes 	u_int	flag;
624b88c807SRodney W. Grimes 				/* output routine */
634b88c807SRodney W. Grimes 	void	(*oproc) __P((struct kinfo *, struct varent *));
646a2d726bSJordan K. Hubbard 				/* sizing routine*/
656a2d726bSJordan K. Hubbard 	int	(*sproc) __P((struct kinfo *));
664b88c807SRodney W. Grimes 	short	width;		/* printing width */
674b88c807SRodney W. Grimes 	/*
684b88c807SRodney W. Grimes 	 * The following (optional) elements are hooks for passing information
691f7d2501SKirk McKusick 	 * to the generic output routine pvar (which prints simple elements
701f7d2501SKirk McKusick 	 * from the well known kinfo_proc structure).
714b88c807SRodney W. Grimes 	 */
724b88c807SRodney W. Grimes 	int	off;		/* offset in structure */
734b88c807SRodney W. Grimes 	enum	type type;	/* type of element */
744b88c807SRodney W. Grimes 	char	*fmt;		/* printf format */
754b88c807SRodney W. Grimes 	char	*time;		/* time format */
766a2d726bSJordan K. Hubbard 	short	dwidth;		/* dynamic printing width */
774b88c807SRodney W. Grimes 	/*
784b88c807SRodney W. Grimes 	 * glue to link selected fields together
794b88c807SRodney W. Grimes 	 */
804b88c807SRodney W. Grimes } VAR;
814b88c807SRodney W. Grimes 
824b88c807SRodney W. Grimes #include "extern.h"
83