Plan 9 from Bell Labs’s /usr/web/sources/extra/9hist/power/dat.h

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


## diffname power/dat.h 1990/0227
## diff -e /dev/null /n/bootesdump/1990/0227/sys/src/9/mips/dat.h
0a
typedef struct Alarm	Alarm;
typedef struct Blist	Blist;
typedef struct Block	Block;
typedef struct Chan	Chan;
typedef struct Conf	Conf;
typedef struct Dev	Dev;
typedef struct Dirtab	Dirtab;
typedef struct Env	Env;
typedef struct Envp	Envp;
typedef struct Envval	Envval;
typedef struct Error	Error;
typedef struct FPsave	FPsave;
typedef struct Label	Label;
typedef struct List	List;
typedef struct Lock	Lock;
typedef struct Mach	Mach;
typedef struct Mount	Mount;
typedef struct Mtab	Mtab;
typedef struct Note	Note;
typedef struct Orig	Orig;
typedef struct PTE	PTE;
typedef struct Page	Page;
typedef struct Pgrp	Pgrp;
typedef struct Proc	Proc;
typedef struct QLock	QLock;
typedef struct Qinfo	Qinfo;
typedef struct Queue	Queue;
typedef struct Stream	Stream;
typedef struct Ref	Ref;
typedef struct Rendez	Rendez;
typedef struct Seg	Seg;
typedef struct Ureg	Ureg;
typedef struct User	User;

typedef int Devgen(Chan*, Dirtab*, int, int, Dir*);

struct List
{
	void	*next;
};

struct Lock
{
	ulong	*sbsem;			/* addr of sync bus semaphore */
	ulong	pc;
};

struct Ref
{
	Lock;
	int	ref;
};

struct QLock
{
	Proc	*head;			/* next process waiting for object */
	Proc	*tail;			/* last process waiting for object */
	Lock	use;			/* to use object */
	Lock	queue;			/* to access list */
};

struct Label
{
	ulong	pc;
	ulong	sp;
};

struct Alarm
{
	List;
	Lock;
	int	busy;
	long	dt;		/* may underflow in clock(); must be signed */
	void	(*f)(void*);
	void	*arg;
};

#define	CHDIR	0x80000000L
#define	QPATH	0x0000FFFFL
struct Chan
{
	QLock;				/* general access */
	Ref;
	union{
		Chan	*next;		/* allocation */
		ulong	offset;		/* in file */
	};
	ushort	type;
	ushort	dev;
	ushort	mode;			/* read/write */
	ushort	flag;
	ulong	qid;
	Mount	*mnt;			/* mount point that derived Chan */
	ulong	mountid;
	int	fid;			/* for devmnt */
	Stream	*stream;		/* for stream channels */
};

struct	FPsave
{
	long	fpreg[32];
	long	fpstatus;
};

struct Conf
{
	int	nmach;		/* processors */
	int	nproc;		/* processes */
	int	npgrp;		/* process groups */
	ulong	npage;		/* total physical pages of memory */
	ulong	norig;		/* origins */
	ulong	npte;		/* contiguous page table entries */
	ulong	nmod;		/* single (modifying) page table entries */
	int	nalarm;		/* alarms */
	int	nchan;		/* channels */
	int	nenv;		/* distinct environment values */
	int	nenvchar;	/* environment text storage */
	int	npgenv;		/* environment files per process group */
	int	nmtab;		/* mounted-upon channels per process group */
	int	nmount;		/* mounts */
	int	nmntdev;	/* mounted devices (devmnt.c) */
	int	nmntbuf;	/* buffers for devmnt.c messages */
	int	nmnthdr;	/* headers for devmnt.c messages */
	int	nstream;	/* streams */
	int	nqueue;		/* stream queues */
	int	nblock;		/* stream blocks */
	int	nsrv;		/* public servers (devsrv.c) */
};

struct Dev
{
	void	 (*reset)(void);
	void	 (*init)(void);
	Chan	*(*attach)(char*);
	Chan	*(*clone)(Chan*, Chan*);
	int	 (*walk)(Chan*, char*);
	void	 (*stat)(Chan*, char*);
	Chan	*(*open)(Chan*, int);
	void	 (*create)(Chan*, char*, int, ulong);
	void	 (*close)(Chan*);
	long	 (*read)(Chan*, void*, long);
	long	 (*write)(Chan*, void*, long);
	void	 (*remove)(Chan*);
	void	 (*wstat)(Chan*, char*);
	void	 (*errstr)(Error*, char*);
	void	 (*userstr)(Error*, char*);
};

struct Dirtab
{
	char	name[NAMELEN];
	long	qid;
	long	length;
	long	perm;
};

struct Env
{
	Lock;
	Envval	*val;
	char	name[NAMELEN];
	Env	*next;			/* in chain of Envs for a pgrp */
	int	pgref;			/* # pgrps pointing here */
};

struct Envp
{
	Env	*env;
	int	chref;			/* # chans from pgrp pointing here */
};

struct Mach
{
	int	machno;			/* physical id of processor */
	int	mmask;			/* 1<<m->machno */
	ulong	ticks;			/* of the clock since boot time */
	Proc	*proc;			/* current process on this processor */
	Label	sched;			/* scheduler wakeup */
	Lock	alarmlock;		/* access to alarm list */
	void	*alarm;			/* alarms bound to this clock */
	void	(*intr)(ulong);		/* pending interrupt */
	Proc	*intrp;			/* process that was interrupted */
	ulong	cause;			/* arg to intr */
	char	pidhere[NTLBPID];	/* is this pid possibly in this mmu? */
	int	lastpid;		/* last pid allocated on this machine */
	Proc	*pidproc[NTLBPID];	/* process that owns this tlbpid on this mach */
	int	stack[1];
};

struct Mount
{
	Ref;				/* also used as a lock when playing lists */
	short	term;			/* terminates list */
	ulong	mountid;
	Mount	*next;
	Chan	*c;			/* channel replacing underlying channel */
};

struct Mtab
{
	Chan	*c;			/* channel mounted upon */
	Mount	*mnt;			/* what's mounted upon it */
};

enum{
	NUser,				/* note provided externally */
	NExit,				/* process should exit */
	NDebug,				/* process should hang */
};

struct Note
{
	char	msg[ERRLEN];
	int	flag;			/* whether system posted it */
};

struct Orig
{
	Lock;
	Orig	*next;			/* for allocation */
	ushort	nproc;			/* processes using it */
	ushort	npage;			/* sum of refs of pages in it */
	ushort	flag;
	ulong	va;			/* va of 0th pte */
	ulong	npte;			/* #pte's in list */
	PTE	*pte;
	Chan	*chan;			/* channel deriving segment (if open) */
	ushort	type;			/* of channel (which could be non-open) */
	ushort	dev;
	ulong	qid;
	ulong	minca;			/* base of region in chan */
	ulong	maxca;			/* end of region in chan */
};

struct Page
{
	Orig	*o;			/* origin of segment owning page */
	ulong	va;			/* virtual address */
	ulong	pa;			/* physical address */
	ushort	ref;
	Page	*next;
	Page	*prev;
};

struct Pgrp
{
	Ref;				/* also used as a lock when mounting */
	Pgrp	*next;
	ulong	pgrpid;
	char	user[NAMELEN];
	int	nmtab;			/* highest active mount table entry, +1 */
	int	nenv;			/* highest active env table entry, +1 */
	Mtab	*mtab;
	Envp	*etab;
};

