plan 9 kernel history: overview | file list | diff list

1990/0717/power/dat.h (diff list | history)

1990/0227/sys/src/9/power/dat.h:94,991990/0303/sys/src/9/power/dat.h:94,101 (short | long)
1990/0227    
	ulong	mountid; 
	int	fid;			/* for devmnt */ 
	Stream	*stream;		/* for stream channels */ 
1990/0303    
	Chan	*mchan;			/* channel to mounted server */ 
	ulong	mqid;			/* qid of root of mount point */ 
1990/0227    
}; 
 
struct	FPsave 
1990/0227/sys/src/9/power/dat.h:226,2331990/0303/sys/src/9/power/dat.h:228,236
1990/0227    
	PTE	*pte; 
	Chan	*chan;			/* channel deriving segment (if open) */ 
	ushort	type;			/* of channel (which could be non-open) */ 
	ushort	dev; 
	ulong	qid; 
1990/0303    
	Chan	*mchan; 
	ulong	mqid; 
1990/0227    
	ulong	minca;			/* base of region in chan */ 
	ulong	maxca;			/* end of region in chan */ 
}; 
1990/0303/sys/src/9/power/dat.h:1,41990/0306/sys/src/9/power/dat.h:1,5 (short | long)
1990/0227    
typedef struct Alarm	Alarm; 
1990/0306    
typedef struct Bitmsg	Bitmsg; 
1990/0227    
typedef struct Blist	Blist; 
typedef struct Block	Block; 
typedef struct Chan	Chan; 
1990/0303/sys/src/9/power/dat.h:75,801990/0306/sys/src/9/power/dat.h:76,88
1990/0227    
	void	*arg; 
}; 
 
1990/0306    
struct Bitmsg 
{ 
	ulong	cmd; 
	ulong	addr; 
	ulong	count; 
}; 
 
1990/0227    
#define	CHDIR	0x80000000L 
#define	QPATH	0x0000FFFFL 
struct Chan 
1990/0303/sys/src/9/power/dat.h:327,3321990/0306/sys/src/9/power/dat.h:335,345
1990/0227    
	Chan	*dot; 
	Chan	*fd[NFD]; 
	int	maxfd;			/* highest fd in use */ 
1990/0306    
	/* 
	 * I/O point for bit interface.  This is the easiest way to allocate 
	 * them, but not the prettiest or most general. 
	 */ 
	Bitmsg	bit; 
1990/0227    
	/* 
	 * Rest of structure controlled by devproc.c and friends. 
	 * lock(&p->debug) to modify. 
1990/0306/sys/src/9/power/dat.h:81,861990/03081/sys/src/9/power/dat.h:81,87 (short | long)
1990/0306    
	ulong	cmd; 
	ulong	addr; 
	ulong	count; 
1990/03081    
	ulong	rcount; 
1990/0306    
}; 
 
1990/0227    
#define	CHDIR	0x80000000L 
1990/0306/sys/src/9/power/dat.h:301,3061990/03081/sys/src/9/power/dat.h:302,311
1990/0227    
	Page	*upage;			/* BUG: should be unlinked from page list */ 
	Seg	seg[NSEG]; 
	ulong	pid; 
1990/03081    
	Lock	kidlock;		/* access to kid and sib */ 
	Proc	*pop;			/* some ascendant */ 
	Proc	*kid;			/* some descendant */ 
	Proc	*sib;			/* non-ascendant relatives (circular list) */ 
1990/0227    
	int	nchild; 
	QLock	wait;			/* exiting children to be waited for */ 
	Waitmsg	*waitmsg; 
1990/03081/sys/src/9/power/dat.h:26,351990/03091/sys/src/9/power/dat.h:26,35 (short | long)
1990/0227    
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; 
1990/03091    
typedef struct Stream	Stream; 
1990/0227    
typedef struct Ureg	Ureg; 
typedef struct User	User; 
 
1990/03091/sys/src/9/power/dat.h:242,2471990/0312/sys/src/9/power/dat.h:242,248 (short | long)
1990/0303    
	ulong	mqid; 
1990/0227    
	ulong	minca;			/* base of region in chan */ 
	ulong	maxca;			/* end of region in chan */ 
1990/0312    
int nmod; 
1990/0227    
}; 
 
