Plan 9 from Bell Labs’s /usr/web/sources/extra/9hist/mpc/dat.h

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


## diffname mpc/dat.h 1999/0121
## diff -e /dev/null /n/emeliedump/1999/0121/sys/src/brazil/mpc/dat.h
0a
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;
typedef struct PMMU	PMMU;
typedef struct Map	Map;
typedef struct PCArch	PCArch;
typedef struct Proc	Proc;
typedef struct RMap RMap;
typedef struct Ureg	Ureg;

#define	MACHP(n)	(n==0? &mach0 : *(Mach**)0)

/*
 *  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
{
	ulong	UNUSED;
};

/*
 * 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) */
	ulong	splpc;			/* pc of last caller to splhi (unused) */
	int	mmask;			/* 1<<m->machno (unused) */

	/* 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 */
	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;
	ulong*	bcsr;
	IMM*	iomem;	/* MPC8xx internal i/o control memory */

	ulong	fairness;		/* for runproc */

	int	tlbfault;
	int	tlbpurge;
	int	pfault;
	int	cs;
	int	syscall;
	int	load;
	int	intr;
	vlong	fastclock;		/* last sampled value */
	int	flushmmu;		/* make current proc flush it's mmu state */

	/* MUST BE LAST */
	int	stack[1];
};
extern	Mach	mach0;

/*
 * Fake kmap
 */
typedef void		KMap;
#define	VA(k)		((ulong)(k))
#define	kmap(p)		(KMap*)((p)->pa)
#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;

.
## diffname mpc/dat.h 1999/0122
## diff -e /n/emeliedump/1999/0121/sys/src/brazil/mpc/dat.h /n/emeliedump/1999/0122/sys/src/brazil/mpc/dat.h
129c
//	ulong*	bcsr;
.
## diffname mpc/dat.h 1999/0127
## diff -e /n/emeliedump/1999/0122/sys/src/brazil/mpc/dat.h /n/emeliedump/1999/0127/sys/src/brazil/mpc/dat.h
217a
extern int predawn;
.
118d
114a
	Proc	*proc;			/* current process on this processor */
.
113c
	ulong	splpc;			/* pc of last caller to splhi */
.
## diffname mpc/dat.h 1999/0623
## diff -e /n/emeliedump/1999/0127/sys/src/brazil/mpc/dat.h /n/emeliedump/1999/0623/sys/src/brazil/mpc/dat.h
9a
typedef struct PCMmap	PCMmap;
.
## diffname mpc/dat.h 1999/0701
## diff -e /n/emeliedump/1999/0623/sys/src/brazil/mpc/dat.h /n/emeliedump/1999/0701/sys/src/brazil/mpc/dat.h
142a
	vlong	intrts;			/* time stamp of last interrupt */
.
## diffname mpc/dat.h 1999/0810
## diff -e /n/emeliedump/1999/0701/sys/src/brazil/mpc/dat.h /n/emeliedump/1999/0810/sys/src/brazil/mpc/dat.h
32a
	ulong	glare;
.
## diffname mpc/dat.h 1999/0811
## diff -e /n/emeliedump/1999/0810/sys/src/brazil/mpc/dat.h /n/emeliedump/1999/0811/sys/src/brazil/mpc/dat.h
33d
## diffname mpc/dat.h 2000/0516
## diff -e /n/emeliedump/1999/0811/sys/src/brazil/mpc/dat.h /n/emeliedump/2000/0516/sys/src/9/mpc/dat.h
156c
#define	kmap(p)		(KMap*)(((p)->pa)|KZERO)
.
150a
struct Softtlb
{
	ulong	virt;
	ulong	phys;
};

.
149d
135d
120a
	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 */
.
116c
	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;
.
114c
	ulong	splpc;		/* pc of last caller to splhi */
.
55c
	int	pidonmach[MAXMACH];
.
18,19d
15a
typedef struct Softtlb	Softtlb;
.
## diffname mpc/dat.h 2001/0527 # deleted
## diff -e /n/emeliedump/2000/0516/sys/src/9/mpc/dat.h /n/emeliedump/2001/0527/sys/src/9/mpc/dat.h
1,233d

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].