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

2001/0527/port/portdat.h (diff list | history)

2001/0511/sys/src/9/port/portdat.h:9,152001/0527/sys/src/9/port/portdat.h:9,14 (short | long | prev | next)
9P2000 changes XXX
rsc Fri Mar 4 12:44:25 2005
1991/0705    
typedef struct Egrp	Egrp; 
1992/0623    
typedef struct Evalue	Evalue; 
1991/0705    
typedef struct Fgrp	Fgrp; 
2000/1205    
typedef struct DevConf	DevConf; 
1991/0705    
typedef struct Image	Image; 
1991/0428    
typedef struct List	List; 
1999/0316    
typedef struct Log	Log; 
2001/0511/sys/src/9/port/portdat.h:24,292001/0527/sys/src/9/port/portdat.h:23,29
1991/0428    
typedef struct Page	Page; 
1991/0705    
typedef struct Palloc	Palloc; 
1992/0128    
typedef struct Pgrps	Pgrps; 
2001/0527    
typedef struct PhysUart	PhysUart; 
1991/0428    
typedef struct Pgrp	Pgrp; 
1993/0210    
typedef struct Physseg	Physseg; 
1991/0428    
typedef struct Proc	Proc; 
2001/0511/sys/src/9/port/portdat.h:40,512001/0527/sys/src/9/port/portdat.h:40,51
1993/0501    
typedef struct Session	Session; 
1992/0602    
typedef struct Talarm	Talarm; 
1994/0221    
typedef struct Target	Target; 
2001/0527    
typedef struct Uart	Uart; 
1991/0926    
typedef struct Waitq	Waitq; 
2001/0315    
typedef struct Watchdog	Watchdog; 
1992/0307    
typedef int    Devgen(Chan*, Dirtab*, int, int, Dir*); 
2001/0527    
typedef struct Walkqid Walkqid; 
typedef int    Devgen(Chan*, char*, Dirtab*, int, int, Dir*); 
1991/0428    
 
1999/0316    
 
1993/0330    
#include <auth.h> 
#include <fcall.h> 
1992/0619    
 
1991/0428    
struct Ref 
2001/0511/sys/src/9/port/portdat.h:102,1162001/0527/sys/src/9/port/portdat.h:102,117
1991/0428    
 */ 
enum 
{ 
1991/0724    
	Aaccess,			/* as in access, stat */ 
2001/0527    
	Aaccess,			/* as in stat, wstat */ 
1991/0724    
	Atodir,				/* as in chdir */ 
	Aopen,				/* for i/o */ 
	Amount,				/* to be mounted upon */ 
	Acreate,			/* file is to be created */ 
2001/0527    
	Amount,				/* to be mounted or mounted upon */ 
	Acreate,			/* is to be created */ 
	Aremove,			/* will be removed by caller */ 
1993/0501    
 
	COPEN	= 0x0001,		/* for i/o */ 
	CMSG	= 0x0002,		/* the message channel for a mount */ 
	CCREATE	= 0x0004,		/* permits creation if c->mnt */ 
2001/0527    
/*rsc	CCREATE	= 0x0004,		/* permits creation if c->mnt */ 
1993/0501    
	CCEXEC	= 0x0008,		/* close on exec */ 
	CFREE	= 0x0010,		/* not in use */ 
	CRCLOSE	= 0x0020,		/* remove on close */ 
2001/0511/sys/src/9/port/portdat.h:149,1562001/0527/sys/src/9/port/portdat.h:150,159
1991/0428    
	ushort	flag; 
	Qid	qid; 
	int	fid;			/* for devmnt */ 
1998/0829    
	Mhead*	mh;			/* mount point that derived Chan */ 
	Mhead*	xmh;			/* Last mount point crossed */ 
2001/0527    
	ulong	iounit;	/* chunk size for i/o; 0==default */ 
	Mhead*	umh;			/* mount point that derived Chan; used in unionread */ 
	Chan*	umc;			/* channel in union; held for union read */ 
	QLock	umqlock;		/* serialize unionreads */ 
1998/0829    
	int	uri;			/* union read index */ 
1993/0501    
	ulong	mountid; 
1993/1013    
	Mntcache *mcp;			/* Mount cache pointer */ 
2001/0511/sys/src/9/port/portdat.h:163,1682001/0527/sys/src/9/port/portdat.h:166,172
1994/0225    
	Chan*	mchan;			/* channel to mounted server */ 
1991/0428    
	Qid	mqid;			/* qid of root of mount point */ 
1994/0225    
	Session*session; 
2001/0527    
	char	*version;			/* 9P version */ 
1999/0629    
	Cname	*name; 
1991/0428    
}; 
 