struct Page 
1990/03091/sys/src/9/power/dat.h:439,4451990/0312/sys/src/9/power/dat.h:440,447
1990/0227    
#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) 
1990/0312    
#define PUTNEXT(q,b)	(*(q)->next->put)((q)->next, b) 
#define BLEN(b)		((b)->wptr - (b)->rptr) 
1990/0227    
 
/* 
 *  stream file qid's & high water mark 
1990/0312/sys/src/9/power/dat.h:54,631990/0322/sys/src/9/power/dat.h:54,63 (short | long)
1990/0227    
 
struct QLock 
{ 
1990/0322    
	Lock;				/* to use object */ 
1990/0227    
	Proc	*head;			/* next process waiting for object */ 
	Proc	*tail;			/* last process waiting for object */ 
	Lock	use;			/* to use object */ 
	Lock	queue;			/* to access list */ 
1990/0322    
	int	locked;			/* flag; is locked */ 
1990/0227    
}; 
 
struct Label 
1990/0312/sys/src/9/power/dat.h:307,3141990/0322/sys/src/9/power/dat.h:307,313
1990/03081    
	Proc	*pop;			/* some ascendant */ 
	Proc	*kid;			/* some descendant */ 
	Proc	*sib;			/* non-ascendant relatives (circular list) */ 
1990/0227    
	int	nchild; 
	QLock	wait;			/* exiting children to be waited for */ 
1990/0322    
	Rendez	exit;			/* child sleeps; parent wakes up */ 
1990/0227    
	Waitmsg	*waitmsg; 
	Proc	*child; 
	Proc	*parent; 
1990/0312/sys/src/9/power/dat.h:451,4571990/0322/sys/src/9/power/dat.h:450,456
1990/0227    
	Sdataqid = Shighqid, 
	Sctlqid = Sdataqid-1, 
	Slowqid = Sctlqid, 
	Streamhi= (32*1024),	/* stream high water mark */ 
1990/0322    
	Streamhi= (9*1024),	/* stream high water mark */ 
1990/0227    
}; 
 
#define	PRINTSIZE	256 
1990/0322/sys/src/9/power/dat.h:1,51990/0324/sys/src/9/power/dat.h:1,5 (short | long)
1990/0227    
typedef struct Alarm	Alarm; 
1990/0306    
typedef struct Bitmsg	Bitmsg; 
1990/0324    
typedef struct Bit3msg	Bit3msg; 
1990/0227    
typedef struct Blist	Blist; 
typedef struct Block	Block; 
typedef struct Chan	Chan; 
1990/0322/sys/src/9/power/dat.h:54,631990/0324/sys/src/9/power/dat.h:54,63
1990/0227    
 
struct QLock 
{ 
1990/0322    
	Lock;				/* to use object */ 
1990/0227    
	Proc	*head;			/* next process waiting for object */ 
	Proc	*tail;			/* last process waiting for object */ 
1990/0322    
	int	locked;			/* flag; is locked */ 
1990/0324    
	Lock	use;			/* to use object */ 
	Lock	queue;			/* to access list */ 
1990/0227    
}; 
 
struct Label 
1990/0322/sys/src/9/power/dat.h:76,821990/0324/sys/src/9/power/dat.h:76,82
1990/0227    
	void	*arg; 
}; 
 
