convert malloc(2) to use usize and uintptr instead of ulong. this is the first step in allowing us to convert sizeof(long)==8 for amd64. Reference: /n/atom/patch/applied/malusize Date: Sun Aug 16 05:13:02 CES 2015 Signed-off-by: quanstro@quanstro.net --- /sys/src/libc/port/malloc.c Sun Aug 16 05:09:55 2015 +++ /sys/src/libc/port/malloc.c Sun Aug 16 05:09:56 2015 @@ -289,10 +289,10 @@ } void -setmalloctag(void *v, ulong pc) +setmalloctag(void *v, uintptr pc) { ulong *u; - USED(v, pc); + if(Npadlong <= MallocOffset || v == nil) return; u = v; @@ -300,17 +300,17 @@ } void -setrealloctag(void *v, ulong pc) +setrealloctag(void *v, uintptr pc) { ulong *u; - USED(v, pc); + if(Npadlong <= ReallocOffset || v == nil) return; u = v; u[-Npadlong+ReallocOffset] = pc; } -ulong +uintptr getmalloctag(void *v) { USED(v); @@ -319,7 +319,7 @@ return ((ulong*)v)[-Npadlong+MallocOffset]; } -ulong +uintptr getrealloctag(void *v) { USED(v); --- /sys/src/9/port/qmalloc.c Sun Aug 16 05:09:59 2015 +++ /sys/src/9/port/qmalloc.c Sun Aug 16 05:10:00 2015 @@ -630,12 +630,12 @@ } void -setmalloctag(void*, ulong) +setmalloctag(void*, uintptr) { } void -setrealloctag(void*, ulong) +setrealloctag(void*, uintptr) { } --- /sys/src/9/port/portfns.h Sun Aug 16 05:10:02 2015 +++ /sys/src/9/port/portfns.h Sun Aug 16 05:10:04 2015 @@ -98,7 +98,7 @@ int eqchantdqid(Chan*, int, int, Qid, int); int eqqid(Qid, Qid); void error(char*); -long execregs(ulong, ulong, ulong); +void* execregs(uintptr, uint, uint); void exhausted(char*); void exit(int); uvlong fastticks(uvlong*); @@ -119,8 +119,8 @@ void freeblist(Block*); int freebroken(void); void freepte(Segment*, Pte*); -ulong getmalloctag(void*); -ulong getrealloctag(void*); +uintptr getmalloctag(void*); +uintptr getrealloctag(void*); void gotolabel(Label*); char* getconfenv(void); int haswaitq(void*); @@ -333,8 +333,8 @@ void segpage(Segment*, Page*); void setkernur(Ureg*, Proc*); int setlabel(Label*); -void setmalloctag(void*, ulong); -void setrealloctag(void*, ulong); +void setmalloctag(void*, uintptr); +void setrealloctag(void*, uintptr); void setregisters(Ureg*, char*, char*, int); void setswapchan(Chan*); char* skipslash(char*); @@ -347,6 +347,8 @@ char* srvname(Chan*); int swapcount(ulong); void swapinit(void); +void syscallfmt(int, uintptr, va_list); +void sysretfmt(int, va_list, long, uvlong, uvlong); #define tickscmp(a, b) ((long)((a)-(b))) void timeradd(Timer*); void timerdel(Timer*); --- /sys/src/ape/lib/9/libc.h Sun Aug 16 05:10:06 2015 +++ /sys/src/ape/lib/9/libc.h Sun Aug 16 05:10:07 2015 @@ -156,7 +156,8 @@ #define ERRMAX 128 -extern void setmalloctag(void*, ulong); +extern void setmalloctag(void*, uintptr_t); +extern void setrealloctag(void*, uintptr_t); extern uintptr_t getcallerpc(void*); /* Used in libsec.h and not picked up in earlier type definitions */ --- /sys/src/ape/lib/9/setmalloctag.c Sun Aug 16 05:10:09 2015 +++ /sys/src/ape/lib/9/setmalloctag.c Sun Aug 16 05:10:10 2015 @@ -1,4 +1,7 @@ +#define _SUSV2_SOURCE +#include + void -setmalloctag(void*, unsigned long) +setmalloctag(void*, uintptr_t) { } --- /sys/src/ape/lib/9/setrealloctag.c Thu Jan 1 00:00:00 1970 +++ /sys/src/ape/lib/9/setrealloctag.c Sun Aug 16 05:10:11 2015 @@ -0,0 +1,7 @@ +#define _SUSV2_SOURCE +#include + +void +setrealloctag(void*, uintptr_t) +{ +} --- /sys/src/ape/lib/9/mkfile Sun Aug 16 05:10:13 2015 +++ /sys/src/ape/lib/9/mkfile Sun Aug 16 05:10:14 2015 @@ -16,6 +16,7 @@ segflush.$O\ segfree.$O\ setmalloctag.$O\ + setrealloctag.$O\ sysfatal.$O\ tokenize.$O\ truerand.$O\ --- /sys/src/cmd/1l/compat.c Sun Aug 16 05:10:16 2015 +++ /sys/src/cmd/1l/compat.c Sun Aug 16 05:10:18 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,15 +36,20 @@ } void* -realloc(void *p, ulong n) +realloc(void *v, usize) { - fprint(2, "realloc(0x%p, %ld) called\n", p, n); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); +} + +void +setmalloctag(void*, uintptr) +{ } --- /sys/src/cmd/2l/compat.c Sun Aug 16 05:10:20 2015 +++ /sys/src/cmd/2l/compat.c Sun Aug 16 05:10:21 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,15 +36,20 @@ } void* -realloc(void *p, ulong n) +realloc(void *v, usize) { - fprint(2, "realloc(0x%p %ld) called\n", p, n); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); +} + +void +setmalloctag(void*, uintptr) +{ } --- /sys/src/cmd/5l/compat.c Sun Aug 16 05:10:23 2015 +++ /sys/src/cmd/5l/compat.c Sun Aug 16 05:10:24 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,21 +36,20 @@ } void* -realloc(void *p, ulong n) +realloc(void *v, usize) { - fprint(2, "realloc(0x%p %ld) called\n", p, n); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); } void -setmalloctag(void *v, ulong pc) +setmalloctag(void*, uintptr) { - USED(v, pc); } --- /sys/src/cmd/7l/compat.c Sun Aug 16 05:10:26 2015 +++ /sys/src/cmd/7l/compat.c Sun Aug 16 05:10:27 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,15 +36,20 @@ } void* -realloc(void*, ulong) +realloc(void *v, usize) { - fprint(2, "realloc called\n"); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); +} + +void +setmalloctag(void*, uintptr) +{ } --- /sys/src/cmd/8l/compat.c Sun Aug 16 05:10:29 2015 +++ /sys/src/cmd/8l/compat.c Sun Aug 16 05:10:31 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,21 +36,20 @@ } void* -realloc(void*, ulong) +realloc(void *v, usize) { - fprint(2, "realloc called\n"); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); } void -setmalloctag(void *v, ulong pc) +setmalloctag(void*, uintptr) { - USED(v, pc); } --- /sys/src/cmd/cc/compat.c Sun Aug 16 05:10:33 2015 +++ /sys/src/cmd/cc/compat.c Sun Aug 16 05:10:34 2015 @@ -5,19 +5,19 @@ * fake mallocs */ void* -malloc(ulong n) +malloc(usize n) { return alloc(n); } void* -calloc(ulong m, ulong n) +calloc(usize m, usize n) { return alloc(m*n); } void* -realloc(void*, ulong) +realloc(void*, usize) { fprint(2, "realloc called\n"); abort(); @@ -31,7 +31,7 @@ /* needed when profiling */ void* -mallocz(ulong size, int clr) +mallocz(usize size, int clr) { void *v; @@ -42,6 +42,6 @@ } void -setmalloctag(void*, ulong) +setmalloctag(void*, uintptr) { } --- /sys/src/cmd/kl/compat.c Sun Aug 16 05:10:36 2015 +++ /sys/src/cmd/kl/compat.c Sun Aug 16 05:10:37 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,15 +36,20 @@ } void* -realloc(void *p, ulong n) +realloc(void *v, usize) { - fprint(2, "realloc(0x%p %ld) called\n", p, n); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); +} + +void +setmalloctag(void*, uintptr) +{ } --- /sys/src/cmd/ql/compat.c Sun Aug 16 05:10:39 2015 +++ /sys/src/cmd/ql/compat.c Sun Aug 16 05:10:40 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,21 +36,20 @@ } void* -realloc(void*, ulong) +realloc(void *v, usize) { - fprint(2, "realloc called\n"); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); } void -setmalloctag(void *v, ulong pc) +setmalloctag(void*, uintptr) { - USED(v, pc); } --- /sys/src/cmd/vl/compat.c Sun Aug 16 05:10:42 2015 +++ /sys/src/cmd/vl/compat.c Sun Aug 16 05:10:43 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,22 +36,20 @@ } void* -realloc(void*, ulong) +realloc(void *v, usize) { - fprint(2, "realloc called\n"); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); } void -setmalloctag(void *v, ulong pc) +setmalloctag(void*, uintptr) { - USED(v, pc); } - --- /sys/src/cmd/6l/compat.c Sun Aug 16 05:10:46 2015 +++ /sys/src/cmd/6l/compat.c Sun Aug 16 05:10:47 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,20 +36,20 @@ } void* -realloc(void*, ulong) +realloc(void *v, usize) { - fprint(2, "realloc called\n"); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); } void -setmalloctag(void*, ulong) +setmalloctag(void*, uintptr) { } --- /sys/src/cmd/9l/compat.c Sun Aug 16 05:10:49 2015 +++ /sys/src/cmd/9l/compat.c Sun Aug 16 05:10:50 2015 @@ -4,7 +4,7 @@ * fake malloc */ void* -malloc(ulong n) +malloc(usize n) { void *p; @@ -25,7 +25,7 @@ } void* -calloc(ulong m, ulong n) +calloc(ulong m, usize n) { void *p; @@ -36,21 +36,20 @@ } void* -realloc(void*, ulong) +realloc(void *v, usize) { - fprint(2, "realloc called\n"); + fprint(2, "realloc called from %#p\n", getcallerpc(&v)); abort(); return 0; } void* -mysbrk(ulong size) +mysbrk(usize size) { return sbrk(size); } void -setmalloctag(void *v, ulong pc) +setmalloctag(void*, uintptr) { - USED(v, pc); } --- /sys/man/2/malloc Sun Aug 16 05:10:52 2015 +++ /sys/man/2/malloc Sun Aug 16 05:10:53 2015 @@ -8,37 +8,37 @@ .PP .ta \w'\fLvoid* 'u .B -void* malloc(ulong size) +void* malloc(usize size) .PP .B -void* mallocalign(ulong size, ulong align, long offset, ulong span) +void* mallocalign(usize size, usize align, long offset, usize span) .PP .B -void* mallocz(ulong size, int clr) +void* mallocz(usize size, int clr) .PP .B void free(void *ptr) .PP .B -void* realloc(void *ptr, ulong size) +void* realloc(void *ptr, usize size) .PP .B -void* calloc(ulong nelem, ulong elsize) +void* calloc(usize nelem, usize elsize) .PP .B -ulong msize(void *ptr) +usize msize(void *ptr) .PP .B -void setmalloctag(void *ptr, ulong tag) +void setmalloctag(void *ptr, uintptr tag) .PP .B -ulong getmalloctag(void *ptr) +uintptr getmalloctag(void *ptr) .PP .B -void setrealloctag(void *ptr, ulong tag) +void setrealloctag(void *ptr, uintptr tag) .PP .B -ulong getrealloctag(void *ptr) +uintptr getrealloctag(void *ptr) .PP .B void* malloctopoolblock(void*) @@ -78,7 +78,7 @@ .PP .I Mallocalign allocates a block of at least -.I n +.I size bytes of memory respecting alignment contraints. If .I align @@ -91,8 +91,8 @@ .I span is non-zero, the -.I n -byte block allocated will not span a +.IR size -byte +block allocated will not span a .IR span -byte boundary. .PP @@ -107,6 +107,8 @@ lesser of the new and old sizes. .I Realloc takes on special meanings when one or both arguments are zero: +.TF "\fLrealloc(0,\ size) +.PD .TP .B "realloc(0,\ size) means --- /sys/man/9nix/qmalloc Sun Aug 16 05:10:55 2015 +++ /sys/man/9nix/qmalloc Sun Aug 16 05:10:56 2015 @@ -20,25 +20,25 @@ void* realloc(void *p, usize size) .PP .B -void* calloc(ulong n, usize szelem) +void* calloc(usize n, usize szelem) .PP .B void free(void *ptr) .PP .B -ulong msize(void *ptr) +usize msize(void *ptr) .PP .B -void setmalloctag(void *ptr, ulong tag) +void setmalloctag(void *ptr, uintptr tag) .PP .B -ulong getmalloctag(void *ptr) +uintptr getmalloctag(void *ptr) .PP .B -void setrealloctag(void *ptr, ulong tag) +void setrealloctag(void *ptr, uintptr tag) .PP .B -ulong getrealloctag(void *ptr) +uintptr getrealloctag(void *ptr) .PP .B void mallocinit(void)