2001/0511/sys/src/9/port/portdat.h:182,1902001/0527/sys/src/9/port/portdat.h:186,193
1992/0824    
	void	(*reset)(void); 
	void	(*init)(void); 
	Chan*	(*attach)(char*); 
	Chan*	(*clone)(Chan*, Chan*); 
	int	(*walk)(Chan*, char*); 
	void	(*stat)(Chan*, char*); 
2001/0527    
	Walkqid*	(*walk)(Chan*, Chan*, char**, int); 
	int	(*stat)(Chan*, uchar*, int); 
1992/0824    
	Chan*	(*open)(Chan*, int); 
	void	(*create)(Chan*, char*, int, ulong); 
	void	(*close)(Chan*); 
2001/0511/sys/src/9/port/portdat.h:193,2112001/0527/sys/src/9/port/portdat.h:196,219
1998/0319    
	long	(*write)(Chan*, void*, long, vlong); 
1995/0108    
	long	(*bwrite)(Chan*, Block*, ulong); 
1992/0824    
	void	(*remove)(Chan*); 
	void	(*wstat)(Chan*, char*); 
2000/1122    
	void	(*power)(int);	/* power mgt: power(1) → on, power (0) → off */ 
2000/1205    
	int	(*config)(int, char*, DevConf*); 
2001/0527    
	int	(*wstat)(Chan*, uchar*, int); 
1991/0428    
}; 
 
struct Dirtab 
{ 
	char	name[NAMELEN]; 
2001/0527    
	char	name[KNAMELEN]; 
1991/0428    
	Qid	qid; 
2000/1215    
	vlong	length; 
2001/0527    
	vlong length; 
1991/0428    
	long	perm; 
1992/0808    
}; 
1992/0824    
 
2001/0527    
struct Walkqid 
{ 
	Chan	*clone; 
	int	nqid; 
	Qid	qid[1]; 
}; 
 
1993/0501    
enum 
{ 
	NSMAX	=	1000, 
2001/0511/sys/src/9/port/portdat.h:229,2362001/0527/sys/src/9/port/portdat.h:237,244
1994/0613    
	Mount*	copy; 
	Mount*	order; 
1994/0225    
	Chan*	to;			/* channel replacing channel */ 
1993/0501    
	int	flag; 
	char	spec[NAMELEN]; 
2001/0527    
	int	mflag; 
	char	*spec; 
1991/0428    
}; 
 
1991/1011    
struct Mhead 
2001/0511/sys/src/9/port/portdat.h:251,2592001/0527/sys/src/9/port/portdat.h:259,264
1999/1105    
	ulong	id;		/* Multiplexer id for channel check */ 
1993/0501    
	Mnt	*list;		/* Free list */ 
1999/1105    
	int	flags;		/* cache */ 
1993/0501    
	int	blocksize;	/* read/write block size */ 
1993/1121    
	char	*partial;	/* Outstanding read data */ 
	int	npart;		/* Sizeof remains */ 
1993/0501    
}; 
 
1992/0307    
enum 
2001/0511/sys/src/9/port/portdat.h:265,2712001/0527/sys/src/9/port/portdat.h:270,276
1991/0428    
 
struct Note 
{ 
	char	msg[ERRLEN]; 
2001/0527    
	char	msg[ERRMAX]; 
1991/0428    
	int	flag;			/* whether system posted it */ 
}; 
 
2001/0511/sys/src/9/port/portdat.h:386,3992001/0527/sys/src/9/port/portdat.h:391,406
1991/0705    
 
