64-bit safety, minor cleanups. [rsc] --rw-rw-r-- M 320859 glenda sys 439 Oct 27 10:52 sys/src/libc/9sys/sbrk.c /n/sourcesdump/2005/1027/plan9/sys/src/libc/9sys/sbrk.c:13,21 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/9sys/sbrk.c:13,21 int brk(void *p) { - ulong bl; + uintptr bl; - bl = ((ulong)p + Round) & ~Round; + bl = ((uintptr)p + Round) & ~Round; if(brk_((void*)bl) < 0) return -1; bloc = (char*)bl; /n/sourcesdump/2005/1027/plan9/sys/src/libc/9sys/sbrk.c:25,33 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/9sys/sbrk.c:25,33 void* sbrk(ulong n) { - ulong bl; + uintptr bl; - bl = ((ulong)bloc + Round) & ~Round; + bl = ((uintptr)bloc + Round) & ~Round; if(brk_((void*)(bl+n)) < 0) return (void*)-1; bloc = (char*)bl + n; [rsc] --rw-rw-r-- M 320859 glenda sys 2625 Oct 27 10:52 sys/src/libc/9syscall/mkfile /n/sourcesdump/2005/1027/plan9/sys/src/libc/9syscall/mkfile:59,65 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/9syscall/mkfile:59,74 MOVL AX,4(CX)' } echo RET - case sparc + case amd64 + if(~ $i seek) + echo TEXT _seek'(SB)', 1, '$0' + if not + echo TEXT $i'(SB)', 1, '$0' + echo MOVQ RARG, 'a0+0(FP)' + echo MOVQ '$'$n, RARG + echo SYSCALL + echo RET + case sparc sparc64 echo TEXT $i'(SB)', 1, '$0' echo MOVW R7, '0(FP)' echo MOVW '$'$n, R7 [rsc] --rw-rw-r-- M 320859 glenda sys 180 Oct 27 10:51 sys/src/libc/alpha/_seek.c /n/sourcesdump/2005/1027/plan9/sys/src/libc/alpha/_seek.c:1,7 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/alpha/_seek.c:1,7 #include #include - extern long _seek(vlong*, int, vlong, int); + extern int _seek(vlong*, int, vlong, int); vlong seek(int fd, vlong o, int p) /n/sourcesdump/2005/1027/plan9/sys/src/libc/alpha/_seek.c:9,14 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/alpha/_seek.c:9,14 vlong l; if(_seek(&l, fd, o, p) < 0) - l = -1; + l = -1LL; return l; } [rsc] --rw-rw-r-- M 320859 glenda sys 772 Oct 27 10:52 sys/src/libc/port/atexit.c /n/sourcesdump/2005/1027/plan9/sys/src/libc/port/atexit.c:3,14 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/port/atexit.c:3,16 #define NEXIT 33 - static Lock onexlock; - static struct - { + typedef struct Onex Onex; + struct Onex{ void (*f)(void); int pid; - }onex[NEXIT]; + }; + + static Lock onexlock; + Onex onex[NEXIT]; atexit(void (*f)(void)) { [rsc] --rw-rw-r-- M 320859 glenda sys 30938 Oct 27 10:52 sys/src/libc/port/pool.c /n/sourcesdump/2005/1027/plan9/sys/src/libc/port/pool.c:435,440 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/port/pool.c:435,442 sz += sizeof(Bhdr)+sizeof(Btail); if(sz < p->minblock) sz = p->minblock; + if(sz < MINBLOCKSIZE) + sz = MINBLOCKSIZE; sz = (sz+p->quantum-1)&~(p->quantum-1); return sz; } /n/sourcesdump/2005/1027/plan9/sys/src/libc/port/pool.c:524,530 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/port/pool.c:526,532 if(eq > q+4) eq = q+4; for(; q bq+4) eq = bq+4; for(q=bq; qflags & POOL_TOLERANCE)){ printblock(p, b, "mem user overflow"); continue; /n/sourcesdump/2005/1027/plan9/sys/src/libc/port/pool.c:962,969 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/port/pool.c:964,971 Alloc *a; ulong *u; - if((ulong)v&(sizeof(ulong)-1)) - v = (char*)v - ((ulong)v&(sizeof(ulong)-1)); + if((uintptr)v&(sizeof(ulong)-1)) + v = (char*)v - ((uintptr)v&(sizeof(ulong)-1)); u = v; while(u[-1] == ALIGN_MAGIC) u--; /n/sourcesdump/2005/1027/plan9/sys/src/libc/port/pool.c:1088,1094 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/port/pool.c:1090,1096 c = v; if(align){ - off = (ulong)c%align; + off = (uintptr)c%align; if(off != offset){ c += offset - off; if(off > offset) /n/sourcesdump/2005/1027/plan9/sys/src/libc/port/pool.c:1133,1139 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/port/pool.c:1135,1141 v = poolallocl(p, asize); if(v == nil) return nil; - if(span && (ulong)v/span != ((ulong)v+asize)/span){ + if(span && (uintptr)v/span != ((uintptr)v+asize)/span){ /* try again */ poolfreel(p, v); v = poolallocl(p, 2*asize); /n/sourcesdump/2005/1027/plan9/sys/src/libc/port/pool.c:1145,1154 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/port/pool.c:1147,1156 * figure out what pointer we want to return */ c = alignptr(v, align, offset); - if(span && (ulong)c/span != (ulong)(c+dsize-1)/span){ - c += span - (ulong)c%span; + if(span && (uintptr)c/span != (uintptr)(c+dsize-1)/span){ + c += span - (uintptr)c%span; c = alignptr(c, align, offset); - if((ulong)c/span != (ulong)(c+dsize-1)/span){ + if((uintptr)c/span != (uintptr)(c+dsize-1)/span){ poolfreel(p, v); werrstr("cannot satisfy dsize %lud span %lud with align %lud+%ld", dsize, span, align, offset); return nil; /n/sourcesdump/2005/1027/plan9/sys/src/libc/port/pool.c:1455,1461 - /n/sourcesdump/2005/1028/plan9/sys/src/libc/port/pool.c:1457,1463 lp = v; elp = lp+size/4; while(lp < elp) - *lp++ = (sig<<24) ^ (long)v; + *lp++ = (sig<<24) ^ (ulong)(uintptr)v; p = (uchar*)lp; ep = (uchar*)v+size; while(p