struct PTE
{
	Proc	*proc;			/* process owning this PTE (0 in Orig) */
	PTE	*nextmod;		/* next at this va */
	PTE	*nextva;		/* next in this proc at higher va */
	Page	*page;
};

struct Rendez
{
	Lock;
	Proc	*p;
};

struct Seg
{
	Proc	*proc;			/* process owning this segment */
	Orig	*o;			/* root list of pte's */
	ulong	minva;			/* va of 0th pte (not necessarily Seg->o->va) */
	ulong	maxva;			/* va of last pte */
	PTE	*mod;			/* list of modified pte's */
	ulong	pad[3]; /**/
};

struct Proc
{
	Label	sched;
	Mach	*mach;			/* machine running this proc */
	char	text[NAMELEN];
	Proc	*rnext;			/* next process in run queue */
	Proc	*qnext;			/* next process on queue for a QLock */
	int	state;
	short	pidonmach[MAXMACH];	/* TLB pid on each mmu */
	Page	*upage;			/* BUG: should be unlinked from page list */
	Seg	seg[NSEG];
	ulong	pid;
	int	nchild;
	QLock	wait;			/* exiting children to be waited for */
	Waitmsg	*waitmsg;
	Proc	*child;
	Proc	*parent;
	Pgrp	*pgrp;
	ulong	parentpid;
	ulong	time[6];		/* User, Sys, Real; child U, S, R */
	short	exiting;
	short	insyscall;
	int	fpstate;
	Lock	debug;			/* to access debugging elements of User */
	Rendez	*r;			/* rendezvous point slept on */
	Rendez	sleep;			/* place for tsleep and syssleep */
	int	wokeup;			/* whether sleep was interrupted */
	ulong	pc;			/* DEBUG only */

};

#define	NERR	15
#define	NFD	100
#define	NNOTE	5
struct User
{
	Proc	*p;
	Label	errlab[NERR];
	int	nerrlab;
	Error	error;
	FPsave	fpsave;			/* address of this is known by vdb */
	char	elem[NAMELEN];		/* last name element from namec */
	Chan	*slash;
	Chan	*dot;
	Chan	*fd[NFD];
	int	maxfd;			/* highest fd in use */
	/*
	 * Rest of structure controlled by devproc.c and friends.
	 * lock(&p->debug) to modify.
	 */
	Note	note[NNOTE];
	short	nnote;
	short	notified;		/* sysnoted is due */
	int	(*notify)(void*, char*);
	void	*ureg;
};

/*
 *  operations available to a queue
 */
struct Qinfo
{
	void (*iput)(Queue*, Block*);	/* input routine */
	void (*oput)(Queue*, Block*);	/* output routine */
	void (*open)(Queue*, Stream*);
	void (*close)(Queue*);
	char *name;
};

/*
 *  We reference lance buffers via descriptors kept in host memory
 */
struct Block
{
	Block	*next;
	uchar	*rptr;		/* first unconsumed byte */
	uchar	*wptr;		/* first empty byte */
	uchar	*lim;		/* 1 past the end of the buffer */
	uchar	*base;		/* start of the buffer */
	uchar	flags;
	uchar	type;
};

/* flag bits */
#define S_DELIM 0x80
#define S_CLASS 0x07

/* type values */
#define M_DATA 0
#define M_CTL 1
#define M_HANGUP 2

/*
 *  a list of blocks
 */
struct Blist {
	Lock;
	Block	*first;		/* first data block */
	Block	*last;		/* last data block */
	long	len;		/* length of list in bytes */
};

/*
 *  a queue of blocks
 */
struct Queue {
	Blist;
	int	flag;
	Qinfo	*info;		/* line discipline definition */
	Queue	*other;		/* opposite direction, same line discipline */
	Queue	*next;		/* next queue in the stream */
	void	(*put)(Queue*, Block*);
	Rendez	r;
	void	*ptr;		/* private info for the queue */
};
#define QHUNGUP	0x1	/* flag bit meaning the stream has been hung up */
#define QINUSE	0x2
#define QHIWAT	0x4	/* queue has gone past the high water mark */	

/*
 *  a stream head
 */
struct Stream {
	Lock;			/* structure lock */
	int	inuse;		/* use count */
	int	type;		/* correclation with Chan */
	int	dev;		/* ... */
	int	id;		/* ... */
	QLock	rdlock;		/* read lock */
	QLock	wrlock;		/* write lock */
	Queue	*procq;		/* write queue at process end */
	Queue	*devq;		/* read queue at device end */
	char	tag[32];	/* when reading the tag qid */
};
#define	RD(q)		((q)->other < (q) ? (q->other) : q)
#define	WR(q)		((q)->other > (q) ? (q->other) : q)
#define GLOBAL(a)	(((ulong)(a)) & 0x80000000)
#define STREAMTYPE(x)	((x)&0x1f)
#define STREAMID(x)	(((x)&~CHDIR)>>5)
#define STREAMQID(i,t)	(((i)<<5)|(t))
#define PUTNEXT(q,b)	(*(q)->next->put)((q)->next, bp)

/*
 *  stream file qid's & high water mark
 */
enum {
	Shighqid = STREAMQID(1,0) - 1,
	Sdataqid = Shighqid,
	Sctlqid = Sdataqid-1,
	Slowqid = Sctlqid,
	Streamhi= (32*1024),	/* stream high water mark */
};

#define	PRINTSIZE	256
struct
{
	Lock;
	short	machs;
	short	exiting;
}active;

extern register	Mach	*m;
extern register	User	*u;

/*
 * Process states
 */
enum
{
	Dead = 0,
	Moribund,
	Zombie,
	Ready,
	Scheding,
	Running,
	Queueing,
	MMUing,
	Exiting,
	Inwait,
	Wakeme,
	Broken,
};
extern	char	*statename[];

/*
 * Chan flags
 */
#define	COPEN	1	/* for i/o */
#define	CMOUNT	2	/* is result of a mount/bind */
#define	CCREATE	4	/* permits creation if CMOUNT */

/*
 * Proc.time
 */
enum
{
	TUser,
	TSys,
	TReal,
	TCUser,
	TCSys,
	TCReal,
};

/*
 * floating point registers
 */
enum
{
	FPinit,
	FPactive,
	FPinactive,
};

/*
 * Memory management
 */
#define	SSEG	0
#define	TSEG	1
#define	DSEG	2
#define	BSEG	3
#define	ESEG	4	/* used by exec to build new stack */

#define	OWRPERM	0x01	/* write permission */
#define	OPURE	0x02	/* original data mustn't be written */
#define	OCACHED	0x04	/* cached; don't discard on exit */

/*
 * Access types in namec
 */
enum
{
	Aaccess,	/* as in access, stat */
	Atodir,		/* as in chdir */
	Aopen,		/* for i/o */
	Amount,		/* to be mounted upon */
	Acreate,	/* file is to be created */
};

#define	NUMSIZE	12		/* size of formatted number */

#define	MACHP(n)	((Mach *)(MACHADDR+n*BY2PG))

extern	Conf	conf;
extern	ulong	initcode[];
extern	Dev	devtab[];
extern	char	devchar[];
extern	FPsave	initfp;
.
## diffname power/dat.h 1990/0303
## diff -e /n/bootesdump/1990/0227/sys/src/9/mips/dat.h /n/bootesdump/1990/0303/sys/src/9/mips/dat.h
230a
	Chan	*mchan;
	ulong	mqid;
.
229d
96a
	Chan	*mchan;			/* channel to mounted server */
	ulong	mqid;			/* qid of root of mount point */
