64-bit fixes from plan 9

This commit is contained in:
rsc 2006-04-20 20:35:35 +00:00
parent dbbfb316fb
commit cbf4378304
3 changed files with 23 additions and 23 deletions

View file

@ -22,7 +22,7 @@ int exiting;
void inmesg(Hmesg, int); void inmesg(Hmesg, int);
int inshort(int); int inshort(int);
long inlong(int); long inlong(int);
long invlong(int); vlong invlong(int);
void hsetdot(int, long, long); void hsetdot(int, long, long);
void hmoveto(int, long); void hmoveto(int, long);
void hsetsnarf(int); void hsetsnarf(int);
@ -331,7 +331,7 @@ clrlock(void)
void void
startfile(Text *t) startfile(Text *t)
{ {
outTsv(Tstartfile, t->tag, t); /* for 64-bit pointers */ outTsv(Tstartfile, t->tag, (vlong)t); /* for 64-bit pointers */
setlock(); setlock();
} }
@ -339,7 +339,7 @@ void
startnewfile(int type, Text *t) startnewfile(int type, Text *t)
{ {
t->tag = Untagged; t->tag = Untagged;
outTv(type, t); /* for 64-bit pointers */ outTv(type, (vlong)t); /* for 64-bit pointers */
} }
int int
@ -355,15 +355,15 @@ inlong(int n)
((long)indata[n+2]<<16)|((long)indata[n+3]<<24); ((long)indata[n+2]<<16)|((long)indata[n+3]<<24);
} }
long vlong
invlong(int n) invlong(int n)
{ {
long l; vlong v;
l = (indata[n+7]<<24) | (indata[n+6]<<16) | (indata[n+5]<<8) | indata[n+4]; v = (indata[n+7]<<24) | (indata[n+6]<<16) | (indata[n+5]<<8) | indata[n+4];
l = (l<<16) | (indata[n+3]<<8) | indata[n+2]; v = (v<<16) | (indata[n+3]<<8) | indata[n+2];
l = (l<<16) | (indata[n+1]<<8) | indata[n]; v = (v<<16) | (indata[n+1]<<8) | indata[n];
return l; return v;
} }
void void
@ -418,19 +418,19 @@ outTsl(Tmesg type, int s1, long l1)
} }
void void
outTsv(Tmesg type, int s1, void *l1) outTsv(Tmesg type, int s1, vlong v1)
{ {
outstart(type); outstart(type);
outshort(s1); outshort(s1);
outvlong(l1); outvlong(v1);
outsend(); outsend();
} }
void void
outTv(Tmesg type, void *l1) outTv(Tmesg type, vlong v1)
{ {
outstart(type); outstart(type);
outvlong(l1); outvlong(v1);
outsend(); outsend();
} }
@ -498,15 +498,15 @@ outlong(long l)
} }
void void
outvlong(void *v) outvlong(vlong v)
{ {
int i; int i;
ulong l;
uchar buf[8]; uchar buf[8];
l = (ulong) v; for(i = 0; i < sizeof(buf); i++){
for(i = 0; i < sizeof(buf); i++, l >>= 8) buf[i] = v;
buf[i] = l; v >>= 8;
}
outcopy(8, buf); outcopy(8, buf);
} }

View file

@ -121,7 +121,7 @@ extproc(void *argv)
arg = argv; arg = argv;
c = arg[0]; c = arg[0];
fd = (int)arg[1]; fd = (int)(uintptr)arg[1];
i = 0; i = 0;
for(;;){ for(;;){
@ -190,7 +190,7 @@ extstart(void)
plumbc = chancreate(sizeof(int), 0); plumbc = chancreate(sizeof(int), 0);
chansetname(plumbc, "plumbc"); chansetname(plumbc, "plumbc");
arg[0] = plumbc; arg[0] = plumbc;
arg[1] = (void*)fd; arg[1] = (void*)(uintptr)fd;
proccreate(extproc, arg, STACK); proccreate(extproc, arg, STACK);
atexit(removeextern); atexit(removeextern);
} }

View file

@ -173,12 +173,12 @@ void outTl(Tmesg, long);
void outTslS(Tmesg, int, long, Rune*); void outTslS(Tmesg, int, long, Rune*);
void outTsll(Tmesg, int, long, long); void outTsll(Tmesg, int, long, long);
void outTsl(Tmesg, int, long); void outTsl(Tmesg, int, long);
void outTsv(Tmesg, int, void*); void outTsv(Tmesg, int, vlong);
void outTv(Tmesg, void*); void outTv(Tmesg, vlong);
void outstart(Tmesg); void outstart(Tmesg);
void outcopy(int, uchar*); void outcopy(int, uchar*);
void outshort(int); void outshort(int);
void outlong(long); void outlong(long);
void outvlong(void*); void outvlong(vlong);
void outsend(void); void outsend(void);