~kris/9p

9hist

c00efe1f293379b5c994b1dcaeded98bb79792fb — David du Colombier 31 years ago f5e591f
Plan 9 from Bell Labs 1994-10-25
4 files changed, 26 insertions(+), 2 deletions(-)

M carrera/fns.h
M carrera/io.h
M carrera/trap.c
M port/devns16552.c
M carrera/fns.h => carrera/fns.h +2 -0
@@ 85,6 85,7 @@ long*		reg(Ureg*, int);
void		restfpregs(FPsave*, ulong);
void		screeninit(void);
void		screenputs(char*, int);
void		seteisadma(int, void(*)(void));
long		syscall(Ureg*);
void		syslog(char*, int);
void		sysloginit(void);


@@ 141,3 142,4 @@ Block*	iallocb(int);
void*	ifroute(ulong);
ulong	ifunroute(ulong);
void	parseip(char*, char*);
void	mpegintr(void);

M carrera/io.h => carrera/io.h +1 -0
@@ 48,6 48,7 @@ enum
	Eisamphys	= 0x91000000,
	  Eisavgaphys	= Eisamphys+0xA0000,
	Eisamvirt	= 0xE0300000,	/* Second 1M page entry from Intctl */
	Eisadmaintr	= 0x40a,
	Intctlphys	= 0xF0000000,	
	Intctlvirt	= 0xE0200000,
	  Uart1int	= (1<<9),

M carrera/trap.c => carrera/trap.c +22 -1
@@ 57,6 57,7 @@ char *fpcause[] =
};
char	*fpexcname(Ureg*, ulong, char*);
#define FPEXPMASK	(0x3f<<12)		/* Floating exception bits in fcr31 */
void (*eisadma[8])(void);			/* Eisa dma chain vectors */


char *regname[]={


@@ 284,8 285,20 @@ trap(Ureg *ur)
}

void
seteisadma(int ch, void (*func)(void))
{
	if(ch < 0 || ch > 7)
		panic("seteisadma");
	if(eisadma[ch] != 0)
		print("EISA dma%d: intr used twice");

	eisadma[ch] = func;
}

void
intr(Ureg *ur)
{
	int i;
	static uchar devint;
	ulong cause = ur->cause;
	ulong isr, vec;


@@ 351,8 364,16 @@ intr(Ureg *ur)
		case 7:
			audiosbintr();
			break;
		case 10:
			mpegintr();
			break;
		case 13:
			audiodmaintr();
			isr = EISAINB(Eisadmaintr) & ~(1<<4);
			for(i = 0; i < 8; i++) {
				if(isr & 1)
					eisadma[i]();
				isr >>= 1;
			}
			break;
		}
		cause &= ~INTR4;

M port/devns16552.c => port/devns16552.c +1 -1
@@ 400,7 400,7 @@ ns16552kick(Uart *p)
	if(p->cts && p->blocked == 0){
		n = 0;
		while((uartrdreg(p, Lstat) & Outready) == 0){
			if(++n > 10000){
			if(++n > 100000){
				print("stuck serial line\n");
				break;
			}