1990/0306    
struct Bitmsg 
1990/0324    
struct Bit3msg 
1990/0306    
{ 
	ulong	cmd; 
	ulong	addr; 
1990/0322/sys/src/9/power/dat.h:307,3131990/0324/sys/src/9/power/dat.h:307,314
1990/03081    
	Proc	*pop;			/* some ascendant */ 
	Proc	*kid;			/* some descendant */ 
	Proc	*sib;			/* non-ascendant relatives (circular list) */ 
1990/0322    
	Rendez	exit;			/* child sleeps; parent wakes up */ 
1990/0324    
	int	nchild; 
	QLock	wait;			/* exiting children to be waited for */ 
1990/0227    
	Waitmsg	*waitmsg; 
	Proc	*child; 
	Proc	*parent; 
1990/0322/sys/src/9/power/dat.h:341,3501990/0324/sys/src/9/power/dat.h:342,351
1990/0227    
	Chan	*fd[NFD]; 
	int	maxfd;			/* highest fd in use */ 
1990/0306    
	/* 
	 * I/O point for bit interface.  This is the easiest way to allocate 
1990/0324    
	 * I/O point for bit3 interface.  This is the easiest way to allocate 
1990/0306    
	 * them, but not the prettiest or most general. 
	 */ 
	Bitmsg	bit; 
1990/0324    
	Bit3msg	bit3; 
1990/0227    
	/* 
	 * Rest of structure controlled by devproc.c and friends. 
	 * lock(&p->debug) to modify. 
1990/0324/sys/src/9/power/dat.h:425,4301990/0331/sys/src/9/power/dat.h:425,431 (short | long)
1990/0227    
struct Stream { 
	Lock;			/* structure lock */ 
	int	inuse;		/* use count */ 
1990/0331    
	int	hread;		/* number of reads after hangup */ 
1990/0227    
	int	type;		/* correclation with Chan */ 
	int	dev;		/* ... */ 
	int	id;		/* ... */ 
1990/0331/sys/src/9/power/dat.h:407,4121990/0403/sys/src/9/power/dat.h:407,413 (short | long)
1990/0227    
 */ 
struct Queue { 
	Blist; 
1990/0403    
	int	nb;		/* number of blocks in queue */ 
1990/0227    
	int	flag; 
	Qinfo	*info;		/* line discipline definition */ 
	Queue	*other;		/* opposite direction, same line discipline */ 
1990/0331/sys/src/9/power/dat.h:443,4481990/0403/sys/src/9/power/dat.h:444,451
1990/0227    
#define STREAMQID(i,t)	(((i)<<5)|(t)) 
1990/0312    
#define PUTNEXT(q,b)	(*(q)->next->put)((q)->next, b) 
#define BLEN(b)		((b)->wptr - (b)->rptr) 
1990/0403    
#define QFULL(q)	((q)->flag & QHIWAT) 
#define FLOWCTL(q)	{ if(QFULL(q)) flowctl(q); } 
1990/0227    
 
/* 
 *  stream file qid's & high water mark 
1990/0331/sys/src/9/power/dat.h:452,4581990/0403/sys/src/9/power/dat.h:455,462
1990/0227    
	Sdataqid = Shighqid, 
	Sctlqid = Sdataqid-1, 
	Slowqid = Sctlqid, 
1990/0322    
	Streamhi= (9*1024),	/* stream high water mark */ 
1990/0403    
	Streamhi= (9*1024),	/* byte count high water mark */ 
	Streambhi= 16,		/* block count high water mark */ 
1990/0227    
}; 
 
#define	PRINTSIZE	256 
1990/0403/sys/src/9/power/dat.h:400,4051990/0406/sys/src/9/power/dat.h:400,406 (short | long)
1990/0227    
	Block	*first;		/* first data block */ 
	Block	*last;		/* last data block */ 
	long	len;		/* length of list in bytes */ 
1990/0406    
	int	nb;		/* number of blocks in list */ 
1990/0227    
}; 
 
/* 
1990/0403/sys/src/9/power/dat.h:407,4131990/0406/sys/src/9/power/dat.h:408,413
1990/0227    
 */ 
struct Queue { 
	Blist; 
1990/0403    
	int	nb;		/* number of blocks in queue */ 
1990/0227    
	int	flag; 
	Qinfo	*info;		/* line discipline definition */ 
	Queue	*other;		/* opposite direction, same line discipline */ 
1990/0403/sys/src/9/power/dat.h:445,4511990/0406/sys/src/9/power/dat.h:445,451
1990/0312    
#define PUTNEXT(q,b)	(*(q)->next->put)((q)->next, b) 
#define BLEN(b)		((b)->wptr - (b)->rptr) 
1990/0403    
#define QFULL(q)	((q)->flag & QHIWAT) 
#define FLOWCTL(q)	{ if(QFULL(q)) flowctl(q); } 
1990/0406    
#define FLOWCTL(q)	{ if(QFULL(q->next)) flowctl(q); } 
1990/0227    
 
/* 
 *  stream file qid's & high water mark 
1990/0403/sys/src/9/power/dat.h:455,4611990/0406/sys/src/9/power/dat.h:455,461
1990/0227    
	Sdataqid = Shighqid, 
	Sctlqid = Sdataqid-1, 
	Slowqid = Sctlqid, 
1990/0403    
	Streamhi= (9*1024),	/* byte count high water mark */ 
1990/0406    
	Streamhi= (17*1024),	/* byte count high water mark */ 
1990/0403    
	Streambhi= 16,		/* block count high water mark */ 
1990/0227    
}; 
 
