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

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

1991/0606/sys/src/9/port/portdat.h:9,141991/0607/sys/src/9/port/portdat.h:9,16 (short | long | prev | next)
Add IOQ, KIOQ, OISMEM, OSHARED. In Orig, add freepg, allocpg. Remove Seg.pad.
rsc Fri Mar 4 12:44:25 2005
1991/0428    
typedef struct Envp	Envp; 
typedef struct Envval	Envval; 
typedef struct Etherpkt	Etherpkt; 
1991/0607    
typedef struct IOQ	IOQ; 
typedef struct KIOQ	KIOQ; 
1991/0428    
typedef struct List	List; 
typedef struct Mount	Mount; 
typedef struct Mtab	Mtab; 
1991/0606/sys/src/9/port/portdat.h:199,2041991/0607/sys/src/9/port/portdat.h:201,237
1991/0428    
#define	ETHERMAXTU	1514	/* maximum transmit size */ 
#define ETHERHDRSIZE	14	/* size of an ethernet header */ 
 
1991/0607    
/* 
 *  character based IO (mouse, keyboard, console screen) 
 */ 
#define NQ	4096 
struct IOQ 
{ 
	Lock; 
	uchar	buf[NQ]; 
	uchar	*in; 
	uchar	*out; 
	int	state; 
	Rendez	r; 
	union{ 
		void	(*puts)(IOQ*, void*, int);	/* output */ 
		int	(*putc)(IOQ*, int);		/* input */ 
	}; 
	void	*ptr; 
}; 
struct KIOQ 
{ 
	QLock; 
	IOQ; 
	int	repeat; 
	int	c; 
	int	count; 
}; 
extern IOQ	lineq; 
extern IOQ	printq; 
extern IOQ	mouseq; 
extern KIOQ	kbdq; 
 
1991/0428    
struct Mount 
{ 
	Ref;				/* also used as a lock when playing lists */ 
1991/0606/sys/src/9/port/portdat.h:229,2341991/0607/sys/src/9/port/portdat.h:262,269
1991/0428    
#define	OWRPERM	0x01	/* write permission */ 
#define	OPURE	0x02	/* original data mustn't be written */ 
#define	OCACHED	0x04	/* cached; don't discard on exit */ 
1991/0607    
#define OISMEM	0x08	/* origin contains real memory */ 
#define OSHARED	0x10	/* origin does not copy on ref/wr */ 
1991/0428    
 
struct Orig 
{ 
1991/0606/sys/src/9/port/portdat.h:247,2521991/0607/sys/src/9/port/portdat.h:282,289
1991/0428    
	Qid	mqid; 
	ulong	minca;			/* base of region in chan */ 
	ulong	maxca;			/* end of region in chan */ 
1991/0607    
	void	(*freepg)(Page*, int);	/* how to free pages for this origin */ 
	Page	(*allocpg)(int, Orig*, ulong); 
1991/0428    
}; 
 
struct Page 
1991/0606/sys/src/9/port/portdat.h:298,3041991/0607/sys/src/9/port/portdat.h:335,340
1991/0428    
	ulong	maxva;			/* va of last pte */ 
	PTE	*mod;			/* list of modified pte's */ 
1991/0606    
	ulong	endseg;			/* segments end */ 
	ulong	pad[2]; /**/ 
1991/0428    
}; 
 
/* 


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