Ausam/sys/sysd/source/proc.h

Find at most related files.
including files from this version of Unix.

#
/*
 *
 *	This is a program to analyse the contents
 *	of the proc array, found in a dump of memory
 *	after a crash.
 *
 *	P. Ivanov.	UNSW.	14-4-77.
 *
 *	C. McGregor.	UNSW.	Jan-78.
 *
 *	P. Ivanov.	UNSW.	April-78.
 */

#define	UNSW
#define	DZ11
#include <local-system>
#include <defines.h>
#include <param.h>
#include <proc.h>
#include <tty.h>
#include <user.h>
#include <inode.h>
#include <file.h>
#ifdef	AUSAM
#include <passwd.h>
#endif	AUSAM
#ifdef	ZOMBIE
#include <pzomb.h>
#endif	ZOMBIE
#define	NBUF	1
#include <buf.h>
#include <text.h>
struct tty	tty;

#define	NOSTAT	7		/* number of status codes possible */
#define	NOFLAG	8		/* number of flag codes possible */
#define	NOTFLAG	2		/* number of flag codes possible */
#define	NOTTYFLG	16	/* number of stty flag codes */
#define	NOTTYIST	16	/* number of tty internal states */
#define	MAXMEM	024000	/* the real amount of memory on this system */
#define	MINSWAP	15960	/* start of swap area on this system */
#define	MAXSWAP	3990+15960	/* the end of swap on this system */
#define	U_PTAB	"%5t%r"	/* user area indent */
#define	T_PTAB	"%5t%r"	/* text area indent */
#define	S_PTAB	"          %r"	/* stack trace indent */
#define	SS_PTAB	"%50t%r"	/* secondary stack indent - local variables */
#define	Y_PTAB	"     %r"	/* ttydecode indent */
#define	C_PTAB	"          %r"	/* char list decode indent */
#define	DEBUG	if (dflg)
#define	WARNING	if (!wflg)
#define	LINEWIDTH	132	/* line size for line and star */
#define	TAB	"     %r"	/* tab indent */
#define	USERADR	0140000		/* present user start address */
#ifdef	_1170
#define	FULLPAGE	020000
#endif	_1170
#ifdef	BIG_UNIX
#define	PAGEADR	0120000		/* start address of re-mapped page */
#define	KISA5	0172352
#endif

int	coremap[CMAPSIZ];	/* space for core allocation */
int	swapmap[SMAPSIZ];	/* space for swap allocation */

char	*stat[];
char	*flag[NOFLAG];
char	*signals[NSIG+1];
char	*tflag[];

struct	symtab
	{
	char	st_sym[8];
	int	st_sz;
	};
struct symtab	symbols[];

struct	regs {
	int	r_word0;
	int	r_word1;
	int	r_reg[7];
	int	r_kisa6;
#ifdef	BIG_UNIX
	int	r_kisa5;
#endif
	} regs;

struct	symbol {
	char	s_symbol[8];
#ifndef	BIG_UNIX
	int	s_symflg;
#endif
#ifdef	BIG_UNIX
	char	s_symflg;
	char	s_symseg;
#endif
	unsigned s_symval;
	} names;

struct map
	{
	unsigned m_size;
	unsigned m_addr;
	};

#ifdef	BIG_UNIX
#define	MAXSEG	30
int	segbase[MAXSEG];
int	maxseg;
#endif

unsigned	txtoff;

char	wkbuf[512];
int	*regbuf;		/* equivalenced to wkbuf */
int	corefd;
int	namefd;

int	aflg, bflg, cflg, dflg;
int	fflg, gflg;
int	capfflg;
int	iflg;
int	kflg, lflg;
int	nflg;
int	oflg, pflg;
int	sflg, tflg, uflg;
int	wflg, xflg, yflg, zflg;
int	capcflg, capsflg;

/*
 *	flags:
 *	a - dump in ascii
 *	b - dump in bytes
 *	c - dump in chars
 *	C - dump the coremap
 *	d - debugging output flag
 *	f - decode file structure references
 *	F - (capital F) full dump flag
 *	i - decode inode structure references
 *	k - expects ka6 and aps values to be given	(not yet implemented)
 *	l - list all process slots, even unassigned ones
 *	n - give alternate namelist file (default /unix) as last arg
 *	o - dump in octal
 *	p - followed by digits dumps only that process
 *	s - user structure stack trace
 *	S - dump the swap map
 *	t - examine forking trees
 *	u - dump user area, including ka6 if given
 *	w - warnings off  flag
 *	x - dump only text structures
 *	y - dump only tty structures
 *	z - do it all baby (very wordy)
 */

/* other random declarations */

struct {
	int	hiword;
	int	loword;
	};

struct {
	unsigned unsign;
	};

struct symbol	nullnum;