1990/0406/sys/src/9/power/dat.h:115,1411990/0504/sys/src/9/power/dat.h:115,141 (short | long)
1990/0227    
 
struct Conf 
{ 
	int	nmach;		/* processors */ 
	int	nproc;		/* processes */ 
	int	npgrp;		/* process groups */ 
1990/0504    
	ulong	nmach;		/* processors */ 
	ulong	nproc;		/* processes */ 
	ulong	npgrp;		/* process groups */ 
1990/0227    
	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) */ 
1990/0504    
	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) */ 
1990/0227    
}; 
 
struct Dev 
1990/0504/sys/src/9/power/dat.h:345,3511990/0608/sys/src/9/power/dat.h:345,352 (short | long)
1990/0324    
	 * I/O point for bit3 interface.  This is the easiest way to allocate 
1990/0306    
	 * them, but not the prettiest or most general. 
	 */ 
1990/0324    
	Bit3msg	bit3; 
1990/0608    
	Bit3msg	kbit3; 
	Bit3msg	ubit3; 
1990/0227    
	/* 
	 * Rest of structure controlled by devproc.c and friends. 
	 * lock(&p->debug) to modify. 
1990/0608/sys/src/9/power/dat.h:118,1231990/0614/sys/src/9/power/dat.h:118,124 (short | long)
1990/0504    
	ulong	nmach;		/* processors */ 
	ulong	nproc;		/* processes */ 
	ulong	npgrp;		/* process groups */ 
1990/0614    
	ulong	npage0;		/* total physical pages of memory */ 
1990/0227    
	ulong	npage;		/* total physical pages of memory */ 
	ulong	norig;		/* origins */ 
	ulong	npte;		/* contiguous page table entries */ 
1990/0608/sys/src/9/power/dat.h:357,3621990/0614/sys/src/9/power/dat.h:358,371
1990/0227    
	int	(*notify)(void*, char*); 
	void	*ureg; 
}; 
1990/0614    
 
/* 
 * Fake kmap 
 */ 
typedef void		KMap; 
#define	VA(k)		((ulong)(k)) 
#define	kmap(p)		(KMap*)(p->pa|KZERO) 
#define	kunmap(k) 
1990/0227    
 
/* 
 *  operations available to a queue 
1990/0614/sys/src/9/power/dat.h:310,3161990/0617/sys/src/9/power/dat.h:310,316 (short | long)
1990/03081    
	Proc	*sib;			/* non-ascendant relatives (circular list) */ 
1990/0324    
	int	nchild; 
	QLock	wait;			/* exiting children to be waited for */ 
1990/0227    
	Waitmsg	*waitmsg; 
1990/0617    
	ulong	waitmsg; 
1990/0227    
	Proc	*child; 
	Proc	*parent; 
	Pgrp	*pgrp; 
1990/0617/sys/src/9/power/dat.h:17,231990/0629/sys/src/9/power/dat.h:17,28 (short | long)
1990/0227    
typedef struct Mach	Mach; 
typedef struct Mount	Mount; 
typedef struct Mtab	Mtab; 
1990/0629    
typedef struct Noconv	Noconv; 
typedef struct Nohdr	Nohdr; 
typedef struct Noifc	Noifc; 
1990/0227    
typedef struct Note	Note; 
1990/0629    
typedef struct Nomsg	Nomsg; 
typedef struct Nocall	Nocall; 
1990/0227    
typedef struct Orig	Orig; 
typedef struct PTE	PTE; 
typedef struct Page	Page; 
1990/0617/sys/src/9/power/dat.h:137,1421990/0629/sys/src/9/power/dat.h:142,149
1990/0504    
	ulong	nqueue;		/* stream queues */ 
	ulong	nblock;		/* stream blocks */ 
	ulong	nsrv;		/* public servers (devsrv.c) */ 
1990/0629    
	ulong	nnoifc;		/* number of nonet interfaces */ 
	ulong	nnoconv;	/* number of nonet conversations/ifc */ 
1990/0227    
}; 
 
struct Dev 
1990/0617/sys/src/9/power/dat.h:435,4411990/0629/sys/src/9/power/dat.h:442,449
1990/0227    
 */ 
