~kris/9p

9hist

de0851f7cf3e76ad75abe1eb7c5281591d87a56a — David du Colombier 32 years ago 3f29c3b
Plan 9 from Bell Labs 1993-10-22
6 files changed, 35 insertions(+), 3 deletions(-)

M carrera/trap.c
M pc/trap.c
M port/cache.c
M port/devproc.c
M port/portfns.h
M power/trap.c
M carrera/trap.c => carrera/trap.c +11 -0
@@ 681,3 681,14 @@ setregisters(Ureg *xp, char *pureg, char *uva, int n)
	memmove(pureg, uva, n);
	xp->status = status;
}

/* Give enough context in the ureg to produce a kernel stack for
 * a sleeping process
 */
void
setkernur(Ureg *xp, Proc *p)
{
	xp->pc = p->sched.pc;
	xp->sp = p->sched.sp;
	xp->r31 = (ulong)sched;
}

M pc/trap.c => pc/trap.c +10 -0
@@ 591,3 591,13 @@ setregisters(Ureg *xp, char *pureg, char *uva, int n)
	xp->cs = cs;
	xp->ss = ss;
}

/* Give enough context in the ureg to produce a kernel stack for
 * a sleeping process
 */
void
setkernur(Ureg *xp, Proc *p)
{
	xp->pc = p->sched.pc;
	xp->sp = p->sched.sp;
}

M port/cache.c => port/cache.c +1 -0
@@ 555,6 555,7 @@ cwrite(Chan* c, uchar *buf, int len, ulong offset)
			m->list = e;
		else
			p->next = e;

		if(tail != 0)
			tail->next = f;
	}

M port/devproc.c => port/devproc.c +1 -3
@@ 350,9 350,7 @@ procread(Chan *c, void *va, long n, ulong offset)

	case Qkregs:
		memset(&kur, 0, sizeof(Ureg));
		kur.pc = p->sched.pc;
		kur.sp = p->sched.sp;
		kur.r31 = (ulong)sched;
		setkernur(&kur, p);
		rptr = (uchar*)&kur;
		rsize = sizeof(Ureg);
		goto regread;

M port/portfns.h => port/portfns.h +1 -0
@@ 230,6 230,7 @@ long		seconds(void);
ulong		segattach(Proc*, ulong, char *, ulong, ulong);
void		segpage(Segment*, Page*);
int		setcolor(ulong, ulong, ulong, ulong);
void		setkernur(Ureg*, Proc*);
int		setlabel(Label*);
void		setregisters(Ureg*, char*, char*, int);
void		setswapchan(Chan*);

M power/trap.c => power/trap.c +11 -0
@@ 647,3 647,14 @@ setregisters(Ureg *xp, char *pureg, char *uva, int n)
	memmove(pureg, uva, n);
	xp->status = status;
}

/* Give enough context in the ureg to produce a kernel stack for
 * a sleeping process
 */
void
setkernur(Ureg *xp, Proc *p)
{
	xp->pc = p->sched.pc;
	xp->sp = p->sched.sp;
	xp->r31 = (ulong)sched;
}