From abda8f69cb752733b55308802c5bdc4f419703d5 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Mon, 3 Jun 1991 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1991-06-03 --- port/alarm.c | 4 +++- port/devwren.c | 23 ++++++++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/port/alarm.c b/port/alarm.c index 6bc66da1b70126bf4c531412ad42236676a58f74..7f83f77bad7b349570088c901353a858308df180 100644 --- a/port/alarm.c +++ b/port/alarm.c @@ -73,6 +73,8 @@ alarminit(void) lock(&alarmtab[i]); /* allocate locks, as they are used at interrupt time */ unlock(&alarmtab[i]); } + qlock(&alarms); + qunlock(&alarms); } #define NA 10 /* alarms per clock tick */ @@ -123,8 +125,8 @@ checkalarms(void) } alarms.head = rp->palarm; } + qunlock(&alarms); } - qunlock(&alarms); } ulong diff --git a/port/devwren.c b/port/devwren.c index f8e55b65ccadceb828d434093b1d2ad66b3ef871..bbfe980d92867eae21a13627c91762e2bd806a7c 100644 --- a/port/devwren.c +++ b/port/devwren.c @@ -37,6 +37,8 @@ struct Disk static Disk wren[Ndisk]; +void wrenint(uchar*, ulong); + #define DATASIZE (8*1024) /* BUG */ #define BGLONG(p) (((((((p)[0]<<8)|(p)[1])<<8)|(p)[2])<<8)|(p)[3]) @@ -195,8 +197,6 @@ void wrenclose(Chan *c) {} -#define PSHORT(p, v) ((p)[0]=(v), (p)[1]=((v)>>8)) -#define PLONG(p, v) (PSHORT(p, (v)), PSHORT(p+2, (v)>>16)) long wrenread(Chan *c, char *a, long n, ulong offset) { @@ -237,13 +237,13 @@ wrenread(Chan *c, char *a, long n, ulong offset) qunlock(cmd); break; case Qstruct: - if (n < 8) + if (n < 2*sizeof(ulong)) error(Ebadarg); - if (offset >= 8) + if (offset >= 2*sizeof(ulong)) return 0; - n = 8; - PLONG((uchar *)&a[0], p->maxblock - p->firstblock); - PLONG((uchar *)&a[4], d->blocksize); + n = 2*sizeof(ulong); + wrenint((uchar*)a, p->maxblock - p->firstblock); + wrenint((uchar*)a+sizeof(ulong), d->blocksize); break; default: panic("wrenread"); @@ -304,3 +304,12 @@ wrenwstat(Chan *c, char *dp) { error(Eperm); } + +void +wrenint(uchar *a, ulong x) +{ + a[0] = x >> 24; + a[1] = x >> 16; + a[2] = x >> 8; + a[3] = x; +}