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

1991/0926/port/portdat.h (diff list | history)

1991/0830/sys/src/9/port/portdat.h:30,351991/0926/sys/src/9/port/portdat.h:30,36 (short | long | prev | next)
Add Waitq and use in Proc.
Remove unused process states, Proc.exiting, Stream.forcedelim.
rsc Fri Mar 4 12:44:25 2005
1991/0428    
typedef struct Rendez	Rendez; 
1991/0705    
typedef struct Segment	Segment; 
1991/0428    
typedef struct Stream	Stream; 
1991/0926    
typedef struct Waitq	Waitq; 
1991/0428    
 
typedef int Devgen(Chan*, Dirtab*, int, int, Dir*); 
 
1991/0830/sys/src/9/port/portdat.h:410,4151991/0926/sys/src/9/port/portdat.h:411,422
1991/0724    
	int	wanted;			/* Do the wakeup at free */ 
1991/0705    
}; 
 
1991/0926    
struct Waitq 
{ 
	Waitmsg	w; 
	Waitq	*next; 
}; 
 
1991/0514    
enum					/* Argument to forkpgrp call */ 
{ 
	FPall 	  = 0,			/* Concession to back portablility */ 
1991/0830/sys/src/9/port/portdat.h:441,4541991/0926/sys/src/9/port/portdat.h:448,457
1991/0428    
{ 
	Dead = 0, 
	Moribund, 
	Zombie, 
	Ready, 
	Scheding, 
	Running, 
	Queueing, 
	MMUing, 
	Exiting, 
	Inwait, 
	Wakeme, 
	Broken, 
1991/0705    
	Stopped, 
1991/0830/sys/src/9/port/portdat.h:487,4991991/0926/sys/src/9/port/portdat.h:490,505
1991/0428    
	QLock	*qlock;			/* address of qlock being queued for DEBUG */ 
1991/0830    
	ulong	qlockpc;		/* pc of last call to qlock */ 
1991/0428    
	int	state; 
1991/0926    
	char	*psstate;		/* What /proc/???/status reports */ 
1991/0428    
	Page	*upage;			/* BUG: should be unlinked from page list */ 
1991/0705    
	Segment	*seg[NSEG]; 
1991/0428    
	ulong	pid; 
	int	nchild; 
	QLock	wait;			/* exiting children to be waited for */ 
	Waitmsg	waitmsg;		/* this is large but must be addressable */ 
	Proc	*child; 
1991/0926    
 
	Lock	exl;			/* Lock count and waitq */ 
	Waitq	*waitq;			/* Exited processes wait children */ 
	int	nchild;			/* Number of living children */ 
	int	nwait;			/* Number of uncollected wait records */ 
	Rendez	waitr;			/* Place to hang out in wait */ 
1991/0428    
	Proc	*parent; 
1991/0705    
 
	Pgrp	*pgrp;			/* Process group for notes and namespace */ 
1991/0830/sys/src/9/port/portdat.h:502,5081991/0926/sys/src/9/port/portdat.h:508,513
1991/0705    
 
1991/0428    
	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 */ 
1991/0830/sys/src/9/port/portdat.h:573,5791991/0926/sys/src/9/port/portdat.h:578,583
1991/0724    
	Queue	*procq;			/* write queue at process end */ 
	Queue	*devq;			/* read queue at device end */ 
	Block	*err;			/* error message from down stream */ 
	int	forcedelim;		/* force a delimiter before the next message */ 
1991/0809    
	int	flushmsg;		/* flush up till the next delimiter */ 
1991/0428    
}; 
 


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