struct Stream { 
	Lock;			/* structure lock */ 
	int	inuse;		/* use count */ 
1990/0629    
	int	inuse;		/* number of processes in stream */ 
	int	opens;		/* number of processes with stream open */ 
1990/0331    
	int	hread;		/* number of reads after hangup */ 
1990/0227    
	int	type;		/* correclation with Chan */ 
	int	dev;		/* ... */ 
1990/0617/sys/src/9/power/dat.h:444,4501990/0629/sys/src/9/power/dat.h:452,457
1990/0227    
	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) 
1990/0617/sys/src/9/power/dat.h:467,4721990/0629/sys/src/9/power/dat.h:474,592
1990/0227    
	Slowqid = Sctlqid, 
1990/0406    
	Streamhi= (17*1024),	/* byte count high water mark */ 
1990/0403    
	Streambhi= 16,		/* block count high water mark */ 
1990/0629    
}; 
 
/* 
 *  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; 
1990/0227    
}; 
 
#define	PRINTSIZE	256 
1990/0629/sys/src/9/power/dat.h:495,5041990/0704/sys/src/9/power/dat.h:495,505 (short | long)
1990/0629    
	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 */ 
1990/0704    
#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 */ 
1990/0629    
 
/* 
 *  a buffer describing a nonet message 
1990/0629/sys/src/9/power/dat.h:542,5481990/0704/sys/src/9/power/dat.h:543,551
1990/0629    
 
	Noifc	*ifc; 
	int	kstarted; 
	char	raddr[64];	/* remote address */ 
1990/0704    
	char	raddr[NAMELEN];	/* remote address */ 
	char	ruser[NAMELEN];	/* remote user */ 
	char	addr[NAMELEN];	/* local address */ 
1990/0629    
	int	rexmit;		/* statistics */ 
	int	retry; 
	int	bad; 
1990/0629/sys/src/9/power/dat.h:555,5611990/0704/sys/src/9/power/dat.h:558,564
1990/0629    
 */ 
struct Nocall { 
	Block	*msg; 
	char	raddr[64]; 
1990/0704    
	char	raddr[NAMELEN]; 
1990/0629    
	long	circuit; 
}; 
 
1990/0629/sys/src/9/power/dat.h:566,5721990/0704/sys/src/9/power/dat.h:569,575
1990/0629    
struct Noifc { 
	Lock; 
	int	ref; 
	char	name[64];	/* interface name */		 
1990/0704    
	char	name[NAMELEN];	/* interface name */		 
1990/0629    
	Queue	*wq;		/* interface output queue */ 
	Noconv	*conv; 
 
1990/0704/sys/src/9/power/dat.h:519,5241990/0705/sys/src/9/power/dat.h:519,525 (short | long)
1990/0629    
struct Noconv { 
	QLock; 
 
1990/0705    
	Stream	*s; 
1990/0629    
	Queue	*rq;		/* input queue */ 
	int	version;	/* incremented each time struct is changed */ 
	int	state;		/* true if listening */ 
1990/0705/sys/src/9/power/dat.h:144,1491990/0717/sys/src/9/power/dat.h:144,150 (short | long)
1990/0504    
	ulong	nsrv;		/* public servers (devsrv.c) */ 
1990/0629    
	ulong	nnoifc;		/* number of nonet interfaces */ 
	ulong	nnoconv;	/* number of nonet conversations/ifc */ 
1990/0717    
	ulong	nurp;		/* max urp conversations */ 
1990/0227    
}; 
 
struct Dev 
1990/0717/sys/src/9/power/dat.h:37,421990/0718/sys/src/9/power/dat.h:37,43 (short | long)
1990/03091    
typedef struct Stream	Stream; 
1990/0227    
typedef struct Ureg	Ureg; 
typedef struct User	User; 
1990/0718    
typedef struct Syslog	Syslog; 
1990/0227    
 
typedef int Devgen(Chan*, Dirtab*, int, int, Dir*); 
 
1990/0717/sys/src/9/power/dat.h:689,6911990/0718/sys/src/9/power/dat.h:690,704
1990/0227    
extern	Dev	devtab[]; 
extern	char	devchar[]; 
extern	FPsave	initfp; 
1990/0718    
 
/* 
 *  kernel based system log, passed between crashes 
 */ 
#define SYSLOG		((Syslog *)(0x80001B00)) 
#define SYSLOGMAGIC	0x12345678 
struct Syslog 
{ 
	ulong	magic; 
	char	*next; 
	char	buf[16*1024]; 
}; 
1990/0718/sys/src/9/power/dat.h:694,7041990/0720/sys/src/9/power/dat.h:694,704 (short | long)
1990/0718    
/* 
 *  kernel based system log, passed between crashes 
 */ 
#define SYSLOG		((Syslog *)(0x80001B00)) 
#define SYSLOGMAGIC	0x12345678 
1990/0720    
#define SYSLOG		((Syslog *)(0xa0001B00)) 
#define SYSLOGMAGIC	0x87654321 
1990/0718    
struct Syslog 
{ 
	ulong	magic; 
	char	*next; 
	char	buf[16*1024]; 
1990/0720    
	char	buf[8*1024]; 
1990/0718    
}; 
1990/0720/sys/src/9/power/dat.h:438,4431990/0721/sys/src/9/power/dat.h:438,444 (short | long)
1990/0227    
#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 */	 
1990/0721    
#define QDEBUG	0x8 
1990/0227    
 
/* 
 *  a stream head 
1990/0721/sys/src/9/power/dat.h:199,2071990/0731/sys/src/9/power/dat.h:199,208 (short | long)
1990/0227    
	Label	sched;			/* scheduler wakeup */ 
	Lock	alarmlock;		/* access to alarm list */ 
	void	*alarm;			/* alarms bound to this clock */ 
	void	(*intr)(ulong);		/* pending interrupt */ 
1990/0731    
	void	(*intr)(ulong, ulong);	/* pending interrupt */ 
1990/0227    
	Proc	*intrp;			/* process that was interrupted */ 
	ulong	cause;			/* arg to intr */ 
1990/0731    
	ulong	pc;			/* pc that was interrupted */ 
1990/0227    
	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 */ 
1990/0731/sys/src/9/power/dat.h:509,5201990/0801/sys/src/9/power/dat.h:509,521 (short | long)
1990/0629    
 *  a buffer describing a nonet message 
 */ 
struct Nomsg { 
	QLock; 
	Blist; 
1990/0801    
	Rendez	r; 
1990/0629    
	int	mid;		/* sequence number */ 
	int	rem;		/* remaining */ 
	long	time; 
	int	acked; 
1990/0801    
	int	inuse; 
1990/0629    
}; 
 
/* 
1990/0731/sys/src/9/power/dat.h:532,5381990/0801/sys/src/9/power/dat.h:533,538
1990/0629    
	int	rcvcircuit;	/* circuit number of incoming packets */ 
 