.
## diffname power/dat.h 1990/0306
## diff -e /n/bootesdump/1990/0303/sys/src/9/mips/dat.h /n/bootesdump/1990/0306/sys/src/9/mips/dat.h
329a
	/*
	 * I/O point for bit interface.  This is the easiest way to allocate
	 * them, but not the prettiest or most general.
	 */
	Bitmsg	bit;
.
77a
struct Bitmsg
{
	ulong	cmd;
	ulong	addr;
	ulong	count;
};

.
1a
typedef struct Bitmsg	Bitmsg;
.
## diffname power/dat.h 1990/03081
## diff -e /n/bootesdump/1990/0306/sys/src/9/mips/dat.h /n/bootesdump/1990/03081/sys/src/9/mips/dat.h
303a
	Lock	kidlock;		/* access to kid and sib */
	Proc	*pop;			/* some ascendant */
	Proc	*kid;			/* some descendant */
	Proc	*sib;			/* non-ascendant relatives (circular list) */
.
83a
	ulong	rcount;
.
## diffname power/dat.h 1990/03091
## diff -e /n/bootesdump/1990/03081/sys/src/9/mips/dat.h /n/bootesdump/1990/03091/sys/src/9/mips/dat.h
32a
typedef struct Stream	Stream;
.
29d
## diffname power/dat.h 1990/0312
## diff -e /n/bootesdump/1990/03091/sys/src/9/mips/dat.h /n/bootesdump/1990/0312/sys/src/9/mips/dat.h
442c
#define PUTNEXT(q,b)	(*(q)->next->put)((q)->next, b)
#define BLEN(b)		((b)->wptr - (b)->rptr)
.
244a
int nmod;
.
## diffname power/dat.h 1990/0322
## diff -e /n/bootesdump/1990/0312/sys/src/9/mips/dat.h /n/bootesdump/1990/0322/sys/src/9/mips/dat.h
454c
	Streamhi= (9*1024),	/* stream high water mark */
.
310,311c
	Rendez	exit;			/* child sleeps; parent wakes up */
.
59,60c
	int	locked;			/* flag; is locked */
.
56a
	Lock;				/* to use object */
.
## diffname power/dat.h 1990/0324
## diff -e /n/bootesdump/1990/0322/sys/src/9/mips/dat.h /n/bootesdump/1990/0324/sys/src/9/mips/dat.h
347c
	Bit3msg	bit3;
.
344c
	 * I/O point for bit3 interface.  This is the easiest way to allocate
.
310c
	int	nchild;
	QLock	wait;			/* exiting children to be waited for */
.
79c
struct Bit3msg
.
60c
	Lock	use;			/* to use object */
	Lock	queue;			/* to access list */
.
57d
2c
typedef struct Bit3msg	Bit3msg;
.
## diffname power/dat.h 1990/0331
## diff -e /n/bootesdump/1990/0324/sys/src/9/mips/dat.h /n/bootesdump/1990/0331/sys/src/9/mips/dat.h
427a
	int	hread;		/* number of reads after hangup */
.
## diffname power/dat.h 1990/0403
## diff -e /n/bootesdump/1990/0331/sys/src/9/mips/dat.h /n/bootesdump/1990/0403/sys/src/9/mips/dat.h
455c
	Streamhi= (9*1024),	/* byte count high water mark */
	Streambhi= 16,		/* block count high water mark */
.
445a
#define QFULL(q)	((q)->flag & QHIWAT)
#define FLOWCTL(q)	{ if(QFULL(q)) flowctl(q); }
.
409a
	int	nb;		/* number of blocks in queue */
.
## diffname power/dat.h 1990/0406
## diff -e /n/bootesdump/1990/0403/sys/src/9/mips/dat.h /n/bootesdump/1990/0406/sys/src/9/mips/dat.h
458c
	Streamhi= (17*1024),	/* byte count high water mark */
.
448c
#define FLOWCTL(q)	{ if(QFULL(q->next)) flowctl(q); }
.
410d
402a
	int	nb;		/* number of blocks in list */
.
## diffname power/dat.h 1990/0504
## diff -e /n/bootesdump/1990/0406/sys/src/9/mips/dat.h /n/bootesdump/1990/0504/sys/src/9/mips/dat.h
125,138c
	ulong	nalarm;		/* alarms */
	ulong	nchan;		/* channels */
	ulong	nenv;		/* distinct environment values */
	ulong	nenvchar;	/* environment text storage */
	ulong	npgenv;		/* environment files per process group */
	ulong	nmtab;		/* mounted-upon channels per process group */
	ulong	nmount;		/* mounts */
	ulong	nmntdev;	/* mounted devices (devmnt.c) */
	ulong	nmntbuf;	/* buffers for devmnt.c messages */
	ulong	nmnthdr;	/* headers for devmnt.c messages */
	ulong	nstream;	/* streams */
	ulong	nqueue;		/* stream queues */
	ulong	nblock;		/* stream blocks */
	ulong	nsrv;		/* public servers (devsrv.c) */
.
118,120c
	ulong	nmach;		/* processors */
	ulong	nproc;		/* processes */
	ulong	npgrp;		/* process groups */
.
## diffname power/dat.h 1990/0608
## diff -e /n/bootesdump/1990/0504/sys/src/9/mips/dat.h /n/bootesdump/1990/0608/sys/src/9/mips/dat.h
348c
	Bit3msg	kbit3;
	Bit3msg	ubit3;
.
## diffname power/dat.h 1990/0614
## diff -e /n/bootesdump/1990/0608/sys/src/9/mips/dat.h /n/bootesdump/1990/0614/sys/src/9/mips/dat.h
359a

/*
 * Fake kmap
 */
typedef void		KMap;
#define	VA(k)		((ulong)(k))
#define	kmap(p)		(KMap*)(p->pa|KZERO)
#define	kunmap(k)
.
120a
	ulong	npage0;		/* total physical pages of memory */
.
## diffname power/dat.h 1990/0617
## diff -e /n/bootesdump/1990/0614/sys/src/9/mips/dat.h /n/bootesdump/1990/0617/sys/src/9/mips/dat.h
313c
	ulong	waitmsg;
.
## diffname power/dat.h 1990/0629
## diff -e /n/bootesdump/1990/0617/sys/src/9/mips/dat.h /n/bootesdump/1990/0629/sys/src/9/mips/dat.h
469a
};

/*
 *  nonet constants
 */
enum {
	Nnomsg = 128,		/* max number of outstanding messages */
	Nnocalls = 5,		/* maximum queued incoming calls */
};

/*
 *  generic nonet header
 */
struct Nohdr {
	uchar	circuit[3];	/* circuit number */
	uchar	flag;
	uchar	mid;		/* message id */
	uchar	ack;		/* piggy back ack */
	uchar	remain[2];	/* count of remaing bytes of data */
	uchar	sum[2];		/* checksum (0 means none) */
};
#define HDRSIZE 10
#define NEWCALL	0x1		/* flag bit marking a new circuit */
#define HANGUP 0x2		/* flag bit requesting hangup */
#define ACKME 0x4		/* acknowledge this message */

/*
 *  a buffer describing a nonet message
 */
struct Nomsg {
	QLock;
	Blist;
	int	mid;		/* sequence number */
	int	rem;		/* remaining */
	long	time;
	int	acked;
};

/*
 *  one exists for each Nonet conversation.
 */
struct Noconv {
	QLock;

	Queue	*rq;		/* input queue */
	int	version;	/* incremented each time struct is changed */
	int	state;		/* true if listening */

	Nomsg	in[Nnomsg];	/* messages being received */
	int	rcvcircuit;	/* circuit number of incoming packets */

