~kris/9p

9hist

2b0e05d28752bc832f2e000d251cf36e11b45fd3 — David du Colombier 32 years ago 767a8e3
Plan 9 from Bell Labs 1994-03-07
5 files changed, 39 insertions(+), 7 deletions(-)

M carrera/fns.h
M carrera/io.h
M carrera/l.s
M carrera/main.c
M carrera/trap.c
M carrera/fns.h => carrera/fns.h +11 -0
@@ 97,6 97,8 @@ void		vector0(void);
void		vector100(void);
void		vector180(void);
void		vmereset(void);
void		uvst(void*, void*);
void		uvld(void*, void*);
void		wbflush(void);
void		wrcompare(ulong);
void		Xdelay(int);


@@ 115,3 117,12 @@ void		enetaddr(uchar*);
#define KADDR(a)	((void*)((ulong)(a)|KSEG0))
#define KADDR1(a)	((void*)((ulong)(a)|KSEG1))
#define PADDR(a)	((ulong)(a)&~KSEGM)

#define hnputl(p, v)	((*(ulong*)p) = v)
#define hnputs(p, v)	((*(ushort*)p) = v)
#define nhgetl(p)	((*(ulong*)p))
#define nhgets(p)	((*(ushrt*)p))

void	ifwrite(void*, Block*);
void*	ifinit(int);
void	fiberint(int);

M carrera/io.h => carrera/io.h +1 -1
@@ 55,7 55,7 @@ enum
	  Keybint	= (1<<6),
	  Scsiint	= (1<<5),
	  Etherint	= (1<<4),
	  Videoint	= (1<<3),
	  Fiberint	= (1<<3),
	  Soundint	= (1<<2),
	  Floppyint	= (1<<1),
	  Parallelint	= (1<<0),

M carrera/l.s => carrera/l.s +19 -0
@@ 840,3 840,22 @@ uvputuna:
	MOVW	R2, 0(R3)
	MOVW	R1, 4(R3)
	RET

TEXT	uvld(SB), $-4		/* uvld(address, dst) */
	MOVV	0(R1), R5
	MOVW	4(FP), R2
	MOVW	R5, 4(R2)
	DSRA	(16,5,5)
	DSRA	(16,5,5)
	MOVW	R5, 0(R2)
	RET

TEXT	uvst(SB), $-4		/* uvst(address, src) */
	MOVW	4(FP), R2
	MOVW	0(R2), R5
	DSLL	(16,5,5)
	DSLL	(16,5,5)
	MOVW	4(R2), R2
	OR	R2, R5	
	MOVV	R5, 0(R1)
	RET

M carrera/main.c => carrera/main.c +1 -1
@@ 251,7 251,7 @@ ioinit(int mapeisa)
	 */

	/* enable all PC interrupts except the clock */
	int0mask &= ~((1<<2)|(1<<5));
	int0mask = 0;
	int0mask |= 1<<(Clockvec&7);
	EISAOUTB(Int0aux, int0mask);


M carrera/trap.c => carrera/trap.c +7 -5
@@ 305,6 305,9 @@ intr(Ureg *ur)
		case 0x24:		/* Serial 2 */
			NS16552intr(1);
			break;
		case 0x10:
			fiberint(0);
			break;
		case 0x14:
			etherintr();
			break;


@@ 319,10 322,6 @@ intr(Ureg *ur)
	}
	if(cause & INTR2) {
		isr = IO(ulong, R4030Isr);
		if(isr & (1<<5)) {
			audiodmaintr();
			isr &= ~(1<<5);
		}
		if(isr) {
			iprint("R4030 Interrupt\n");
			iprint(" ISR #%lux\n", IO(ulong, R4030Isr));


@@ 346,9 345,12 @@ intr(Ureg *ur)
		default:
			iprint("i386ACK #%lux\n", devint);
			break;
		case 5:
		case 7:
			audiosbintr();
			break;
		case 13:
			audiodmaintr();
			break;
		}
		cause &= ~INTR4;
	}