From 18469b8180755f7e65ced3ce700478cfd49157c9 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 20 Mar 1999 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1999-03-20 --- ip/devip.c | 4 +++- ip/ethermedium.c | 5 +++-- ip/rudp.c | 4 +++- ip/tcp.c | 12 ++++++++---- pc/mp.c | 6 ++++-- pc/screen.h | 4 ++-- port/devaudio.c | 8 ++++++-- port/devkprof.c | 2 +- port/devmnt.c | 12 +++++++++--- port/devmouse.c | 4 ++-- port/devns16552.c | 16 ++++++++++++---- port/devsd.c | 2 +- port/devssl.c | 2 +- port/netif.c | 4 ++-- 14 files changed, 57 insertions(+), 28 deletions(-) diff --git a/ip/devip.c b/ip/devip.c index c7606c4c145e3c9609643d9d3ec30261f37b2269..83d16e42fc3c2695e9aa964d5fdd312d01747390 100644 --- a/ip/devip.c +++ b/ip/devip.c @@ -863,7 +863,7 @@ ttlctlmsg(Conv *c, Cmdbuf *cb) } static long -ipwrite(Chan* ch, char* a, long n, vlong) +ipwrite(Chan* ch, void *v, long n, vlong) { Conv *c; Proto *x; @@ -871,7 +871,9 @@ ipwrite(Chan* ch, char* a, long n, vlong) Cmdbuf *cb; uchar ia[IPaddrlen], ma[IPaddrlen]; Fs *f; + char *a; + a = v; f = ipfs[ch->dev]; switch(TYPE(ch->qid)){ diff --git a/ip/ethermedium.c b/ip/ethermedium.c index 225934a128e8e728e0fac8f9be0b459ff771e57e..0a8bee251152c5e8113886d7f9356837742bd93d 100644 --- a/ip/ethermedium.c +++ b/ip/ethermedium.c @@ -25,7 +25,7 @@ static void etherremmulti(Ipifc *ifc, uchar *a, uchar *ia); static Block* multicastarp(Fs *f, Arpent *a, uchar *mac); static void sendarp(Ipifc *ifc, Arpent *a); static int multicastea(uchar *ea, uchar *ip); -static void recvarpproc(Ipifc *ifc); +static void recvarpproc(void*); Medium ethermedium = { @@ -453,8 +453,9 @@ recvarp(Ipifc *ifc) } static void -recvarpproc(Ipifc *ifc) +recvarpproc(void *v) { + Ipifc *ifc = v; Etherrock *er = ifc->arg; er->arpp = up; diff --git a/ip/rudp.c b/ip/rudp.c index e2f95b4dec021a8293d8eaf120d908d6655bada6..1fa81f5839aa4042afc021f5e5e83efe8bb5ce1d 100644 --- a/ip/rudp.c +++ b/ip/rudp.c @@ -308,8 +308,10 @@ doipoput(Conv *c, Fs *f, Block *bp, int x, int ttl) } int -flow(Reliable *r) +flow(void *v) { + Reliable *r = v; + return UNACKED(r) <= Maxunacked; } diff --git a/ip/tcp.c b/ip/tcp.c index 68d8f58e44552baf0e02b140ea1b2f4e060cb228..2c119c44559c685d200b359d4ab558dab5c540b9 100644 --- a/ip/tcp.c +++ b/ip/tcp.c @@ -239,8 +239,8 @@ void tcpstart(Conv*, int, ushort); void tcptimeout(void*); void tcpsndsyn(Tcpctl*); void tcprcvwin(Conv*); -void tcpacktimer(Conv*); -void tcpkeepalive(Conv*); +void tcpacktimer(void*); +void tcpkeepalive(void*); void tcpsetstate(Conv *s, uchar newstate) @@ -435,10 +435,12 @@ tcprcvwin(Conv *s) /* Call with tcb locked */ } void -tcpacktimer(Conv *s) +tcpacktimer(void *v) { Tcpctl *tcb; + Conv *s; + s = v; tcb = (Tcpctl*)s->ptcl; qlock(s); @@ -1769,10 +1771,12 @@ tcpsendka(Conv *s) * otherwise, send a keepalive and restart the timer */ void -tcpkeepalive(Conv *s) +tcpkeepalive(void *v) { Tcpctl *tcb; + Conv *s; + s = v; tcb = (Tcpctl*)s->ptcl; if(--(tcb->kacounter) <= 0) localclose(s, Etimedout); diff --git a/pc/mp.c b/pc/mp.c index 2196a80e925c6b676bfddceb8466d7070846e945..e9cf5f8d23b09ebf35da7b792bd02c457fb7560c 100644 --- a/pc/mp.c +++ b/pc/mp.c @@ -348,6 +348,8 @@ checkmtrr(void) #define PDX(va) ((((ulong)(va))>>22) & 0x03FF) #define PTX(va) ((((ulong)(va))>>12) & 0x03FF) +Lock clocksynclock; + static void squidboy(Apic* apic) { @@ -369,12 +371,12 @@ squidboy(Apic* apic) /* * Restrain your octopus! Don't let it go out on the sea! */ - lock(&active); + ilock(&clocksynclock); x = MACHP(0)->ticks; while(MACHP(0)->ticks == x) ; wrmsr(0x10, MACHP(0)->fastclock); /* synchronize fast counters */ - unlock(&active); + iunlock(&clocksynclock); lapicinit(apic); lapiconline(); diff --git a/pc/screen.h b/pc/screen.h index 38bc3db89f5276251d5973fad363604f716766ba..ac896752d94c2e630a80b69dca75e39bcbe6c344 100644 --- a/pc/screen.h +++ b/pc/screen.h @@ -10,8 +10,8 @@ extern void mousetrack(int, int, int); extern Point mousexy(void); extern void mouseaccelerate(int); -extern int m3mouseputc(void*, int); -extern int mouseputc(void*, int); +extern int m3mouseputc(Queue*, int); +extern int mouseputc(Queue*, int); extern Cursorinfo cursor; extern Cursor arrow; diff --git a/port/devaudio.c b/port/devaudio.c index 29f7de9b3b5dedcb7e5c47960879c2792b589087..c09f88140b0e4deeb0ba0c9bf254af7f0be8c4ff 100644 --- a/port/devaudio.c +++ b/port/devaudio.c @@ -908,7 +908,7 @@ audioclose(Chan *c) } static long -audioread(Chan *c, char *a, long n, vlong off) +audioread(Chan *c, void *v, long n, vlong off) { int liv, riv, lov, rov; long m, n0; @@ -916,8 +916,10 @@ audioread(Chan *c, char *a, long n, vlong off) Buf *b; int j; ulong offset = off; + char *a; n0 = n; + a = v; switch(c->qid.path & ~CHDIR) { default: error(Eperm); @@ -1009,13 +1011,15 @@ audioread(Chan *c, char *a, long n, vlong off) } static long -audiowrite(Chan *c, char *a, long n, vlong) +audiowrite(Chan *c, void *vp, long n, vlong) { long m, n0; int i, nf, v, left, right, in, out; char buf[255], *field[Ncmd]; Buf *b; + char *a; + a = vp; n0 = n; switch(c->qid.path & ~CHDIR) { default: diff --git a/port/devkprof.c b/port/devkprof.c index f49719be9213b2e25916834a14b57ba620ce1e5c..2a85e6252c2295decd20d524dc3957fab0480af4 100644 --- a/port/devkprof.c +++ b/port/devkprof.c @@ -151,7 +151,7 @@ kprofread(Chan *c, void *va, long n, vlong off) } static long -kprofwrite(Chan *c, char *a, long n, vlong) +kprofwrite(Chan *c, void *a, long n, vlong) { switch((int)(c->qid.path&~CHDIR)){ case Kprofctlqid: diff --git a/port/devmnt.c b/port/devmnt.c index bee3b057906b7346de04b0c365cf99cbc759d2e6..04e27d81f6c499a468b43d1e345e5aede9f916f3 100644 --- a/port/devmnt.c +++ b/port/devmnt.c @@ -54,7 +54,7 @@ void mntrpcread(Mnt*, Mntrpc*); void mountio(Mnt*, Mntrpc*); void mountmux(Mnt*, Mntrpc*); void mountrpc(Mnt*, Mntrpc*); -int rpcattn(Mntrpc*); +int rpcattn(void*); void mclose(Mnt*, Chan*); void mntrecover(Mnt*, Mntrpc*); Chan* mntchan(void); @@ -993,14 +993,20 @@ mntdirfix(uchar *dirbuf, Chan *c) } int -rpcattn(Mntrpc *r) +rpcattn(void *v) { + Mntrpc *r; + + r = v; return r->done || r->m->rip == 0; } int -recdone(Mnt *m) +recdone(void *v) { + Mnt *m; + + m = v; return m->recprog == 0; } diff --git a/port/devmouse.c b/port/devmouse.c index 743245458e1b171ed2ba996615d92a897c6da0a2..7522f8ab8b52b9bf1ea2dd167ad36daccf258195 100644 --- a/port/devmouse.c +++ b/port/devmouse.c @@ -459,7 +459,7 @@ mousetrack(int b, int dx, int dy) * shift & right button is the same as middle button (for 2 button mice) */ int -m3mouseputc(void*, int c) +m3mouseputc(Queue*, int c) { static uchar msg[3]; static int nb; @@ -500,7 +500,7 @@ m3mouseputc(void*, int c) * shift & right button is the same as middle button (for 2 button mice) */ int -mouseputc(void*, int c) +mouseputc(Queue*, int c) { static short msg[5]; static int nb; diff --git a/port/devns16552.c b/port/devns16552.c index e865141a39ae13b0a03504473403be4c6eb33f9e..fb419d8b407d8a83220046ed56cd69a5414e4a27 100644 --- a/port/devns16552.c +++ b/port/devns16552.c @@ -433,10 +433,12 @@ stageoutput(Uart *p) * (re)start output */ static void -ns16552kick0(Uart *p) +ns16552kick0(void *v) { int i; + Uart *p; + p = v; if(p->cts == 0 || p->blocked) return; @@ -456,8 +458,11 @@ ns16552kick0(Uart *p) } static void -ns16552kick(Uart *p) +ns16552kick(void *v) { + Uart *p; + + p = v; ilock(&p->tlock); ns16552kick0(p); iunlock(&p->tlock); @@ -467,8 +472,11 @@ ns16552kick(Uart *p) * restart input if it's off */ static void -ns16552flow(Uart *p) +ns16552flow(void *v) { + Uart *p; + + p = v; if(p->modem){ ns16552rts(p, 1); ilock(&p->rlock); @@ -889,7 +897,7 @@ ns16552ctl(Uart *p, char *cmd) /* let output drain for a while */ for(i = 0; i < 16 && qlen(p->oq); i++) - tsleep(&p->r, qlen, p->oq, 125); + tsleep(&p->r, (int(*)(void*))qlen, p->oq, 125); if(strncmp(cmd, "break", 5) == 0){ ns16552break(p, 0); diff --git a/port/devsd.c b/port/devsd.c index d83d77cf4acfe730852a5bb1fba75cbbdf28ea5e..051560d75c4f546e8b070cd7d9e697f5df0ecd79 100644 --- a/port/devsd.c +++ b/port/devsd.c @@ -257,7 +257,7 @@ sdread(Chan *c, void *a, long n, vlong off) } static long -sdwrite(Chan *c, char *a, long n, vlong off) +sdwrite(Chan *c, void *a, long n, vlong off) { Disk *d; diff --git a/port/devssl.c b/port/devssl.c index 42a7af02f9972ad0cae8a4b7ea7835d82b737102..b5324a7769fdd067419c2817425febb1e11eb88c 100644 --- a/port/devssl.c +++ b/port/devssl.c @@ -187,7 +187,7 @@ sslgen(Chan *c, Dirtab *d, int nd, int s, Dir *dp) } static Chan* -sslattach(void *spec) +sslattach(char *spec) { Chan *c; diff --git a/port/netif.c b/port/netif.c index 14bbb76cbfe02dab5c8c76540e5a5b742ee080f6..518e1ff10f4db9f6e5e58407ef772aa2beb95dab 100644 --- a/port/netif.c +++ b/port/netif.c @@ -30,11 +30,11 @@ netifinit(Netif *nif, char *name, int nfile, ulong limit) * generate a 3 level directory */ static int -netifgen(Chan *c, void *vp, int, int i, Dir *dp) +netifgen(Chan *c, Dirtab *vp, int, int i, Dir *dp) { Qid q; char buf[32]; - Netif *nif = vp; + Netif *nif = (Netif*)vp; Netfile *f; int t; int perm;