1992/0824    
enum 
{ 
	RENDHASH =	32,		/* Hash to lookup rendezvous tags */ 
	MNTHASH	=	32,		/* Hash to walk mount table */ 
2001/0527    
	RENDLOG	=	5, 
	RENDHASH =	1<<RENDLOG,		/* Hash to lookup rendezvous tags */ 
	MNTLOG	=	5, 
	MNTHASH =	1<<MNTLOG,		/* Hash to walk mount table */ 
1993/0501    
	NFD =		100,		/* per process file descriptors */ 
1992/1209    
	PGHLOG  =	9, 
	PGHSIZE	=	1<<PGHLOG,	/* Page hash for image lookup */ 
1992/0824    
}; 
1991/0806    
#define REND(p,s)	((p)->rendhash[(s)%RENDHASH]) 
1991/1011    
#define MOUNTH(p,s)	((p)->mnthash[(s)->qid.path%MNTHASH]) 
2001/0527    
#define REND(p,s)	((p)->rendhash[(s)&((1<<RENDLOG)-1)]) 
#define MOUNTH(p,qid)	((p)->mnthash[(qid).path&((1<<MNTLOG)-1)]) 
1991/0806    
 
1991/0428    
struct Pgrp 
{ 
2001/0511/sys/src/9/port/portdat.h:532,5442001/0527/sys/src/9/port/portdat.h:539,551
1993/0501    
	Label	sched;		/* known to l.s */ 
	char	*kstack;	/* known to l.s */ 
	Mach	*mach;		/* machine running this proc */ 
1991/0428    
	char	text[NAMELEN]; 
1991/1105    
	char	user[NAMELEN]; 
2001/0527    
	char	*text; 
	char	*user; 
2001/0511    
	char	*args; 
	int	nargs;		/* number of bytes of args */ 
1993/0501    
	Proc	*rnext;		/* next process in run queue */ 
	Proc	*qnext;		/* next process on queue for a QLock */ 
	QLock	*qlock;		/* addrof qlock being queued for DEBUG */ 
2001/0527    
	QLock	*qlock;		/* addr of qlock being queued for DEBUG */ 
1991/0428    
	int	state; 
1993/0501    
	char	*psstate;	/* What /proc/#/status reports */ 
1991/0705    
	Segment	*seg[NSEG]; 
2001/0511/sys/src/9/port/portdat.h:597,6042001/0527/sys/src/9/port/portdat.h:604,611
1993/0501    
	Sargs	s;		/* address of this is known by db */ 
	int	nerrlab; 
	Label	errlab[NERR]; 
	char	error[ERRLEN]; 
	char	elem[NAMELEN];	/* last name element from namec */ 
2001/0527    
	char	error[ERRMAX]; 
	char	genbuf[128];	/* buffer used e.g. for last name element from namec */ 
1993/0501    
	Chan	*slash; 
	Chan	*dot; 
 
2001/0511/sys/src/9/port/portdat.h:623,6292001/0527/sys/src/9/port/portdat.h:630,635
1998/0516    
				 *  that last preempted it 
				 */ 
1999/0110    
	ulong	qpc;		/* pc calling last blocking qlock */ 
2001/0127    
	ulong	kppc;		/* kprof calling pc */ 
1993/1204    
 
1993/0501    
	void	*ureg;		/* User registers for notes */ 
	void	*dbgreg;	/* User registers for devproc */ 
2001/0511/sys/src/9/port/portdat.h:648,6962001/0527/sys/src/9/port/portdat.h:654,677
1992/0625    
extern	char*	conffile; 
extern	int	cpuserver; 
1997/0327    
extern	Dev*	devtab[]; 
1991/1109    
extern  char	eve[]; 
2001/0527    
extern  char	*eve; 
1993/0330    
extern	char	hostdomain[]; 
1992/0902    
extern	uchar	initcode[]; 
1992/0625    
extern	FPsave	initfp; 
1997/0327    
extern  Queue*	kbdq; 
2001/0527    
extern  Queue*	kprintoq; 
1992/0625    
extern  Ref	noteidalloc; 
1991/1112    
extern	int	nrdy; 
1993/0501    
extern	Palloc	palloc; 
1993/0601    
extern  Queue	*printq; 
2001/0527    
extern  Queue	*serialoq; 
1992/0625    
extern	char*	statename[]; 
extern  Image	swapimage; 
1992/0321    
extern	char	sysname[NAMELEN]; 
2001/0527    
extern	int	nsyscall; 
extern	char	*sysname; 
1993/0501    
extern	Pthash	syspt; 
1992/0602    
extern	Talarm	talarm; 
1991/0428    
 
1992/0824    
enum 
{ 
	CHDIR =		0x80000000L, 
	CHAPPEND = 	0x40000000L, 
	CHEXCL =	0x20000000L, 
1993/0323    
	CHMOUNT	=	0x10000000L, 
1992/0824    
}; 
1992/0318    
                 
/* 
 * auth messages 
 */ 
1992/0625    
enum 
{ 
1992/0318    
	FScchal	= 1, 
1992/0321    
	FSschal, 
	FSok, 
1992/0318    
	FSctick, 
1992/0321    
	FSstick, 
	FSerr, 
1992/0318    
                 