	uchar	ack[Nnomsg];	/* acknowledgements waiting to be sent */ 
	long	atime[Nnomsg]; 
	int	afirst; 
	int	anext; 
 
1990/0731/sys/src/9/power/dat.h:539,5441990/0801/sys/src/9/power/dat.h:539,545
1990/0629    
	QLock	xlock;		/* one trasmitter at a time */ 
	Rendez	r;		/* process waiting for an output mid */ 
	Nomsg	ctl;		/* for control messages */ 
1990/0801    
	QLock	mlock;		/* lock for out */ 
1990/0629    
	Nomsg	out[Nnomsg];	/* messages being sent */ 
	int	first;		/* first unacknowledged message */ 
	int	next;		/* next message buffer to use */ 
1990/0731/sys/src/9/power/dat.h:547,5531990/0801/sys/src/9/power/dat.h:548,553
1990/0629    
	Nohdr	*hdr;		/* nonet header inside of media header */ 
 
	Noifc	*ifc; 
	int	kstarted; 
1990/0704    
	char	raddr[NAMELEN];	/* remote address */ 
	char	ruser[NAMELEN];	/* remote user */ 
	char	addr[NAMELEN];	/* local address */ 
1990/0801/sys/src/9/power/dat.h:634,6391990/08141/sys/src/9/power/dat.h:634,640 (short | long)
1990/0227    
#define	COPEN	1	/* for i/o */ 
#define	CMOUNT	2	/* is result of a mount/bind */ 
#define	CCREATE	4	/* permits creation if CMOUNT */ 
1990/08141    
#define	CCEXEC	8	/* close on exec */ 
1990/0227    
 
/* 
 * Proc.time 
1990/08141/sys/src/9/power/dat.h:656,6621990/08163/sys/src/9/power/dat.h:656,662 (short | long)
1990/0227    
{ 
	FPinit, 
	FPactive, 
	FPinactive, 
1990/08163    
	FPdirty, 
1990/0227    
}; 
 
/* 
Too many diffs (26 > 25). Stopping.


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)