	uchar	ack[Nnomsg];	/* acknowledgements waiting to be sent */
	long	atime[Nnomsg];
	int	afirst;
	int	anext;

	QLock	xlock;		/* one trasmitter at a time */
	Rendez	r;		/* process waiting for an output mid */
	Nomsg	ctl;		/* for control messages */
	Nomsg	out[Nnomsg];	/* messages being sent */
	int	first;		/* first unacknowledged message */
	int	next;		/* next message buffer to use */
	int	lastacked;	/* last message acked */		
	Block	*media;		/* prototype media output header */
	Nohdr	*hdr;		/* nonet header inside of media header */

	Noifc	*ifc;
	int	kstarted;
	char	raddr[64];	/* remote address */
	int	rexmit;		/* statistics */
	int	retry;
	int	bad;
	int	sent;
	int	rcvd;
};

/*
 *  an incoming call
 */
struct Nocall {
	Block	*msg;
	char	raddr[64];
	long	circuit;
};

/*
 *  a nonet interface.  one exists for every stream that a 
 *  nonet multiplexor is pushed onto.
 */
struct Noifc {
	Lock;
	int	ref;
	char	name[64];	/* interface name */		
	Queue	*wq;		/* interface output queue */
	Noconv	*conv;

	/*
	 *  media dependent
	 */
	int	maxtu;		/* maximum transfer unit */
	int	mintu;		/* minimum transfer unit */
	int	hsize;		/* media header size */
	void	(*connect)(Noconv *, char *);

	/*
	 *  calls and listeners
	 */
	QLock	listenl;
	Rendez	listenr;
	Lock	lock;
	Nocall	call[Nnocalls];
	int	rptr;
	int	wptr;
.
447d
438c
	int	inuse;		/* number of processes in stream */
	int	opens;		/* number of processes with stream open */
.
139a
	ulong	nnoifc;		/* number of nonet interfaces */
	ulong	nnoconv;	/* number of nonet conversations/ifc */
.
20a
typedef struct Nomsg	Nomsg;
typedef struct Nocall	Nocall;
.
19a
typedef struct Noconv	Noconv;
typedef struct Nohdr	Nohdr;
typedef struct Noifc	Noifc;
.
## diffname power/dat.h 1990/0704
## diff -e /n/bootesdump/1990/0629/sys/src/9/mips/dat.h /n/bootesdump/1990/0704/sys/src/9/mips/dat.h
569c
	char	name[NAMELEN];	/* interface name */		
.
558c
	char	raddr[NAMELEN];
.
545c
	char	raddr[NAMELEN];	/* remote address */
	char	ruser[NAMELEN];	/* remote user */
	char	addr[NAMELEN];	/* local address */
.
498,501c
#define NO_HDRSIZE 10
#define NO_NEWCALL	0x1	/* flag bit marking a new circuit */
#define NO_HANGUP	0x2	/* flag bit requesting hangup */
#define NO_ACKME	0x4	/* acknowledge this message */
#define NO_SERVICE	0x8	/* message includes a service name */
.
## diffname power/dat.h 1990/0705
## diff -e /n/bootesdump/1990/0704/sys/src/9/mips/dat.h /n/bootesdump/1990/0705/sys/src/9/mips/dat.h
521a
	Stream	*s;
.
## diffname power/dat.h 1990/0717
## diff -e /n/bootesdump/1990/0705/sys/src/9/mips/dat.h /n/bootesdump/1990/0717/sys/src/9/mips/dat.h
146a
	ulong	nurp;		/* max urp conversations */
.
## diffname power/dat.h 1990/0718
## diff -e /n/bootesdump/1990/0717/sys/src/9/mips/dat.h /n/bootesdump/1990/0718/sys/src/9/mips/dat.h
691a

/*
 *  kernel based system log, passed between crashes
 */
#define SYSLOG		((Syslog *)(0x80001B00))
#define SYSLOGMAGIC	0x12345678
struct Syslog
{
	ulong	magic;
	char	*next;
	char	buf[16*1024];
};
.
39a
typedef struct Syslog	Syslog;
.
## diffname power/dat.h 1990/0720
## diff -e /n/bootesdump/1990/0718/sys/src/9/mips/dat.h /n/bootesdump/1990/0720/sys/src/9/mips/dat.h
703c
	char	buf[8*1024];
.
697,698c
#define SYSLOG		((Syslog *)(0xa0001B00))
#define SYSLOGMAGIC	0x87654321
.
## diffname power/dat.h 1990/0721
## diff -e /n/bootesdump/1990/0720/sys/src/9/mips/dat.h /n/bootesdump/1990/0721/sys/src/9/mips/dat.h
440a
#define QDEBUG	0x8
.
## diffname power/dat.h 1990/0731
## diff -e /n/bootesdump/1990/0721/sys/src/9/mips/dat.h /n/bootesdump/1990/0731/sys/src/9/mips/dat.h
204a
	ulong	pc;			/* pc that was interrupted */
.
202c
	void	(*intr)(ulong, ulong);	/* pending interrupt */
.
## diffname power/dat.h 1990/0801
## diff -e /n/bootesdump/1990/0731/sys/src/9/mips/dat.h /n/bootesdump/1990/0801/sys/src/9/mips/dat.h
550d
541a
	QLock	mlock;		/* lock for out */
.
535d
517a
	int	inuse;
.
513a
	Rendez	r;
.
512d
## diffname power/dat.h 1990/08141
## diff -e /n/bootesdump/1990/0801/sys/src/9/mips/dat.h /n/bootesdump/1990/08141/sys/src/9/mips/dat.h
636a
#define	CCEXEC	8	/* close on exec */
.
## diffname power/dat.h 1990/08163
## diff -e /n/bootesdump/1990/08141/sys/src/9/mips/dat.h /n/bootesdump/1990/08163/sys/src/9/mips/dat.h
659c
	FPdirty,
.
## diffname power/dat.h 1990/0820
## diff -e /n/bootesdump/1990/08163/sys/src/9/mips/dat.h /n/bootesdump/1990/0820/sys/src/9/mips/dat.h
659c
	FPinactive,
.
## diffname power/dat.h 1990/0905
## diff -e /n/bootesdump/1990/0820/sys/src/9/mips/dat.h /n/bootesdump/1990/0905/sys/src/9/mips/dat.h
480c
	Streambhi= 32,		/* block count high water mark */
.
## diffname power/dat.h 1990/0907
## diff -e /n/bootesdump/1990/0905/sys/src/9/mips/dat.h /n/bootesdump/1990/0907/sys/src/9/mips/dat.h
637a
#define	CFREE	16	/* not in use */
.
## diffname power/dat.h 1990/0911
## diff -e /n/bootesdump/1990/0907/sys/src/9/mips/dat.h /n/bootesdump/1990/0911/sys/src/9/mips/dat.h
389a
	void (*reset)(void);
	Qinfo *next;
.
## diffname power/dat.h 1990/0912
## diff -e /n/bootesdump/1990/0911/sys/src/9/mips/dat.h /n/bootesdump/1990/0912/sys/src/9/mips/dat.h
700,710d
40d
## diffname power/dat.h 1990/1002
## diff -e /n/bootesdump/1990/0912/sys/src/9/mips/dat.h /n/bootesdump/1990/1002/sys/src/9/mips/dat.h
110c
	union{
		Stream	*stream;	/* for stream channels */
		void	*aux;
	};
.
## diffname power/dat.h 1990/1009
## diff -e /n/bootesdump/1990/1002/sys/src/9/mips/dat.h /n/bootesdump/1990/1009/sys/src/9/mips/dat.h
460d
453,458c
	short	inuse;		/* number of processes in stream */
	short	opens;		/* number of processes with stream open */
	ushort	hread;		/* number of reads after hangup */
	ushort	type;		/* correlation with Chan */
	ushort	dev;		/* ... */
	ushort	id;		/* ... */
.
150a
	ulong	nasync;		/* number of async protocol modules */
	ulong	npipe;		/* number of pipes */
.
## diffname power/dat.h 1990/1018
## diff -e /n/bootesdump/1990/1009/sys/src/9/mips/dat.h /n/bootesdump/1990/1018/sys/src/9/mips/dat.h
441a
	QLock	rlock;		/* mutex for r */
.
177c
	ulong	qid;
.
12d
## diffname power/dat.h 1990/1110
## diff -e /n/bootesdump/1990/1018/sys/src/9/mips/dat.h /n/bootesdump/1990/1110/sys/src/9/mips/dat.h
279a
	Lock	debug;			/* single access via devproc.c */
.
275a
	int	index;			/* index in pgrp table */
.
111a
		ulong	pgrpid;		/* for #p/notepg */
.
## diffname power/dat.h 1990/11161
## diff -e /n/bootesdump/1990/1110/sys/src/9/mips/dat.h /n/bootesdump/1990/11161/sys/src/9/mips/dat.h
457c
	QLock;			/* structure lock */
.
## diffname power/dat.h 1990/11211
## diff -e /n/bootesdump/1990/11161/sys/src/9/mips/dat.h /n/bootesdump/1990/11211/sys/src/9/mips/dat.h
637a

extern	char	user[NAMELEN];
extern	char	*errstrtab[];
.
354c
	char	error[ERRLEN];
.
260d
257c
	Qid	mqid;
.
255c
	Qid	qid;
.
177c
	Qid	qid;
.
170,171d
115c
	Qid	mqid;			/* qid of root of mount point */
.
112c
		Qid	pgrpid;		/* for #p/notepg */
.
105c
	Qid	qid;
.
## diffname power/dat.h 1990/1122
## diff -e /n/bootesdump/1990/11211/sys/src/9/mips/dat.h /n/bootesdump/1990/1122/sys/src/9/mips/dat.h
92d
## diffname power/dat.h 1990/1124
## diff -e /n/bootesdump/1990/1122/sys/src/9/mips/dat.h /n/bootesdump/1990/1124/sys/src/9/mips/dat.h
342c
#define	NERR	20
.
319,322d
## diffname power/dat.h 1990/1211
## diff -e /n/bootesdump/1990/1124/sys/src/9/mips/dat.h /n/bootesdump/1990/1211/sys/src/9/mips/dat.h
700a
/*
 *  parameters for sysproc.c
 */
#define AOUT_MAGIC	V_MAGIC
#define ENTRYOFFSET	(-4)
.
317a
	ulong	bssend;			/* initial top of bss seg */
.
151a
	ulong	maxialloc;	/* maximum bytes used by ialloc */
	ulong	base0;		/* base of bank 0 */
	ulong	base1;		/* base of bank 1 */
.
## diffname power/dat.h 1990/1212
## diff -e /n/bootesdump/1990/1211/sys/src/9/mips/dat.h /n/bootesdump/1990/1212/sys/src/9/mips/dat.h
441c
	Rendez	r;		/* standard place to wait for flow control */
	Rendez	*rp;		/* where flow control wakeups go to */
.
380a
#define PPN(x)		x
.
338a
	int	kp;			/* true if kernel process */
.
154a
	ulong	copymode;	/* 0 is copy on write, 1 is copy on reference */
.
## diffname power/dat.h 1990/1226
## diff -e /n/bootesdump/1990/1212/sys/src/9/mips/dat.h /n/bootesdump/1990/1226/sys/src/9/mips/dat.h
713d
## diffname power/dat.h 1990/1228
## diff -e /n/bootesdump/1990/1226/sys/src/9/mips/dat.h /n/bootesdump/1990/1228/sys/src/9/mips/dat.h
488a
};

