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

1993/0501/power/dat.h (diff list | history)

1993/0206/sys/src/9/power/dat.h:10,171993/0501/sys/src/9/power/dat.h:10,15 (short | long | prev | next)
1991/0507    
typedef struct PMMU	PMMU; 
1991/0425    
typedef struct Softtlb	Softtlb; 
1990/0227    
typedef struct Ureg	Ureg; 
typedef struct User	User; 
                 
1991/0428    
/* 
 *  parameters for sysproc.c 
 */ 
1993/0206/sys/src/9/power/dat.h:46,511993/0501/sys/src/9/power/dat.h:44,53
1990/1211    
	ulong	base0;		/* base of bank 0 */ 
	ulong	base1;		/* base of bank 1 */ 
1990/1212    
	ulong	copymode;	/* 0 is copy on write, 1 is copy on reference */ 
1993/0501    
	ulong	ipif;		/* Ip protocol interfaces */ 
	ulong	ip;		/* Ip conversations per interface */ 
	ulong	arp;		/* Arp table size */ 
	ulong	frag;		/* Ip fragment assemble queue size */ 
1992/1220    
	ulong	debugger;	/* use processor 1 as a kernel debugger */ 
1990/0227    
}; 
 
1993/0206/sys/src/9/power/dat.h:71,761993/0501/sys/src/9/power/dat.h:73,86
1991/0507    
struct PMMU 
{ 
	int	pidonmach[MAXMACH]; 
1993/0501    
	/* 
	 * 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; 
1990/0227    
}; 
 
1991/0428    
#include "../port/portdat.h" 
1993/0206/sys/src/9/power/dat.h:83,1011993/0501/sys/src/9/power/dat.h:93,113
1991/0428    
	uchar	intr;			/* flag: interrupt has occurred */ 
1991/0425    
}; 
 
1993/0501    
/* First FOUR members offsets known by l.s */ 
1990/0227    
struct Mach 
{ 
1991/0425    
	int	machno;			/* physical id of processor NB. MUST BE FIRST */ 
	Softtlb *stb;			/* Software tlb simulation NB. MUST BE SECOND */ 
1993/0501    
	int	machno;			/* physical id of processor */ 
	Softtlb *stb;			/* Software tlb simulation  */ 
	Proc	*proc;			/* current process on this processor */ 
1991/1011    
	ulong	splpc;			/* pc that called splhi() */ 
1993/0501    
	/* Ok to change from here */ 
1990/0227    
	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 */ 
	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 */ 
1993/0501    
	Proc	*pidproc[NTLBPID];	/* tlb allocation table */ 
1991/0705    
	Page	*ufreeme;		/* address of upage of exited process */ 
1992/1202    
	Ureg	*ur; 
1991/0425    
 
1993/0206/sys/src/9/power/dat.h:169,2131993/0501/sys/src/9/power/dat.h:181,185
1990/0227    
 
1991/0428    
#define	MACHP(n)	((Mach *)(MACHADDR+n*BY2PG)) 
1990/0227    
 
1991/0428    
#define	NERR	15 
#define	NNOTE	5 
struct User 
1990/0227    
{ 
1991/0428    
	Proc	*p; 
1991/1111    
	FPsave	fpsave;			/* address of this is known by db */ 
1992/0629    
	int	scallnr;		/* sys call number - known by db */ 
	Sargs	s;			/* address of this is known by db */ 
1991/0428    
	int	nerrlab; 
	Label	errlab[NERR]; 
	char	error[ERRLEN]; 
	char	elem[NAMELEN];		/* last name element from namec */ 
	Chan	*slash; 
	Chan	*dot; 
	/* 
	 * Rest of structure controlled by devproc.c and friends. 
1992/0613    
	 * qlock(&p->debug) to modify. 
1991/0428    
	 */ 
	Note	note[NNOTE]; 
	short	nnote; 
	short	notified;		/* sysnoted is due */ 
1991/0717    
	Note	lastnote; 
1991/0428    
	int	(*notify)(void*, char*); 
1991/1110    
	void	*ureg;			/* User registers for notes */ 
	void	*dbgreg;		/* User registers for debugging in proc */ 
1991/0503    
	ulong	svstatus; 
1992/0102    
	ulong	svr1; 
1991/0428    
	/* 
	 *  machine dependent User stuff 
	 */ 
	/* 
1992/0613    
	 * I/O point for hotrod interfaces. 
1991/0428    
	 * This is the easiest way to allocate 
	 * them, but not the prettiest or most general. 
	 */ 
1992/0613    
	Cycmsg	kcyc; 
	Cycmsg	ucyc; 
	Cycmsg	fcyc; 
1990/0227    
}; 
1990/11211    
                 
1991/0428    
extern register Mach	*m; 
extern register User	*u; 
1993/0501    
extern register Proc	*up; 


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