	RXschal	= 0, 
	RXstick	= 1, 
1993/0501    
                 
	AUTHLEN	= 8, 
1994/0221    
}; 
                 
1992/1021    
enum 
{ 
1996/0303    
	LRESPROF	= 3, 
1999/0316    
}; 
 
2001/0511/sys/src/9/port/portdat.h:725,7322001/0527/sys/src/9/port/portdat.h:706,792
1999/0316    
	int	nf; 
1996/0303    
}; 
1994/0814    
 
1994/0407    
extern int nsyscall; 
2001/0527    
/* 
 *  routines to access UART hardware 
 */ 
struct PhysUart 
{ 
	char*	name; 
	Uart*	(*pnp)(void); 
	void	(*enable)(Uart*, int); 
	void	(*disable)(Uart*); 
	void	(*kick)(Uart*); 
	void	(*dobreak)(Uart*, int); 
	int	(*baud)(Uart*, int); 
	int	(*bits)(Uart*, int); 
	int	(*stop)(Uart*, int); 
	int	(*parity)(Uart*, int); 
	void	(*modemctl)(Uart*, int); 
	void	(*rts)(Uart*, int); 
	void	(*dtr)(Uart*, int); 
	long	(*status)(Uart*, void*, long, long); 
	void	(*fifo)(Uart*, int); 
}; 
1998/0811    
 
2001/0527    
enum { 
	Stagesize=	1024 
}; 
 
/* 
 *  software UART 
 */ 
struct Uart 
{ 
	void*	regs;			/* hardware stuff */ 
	char*	name;			/* internal name */ 
	ulong	freq;			/* clock frequency */ 
	int	bits;			/* bits per character */ 
	int	stop;			/* stop bits */ 
	int	parity;			/* even, odd or no parity */ 
	int	baud;			/* baud rate */ 
	PhysUart*phys; 
	int	console;		/* used as a serial console */ 
	int	special;		/* internal kernel device */ 
	Uart*	next;			/* list of allocated uarts */ 
 
	QLock; 
	int	type;			/* ?? */ 
	int	dev; 
	int	opens; 
 
	int	enabled; 
	Uart	*elist;			/* next enabled interface */ 
 
	int	perr;			/* parity errors */ 
	int	ferr;			/* framing errors */ 
	int	oerr;			/* rcvr overruns */ 
 
	/* buffers */ 
	int	(*putc)(Queue*, int); 
	Queue	*iq; 
	Queue	*oq; 
 
	uchar	istage[Stagesize]; 
	uchar	*iw; 
	uchar	*ir; 
	uchar	*ie; 
 
	Lock	tlock;			/* transmit */ 
	uchar	ostage[Stagesize]; 
	uchar	*op; 
	uchar	*oe; 
 
	int	modem;			/* hardware flow control on */ 
	int	xonoff;			/* software flow control on */ 
	int	blocked; 
	int	cts, dsr, dcd, dcdts;	/* keep track of modem status */  
	int	ctsbackoff; 
	int	hup_dsr, hup_dcd;	/* send hangup upstream? */ 
	int	dohup; 
 
	Rendez	r; 
}; 
 
1999/1230    
#define DEVDOTDOT -1 
 
1998/0811    
#pragma	varargck	argpos	print	1 
2001/0511/sys/src/9/port/portdat.h:755,7612001/0527/sys/src/9/port/portdat.h:815,820
1998/0811    
#pragma	varargck	type	"e"	double 
#pragma	varargck	type	"g"	double 
#pragma	varargck	type	"s"	char* 
2001/0511    
#pragma	varargck	type	"q"	char* 
1998/0811    
#pragma	varargck	type	"S"	Rune* 
#pragma	varargck	type	"r"	void 
#pragma	varargck	type	"%"	void 
2001/0511/sys/src/9/port/portdat.h:764,7662001/0527/sys/src/9/port/portdat.h:823,826
1998/0811    
#pragma	varargck	type	"E"	uchar* 
#pragma	varargck	type	"M"	uchar* 
1999/0517    
#pragma	varargck	type	"p"	void* 
2001/0527    
#pragma	varargck	type	"q"	char* 


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