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

1999/0122/mpc/dat.h (diff list | history)

1999/0121/sys/src/9/mpc/dat.h:126,1321999/0122/sys/src/9/mpc/dat.h:126,132 (short | long)
1999/0121    
	long	clockgen;	/* clock generator frequency (cycles) */ 
	int	cputype; 
	ulong	delayloop; 
	ulong*	bcsr; 
1999/0122    
//	ulong*	bcsr; 
1999/0121    
	IMM*	iomem;	/* MPC8xx internal i/o control memory */ 
 
	ulong	fairness;		/* for runproc */ 
1999/0122/sys/src/9/mpc/dat.h:110,1211999/0127/sys/src/9/mpc/dat.h:110,121 (short | long)
1999/0121    
{ 
	/* OFFSETS OF THE FOLLOWING KNOWN BY l.s */ 
	int	machno;			/* physical id of processor (unused) */ 
	ulong	splpc;			/* pc of last caller to splhi (unused) */ 
1999/0127    
	ulong	splpc;			/* pc of last caller to splhi */ 
1999/0121    
	int	mmask;			/* 1<<m->machno (unused) */ 
1999/0127    
	Proc	*proc;			/* current process on this processor */ 
1999/0121    
 
	/* ordering from here on irrelevant */ 
	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 */ 
1999/0122/sys/src/9/mpc/dat.h:215,2171999/0127/sys/src/9/mpc/dat.h:215,218
1999/0121    
extern register Mach	*m; 
extern register Proc	*up; 
 
1999/0127    
extern int predawn; 
1999/0127/sys/src/9/mpc/dat.h:7,121999/0623/sys/src/9/mpc/dat.h:7,13 (short | long)
1999/0121    
typedef struct Lock	Lock; 
typedef struct Mach	Mach; 
typedef struct Notsave	Notsave; 
1999/0623    
typedef struct PCMmap	PCMmap; 
1999/0121    
typedef struct PMMU	PMMU; 
typedef struct Map	Map; 
typedef struct PCArch	PCArch; 
1999/0623/sys/src/9/mpc/dat.h:140,1451999/0701/sys/src/9/mpc/dat.h:140,146 (short | long)
1999/0121    
	int	load; 
	int	intr; 
	vlong	fastclock;		/* last sampled value */ 
1999/0701    
	vlong	intrts;			/* time stamp of last interrupt */ 
1999/0121    
	int	flushmmu;		/* make current proc flush it's mmu state */ 
 
	/* MUST BE LAST */ 
1999/0701/sys/src/9/mpc/dat.h:30,351999/0810/sys/src/9/mpc/dat.h:30,36 (short | long)
1999/0121    
	ulong	sr; 
	Proc	*p; 
	ushort	isilock; 
1999/0810    
	ulong	glare; 
1999/0121    
}; 
 
struct	Label 
1999/0810/sys/src/9/mpc/dat.h:30,361999/0811/sys/src/9/mpc/dat.h:30,35 (short | long)
1999/0121    
	ulong	sr; 
	Proc	*p; 
	ushort	isilock; 
1999/0810    
	ulong	glare; 
1999/0121    
}; 
 
struct	Label 
1999/0811/sys/src/9/mpc/dat.h:13,222000/0516/sys/src/9/mpc/dat.h:13,21 (short | long)
1999/0121    
typedef struct PCArch	PCArch; 
typedef struct Proc	Proc; 
typedef struct RMap RMap; 
2000/0516    
typedef struct Softtlb	Softtlb; 
1999/0121    
typedef struct Ureg	Ureg; 
 
#define	MACHP(n)	(n==0? &mach0 : *(Mach**)0) 
                 
/* 
 *  parameters for sysproc.c 
 */ 
1999/0811/sys/src/9/mpc/dat.h:52,582000/0516/sys/src/9/mpc/dat.h:51,57
1999/0121    
#define NCOLOR 1 
struct PMMU 
{ 
	ulong	UNUSED; 
2000/0516    
	int	pidonmach[MAXMACH]; 
1999/0121    
}; 
 
/* 
1999/0811/sys/src/9/mpc/dat.h:111,1232000/0516/sys/src/9/mpc/dat.h:110,132
1999/0121    
{ 
	/* OFFSETS OF THE FOLLOWING KNOWN BY l.s */ 
	int	machno;			/* physical id of processor (unused) */ 
1999/0127    
	ulong	splpc;			/* pc of last caller to splhi */ 
2000/0516    
	ulong	splpc;		/* pc of last caller to splhi */ 
1999/0121    
	int	mmask;			/* 1<<m->machno (unused) */ 
1999/0127    
	Proc	*proc;			/* current process on this processor */ 
