~kris/9p

9hist

f606b0be00a8d31a01f0f7f6e4d83a40204f732e — David du Colombier 33 years ago 6ff3b06
Plan 9 from Bell Labs 1993-07-28
3 files changed, 5 insertions(+), 34 deletions(-)

M port/fault.c
M port/portdat.h
M port/qio.c
M port/fault.c => port/fault.c +0 -29
@@ 7,35 7,6 @@

void	faulterror(char*);

ulong
getpte(ulong addr)
{
	Pte **p, *etp;
	Segment *s;
	Page **pg;
	ulong soff;

	s = seg(up, addr, 1);
	if(s == 0)
		return -1;

	addr &= ~(BY2PG-1);
	soff = addr-s->base;
	p = &s->map[soff/PTEMAPMEM];
	if(*p == 0) {
		qunlock(&s->lk);
		return -1;
	}
	etp = *p;
	pg = &etp->pages[(soff&(PTEMAPMEM-1))/BY2PG];
	if(*pg == 0) {
		qunlock(&s->lk);
		return -1;
	}
	qunlock(&s->lk);
	return (*pg)->pa;
}

int
fault(ulong addr, int read)
{

M port/portdat.h => port/portdat.h +1 -2
@@ 599,8 599,7 @@ struct Proc
	void	*dbgreg;	/* User registers for devproc */
	ulong	svstatus;
	ulong	svr1;
int entpc;
int entr31;

	/*
	 *  machine specific MMU
	 */

M port/qio.c => port/qio.c +4 -3
@@ 404,15 404,16 @@ qread(Queue *q, void *vp, int len)
		x = splhi();
		lock(q);

		b = q->bfirst;
		if(b)
			break;

		if(q->state & Qclosed){
			unlock(q);
			splx(x);
			return 0;
		}

		b = q->bfirst;
		if(b)
			break;
		q->state |= Qstarve;
		unlock(q);
		splx(x);