From 37a8ecf698502cf37c125c17641dca9adb4dfb62 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 1 Dec 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-12-01 --- port/devscc.c | 19 +++++++++++++------ port/portfns.h | 2 +- power/trap.c | 1 - 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/port/devscc.c b/port/devscc.c index 9a77aa7f810593b00d825a4062a910305f2e56d6..6b4cf19ec387a2cbb6605538b75714a6fb69415d 100644 --- a/port/devscc.c +++ b/port/devscc.c @@ -118,6 +118,11 @@ SCC *scc[8]; /* up to 4 8530's */ #define CTLS 023 #define CTLQ 021 +#ifdef Zduart +#define SCCTYPE 'z' +#define onepointseven() +#else +#define SCCTYPE 't' void onepointseven(void) { @@ -125,6 +130,7 @@ onepointseven(void) for(i = 0; i < 20; i++) ; } +#endif /* * Access registers using the pointer in register 0. @@ -407,20 +413,21 @@ sccintr0(SCC *sp, uchar x) unlock(cq); } } -void +int sccintr(void) { uchar x; - int i; + int i, j; - for(i = 0; i < nscc; i += 2){ + for(i = j = 0; i < nscc; i += 2){ x = sccrdreg(scc[i], 3); if(x & (ExtPendB|RxPendB|TxPendB)) - sccintr0(scc[i+1], x); + ++j, sccintr0(scc[i+1], x); x = x >> 3; if(x & (ExtPendB|RxPendB|TxPendB)) - sccintr0(scc[i], x); + ++j, sccintr0(scc[i], x); } + return j; } void @@ -707,7 +714,7 @@ sccinit(void) Chan* sccattach(char *spec) { - return devattach('t', spec); + return devattach(SCCTYPE, spec); } Chan* diff --git a/port/portfns.h b/port/portfns.h index 27eeec7b1f9c82ab05105f3f745fcb6bd1bebc08..4753a512a6eddcf1d9b82b2680064aac3427a8d4 100644 --- a/port/portfns.h +++ b/port/portfns.h @@ -201,7 +201,7 @@ void runlock(RWlock*); Proc* runproc(void); void savefpregs(FPsave*); void sccclock(void); -void sccintr(void); +int sccintr(void); void sccsetup(void*, ulong, int); void sccspecial(int, IOQ*, IOQ*, int); void sched(void); diff --git a/power/trap.c b/power/trap.c index 0024aa621bc8c4b00dc8be0d16104313016d8acf..50ec99ef1f47885d0a47fd46878b01b2c57894e4 100644 --- a/power/trap.c +++ b/power/trap.c @@ -282,7 +282,6 @@ intr(Ureg *ur) * if nothing else, what the hell? */ if(!any && bogies++<10){ - if(0) print("bogus intr lvl 5 pend %lux on %d\n", npend, m->machno); USED(npend); delay(100);