2000/0516    
	Proc	*proc;		/* current process on this processor */ 
	Softtlb	*stb;		/* software tlb cache */ 
	ulong tlbfault;		/* # of tlb faults */ 
	ulong dar;		/* # of tlb faults */ 
	ulong dsisr;		/* # of tlb faults */ 
	ulong epn; 
	ulong cmp1; 
1999/0121    
 
	/* ordering from here on irrelevant */ 
	ulong	ticks;			/* of the clock since boot time */ 
	Label	sched;			/* scheduler wakeup */ 
2000/0516    
	QLock	stlblk;		/* lock for allocating stlb entries on this mach */ 
	int	lastpid;		/* last pid allocated on this machine */ 
	int	purgepid;		/* last pid purged on this machine */ 
	Proc*	pidproc[NTLBPID];	/* proc that owns tlbpid on this mach */ 
1999/0121    
	Lock	alarmlock;		/* access to alarm list */ 
	void	*alarm;			/* alarms bound to this clock */ 
	int	nrdy; 
1999/0811/sys/src/9/mpc/dat.h:132,1382000/0516/sys/src/9/mpc/dat.h:141,146
1999/0121    
 
	ulong	fairness;		/* for runproc */ 
 
	int	tlbfault; 
	int	tlbpurge; 
	int	pfault; 
	int	cs; 
1999/0811/sys/src/9/mpc/dat.h:146,1592000/0516/sys/src/9/mpc/dat.h:154,172
1999/0121    
	/* MUST BE LAST */ 
	int	stack[1]; 
}; 
extern	Mach	mach0; 
 
2000/0516    
struct Softtlb 
{ 
	ulong	virt; 
	ulong	phys; 
}; 
 
1999/0121    
/* 
 * Fake kmap 
 */ 
typedef void		KMap; 
#define	VA(k)		((ulong)(k)) 
#define	kmap(p)		(KMap*)((p)->pa) 
2000/0516    
#define	kmap(p)		(KMap*)(((p)->pa)|KZERO) 
1999/0121    
#define	kunmap(k) 
 
/* 
2000/0516/sys/src/9/mpc/dat.h:1,2332001/0527/sys/src/9/mpc/dat.h:0 (short | long)
Deleted.
rsc Mon Mar 7 10:28:38 2005
1999/0121    
typedef struct Conf	Conf; 
typedef struct FPsave	FPsave; 
typedef struct IMM	IMM; 
typedef struct Irqctl	Irqctl; 
typedef struct ISAConf	ISAConf; 
typedef struct Label	Label; 
typedef struct Lock	Lock; 
typedef struct Mach	Mach; 
typedef struct Notsave	Notsave; 
1999/0623    
typedef struct PCMmap	PCMmap; 
1999/0121    
typedef struct PMMU	PMMU; 
typedef struct Map	Map; 
typedef struct PCArch	PCArch; 
typedef struct Proc	Proc; 
typedef struct RMap RMap; 
2000/0516    
typedef struct Softtlb	Softtlb; 
1999/0121    
typedef struct Ureg	Ureg; 
                 
/* 
 *  parameters for sysproc.c 
 */ 
#define AOUT_MAGIC	(Q_MAGIC) 
                 
                 
struct	Lock 
{ 
	ulong	key; 
	ulong	pc; 
	ulong	sr; 
	Proc	*p; 
	ushort	isilock; 
}; 
                 
struct	Label 
{ 
	ulong	sp; 
	ulong	pc; 
}; 
                 
/* 
 *  things saved in the Proc structure during a notify 
 */ 
struct Notsave 
{ 
	ulong	UNUSED; 
}; 
                 
/* 
 *  MMU stuff in proc 
 */ 
#define NCOLOR 1 
struct PMMU 
{ 
2000/0516    
	int	pidonmach[MAXMACH]; 
1999/0121    
}; 
                 
/* 
 * FPsave.status 
 */ 
enum 
{ 
	FPinit, 
	FPactive, 
	FPinactive, 
}; 
                 
/* 
 * This structure must agree with fpsave and fprestore asm routines 
 */ 
struct	FPsave 
{ 
	double	fpreg[32]; 
	union { 
		double	fpscrd; 
		struct { 
			ulong	pad; 
			ulong	fpscr; 
		}; 
	}; 
	int	fpistate;	/* emulated fp */ 
	ulong	emreg[32][3];	/* emulated fp */ 
}; 
                 
struct Conf 
{ 
	ulong	nmach;		/* processors */ 
	ulong	nproc;		/* processes */ 
	ulong	npage0;		/* total physical pages of memory */ 
	ulong	npage1;		/* total physical pages of memory */ 
	ulong	npage;		/* total physical pages of memory */ 
	ulong	upages;		/* user page pool */ 
	ulong	nimage;		/* number of page cache image headers */ 
	ulong	nswap;		/* number of swap pages */ 
	int	nswppo;		/* max # of pageouts per segment pass */ 
	ulong	base0;		/* base of bank 0 */ 
	ulong	base1;		/* base of bank 1 */ 
	ulong	copymode;	/* 0 is copy on write, 1 is copy on reference */ 
	ulong	ialloc;		/* max interrupt time allocation in bytes */ 
	ulong	interps;	/* number of interpreter processes */ 
	ulong	pipeqsize;	/* size in bytes of pipe queues */ 
}; 
                 