/*
 *  Ethernet packet buffers.
 */
struct Etherpkt {
	uchar d[6];
	uchar s[6];
	uchar type[2];
	uchar data[1500];
	uchar crc[4];
.
410a
	ulong	va;		/* virtual address if mapped for a dev */
.
11a
typedef struct Etherpkt	Etherpkt;
.
## diffname power/dat.h 1990/1231
## diff -e /n/bootesdump/1990/1228/sys/src/9/mips/dat.h /n/bootesdump/1990/1231/sys/src/9/mips/dat.h
618a
};

/*
 *  system dependent lance stuff
 *  filled by lancesetup() 
 */
struct Lance
{
	ushort	lognrrb;	/* log2 number of receive ring buffers */
	ushort	logntrb;	/* log2 number of xmit ring buffers */
	ushort	nrrb;		/* number of receive ring buffers */
	ushort	ntrb;		/* number of xmit ring buffers */
	ushort	*rap;		/* lance address register */
	ushort	*rdp;		/* lance data register */
	uchar	ea[6];		/* our ether addr */
	int	sep;		/* separation between shorts in lance ram
				    as seen by host */
	ushort	*lanceram;	/* start of lance ram as seen by host */
	Lancemem *lm;		/* start of lance ram as seen by lance */
	Etherpkt *rp;		/* receive buffers (host address) */
	Etherpkt *tp;		/* transmit buffers (host address) */
	Etherpkt *lrp;		/* receive buffers (lance address) */
	Etherpkt *ltp;		/* transmit buffers (lance address) */
.
562a
	Nomsg	ackmsg;		/* for acknowledge messages */
.
13a
typedef struct Lance	Lance;
typedef struct Lancemem	Lancemem;
.
## diffname power/dat.h 1991/0102
## diff -e /n/bootesdump/1990/1231/sys/src/9/mips/dat.h /n/bootesdump/1991/0102/sys/src/9/mips/dat.h
564,565d
## diffname power/dat.h 1991/0109
## diff -e /n/bootesdump/1991/0102/sys/src/9/mips/dat.h /n/bootesdump/1991/0109/sys/src/9/mips/dat.h
633a
	ushort	busctl;		/* bus control bits */
.
622a
 *  LANCE CSR3 (bus control bits)
 */
#define BSWP	0x4
#define ACON	0x2
#define BCON	0x1

/*
.
329c
	Waitmsg	waitmsg;		/* this is large but must be addressable */
.
## diffname power/dat.h 1991/0118
## diff -e /n/bootesdump/1991/0109/sys/src/9/mips/dat.h /n/bootesdump/1991/0118/sys/src/9/mips/dat.h
539c
	ulong	time;
.
## diffname power/dat.h 1991/0119
## diff -e /n/bootesdump/1991/0118/sys/src/9/mips/dat.h /n/bootesdump/1991/0119/sys/src/9/mips/dat.h
530c
#define NO_RESET	0x10	/* reset the connection */
.
## diffname power/dat.h 1991/0206
## diff -e /n/bootesdump/1991/0201/sys/src/9/mips/dat.h /n/bootesdump/1991/0206/sys/src/9/power/dat.h
564c
	QLock	mlock;		/* lock for allocating out messages */
.
536d
## diffname power/dat.h 1991/0209
## diff -e /n/bootesdump/1991/0206/sys/src/9/power/dat.h /n/bootesdump/1991/0209/sys/src/9/power/dat.h
366,367c
	union{
		Bit3msg	kbit3;
		Hotmsg	khot;
	};
	union{
		Bit3msg	ubit3;
		Hotmsg	uhot;
	};
.
363c
	 * I/O point for bit3 and hotrod interfaces.
	 * This is the easiest way to allocate
.
210,213d
93a
struct Hotmsg
{
	ulong	cmd;
	ulong	param[5];
};

.
13a
typedef struct Hotmsg	Hotmsg;
.
## diffname power/dat.h 1991/0212
## diff -e /n/bootesdump/1991/0209/sys/src/9/power/dat.h /n/bootesdump/1991/0212/sys/src/9/power/dat.h
288c
	QLock	debug;			/* single access via devproc.c */
.
## diffname power/dat.h 1991/0306
## diff -e /n/bootesdump/1991/0212/sys/src/9/power/dat.h /n/bootesdump/1991/0306/sys/src/9/power/dat.h
376a
	};
	union{				/* special location for Tflush */
		Bit3msg	fbit3;
		Hotmsg	fhot;
.
374c
	union{				/* for i/o from user */
.
370c
	union{				/* for i/o from kernel */
.
301,306d
98a
	Rendez	r;
	short	intr;			/* flag: interrupt has occurred */
	short	abort;			/* flag: don't interrupt */
.
70a
struct Rendez
{
	Lock;
	Proc	*p;
};

.
## diffname power/dat.h 1991/0318
## diff -e /n/bootesdump/1991/0306/sys/src/9/power/dat.h /n/bootesdump/1991/0318/sys/src/9/power/dat.h
521a
#define	ETHERMINMTU	60	/* minimum transmit size */
.
## diffname power/dat.h 1991/0328
## diff -e /n/bootesdump/1991/0318/sys/src/9/power/dat.h /n/bootesdump/1991/0328/sys/src/9/power/dat.h
523,637d
27,28d
23,25d
## diffname power/dat.h 1991/0402
## diff -e /n/bootesdump/1991/0328/sys/src/9/power/dat.h /n/bootesdump/1991/0402/sys/src/9/power/dat.h
101,102c
	uchar	intr;			/* flag: interrupt has occurred */
	uchar	abort;			/* flag: don't interrupt */
	uchar	wtype;			/* type of last message written */
.
## diffname power/dat.h 1991/0403
## diff -e /n/bootesdump/1991/0402/sys/src/9/power/dat.h /n/bootesdump/1991/0403/sys/src/9/power/dat.h
103c
	ushort	wlen;			/* length of last message written */
.
## diffname power/dat.h 1991/0407
## diff -e /n/bootesdump/1991/0403/sys/src/9/power/dat.h /n/bootesdump/1991/0407/sys/src/9/power/dat.h
518c
#define	ETHERMINTU	60	/* minimum transmit size */
#define	ETHERMAXTU	1514	/* maximum transmit size */
#define ETHERHDRSIZE	14	/* size of an ethernet header */
.
## diffname power/dat.h 1991/0411
## diff -e /n/bootesdump/1991/0407/sys/src/9/power/dat.h /n/bootesdump/1991/0411/sys/src/9/power/dat.h
483a
	Block	*err;		/* error message from down stream */
.
184,185c
	long	 (*read)(Chan*, void*, long, ulong);
	long	 (*write)(Chan*, void*, long, ulong);
.
109c
	QLock	rdl;			/* read access */
	QLock	wrl;			/* write access */
.
## diffname power/dat.h 1991/0419
## diff -e /n/bootesdump/1991/0411/sys/src/9/power/dat.h /n/bootesdump/1991/0419/sys/src/9/power/dat.h
188a
	Chan	*(*clwalk)(Chan*, char*);
.
## diffname power/dat.h 1991/0421
## diff -e /n/bootesdump/1991/0419/sys/src/9/power/dat.h /n/bootesdump/1991/0421/sys/src/9/power/dat.h
127a
		int	mntindex;	/* for devmnt */
.
## diffname power/dat.h 1991/0424
## diff -e /n/bootesdump/1991/0421/sys/src/9/power/dat.h /n/bootesdump/1991/0424/sys/src/9/power/dat.h
172a
	ulong	ipif;		/* Ip protocol interfaces */
	ulong	ip;		/* Ip conversations per interface */
	ulong	arp;		/* Arp table size */
	ulong	frag;		/* Ip fragment assemble queue size */

.
## diffname power/dat.h 1991/0425
## diff -e /n/bootesdump/1991/0424/sys/src/9/power/dat.h /n/bootesdump/1991/0425/sys/src/9/power/dat.h
232a

	int	tlbfault;
	int	tlbpurge;
	int	pfault;
	int	cs;
	int	syscall;
	int	spinlock;
	int	intr;

.
223,224c
	int	machno;			/* physical id of processor NB. MUST BE FIRST */
	Softtlb *stb;			/* Software tlb simulation NB. MUST BE SECOND */
.
220a
struct Softtlb
{
	ulong	virt;
	ulong	phys;
};

.
20a
typedef struct Softtlb	Softtlb;
.
## diffname power/dat.h 1991/0427
## diff -e /n/bootesdump/1991/0425/sys/src/9/power/dat.h /n/bootesdump/1991/0427/sys/src/9/power/dat.h
196d
## diffname power/dat.h 1991/0428
## diff -e /n/bootesdump/1991/0427/sys/src/9/power/dat.h /n/bootesdump/1991/0428/sys/src/9/power/dat.h
608,681c
extern register Mach	*m;
extern register User	*u;
.
606d
593,604c
	Proc	*p;
	int	nerrlab;
	Label	errlab[NERR];
	char	error[ERRLEN];
	FPsave	fpsave;			/* address of this is known by vdb */
	char	elem[NAMELEN];		/* last name element from namec */
	Chan	*slash;
	Chan	*dot;
	Chan	*fd[NFD];
	int	maxfd;			/* highest fd in use */
	/*
	 * Rest of structure controlled by devproc.c and friends.
	 * lock(&p->debug) to modify.
	 */
	Note	note[NNOTE];
	short	nnote;
	short	notified;		/* sysnoted is due */
	int	(*notify)(void*, char*);
	void	*ureg;
	/*
	 *  machine dependent User stuff
	 */
	/*
	 * I/O point for bit3 and hotrod interfaces.
	 * This is the easiest way to allocate
	 * them, but not the prettiest or most general.
	 */
	union{				/* for i/o from kernel */
		Bit3msg	kbit3;
		Hotmsg	khot;
	};
	union{				/* for i/o from user */
		Bit3msg	ubit3;
		Hotmsg	uhot;
	};
	union{				/* special location for Tflush */
		Bit3msg	fbit3;
		Hotmsg	fhot;
	};
.
588,591c
#define	NERR	15
#define	NNOTE	5
#define	NFD	100
struct User
.
585,586c
#define	MACHP(n)	((Mach *)(MACHADDR+n*BY2PG))
.
577d
425,546d
260,414d
253,257c
	ulong	virt;
	ulong	phys;
.
251c
/*
 *  machine dependent definitions not used by ../port/dat.h
 */
struct Softtlb
.
223,224c
	ulong	cmd;
	ulong	param[5];
	Rendez	r;
	uchar	intr;			/* flag: interrupt has occurred */
	uchar	abort;			/* flag: don't interrupt */
	ushort	wlen;			/* length of last message written */
.
221c
struct Hotmsg
.
217,218c
	ulong	cmd;
	ulong	addr;
	ulong	count;
	ulong	rcount;
.
215c
/*
 *  machine dependent definitions not used by ../port/dat.h
 */
struct Bit3msg
.
206,213c
#include "../port/portdat.h"
.
200,203c
	long	fpreg[32];
	long	fpstatus;
.
198c
struct	FPsave
.
183,195c
	FPinit,
	FPactive,
	FPinactive,
.
181c
/*
 * floating point registers
 */
enum
.
79,140d
53,72d
42,45c
/*
 *  machine dependent definitions used by ../port/dat.h
 */
.
40c
/*
 *  parameters for sysproc.c
 */
#define AOUT_MAGIC	V_MAGIC
.
22,36d
20a
typedef struct MMU	MMU;
.
18d
7,12d
3,5d
1d
## diffname power/dat.h 1991/0503
## diff -e /n/bootesdump/1991/0428/sys/src/9/power/dat.h /n/bootesdump/1991/0503/sys/src/9/power/dat.h
220a
	ulong	svstatus;
.
## diffname power/dat.h 1991/0507
## diff -e /n/bootesdump/1991/0503/sys/src/9/power/dat.h /n/bootesdump/1991/0507/sys/src/9/power/dat.h
89a
};

/*
 *  mmu goo in the Proc structure
 */
struct PMMU
{
	int	pidonmach[MAXMACH];
.
10a
typedef struct PMMU	PMMU;
.
## diffname power/dat.h 1991/0608
## diff -e /n/bootesdump/1991/0507/sys/src/9/power/dat.h /n/bootesdump/1991/0608/sys/src/9/power/dat.h
74c
	ulong	cntrlp;		/* panic on ^P */
.
## diffname power/dat.h 1991/0705
## diff -e /n/bootesdump/1991/0608/sys/src/9/power/dat.h /n/bootesdump/1991/0705/sys/src/9/power/dat.h
219,220d
208d
162c
#define	kmap(p)		(KMap*)((p)->pa|KZERO)
.
135a
	Page	*ufreeme;		/* address of upage of exited process */
.
44,46c
	ulong	nseg;		/* number of segments */
	ulong	nimage;		/* number of page cache image headers */
	ulong 	npagetab;	/* number of pte tables */
	ulong	nswap;		/* number of swap pages */
.
## diffname power/dat.h 1991/0711
## diff -e /n/bootesdump/1991/0705/sys/src/9/power/dat.h /n/bootesdump/1991/0711/sys/src/9/power/dat.h
139c
	int	tlbfault;		/* this offset known in l.s/utlbmiss() */
.
## diffname power/dat.h 1991/0717
## diff -e /n/bootesdump/1991/0711/sys/src/9/power/dat.h /n/bootesdump/1991/0717/sys/src/9/power/dat.h
226a
	Note	lastnote;
.
## diffname power/dat.h 1991/0803
## diff -e /n/bootesdump/1991/0717/sys/src/9/power/dat.h /n/bootesdump/1991/0803/sys/src/9/power/dat.h
42a
	ulong	npage1;		/* total physical pages of memory */
.
## diffname power/dat.h 1991/1011
## diff -e /n/bootesdump/1991/0803/sys/src/9/power/dat.h /n/bootesdump/1991/1011/sys/src/9/power/dat.h
129a
	ulong	splpc;			/* pc that called splhi() */
.
## diffname power/dat.h 1991/1107
## diff -e /n/bootesdump/1991/1011/sys/src/9/power/dat.h /n/bootesdump/1991/1107/sys/src/9/power/dat.h
76a
	ulong	dkif;		/* number of datakit interfaces */
.
## diffname power/dat.h 1991/1110
## diff -e /n/bootesdump/1991/1107/sys/src/9/power/dat.h /n/bootesdump/1991/1110/sys/src/9/power/dat.h
232c
	void	*ureg;			/* User registers for notes */
	void	*dbgreg;		/* User registers for debugging in proc */
.
219c
	FPsave	fpsave;			/* address of this is known by db */
.
## diffname power/dat.h 1991/1111
## diff -e /n/bootesdump/1991/1110/sys/src/9/power/dat.h /n/bootesdump/1991/1111/sys/src/9/power/dat.h
219d
215a
	FPsave	fpsave;			/* address of this is known by db */
.
## diffname power/dat.h 1991/1112
## diff -e /n/bootesdump/1991/1111/sys/src/9/power/dat.h /n/bootesdump/1991/1112/sys/src/9/power/dat.h
147c
	int	load;
.
## diffname power/dat.h 1992/0102
## diff -e /n/bootesdump/1991/1112/sys/src/9/power/dat.h /n/bootesdump/1992/0102/sys/src/9/power/dat.h
234a
	ulong	svr1;
.
## diffname power/dat.h 1992/0228
## diff -e /n/bootesdump/1992/0102/sys/src/9/power/dat.h /n/bootesdump/1992/0228/sys/src/9/power/dat.h
63,64d
## diffname power/dat.h 1992/0508
## diff -e /n/bootesdump/1992/0228/sys/src/9/power/dat.h /n/bootesdump/1992/0508/sys/src/9/power/dat.h
146a
	int	ledval;			/* value last written to LED */
.
## diffname power/dat.h 1992/0613
## diff -e /n/bootesdump/1992/0508/sys/src/9/power/dat.h /n/bootesdump/1992/0613/sys/src/9/power/dat.h
243,254c
	Cycmsg	kcyc;
	Cycmsg	ucyc;
	Cycmsg	fcyc;
.
239c
	 * I/O point for hotrod interfaces.
.
224c
	 * qlock(&p->debug) to modify.
.
121,122d
110,117d
104,107c
struct Cycmsg
.
4c
typedef struct Cycmsg	Cycmsg;
.
1d
## diffname power/dat.h 1992/0622
## diff -e /n/bootesdump/1992/0613/sys/src/9/power/dat.h /n/bootesdump/1992/0622/sys/src/9/power/dat.h
64,65d
60d
53,57d
48,49d
46d
44c
	ulong	upages;		/* user page pool */
.
40d
26c
	int	val;
.
## diffname power/dat.h 1992/0623
## diff -e /n/bootesdump/1992/0622/sys/src/9/power/dat.h /n/bootesdump/1992/0623/sys/src/9/power/dat.h
46,53d
## diffname power/dat.h 1992/0625
## diff -e /n/bootesdump/1992/0623/sys/src/9/power/dat.h /n/bootesdump/1992/0625/sys/src/9/power/dat.h
187a
	Sargs	s;
.
54d
## diffname power/dat.h 1992/06271
## diff -e /n/bootesdump/1992/0625/sys/src/9/power/dat.h /n/bootesdump/1992/06271/sys/src/9/power/dat.h
186a
	int	scallnr;		/* sys call number */
.
## diffname power/dat.h 1992/0629
## diff -e /n/bootesdump/1992/06271/sys/src/9/power/dat.h /n/bootesdump/1992/0629/sys/src/9/power/dat.h
187,188d
180a
	int	scallnr;		/* sys call number - known by db */
	Sargs	s;			/* address of this is known by db */
.
## diffname power/dat.h 1992/0725
## diff -e /n/bootesdump/1992/0629/sys/src/9/power/dat.h /n/bootesdump/1992/0725/sys/src/9/power/dat.h
53d
## diffname power/dat.h 1992/0819
## diff -e /n/bootesdump/1992/0725/sys/src/9/power/dat.h /n/bootesdump/1992/0819/sys/src/9/power/dat.h
33a
	ulong	pc;
.
32d
## diffname power/dat.h 1992/1129
## diff -e /n/bootesdump/1992/0819/sys/src/9/power/dat.h /n/bootesdump/1992/1129/sys/src/9/power/dat.h
111a
ulong cause;
ulong status;
ulong ur;
ulong sp;
.
## diffname power/dat.h 1992/1130
## diff -e /n/bootesdump/1992/1129/sys/src/9/power/dat.h /n/bootesdump/1992/1130/sys/src/9/power/dat.h
112,115d
## diffname power/dat.h 1992/1202
## diff -e /n/bootesdump/1992/1130/sys/src/9/power/dat.h /n/bootesdump/1992/1202/sys/src/9/power/dat.h
102a
	Ureg	*ur;
.
## diffname power/dat.h 1992/1220
## diff -e /n/bootesdump/1992/1202/sys/src/9/power/dat.h /n/bootesdump/1992/1220/sys/src/9/power/dat.h
52a
	ulong	debugger;	/* use processor 1 as a kernel debugger */
.
## diffname power/dat.h 1993/0206
## diff -e /n/bootesdump/1992/1220/sys/src/9/power/dat.h /n/bootesdump/1993/0206/sys/src/9/power/dat.h
49,52d
## diffname power/dat.h 1993/0501
## diff -e /n/bootesdump/1993/0206/sys/src/9/power/dat.h /n/fornaxdump/1993/0501/sys/src/brazil/power/dat.h
213c
extern register Proc	*up;
.
172,211d
98c
	Proc	*pidproc[NTLBPID];	/* tlb allocation table */
.
92d
90a
	/* Ok to change from here */
.
88,89c
	int	machno;			/* physical id of processor */
	Softtlb *stb;			/* Software tlb simulation  */
	Proc	*proc;			/* current process on this processor */
.
85a
/* First FOUR members offsets known by l.s */
.
73a
	/*
	 * I/O point for hotrod interfaces.
	 * This is the easiest way to allocate
	 * them, but not the prettiest or most general.
	 */
	Cycmsg	*kcyc;
	Cycmsg	*ucyc;
	Cycmsg	*fcyc;
.
48a
	ulong	ipif;		/* Ip protocol interfaces */
	ulong	ip;		/* Ip conversations per interface */
	ulong	arp;		/* Arp table size */
	ulong	frag;		/* Ip fragment assemble queue size */
.
13,14d
## diffname power/dat.h 1993/0806
## diff -e /n/fornaxdump/1993/0501/sys/src/brazil/power/dat.h /n/fornaxdump/1993/0806/sys/src/brazil/power/dat.h
169,172c
	Lancepkt *rp;		/* receive buffers (host address) */
	Lancepkt *tp;		/* transmit buffers (host address) */
	Lancepkt *lrp;		/* receive buffers (lance address) */
	Lancepkt *ltp;		/* transmit buffers (lance address) */
.
150a
struct Lancepkt
{
	uchar	d[6];
	uchar	s[6];
	uchar	type[2];
	uchar	data[1500];
	uchar	crc[4];
};

.
1a
typedef struct Lancepkt Lancepkt;
.
## diffname power/dat.h 1993/1015
## diff -e /n/fornaxdump/1993/0806/sys/src/brazil/power/dat.h /n/fornaxdump/1993/1015/sys/src/brazil/power/dat.h
84a
};

/*
 *  things saved in the Proc structure during a notify
 */
struct Notsave
{
	ulong	svstatus;
	ulong	svr1;
.
10a
typedef struct Notsave	Notsave;
.
## diffname power/dat.h 1993/1201
## diff -e /n/fornaxdump/1993/1015/sys/src/brazil/power/dat.h /n/fornaxdump/1993/1201/sys/src/brazil/power/dat.h
132a
	int	otlbfault;
.
## diffname power/dat.h 1993/1204
## diff -e /n/fornaxdump/1993/1201/sys/src/brazil/power/dat.h /n/fornaxdump/1993/1204/sys/src/brazil/power/dat.h
133a
	Schedq	runq;
.
## diffname power/dat.h 1993/1214
## diff -e /n/fornaxdump/1993/1204/sys/src/brazil/power/dat.h /n/fornaxdump/1993/1214/sys/src/brazil/power/dat.h
134c
	Schedq	hiq;
	Schedq	loq;
.
## diffname power/dat.h 1994/0405
## diff -e /n/fornaxdump/1993/1214/sys/src/brazil/power/dat.h /n/fornaxdump/1994/0405/sys/src/brazil/power/dat.h
135a

	Callbk*	cbin;
	Callbk*	cbout;
	Callbk*	cbend;
	Callbk	calls[NCALLBACK];
.
53a
	ulong	ialloc;		/* bytes available for interrupt time allocation */
.
27a
	ulong	sr;
.
## diffname power/dat.h 1994/0406
## diff -e /n/fornaxdump/1994/0405/sys/src/brazil/power/dat.h /n/fornaxdump/1994/0406/sys/src/brazil/power/dat.h
127d
123,125c
	Proc	*pidproc[NTLBPID];	/* process that owns this tlbpid on this mach */
.
121d
115a
	int	tlbfault;		/* this offset known in l.s/utlbmiss() */

.
101,108d
80,87d
4d
## diffname power/dat.h 1994/0503
## diff -e /n/fornaxdump/1994/0406/sys/src/brazil/power/dat.h /n/fornaxdump/1994/0503/sys/src/brazil/power/dat.h
54a
	ulong	pipeqsize;	/* size in bytes of pipe queues */
.
## diffname power/dat.h 1994/0509
## diff -e /n/fornaxdump/1994/0503/sys/src/brazil/power/dat.h /n/fornaxdump/1994/0509/sys/src/brazil/power/dat.h
121,125d
## diffname power/dat.h 1994/0612
## diff -e /n/fornaxdump/1994/0509/sys/src/brazil/power/dat.h /n/fornaxdump/1994/0612/sys/src/brazil/power/dat.h
17c
#define EXEC_MAGIC(magic)	(magic==V_MAGIC)
.
## diffname power/dat.h 1994/0728
## diff -e /n/fornaxdump/1994/0612/sys/src/brazil/power/dat.h /n/fornaxdump/1994/0728/sys/src/brazil/power/dat.h
118,119c
	int	nrdy;
.
## diffname power/dat.h 1995/0108
## diff -e /n/fornaxdump/1994/0728/sys/src/brazil/power/dat.h /n/fornaxdump/1995/0108/sys/src/brazil/power/dat.h
140c
#define AOUT_MAGIC	V_MAGIC || magic==M_MAGIC
.
## diffname power/dat.h 1995/02021
## diff -e /n/fornaxdump/1995/0108/sys/src/brazil/power/dat.h /n/fornaxdump/1995/02021/sys/src/brazil/power/dat.h
87,88c
	int	UNUSED;
.
## diffname power/dat.h 1995/1030
## diff -e /n/fornaxdump/1995/02021/sys/src/brazil/power/dat.h /n/fornaxdump/1995/1030/sys/src/brazil/power/dat.h
27a
	ulong	pid;
.
## diffname power/dat.h 1996/0511
## diff -e /n/fornaxdump/1995/1030/sys/src/brazil/power/dat.h /n/fornaxdump/1996/0511/sys/src/brazil/power/dat.h
28a
	int	pri;
.
## diffname power/dat.h 1996/0523
## diff -e /n/fornaxdump/1996/0511/sys/src/brazil/power/dat.h /n/fornaxdump/1996/0523/sys/src/brazil/power/dat.h
29d
## diffname power/dat.h 1997/0327 # deleted
## diff -e /n/fornaxdump/1996/0523/sys/src/brazil/power/dat.h /n/emeliedump/1997/0327/sys/src/brazil/power/dat.h
1,191d

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].