#include "../port/portdat.h" 
                 
/* 
 *  machine dependent definitions not used by ../port/dat.h 
 */ 
                 
struct Mach 
{ 
	/* OFFSETS OF THE FOLLOWING KNOWN BY l.s */ 
	int	machno;			/* physical id of processor (unused) */ 
2000/0516    
	ulong	splpc;		/* pc of last caller to splhi */ 
1999/0121    
	int	mmask;			/* 1<<m->machno (unused) */ 
2000/0516    
	Proc	*proc;		/* current process on this processor */ 
	Softtlb	*stb;		/* software tlb cache */ 
	ulong tlbfault;		/* # of tlb faults */ 
	ulong dar;		/* # of tlb faults */ 
	ulong dsisr;		/* # of tlb faults */ 
	ulong epn; 
	ulong cmp1; 
1999/0121    
                 
	/* ordering from here on irrelevant */ 
	ulong	ticks;			/* of the clock since boot time */ 
	Label	sched;			/* scheduler wakeup */ 
2000/0516    
	QLock	stlblk;		/* lock for allocating stlb entries on this mach */ 
	int	lastpid;		/* last pid allocated on this machine */ 
	int	purgepid;		/* last pid purged on this machine */ 
	Proc*	pidproc[NTLBPID];	/* proc that owns tlbpid on this mach */ 
1999/0121    
	Lock	alarmlock;		/* access to alarm list */ 
	void	*alarm;			/* alarms bound to this clock */ 
	int	nrdy; 
	int	speed;	/* general system clock in MHz */ 
	long	oscclk;	/* oscillator frequency (MHz) */ 
	long	cpuhz;	/* general system clock (cycles) */ 
	long	clockgen;	/* clock generator frequency (cycles) */ 
	int	cputype; 
	ulong	delayloop; 
1999/0122    
//	ulong*	bcsr; 
1999/0121    
	IMM*	iomem;	/* MPC8xx internal i/o control memory */ 
                 
	ulong	fairness;		/* for runproc */ 
                 
	int	tlbpurge; 
	int	pfault; 
	int	cs; 
	int	syscall; 
	int	load; 
	int	intr; 
	vlong	fastclock;		/* last sampled value */ 
1999/0701    
	vlong	intrts;			/* time stamp of last interrupt */ 
1999/0121    
	int	flushmmu;		/* make current proc flush it's mmu state */ 
                 
	/* MUST BE LAST */ 
	int	stack[1]; 
}; 
                 
2000/0516    
struct Softtlb 
{ 
	ulong	virt; 
	ulong	phys; 
}; 
                 
1999/0121    
/* 
 * Fake kmap 
 */ 
typedef void		KMap; 
#define	VA(k)		((ulong)(k)) 
2000/0516    
#define	kmap(p)		(KMap*)(((p)->pa)|KZERO) 
1999/0121    
#define	kunmap(k) 
                 
/* 
 *  routines for things outside the PowerPC model 
 */ 
struct PCArch 
{ 
	char*	id; 
	int	(*ident)(void);		/* this should be in the model */ 
	void	(*reset)(void);		/* this should be in the model */ 
	int	(*serialpower)(int);	/* 1 == on, 0 == off */ 
	int	(*modempower)(int);	/* 1 == on, 0 == off */ 
                 
	void	(*intrinit)(void); 
	int	(*intrenable)(int, int, Irqctl*); 
                 
	void	(*clockenable)(void); 
}; 
                 
/* 
 *  a parsed .ini line 
 */ 
#define ISAOPTLEN	16 
#define NISAOPT		8 
                 
struct ISAConf { 
	char	type[NAMELEN]; 
	ulong	port; 
	ulong	irq; 
	ulong	mem; 
	int	dma; 
	ulong	size; 
	ulong	freq; 
	uchar	bus; 
                 
	int	nopt; 
	char	opt[NISAOPT][ISAOPTLEN]; 
}; 
                 
struct Map { 
	int	size; 
	ulong	addr; 
}; 
                 
struct RMap { 
	char*	name; 
	Map*	map; 
	Map*	mapend; 
                 
	Lock; 
}; 
                 
struct 
{ 
	Lock; 
	short	machs; 
	short	exiting; 
	short	ispanic; 
}active; 
                 
extern register Mach	*m; 
extern register Proc	*up; 
                 
1999/0127    
extern int predawn; 


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