Browse Source

Get the harvey build started (+ getcallerpc changes) (#731)

* Update .gitignore

Signed-off-by: Graham MacDonald <grahamamacdonald@gmail.com>

* Fixing up build files

Signed-off-by: Graham MacDonald <grahamamacdonald@gmail.com>

* Remove argument from getcallerpc since __builtin_return_address doesn't need one

Signed-off-by: Graham MacDonald <grahamamacdonald@gmail.com>

* Remove proc-SMP.c - wasn't used

Signed-off-by: Graham MacDonald <grahamamacdonald@gmail.com>

* Get libdraw and libmemdraw building

Signed-off-by: Graham MacDonald <grahamamacdonald@gmail.com>
Graham MacDonald 1 year ago
parent
commit
0a378b24be
85 changed files with 228 additions and 2208 deletions
  1. 1 10
      build.json
  2. 6 8
      sys/man/2/getcallerpc
  3. 1 1
      sys/src/9/amd64/arch.c
  4. 1 1
      sys/src/9/amd64/map.c
  5. 1 1
      sys/src/9/amd64/trap.c
  6. 1 1
      sys/src/9/amd64/usbohci.c
  7. 1 1
      sys/src/9/port/allocb.c
  8. 7 7
      sys/src/9/port/chan.c
  9. 1 1
      sys/src/9/port/devcons.c
  10. 1 1
      sys/src/9/port/devpipe.c
  11. 1 1
      sys/src/9/port/edf.c
  12. 0 1873
      sys/src/9/port/proc-SMP.c
  13. 1 1
      sys/src/9/port/proc.c
  14. 4 4
      sys/src/9/port/qio.c
  15. 16 16
      sys/src/9/port/qlock.c
  16. 10 10
      sys/src/9/port/taslock.c
  17. 10 10
      sys/src/9/port/tcklock.c
  18. 3 3
      sys/src/9/w/pxeload/load.c
  19. 4 4
      sys/src/cmd/abaco/util.c
  20. 4 4
      sys/src/cmd/acme/util.c
  21. 4 4
      sys/src/cmd/auth/factotum/util.c
  22. 3 3
      sys/src/cmd/aux/apm.c
  23. 3 3
      sys/src/cmd/aux/flashfs/aux.c
  24. 1 1
      sys/src/cmd/cwfs/iobuf.c
  25. 5 5
      sys/src/cmd/fossil/cache.c
  26. 1 1
      sys/src/cmd/fossil/disk.c
  27. 4 4
      sys/src/cmd/fossil/source.c
  28. 1 1
      sys/src/cmd/ip/snoopy/dns.c
  29. 2 2
      sys/src/cmd/ndb/convM2DNS.c
  30. 6 6
      sys/src/cmd/ndb/dn.c
  31. 3 3
      sys/src/cmd/nntpfs.c
  32. 1 1
      sys/src/cmd/plumb/plumber.c
  33. 1 1
      sys/src/cmd/unix/drawterm/gui-x11/x11.c
  34. 3 3
      sys/src/cmd/unix/drawterm/kern/allocb.c
  35. 3 3
      sys/src/cmd/unix/drawterm/kern/chan.c
  36. 1 1
      sys/src/cmd/unix/drawterm/kern/devpipe.c
  37. 3 3
      sys/src/cmd/unix/drawterm/kern/qio.c
  38. 5 5
      sys/src/cmd/unix/drawterm/libauth/attr.c
  39. 1 1
      sys/src/cmd/unix/drawterm/libc/lock.c
  40. 1 1
      sys/src/cmd/unix/drawterm/libmemdraw/alloc.c
  41. 1 1
      sys/src/cmd/venti/srv/disksched.c
  42. 1 1
      sys/src/cmd/venti/srv/icache.c
  43. 8 8
      sys/src/cmd/venti/srv/utils.c
  44. 1 1
      sys/src/cmd/vnc/compat.c
  45. 4 4
      sys/src/lib9p/mem.c
  46. 2 2
      sys/src/libString/s_alloc.c
  47. 1 1
      sys/src/libString/s_copy.c
  48. 5 5
      sys/src/libauth/attr.c
  49. 1 1
      sys/src/libdraw/alloc.c
  50. 0 6
      sys/src/libdraw/arith.c
  51. 1 1
      sys/src/libdraw/creadimage.c
  52. 0 27
      sys/src/libdraw/font.c
  53. 1 1
      sys/src/libdraw/getsubfont.c
  54. 1 1
      sys/src/libmemdraw/alloc.c
  55. 0 45
      sys/src/libmemdraw/draw.c
  56. 6 18
      sys/src/libmemdraw/fillpoly.c
  57. 0 9
      sys/src/libmemdraw/line.c
  58. 1 1
      sys/src/libmp/port/betomp.c
  59. 1 1
      sys/src/libmp/port/mpaux.c
  60. 1 1
      sys/src/libmp/port/mptobe.c
  61. 2 2
      sys/src/libndb/csgetval.c
  62. 1 1
      sys/src/libndb/csipinfo.c
  63. 2 2
      sys/src/libndb/dnsquery.c
  64. 3 3
      sys/src/libndb/ndbaux.c
  65. 2 2
      sys/src/libndb/ndbcache.c
  66. 1 1
      sys/src/libndb/ndbconcatenate.c
  67. 1 1
      sys/src/libndb/ndbdiscard.c
  68. 2 2
      sys/src/libndb/ndbgetipaddr.c
  69. 1 1
      sys/src/libndb/ndbgetval.c
  70. 6 6
      sys/src/libndb/ndbhash.c
  71. 4 4
      sys/src/libndb/ndbipinfo.c
  72. 2 2
      sys/src/libndb/ndbparse.c
  73. 4 4
      sys/src/libndb/ndbsubstitute.c
  74. 4 4
      sys/src/liboventi/plan9-io.c
  75. 2 2
      sys/src/liboventi/plan9-thread.c
  76. 1 1
      sys/src/liboventi/rpc.c
  77. 1 1
      sys/src/liboventi/server.c
  78. 1 1
      sys/src/liboventi/strdup.c
  79. 2 2
      sys/src/libsec/port/x509.c
  80. 1 1
      sys/src/libthread/lib.c
  81. 8 8
      sys/src/libventi/cache.c
  82. 5 5
      sys/src/libventi/file.c
  83. 3 3
      sys/src/libventi/mem.c
  84. 4 4
      sys/src/libventi/packet.c
  85. 3 0
      util/.gitignore

+ 1 - 10
build.json

@@ -1,11 +1,5 @@
 {
-	"k8cpu": {
-		"Projects": ["/sys/src/9/k10/k8cpu.json"]
-	},
-	"regress": {
-		"Projects": ["/sys/src/regress/regress.json"]
-	},
-	"kregress": {
+	"all": {
 		"Projects": [
 			"/sys/src/klibs.json",
 			"/sys/src/libs.json",
@@ -16,8 +10,5 @@
 			"/sys/src/regress/fs",
 			"/sys/src/9/$ARCH"
 		]
-	},
-	"kernels": {
-		"Projects": ["/sys/src/9/k10/k8cpu.json"]
 	}
 }

+ 6 - 8
sys/man/2/getcallerpc

@@ -7,27 +7,25 @@ getcallerpc \- fetch return PC of current function
 .br
 .B #include <libc.h>
 .PP
-.B uintptr getcallerpc(void *firstarg)
+.B uintptr getcallerpc(void)
 .SH DESCRIPTION
 .I Getcallerpc
 is a portable way to discover the PC to which the current function will return.
-.I Firstarg
-should be a pointer to the first argument to the function in question.
 .SH EXAMPLE
 .IP
 .EX
 void
-printpc(int arg)
+printpc(void)
 {
-	print("Called from %p\en", getcallerpc(&arg));
+	print("Called from %p\en", getcallerpc());
 }
 
 void
 main(int argc, char *argv[])
 {
-	printpc(0);
-	printpc(0);
-	printpc(0);
+	printpc();
+	printpc();
+	printpc();
 }
 .EE
 .SH SOURCE

+ 1 - 1
sys/src/9/amd64/arch.c

@@ -50,7 +50,7 @@ decref(Ref *r)
 	x = --r->ref;
 	unlock(&r->l);
 	if(x < 0)
-		panic("decref pc=%#p", getcallerpc(&r));
+		panic("decref pc=%#p", getcallerpc());
 
 	return x;
 }

+ 1 - 1
sys/src/9/amd64/map.c

@@ -46,7 +46,7 @@ PADDR(void* va)
 	if(pa > KSEG2)
 		return pa-KSEG2;
 
-	panic("PADDR: va %#p pa #%p @ %#p\n", va, _PADDR(va), getcallerpc(&va));
+	panic("PADDR: va %#p pa #%p @ %#p\n", va, _PADDR(va), getcallerpc());
 	return 0;
 }
 

+ 1 - 1
sys/src/9/amd64/trap.c

@@ -629,7 +629,7 @@ void
 callwithureg(void (*fn)(Ureg*))
 {
 	Ureg ureg;
-	ureg.ip = getcallerpc(&fn);
+	ureg.ip = getcallerpc();
 	ureg.sp = PTR2UINT(&fn);
 	fn(&ureg);
 }

+ 1 - 1
sys/src/9/amd64/usbohci.c

@@ -457,7 +457,7 @@ static void
 edlinked(Ed *ed, Ed *next)
 {
 	if(ed == nil)
-		print("edlinked: nil ed: pc %#p\n", getcallerpc(&ed));
+		print("edlinked: nil ed: pc %#p\n", getcallerpc());
 	ed->nexted = ptr2pa(next);
 	ed->next = next;
 }

+ 1 - 1
sys/src/9/port/allocb.c

@@ -67,7 +67,7 @@ allocb(int size)
 	 * Can still error out of here, though.
 	 */
 	if(up == nil)
-		panic("allocb without up: %#p\n", getcallerpc(&size));
+		panic("allocb without up: %#p\n", getcallerpc());
 	if((b = _allocb(size)) == nil){
 		mallocsummary();
 		panic("allocb: no memory for %d bytes\n", size);

+ 7 - 7
sys/src/9/port/chan.c

@@ -116,7 +116,7 @@ kstrdup(char **p, char *s)
 	/* if it's a user, we can wait for memory; if not, something's very wrong */
 	if(up){
 		t = smalloc(n);
-		setmalloctag(t, getcallerpc(&p));
+		setmalloctag(t, getcallerpc());
 	}else{
 		t = malloc(n);
 		if(t == nil)
@@ -192,7 +192,7 @@ newpath(char *s)
 	 * allowed, but other names with / in them draw warnings.
 	 */
 	if(strchr(s, '/') && strcmp(s, "#/") != 0 && strcmp(s, "/") != 0)
-		print("newpath: %s from %#p\n", s, getcallerpc(&s));
+		print("newpath: %s from %#p\n", s, getcallerpc());
 
 	p->mlen = 1;
 	p->malen = PATHMSLOP;
@@ -389,7 +389,7 @@ cclose(Chan *c)
 {
 	Proc *up = externup();
 	if(c->flag&CFREE)
-		panic("cclose %#p", getcallerpc(&c));
+		panic("cclose %#p", getcallerpc());
 
 	DBG("cclose %#p name=%s ref=%d\n", c, c->path->s, c->r.ref);
 	if(decref(&c->r))
@@ -422,7 +422,7 @@ void
 ccloseq(Chan *c)
 {
 	if(c->flag&CFREE)
-		panic("ccloseq %#p", getcallerpc(&c));
+		panic("ccloseq %#p", getcallerpc());
 
 	DBG("ccloseq %#p name=%s ref=%d\n", c, c->path->s, c->r.ref);
 
@@ -559,7 +559,7 @@ cmount(Chan **newp, Chan *old, int flag, char *spec)
 		error(Emount);
 
 	if(old->umh)
-		print("cmount: unexpected umh, caller %#p\n", getcallerpc(&newp));
+		print("cmount: unexpected umh, caller %#p\n", getcallerpc());
 
 	order = flag&MORDER;
 
@@ -1677,13 +1677,13 @@ validname0(char *aname, int slashok, int dup, uintptr_t pc)
 void
 validname(char *aname, int slashok)
 {
-	validname0(aname, slashok, 0, getcallerpc(&aname));
+	validname0(aname, slashok, 0, getcallerpc());
 }
 
 char*
 validnamedup(char *aname, int slashok)
 {
-	return validname0(aname, slashok, 1, getcallerpc(&aname));
+	return validname0(aname, slashok, 1, getcallerpc());
 }
 
 void

+ 1 - 1
sys/src/9/port/devcons.c

@@ -410,7 +410,7 @@ sysfatal(char *fmt, ...)
 void
 _assert(char *fmt)
 {
-	panic("assert failed at %#p: %s", getcallerpc(&fmt), fmt);
+	panic("assert failed at %#p: %s", getcallerpc(), fmt);
 }
 
 int

+ 1 - 1
sys/src/9/port/devpipe.c

@@ -323,7 +323,7 @@ pipewrite(Chan *c, void *va, int32_t n, int64_t mm)
 	Pipe *p;
 
 	if(0)if(!islo())
-		print("pipewrite hi %#p\n", getcallerpc(&c)); // devmnt?
+		print("pipewrite hi %#p\n", getcallerpc()); // devmnt?
 
 	if(waserror()) {
 		/* avoid notes when pipe is a mounted queue */

+ 1 - 1
sys/src/9/port/edf.c

@@ -99,7 +99,7 @@ edflock(Proc *p)
 		return nil;
 	ilock(&thelock);
 	if((e = p->edf) && (e->flags & Admitted)){
-		thelock._pc = getcallerpc(&p);
+		thelock._pc = getcallerpc();
 #ifdef EDFCYCLES
 		edfcycles -= lcycles();
 #endif

File diff suppressed because it is too large
+ 0 - 1873
sys/src/9/port/proc-SMP.c


+ 1 - 1
sys/src/9/port/proc.c

@@ -930,7 +930,7 @@ sleep(Rendez *r, int (*f)(void*), void *arg)
 	lock(&up->rlock);
 	if(r->_p){
 		print("double sleep called from %#p, %d %d\n",
-			getcallerpc(&r), r->_p->pid, up->pid);
+			getcallerpc(), r->_p->pid, up->pid);
 		dumpstack();
 	}
 

+ 4 - 4
sys/src/9/port/qio.c

@@ -108,7 +108,7 @@ padblock(Block *bp, int size)
 		}
 
 		if(bp->next)
-			panic("padblock %#p", getcallerpc(&bp));
+			panic("padblock %#p", getcallerpc());
 		n = BLEN(bp);
 		padblockcnt++;
 		nbp = allocb(size+n);
@@ -122,7 +122,7 @@ padblock(Block *bp, int size)
 		size = -size;
 
 		if(bp->next)
-			panic("padblock %#p", getcallerpc(&bp));
+			panic("padblock %#p", getcallerpc());
 
 		if(bp->lim - bp->wp >= size)
 			return bp;
@@ -238,7 +238,7 @@ pullupblock(Block *bp, int n)
 			/* shouldn't happen but why crash if it does */
 			if(i < 0){
 				print("pullupblock -ve length, from %#p\n",
-					getcallerpc(&bp));
+					getcallerpc());
 				i = 0;
 			}
 			memmove(bp->wp, nbp->rp, i);
@@ -1325,7 +1325,7 @@ qwrite(Queue *q, void *vp, int len)
 	uint8_t *p = vp;
 
 	QDEBUG if(!islo())
-		print("qwrite hi %#p\n", getcallerpc(&q));
+		print("qwrite hi %#p\n", getcallerpc());
 
 	sofar = 0;
 	do {

+ 16 - 16
sys/src/9/port/qlock.c

@@ -43,16 +43,16 @@ qlock(QLock *q)
 	}
 
 	if(up != nil && up->nlocks)
-		print("qlock: %#p: nlocks %d", getcallerpc(&q), up->nlocks);
+		print("qlock: %#p: nlocks %d", getcallerpc(), up->nlocks);
 
 	if(!canlock(&q->use)){
 		lock(&q->use);
-		slockstat(getcallerpc(&q), t0);
+		slockstat(getcallerpc(), t0);
 	}
 	qlockstats.qlock++;
 	if(!q->locked) {
 		q->locked = 1;
-		q->pc = getcallerpc(&q);
+		q->pc = getcallerpc();
 		unlock(&q->use);
 		return;
 	}
@@ -67,12 +67,12 @@ qlock(QLock *q)
 	q->tail = up;
 	up->qnext = 0;
 	up->state = Queueing;
-	up->qpc = getcallerpc(&q);
+	up->qpc = getcallerpc();
 	if(up->trace)
 		proctrace(up, SLock, 0);
 	unlock(&q->use);
 	sched();
-	lockstat(getcallerpc(&q), t0);
+	lockstat(getcallerpc(), t0);
 }
 
 int
@@ -85,7 +85,7 @@ canqlock(QLock *q)
 		return 0;
 	}
 	q->locked = 1;
-	q->pc = getcallerpc(&q);
+	q->pc = getcallerpc();
 	unlock(&q->use);
 
 	return 1;
@@ -100,11 +100,11 @@ qunlock(QLock *q)
 	if(!canlock(&q->use)){
 		cycles(&t0);
 		lock(&q->use);
-		slockstat(getcallerpc(&q), t0);
+		slockstat(getcallerpc(), t0);
 	}
 	if (q->locked == 0)
 		print("qunlock called with qlock not held, from %#p\n",
-			getcallerpc(&q));
+			getcallerpc());
 	p = q->head;
 	if(p){
 		q->head = p->qnext;
@@ -130,7 +130,7 @@ rlock(RWlock *q)
 	cycles(&t0);
 	if(!canlock(&q->use)){
 		lock(&q->use);
-		slockstat(getcallerpc(&q), t0);
+		slockstat(getcallerpc(), t0);
 	}
 	qlockstats.rlock++;
 	if(q->writer == 0 && q->head == nil){
@@ -155,7 +155,7 @@ rlock(RWlock *q)
 		proctrace(up, SLock, 0);
 	unlock(&q->use);
 	sched();
-	lockstat(getcallerpc(&q), t0);
+	lockstat(getcallerpc(), t0);
 }
 
 void
@@ -167,7 +167,7 @@ runlock(RWlock *q)
 	if(!canlock(&q->use)){
 		cycles(&t0);
 		lock(&q->use);
-		slockstat(getcallerpc(&q), t0);
+		slockstat(getcallerpc(), t0);
 	}
 	p = q->head;
 	if(--(q->readers) > 0 || p == nil){
@@ -196,12 +196,12 @@ wlock(RWlock *q)
 	cycles(&t0);
 	if(!canlock(&q->use)){
 		lock(&q->use);
-		slockstat(getcallerpc(&q), t0);
+		slockstat(getcallerpc(), t0);
 	}
 	qlockstats.wlock++;
 	if(q->readers == 0 && q->writer == 0){
 		/* noone waiting, go for it */
-		q->wpc = getcallerpc(&q);
+		q->wpc = getcallerpc();
 		q->wproc = up;
 		q->writer = 1;
 		unlock(&q->use);
@@ -224,7 +224,7 @@ wlock(RWlock *q)
 		proctrace(up, SLock, 0);
 	unlock(&q->use);
 	sched();
-	lockstat(getcallerpc(&q), t0);
+	lockstat(getcallerpc(), t0);
 }
 
 void
@@ -236,7 +236,7 @@ wunlock(RWlock *q)
 	if(!canlock(&q->use)){
 		cycles(&t0);
 		lock(&q->use);
-		slockstat(getcallerpc(&q), t0);
+		slockstat(getcallerpc(), t0);
 	}
 	p = q->head;
 	if(p == nil){
@@ -279,7 +279,7 @@ canrlock(RWlock *q)
 	if(!canlock(&q->use)){
 		cycles(&t0);
 		lock(&q->use);
-		slockstat(getcallerpc(&q), t0);
+		slockstat(getcallerpc(), t0);
 	}
 	qlockstats.rlock++;
 	if(q->writer == 0 && q->head == nil){

+ 10 - 10
sys/src/9/port/taslock.c

@@ -129,7 +129,7 @@ lock(Lock *l)
 	uintptr_t pc;
 	uint64_t t0;
 
-	pc = getcallerpc(&l);
+	pc = getcallerpc();
 
 	lockstats.locks++;
 	if(up)
@@ -195,7 +195,7 @@ ilock(Lock *l)
 	uintptr_t pc;
 	uint64_t t0;
 
-	pc = getcallerpc(&l);
+	pc = getcallerpc();
 	lockstats.locks++;
 
 	pl = splhi();
@@ -247,7 +247,7 @@ canlock(Lock *l)
 
 	if(up)
 		up->lastlock = l;
-	l->_pc = getcallerpc(&l);
+	l->_pc = getcallerpc();
 	l->p = up;
 	l->isilock = 0;
 	if(LOCKCYCLES)
@@ -272,11 +272,11 @@ unlock(Lock *l)
 	}
 
 	if(l->key == 0)
-		print("unlock: not locked: pc %#p\n", getcallerpc(&l));
+		print("unlock: not locked: pc %#p\n", getcallerpc());
 	if(l->isilock)
-		print("unlock of ilock: pc %#p, held by %#p\n", getcallerpc(&l), l->_pc);
+		print("unlock of ilock: pc %#p, held by %#p\n", getcallerpc(), l->_pc);
 	if(l->p != up)
-		print("unlock: up changed: pc %#p, acquired at pc %#p, lock p %#p, unlock up %#p\n", getcallerpc(&l), l->_pc, l->p, up);
+		print("unlock: up changed: pc %#p, acquired at pc %#p, lock p %#p, unlock up %#p\n", getcallerpc(), l->_pc, l->p, up);
 	l->m = nil;
 	l->key = 0;
 	coherence();
@@ -307,14 +307,14 @@ iunlock(Lock *l)
 	}
 
 	if(l->key == 0)
-		print("iunlock: not locked: pc %#p\n", getcallerpc(&l));
+		print("iunlock: not locked: pc %#p\n", getcallerpc());
 	if(!l->isilock)
-		print("iunlock of lock: pc %#p, held by %#p\n", getcallerpc(&l), l->_pc);
+		print("iunlock of lock: pc %#p, held by %#p\n", getcallerpc(), l->_pc);
 	if(islo())
-		print("iunlock while lo: pc %#p, held by %#p\n", getcallerpc(&l), l->_pc);
+		print("iunlock while lo: pc %#p, held by %#p\n", getcallerpc(), l->_pc);
 	if(l->m != machp()){
 		print("iunlock by cpu%d, locked by cpu%d: pc %#p, held by %#p\n",
-			machp()->machno, l->m->machno, getcallerpc(&l), l->_pc);
+			machp()->machno, l->m->machno, getcallerpc(), l->_pc);
 	}
 
 	pl = l->pl;

+ 10 - 10
sys/src/9/port/tcklock.c

@@ -175,7 +175,7 @@ lock(Lock *l)
 	uint32_t user;
 	uint64_t t0;
 
-	pc = getcallerpc(&l);
+	pc = getcallerpc();
 	lockstats.locks++;
 	if(up)
 		ainc(&up->nlocks);	/* prevent being scheded */
@@ -223,7 +223,7 @@ ilock(Lock *l)
 	uint64_t t0;
 	uint32_t user;
 
-	pc = getcallerpc(&l);
+	pc = getcallerpc();
 	lockstats.locks++;
 
 	pl = splhi();
@@ -255,7 +255,7 @@ canlock(Lock *l)
 	uintptr_t pc;
 	uint64_t t0;
 
-	pc = getcallerpc(&l);
+	pc = getcallerpc();
 
 	lockstats.locks++;
 	if(up)
@@ -286,12 +286,12 @@ void
 unlock(Lock *l)
 {
 	if(getticket(l->key) == getuser(l->key))
-		print("unlock: not locked: pc %#p\n", getcallerpc(&l));
+		print("unlock: not locked: pc %#p\n", getcallerpc());
 	if(l->isilock)
-		print("unlock of ilock: pc %#p, held by %#p\n", getcallerpc(&l), l->pc);
+		print("unlock of ilock: pc %#p, held by %#p\n", getcallerpc(), l->pc);
 	if(l->p != up)
 		print("unlock: up changed: pc %#p, acquired at pc %#p,"
-			" lock p %#p, unlock up %#p\n", getcallerpc(&l), l->pc, l->p, up);
+			" lock p %#p, unlock up %#p\n", getcallerpc(), l->pc, l->p, up);
 	l->m = nil;
 	incticket(&l->key);
 
@@ -310,14 +310,14 @@ iunlock(Lock *l)
 	Mpl pl;
 
 	if(getticket(l->key) == getuser(l->key))
-		print("iunlock: not locked: pc %#p\n", getcallerpc(&l));
+		print("iunlock: not locked: pc %#p\n", getcallerpc());
 	if(!l->isilock)
-		print("iunlock of lock: pc %#p, held by %#p\n", getcallerpc(&l), l->pc);
+		print("iunlock of lock: pc %#p, held by %#p\n", getcallerpc(), l->pc);
 	if(islo())
-		print("iunlock while lo: pc %#p, held by %#p\n", getcallerpc(&l), l->pc);
+		print("iunlock while lo: pc %#p, held by %#p\n", getcallerpc(), l->pc);
 	if(l->m != m){
 		print("iunlock by cpu%d, locked by cpu%d: pc %#p, held by %#p\n",
-			machp()->machno, l->machp()->machno, getcallerpc(&l), l->pc);
+			machp()->machno, l->machp()->machno, getcallerpc(), l->pc);
 	}
 
 	pl = l->pl;

+ 3 - 3
sys/src/9/w/pxeload/load.c

@@ -520,7 +520,7 @@ ialloc(uint32_t n, int align)
 	palloc = p+n;
 	if(palloc > memend)
 		panic("ialloc(%lud, %d) called from 0x%lux\n",
-			n, align, getcallerpc(&n));
+			n, align, getcallerpc());
 	return memset((void*)p, 0, n);
 }
 
@@ -531,7 +531,7 @@ xspanalloc(uint32_t size, int align, uint32_t span)
 
 	if((palloc + (size+align+span)) > memend)
 		panic("xspanalloc(%lud, %d, 0x%lux) called from 0x%lux\n",
-			size, align, span, getcallerpc(&size));
+			size, align, span, getcallerpc());
 
 	a = (uint32_t)ialloc(size+align+span, 0);
 
@@ -565,7 +565,7 @@ allocb(int size)
 	if(bp == 0){
 		if((palloc + (sizeof(Block)+size+64)) > memend)
 			panic("allocb(%d) called from 0x%lux\n",
-				size, getcallerpc(&size));
+				size, getcallerpc());
 		bp = ialloc(sizeof(Block)+size+64, 0);
 		addr = (uint32_t)bp;
 		addr = ROUNDUP(addr + sizeof(Block), 8);

+ 4 - 4
sys/src/cmd/abaco/util.c

@@ -105,7 +105,7 @@ emalloc(uint32_t n)
 	p = malloc(n);
 	if(p == nil)
 		error("malloc failed");
-	setmalloctag(p, getcallerpc(&n));
+	setmalloctag(p, getcallerpc());
 	memset(p, 0, n);
 	return p;
 }
@@ -116,7 +116,7 @@ erealloc(void *p, uint32_t n)
 	p = realloc(p, n);
 	if(p == nil)
 		error("realloc failed");
-	setmalloctag(p, getcallerpc(&n));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 
@@ -130,7 +130,7 @@ erunestrdup(Rune *r)
 	p = runestrdup(r);
 	if(p == nil)
 		error("runestrdup failed");
-	setmalloctag(p, getcallerpc(&r));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 
@@ -142,7 +142,7 @@ estrdup(char *s)
 	t = strdup(s);
 	if(t == nil)
 		error("strdup failed");
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }
 

+ 4 - 4
sys/src/cmd/acme/util.c

@@ -290,7 +290,7 @@ runetobyte(Rune *r, int n)
 	if(r == nil)
 		return nil;
 	s = emalloc(n*UTFmax+1);
-	setmalloctag(s, getcallerpc(&r));
+	setmalloctag(s, getcallerpc());
 	snprint(s, n*UTFmax+1, "%.*S", n, r);
 	return s;
 }
@@ -403,7 +403,7 @@ estrdup(char *s)
 	t = strdup(s);
 	if(t == nil)
 		error("strdup failed");
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }
 
@@ -415,7 +415,7 @@ emalloc(uint n)
 	p = malloc(n);
 	if(p == nil)
 		error("malloc failed");
-	setmalloctag(p, getcallerpc(&n));
+	setmalloctag(p, getcallerpc());
 	memset(p, 0, n);
 	return p;
 }
@@ -426,7 +426,7 @@ erealloc(void *p, uint n)
 	p = realloc(p, n);
 	if(p == nil)
 		error("realloc failed");
-	setmalloctag(p, getcallerpc(&n));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 

+ 4 - 4
sys/src/cmd/auth/factotum/util.c

@@ -827,7 +827,7 @@ safecpy(char *to, char *from, int n)
 		return to;
 	if(from==nil)
 		sysfatal("safecpy called with from==nil, pc=%#p",
-			getcallerpc(&to));
+			getcallerpc());
 	strncpy(to, from, n-1);
 	return to;
 }
@@ -844,7 +844,7 @@ setattr(Attr *a, char *fmt, ...)
 	va_end(arg);
 	b = _parseattr(buf);
 	a = setattrs(a, b);
-	setmalloctag(a, getcallerpc(&a));
+	setmalloctag(a, getcallerpc());
 	_freeattr(b);
 	return a;
 }
@@ -886,7 +886,7 @@ setattrs(Attr *a, Attr *b)
 		}
 		if(found == 0){
 			*l = _mkattr(b->type, b->name, b->val, nil);
-			setmalloctag(*l, getcallerpc(&a));
+			setmalloctag(*l, getcallerpc());
 		}
 continue2:;
 	}
@@ -896,7 +896,7 @@ continue2:;
 void
 setmalloctaghere(void *v)
 {
-	setmalloctag(v, getcallerpc(&v));
+	setmalloctag(v, getcallerpc());
 }
 
 Attr*

+ 3 - 3
sys/src/cmd/aux/apm.c

@@ -565,7 +565,7 @@ emalloc(uint32_t n)
 	if(v == nil)
 		sysfatal("out of memory allocating %lu", n);
 	memset(v, 0, n);
-	setmalloctag(v, getcallerpc(&n));
+	setmalloctag(v, getcallerpc());
 	return v;
 }
 
@@ -580,7 +580,7 @@ estrdup(char *s)
 	l = strlen(s)+1;
 	t = emalloc(l);
 	memcpy(t, s, l);
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }
 
@@ -596,7 +596,7 @@ estrdupn(char *s, int n)
 	t = emalloc(l+1);
 	memmove(t, s, l);
 	t[l] = '\0';
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }
 

+ 3 - 3
sys/src/cmd/aux/flashfs/aux.c

@@ -24,7 +24,7 @@ emalloc9p(uint32_t sz)
 		exits("mem");
 	}
 	memset(v, 0, sz);
-	setmalloctag(v, getcallerpc(&sz));
+	setmalloctag(v, getcallerpc());
 	return v;
 }
 
@@ -35,7 +35,7 @@ erealloc9p(void *v, uint32_t sz)
 		fprint(2, "out of memory allocating %lu\n", sz);
 		exits("mem");
 	}
-	setrealloctag(v, getcallerpc(&v));
+	setrealloctag(v, getcallerpc());
 	return v;
 }
 
@@ -48,6 +48,6 @@ estrdup9p(char *s)
 		fprint(2, "out of memory in strdup(%.10s)\n", s);
 		exits("mem");
 	}
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }

+ 1 - 1
sys/src/cmd/cwfs/iobuf.c

@@ -111,7 +111,7 @@ xloop:
 	p->addr = addr;
 	p->dev = d;
 	p->flags = flag;
-//	p->pc = getcallerpc(&d);
+//	p->pc = getcallerpc();
 	unlock(hp);
 	if(iobufmap(p))
 		if(flag & Brd) {

+ 5 - 5
sys/src/cmd/fossil/cache.c

@@ -562,7 +562,7 @@ fprint(2, "%s: _cacheLocal want epoch %u got %u\n", argv0, epoch, b->l.epoch);
 		return nil;
 	}
 
-	b->pc = getcallerpc(&c);
+	b->pc = getcallerpc();
 	for(;;){
 		switch(b->iostate){
 		default:
@@ -623,7 +623,7 @@ cacheLocalData(Cache *c, uint32_t addr, int type, uint32_t tag, int mode,
 		blockPut(b);
 		return nil;
 	}
-	b->pc = getcallerpc(&c);
+	b->pc = getcallerpc();
 	return b;
 }
 
@@ -645,7 +645,7 @@ cacheGlobal(Cache *c, uint8_t score[VtScoreSize], int type, uint32_t tag,
 	if(addr != NilBlock){
 		b = cacheLocalData(c, addr, type, tag, mode, 0);
 		if(b)
-			b->pc = getcallerpc(&c);
+			b->pc = getcallerpc();
 		return b;
 	}
 
@@ -685,7 +685,7 @@ if(0)fprint(2, "%s: cacheGlobal %V %d\n", argv0, score, type);
 	bwatchLock(b);
 	vtLock(b->lk);
 	b->nlock = 1;
-	b->pc = getcallerpc(&c);
+	b->pc = getcallerpc();
 
 	switch(b->iostate){
 	default:
@@ -808,7 +808,7 @@ if(0)fprint(2, "%s: fsAlloc %u type=%d tag = %x\n", argv0, addr, type, tag);
 	lastAlloc = addr;
 	fl->nused++;
 	vtUnlock(fl->lk);
-	b->pc = getcallerpc(&c);
+	b->pc = getcallerpc();
 	return b;
 }
 

+ 1 - 1
sys/src/cmd/fossil/disk.c

@@ -298,7 +298,7 @@ diskSize(Disk *disk, int part)
 static uintptr
 mypc(int x)
 {
-	return getcallerpc(&x);
+	return getcallerpc();
 }
 
 static char *

+ 4 - 4
sys/src/cmd/fossil/source.c

@@ -556,7 +556,7 @@ blockWalk(Block *p, int index, int mode, Fs *fs, Entry *e)
 	}
 
 	if(b)
-		b->pc = getcallerpc(&p);
+		b->pc = getcallerpc();
 
 	if(b == nil || mode == OReadOnly)
 		return b;
@@ -584,7 +584,7 @@ blockWalk(Block *p, int index, int mode, Fs *fs, Entry *e)
 	if(b == nil)
 		return nil;
 
-	b->pc = getcallerpc(&p);
+	b->pc = getcallerpc();
 	assert(b->l.epoch == fs->ehi);
 
 	blockDirty(b);
@@ -813,7 +813,7 @@ _sourceBlock(Source *r, uint32_t bn, int mode, int early, uint32_t tag)
 		blockPut(b);
 		b = bb;
 	}
-	b->pc = getcallerpc(&r);
+	b->pc = getcallerpc();
 	return b;
 Err:
 	blockPut(b);
@@ -827,7 +827,7 @@ sourceBlock(Source *r, uint32_t bn, int mode)
 
 	b = _sourceBlock(r, bn, mode, 0, 0);
 	if(b)
-		b->pc = getcallerpc(&r);
+		b->pc = getcallerpc();
 	return b;
 }
 

+ 1 - 1
sys/src/cmd/ip/snoopy/dns.c

@@ -426,7 +426,7 @@ rralloc(int type)
 
 	rp = emalloc(sizeof(*rp));
 	rp->magic = RRmagic;
-	rp->pc = getcallerpc(&type);
+	rp->pc = getcallerpc();
 	rp->type = type;
 	setmalloctag(rp, rp->pc);
 	switch(type){

+ 2 - 2
sys/src/cmd/ndb/convM2DNS.c

@@ -553,7 +553,7 @@ rrloop(Scan *sp, char *what, int count, int quest)
 		rp = quest? convM2Q(sp): convM2RR(sp, what);
 		if(rp == nil)
 			break;
-		setmalloctag(rp, getcallerpc(&sp));
+		setmalloctag(rp, getcallerpc());
 		/*
 		 * it might be better to ignore the bad rr, possibly break out,
 		 * but return the previous rrs, if any.  that way our callers
@@ -567,7 +567,7 @@ rrloop(Scan *sp, char *what, int count, int quest)
 		l = &rp->next;
 	}
 //	if(first)
-//		setmalloctag(first, getcallerpc(&sp));
+//		setmalloctag(first, getcallerpc());
 	return first;
 }
 

+ 6 - 6
sys/src/cmd/ndb/dn.c

@@ -917,7 +917,7 @@ rrcopy(RR *rp, RR **last)
 	if (canlock(&dnlock))
 		abort();	/* rrcopy called with dnlock not held */
 	nrp = rralloc(rp->type);
-	setmalloctag(nrp, getcallerpc(&rp));
+	setmalloctag(nrp, getcallerpc());
 	switch(rp->type){
 	case Ttxt:
 		*nrp = *rp;
@@ -1017,7 +1017,7 @@ rrlookup(DN *dp, int type, int flag)
 		if(rp->auth)
 		if(tsame(type, rp->type)) {
 			last = rrcopy(rp, last);
-			// setmalloctag(*last, getcallerpc(&dp));
+			// setmalloctag(*last, getcallerpc());
 		}
 	}
 	if(first)
@@ -1072,7 +1072,7 @@ out:
 	unlock(&dnlock);
 //	dnslog("rrlookup(%s) -> %#p\t# in-core only", dp->name, first);
 //	if (first)
-//		setmalloctag(first, getcallerpc(&dp));
+//		setmalloctag(first, getcallerpc());
 	return first;
 }
 
@@ -1802,7 +1802,7 @@ emalloc(int size)
 	x = mallocz(size, 1);
 	if(x == nil)
 		abort();
-	setmalloctag(x, getcallerpc(&size));
+	setmalloctag(x, getcallerpc());
 	return x;
 }
 
@@ -1817,7 +1817,7 @@ estrdup(char *s)
 	if(p == nil)
 		abort();
 	memmove(p, s, size);
-	setmalloctag(p, getcallerpc(&s));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 
@@ -1981,7 +1981,7 @@ rralloc(int type)
 
 	rp = emalloc(sizeof(*rp));
 	rp->magic = RRmagic;
-	rp->pc = getcallerpc(&type);
+	rp->pc = getcallerpc();
 	rp->type = type;
 	if (rp->type != type)
 		dnslog("rralloc: bogus type %d", type);

+ 3 - 3
sys/src/cmd/nntpfs.c

@@ -97,7 +97,7 @@ emalloc(uint32_t n)
 	if(v == nil)
 		sysfatal("out of memory allocating %lu", n);
 	memset(v, 0, n);
-	setmalloctag(v, getcallerpc(&n));
+	setmalloctag(v, getcallerpc());
 	return v;
 }
 
@@ -112,7 +112,7 @@ estrdup(char *s)
 	l = strlen(s)+1;
 	t = emalloc(l);
 	memcpy(t, s, l);
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }
 
@@ -128,7 +128,7 @@ estrdupn(char *s, int n)
 	t = emalloc(l+1);
 	memmove(t, s, l);
 	t[l] = '\0';
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }
 

+ 1 - 1
sys/src/cmd/plumb/plumber.c

@@ -153,6 +153,6 @@ estrdup(char *s)
 	t = strdup(s);
 	if(t == nil)
 		error("estrdup failed: %r");
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }

+ 1 - 1
sys/src/cmd/unix/drawterm/gui-x11/x11.c

@@ -244,7 +244,7 @@ xallocmemimage(Rectangle r, uint32_t chan, int pmid)
 	}
 
 	xm->xi = xi;
-	xm->pc = getcallerpc(&r);
+	xm->pc = getcallerpc();
 	xm->r = r;
 	
 	/*

+ 3 - 3
sys/src/cmd/unix/drawterm/kern/allocb.c

@@ -69,11 +69,11 @@ allocb(int size)
 	 * Can still error out of here, though.
 	 */
 	if(up == nil)
-		panic("allocb without up: %p\n", getcallerpc(&size));
+		panic("allocb without up: %p\n", getcallerpc());
 	if((b = _allocb(size)) == nil){
 		panic("allocb: no memory for %d bytes\n", size);
 	}
-	setmalloctag(b, getcallerpc(&size));
+	setmalloctag(b, getcallerpc());
 
 	return b;
 }
@@ -97,7 +97,7 @@ iallocb(int size)
 				ialloc.bytes, conf.ialloc);
 		return nil;
 	}
-	setmalloctag(b, getcallerpc(&size));
+	setmalloctag(b, getcallerpc());
 	b->flag = BINTR;
 
 	ilock(&ialloc.lk);

+ 3 - 3
sys/src/cmd/unix/drawterm/kern/chan.c

@@ -121,7 +121,7 @@ decref(Ref *r)
 	x = --r->ref;
 	unlock(&r->lk);
 	if(x < 0)
-		panic("decref, pc=0x%p", getcallerpc(&r));
+		panic("decref, pc=0x%p", getcallerpc());
 
 	return x;
 }
@@ -181,7 +181,7 @@ kstrdup(char **p, char *s)
 	/* if it's a user, we can wait for memory; if not, something's very wrong */
 	if(up){
 		t = smalloc(n);
-		setmalloctag(t, getcallerpc(&p));
+		setmalloctag(t, getcallerpc());
 	}else{
 		t = malloc(n);
 		if(t == nil)
@@ -363,7 +363,7 @@ void
 cclose(Chan *c)
 {
 	if(c->flag&CFREE)
-		panic("cclose %p", getcallerpc(&c));
+		panic("cclose %p", getcallerpc());
 
 	if(decref(&c->ref))
 		return;

+ 1 - 1
sys/src/cmd/unix/drawterm/kern/devpipe.c

@@ -323,7 +323,7 @@ pipewrite(Chan *c, void *va, int32_t n, int64_t offset)
 
 	USED(offset);
 	if(!islo())
-		print("pipewrite hi %lux\n", getcallerpc(&c));
+		print("pipewrite hi %lux\n", getcallerpc());
 
 	if(waserror()) {
 		/* avoid notes when pipe is a mounted queue */

+ 3 - 3
sys/src/cmd/unix/drawterm/kern/qio.c

@@ -105,7 +105,7 @@ padblock(Block *bp, int size)
 		}
 
 		if(bp->next)
-			panic("padblock 0x%p", getcallerpc(&bp));
+			panic("padblock 0x%p", getcallerpc());
 		n = BLEN(bp);
 		padblockcnt++;
 		nbp = allocb(size+n);
@@ -119,7 +119,7 @@ padblock(Block *bp, int size)
 		size = -size;
 
 		if(bp->next)
-			panic("padblock 0x%p", getcallerpc(&bp));
+			panic("padblock 0x%p", getcallerpc());
 
 		if(bp->lim - bp->wp >= size)
 			return bp;
@@ -1279,7 +1279,7 @@ qwrite(Queue *q, void *vp, int len)
 	uint8_t *p = vp;
 
 	QDEBUG if(!islo())
-		print("qwrite hi %p\n", getcallerpc(&q));
+		print("qwrite hi %p\n", getcallerpc());
 
 	sofar = 0;
 	do {

+ 5 - 5
sys/src/cmd/unix/drawterm/libauth/attr.c

@@ -47,7 +47,7 @@ _copyattr(Attr *a)
 	la = &na;
 	for(; a; a=a->next){
 		*la = _mkattr(a->type, a->name, a->val, nil);
-		setmalloctag(*la, getcallerpc(&a));
+		setmalloctag(*la, getcallerpc());
 		la = &(*la)->next;
 	}
 	*la = nil;
@@ -111,7 +111,7 @@ _mkattr(int type, char *name, char *val, Attr *next)
 	if(a->name==nil || a->val==nil)
 		sysfatal("_mkattr malloc: %r");
 	a->next = next;
-	setmalloctag(a, getcallerpc(&type));
+	setmalloctag(a, getcallerpc());
 	return a;
 }
 
@@ -156,16 +156,16 @@ _parseattr(char *s)
 		//	}else
 				type = AttrNameval;
 			a = _mkattr(type, t, p, a);
-			setmalloctag(a, getcallerpc(&s));
+			setmalloctag(a, getcallerpc());
 		}
 		else if(t[strlen(t)-1] == '?'){
 			t[strlen(t)-1] = '\0';
 			a = _mkattr(AttrQuery, t, "", a);
-			setmalloctag(a, getcallerpc(&s));
+			setmalloctag(a, getcallerpc());
 		}else{
 			/* really a syntax error, but better to provide some indication */
 			a = _mkattr(AttrNameval, t, "", a);
-			setmalloctag(a, getcallerpc(&s));
+			setmalloctag(a, getcallerpc());
 		}
 	}
 	free(s);

+ 1 - 1
sys/src/cmd/unix/drawterm/libc/lock.c

@@ -102,7 +102,7 @@ lock(Lock *lk)
 	for(;;) {
 		if(canlock(lk))
 			return;
-		iprint("lock loop %ld: val=%d &lock=%ux pc=%p\n", getpid(), lk->key, lk, getcallerpc(&lk));
+		iprint("lock loop %ld: val=%d &lock=%ux pc=%p\n", getpid(), lk->key, lk, getcallerpc());
 		osmsleep(1000);
 	}
 }

+ 1 - 1
sys/src/cmd/unix/drawterm/libmemdraw/alloc.c

@@ -107,7 +107,7 @@ _allocmemimage(Rectangle r, uint32_t chan)
 	*(Memdata**)p = md;
 	p += sizeof(Memdata*);
 
-	*(uint32_t*)p = getcallerpc(&r);
+	*(uint32_t*)p = getcallerpc();
 	p += sizeof(uint32_t);
 
 	/* if this changes, memimagemove must change too */

+ 1 - 1
sys/src/cmd/venti/srv/disksched.c

@@ -90,7 +90,7 @@ diskaccess(int level)
 {
 	if(level < 0 || level >= nelem(lasttime)){
 		fprint(2, "bad level in diskaccess; caller=%#p\n",
-			getcallerpc(&level));
+			getcallerpc());
 		return;
 	}
 	lasttime[level] = time(0);

+ 1 - 1
sys/src/cmd/venti/srv/icache.c

@@ -423,7 +423,7 @@ insertscore(uint8_t score[VtScoreSize], IAddr *ia, int state, AState *as)
 		toload = nil;
 		if(as == nil)
 			fprint(2, "%T insertscore IEDirty without as; called from %#p\n",
-				getcallerpc(&score));
+				getcallerpc());
 		else{
 			if(icache.as.aa > as->aa)
 				fprint(2, "%T insertscore: aa moving backward: %#llx -> %#llx\n", icache.as.aa, as->aa);

+ 8 - 8
sys/src/cmd/venti/srv/utils.c

@@ -159,8 +159,8 @@ emalloc(uint32_t n)
 		sysfatal("out of memory allocating %lu", n);
 	}
 	memset(p, 0xa5, n);
-	setmalloctag(p, getcallerpc(&n));
-if(0)print("emalloc %p-%p by %#p\n", p, (char*)p+n, getcallerpc(&n));
+	setmalloctag(p, getcallerpc());
+if(0)print("emalloc %p-%p by %#p\n", p, (char*)p+n, getcallerpc());
 	return p;
 }
 
@@ -176,8 +176,8 @@ ezmalloc(uint32_t n)
 		sysfatal("out of memory allocating %lu", n);
 	}
 	memset(p, 0, n);
-	setmalloctag(p, getcallerpc(&n));
-if(0)print("ezmalloc %p-%p by %#p\n", p, (char*)p+n, getcallerpc(&n));
+	setmalloctag(p, getcallerpc());
+if(0)print("ezmalloc %p-%p by %#p\n", p, (char*)p+n, getcallerpc());
 	return p;
 }
 
@@ -190,8 +190,8 @@ erealloc(void *p, uint32_t n)
 			abort();
 		sysfatal("out of memory allocating %lu", n);
 	}
-	setrealloctag(p, getcallerpc(&p));
-if(0)print("erealloc %p-%p by %#p\n", p, (char*)p+n, getcallerpc(&p));
+	setrealloctag(p, getcallerpc());
+if(0)print("erealloc %p-%p by %#p\n", p, (char*)p+n, getcallerpc());
 	return p;
 }
 
@@ -204,8 +204,8 @@ estrdup(char *s)
 	n = strlen(s) + 1;
 	t = emalloc(n);
 	memmove(t, s, n);
-	setmalloctag(t, getcallerpc(&s));
-if(0)print("estrdup %p-%p by %#p\n", t, (char*)t+n, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
+if(0)print("estrdup %p-%p by %#p\n", t, (char*)t+n, getcallerpc());
 	return t;
 }
 

+ 1 - 1
sys/src/cmd/vnc/compat.c

@@ -118,7 +118,7 @@ smalloc(uint32_t n)
 	p = mallocz(n, 1);
 	if(p == nil)
 		panic("out of memory");
-	setmalloctag(p, getcallerpc(&n));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 

+ 4 - 4
sys/src/lib9p/mem.c

@@ -24,7 +24,7 @@ emalloc9p(uint32_t sz)
 		exits("mem");
 	}
 	memset(v, 0, sz);
-	setmalloctag(v, getcallerpc(&sz));
+	setmalloctag(v, getcallerpc());
 	return v;
 }
 
@@ -38,8 +38,8 @@ erealloc9p(void *v, uint32_t sz)
 		exits("mem");
 	}
 	if(v == nil)
-		setmalloctag(nv, getcallerpc(&v));
-	setrealloctag(nv, getcallerpc(&v));
+		setmalloctag(nv, getcallerpc());
+	setrealloctag(nv, getcallerpc());
 	return nv;
 }
 
@@ -52,6 +52,6 @@ estrdup9p(char *s)
 		fprint(2, "out of memory in strdup(%.10s)\n", s);
 		exits("mem");
 	}
-	setmalloctag(t, getcallerpc(&s));
+	setmalloctag(t, getcallerpc());
 	return t;
 }

+ 2 - 2
sys/src/libString/s_alloc.c

@@ -64,13 +64,13 @@ s_newalloc(int len)
 	sp = _s_alloc();
 	if(sp == nil)
 		sysfatal("s_newalloc: %r");
-	setmalloctag(sp, getcallerpc(&len));
+	setmalloctag(sp, getcallerpc());
 	if(len < STRLEN)
 		len = STRLEN;
 	sp->base = sp->ptr = malloc(len);
 	if (sp->base == nil)
 		sysfatal("s_newalloc: %r");
-	setmalloctag(sp->base, getcallerpc(&len));
+	setmalloctag(sp->base, getcallerpc());
 
 	sp->end = sp->base + len;
 	s_terminate(sp);

+ 1 - 1
sys/src/libString/s_copy.c

@@ -21,7 +21,7 @@ s_copy(char *cp)
 
 	len = strlen(cp)+1;
 	sp = s_newalloc(len);
-	setmalloctag(sp, getcallerpc(&cp));
+	setmalloctag(sp, getcallerpc());
 	strcpy(sp->base, cp);
 	sp->ptr = sp->base + len - 1;		/* point to 0 terminator */
 	return sp;

+ 5 - 5
sys/src/libauth/attr.c

@@ -47,7 +47,7 @@ _copyattr(Attr *a)
 	la = &na;
 	for(; a; a=a->next){
 		*la = _mkattr(a->type, a->name, a->val, nil);
-		setmalloctag(*la, getcallerpc(&a));
+		setmalloctag(*la, getcallerpc());
 		la = &(*la)->next;
 	}
 	*la = nil;
@@ -111,7 +111,7 @@ _mkattr(int type, char *name, char *val, Attr *next)
 	if(a->name==nil || a->val==nil)
 		sysfatal("_mkattr malloc: %r");
 	a->next = next;
-	setmalloctag(a, getcallerpc(&type));
+	setmalloctag(a, getcallerpc());
 	return a;
 }
 
@@ -156,16 +156,16 @@ _parseattr(char *s)
 		//	}else
 				type = AttrNameval;
 			a = _mkattr(type, t, p, a);
-			setmalloctag(a, getcallerpc(&s));
+			setmalloctag(a, getcallerpc());
 		}
 		else if(t[strlen(t)-1] == '?'){
 			t[strlen(t)-1] = '\0';
 			a = _mkattr(AttrQuery, t, "", a);
-			setmalloctag(a, getcallerpc(&s));
+			setmalloctag(a, getcallerpc());
 		}else{
 			/* really a syntax error, but better to provide some indication */
 			a = _mkattr(AttrNameval, t, "", a);
-			setmalloctag(a, getcallerpc(&s));
+			setmalloctag(a, getcallerpc());
 		}
 	}
 	free(s);

+ 1 - 1
sys/src/libdraw/alloc.c

@@ -18,7 +18,7 @@ allocimage(Display *d, Rectangle r, uint32_t chan, int repl, uint32_t val)
 
 	i =  _allocimage(nil, d, r, chan, repl, val, 0, 0);
 	if (i)
-		setmalloctag(i, getcallerpc(&d));
+		setmalloctag(i, getcallerpc());
 	return i;
 }
 

+ 0 - 6
sys/src/libdraw/arith.c

@@ -175,12 +175,6 @@ uint32_t drawld2chan[] = {
 	CMAP8,
 };
 
-/*
- * was used by libmemlayer/line.c; made static, instead of deleting it,
- * to avoid updating many binaries on sources.
- */
-static int log2[] = { -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, 4 /* BUG */, -1, -1, -1, -1, -1, -1, -1, 5 };
-
 uint32_t
 setalpha(uint32_t color, uint8_t alpha)
 {

+ 1 - 1
sys/src/libdraw/creadimage.c

@@ -67,7 +67,7 @@ creadimage(Display *d, int fd, int dolock)
 		if(dolock)
 			lockdisplay(d);
 		i = allocimage(d, r, chan, 0, 0);
-		setmalloctag(i, getcallerpc(&d));
+		setmalloctag(i, getcallerpc());
 		if(dolock)
 			unlockdisplay(d);
 		if(i == nil)

+ 0 - 27
sys/src/libdraw/font.c

@@ -12,7 +12,6 @@
 #include <draw.h>
 
 static int	fontresize(Font*, int, int, int);
-static int	freeup(Font*);
 
 #define	PJW	0	/* use NUL==pjw for invisible characters */
 
@@ -331,32 +330,6 @@ loadchar(Font *f, Rune r, Cacheinfo *c, int h, int noflush,
 	return 1;
 }
 
-/* release all subfonts, return number freed */
-static
-int
-freeup(Font *f)
-{
-	Cachesubf *s, *es;
-	int nf;
-
-	if(f->sub[0]->name == nil)	/* font from mkfont; don't free */
-		return 0;
-	s = f->subf;
-	es = s+f->nsubf;
-	nf = 0;
-	while(s < es){
-		if(s->age){
-			freesubfont(s->f);
-			s->cf = nil;
-			s->f = nil;
-			s->age = 0;
-			nf++;
-		}
-		s++;
-	}
-	return nf;
-}
-
 /* return whether resize succeeded && f->cache is unchanged */
 static int
 fontresize(Font *f, int wid, int ncache, int depth)

+ 1 - 1
sys/src/libdraw/getsubfont.c

@@ -41,6 +41,6 @@ _getsubfont(Display *d, char *name)
 	if(f == 0)
 		fprint(2, "getsubfont: can't read %s: %r\n", name);
 	close(fd);
-	setmalloctag(f, getcallerpc(&d));
+	setmalloctag(f, getcallerpc());
 	return f;
 }

+ 1 - 1
sys/src/libmemdraw/alloc.c

@@ -102,7 +102,7 @@ allocmemimage(Rectangle r, uint32_t chan)
 	*(Memdata**)p = md;
 	p += sizeof(Memdata*);
 
-	*(uint32_t*)p = getcallerpc(&r);
+	*(uint32_t*)p = getcallerpc();
 	p += sizeof(uint32_t);
 
 	/* if this changes, memimagemove must change too */

+ 0 - 45
sys/src/libmemdraw/draw.c

@@ -94,7 +94,6 @@ static uint32_t pixelbits(Memimage*, Point);
 void
 memimagedraw(Memimage *dst, Rectangle r, Memimage *src, Point p0, Memimage *mask, Point p1, int op)
 {
-	static int n = 0;
 	Memdrawparam par;
 
 	if(mask == nil)
@@ -441,9 +440,6 @@ struct Param {
 	int	convdx;
 };
 
-static uint8_t *drawbuf;
-static int	ndrawbuf;
-static int	mdrawbuf;
 static Readfn	greymaskread, replread, readptr;
 static Writefn	nullwrite;
 static Calcfn	alphacalc0, alphacalc14, alphacalc2810, alphacalc3679, alphacalc5, alphacalc11, alphacalcS;
@@ -455,7 +451,6 @@ static Writefn*	writefn(Memimage*);
 
 static Calcfn*	boolcopyfn(Memimage*, Memimage*);
 static Readfn*	convfn(Memimage*, Param*, Memimage*, Param*, int*);
-static Readfn*	ptrfn(Memimage*);
 
 static Calcfn *alphacalc[Ncomp] =
 {
@@ -1936,20 +1931,6 @@ boolcopyfn(Memimage *img, Memimage *mask)
 	return nil;
 }
 
-/*
- * Optimized draw for filling and scrolling; uses memset and memmove.
- */
-static void
-memsetb(void *vp, uint8_t val, int n)
-{
-	uint8_t *p, *ep;
-
-	p = vp;
-	ep = p+n;
-	while(p<ep)
-		*p++ = val;
-}
-
 static void
 memsets(void *vp, uint16_t val, int n)
 {
@@ -2468,32 +2449,6 @@ DBG print("bsh %d\n", bsh);
 }
 #undef DBG
 
-
-/*
- * Fill entire byte with replicated (if necessary) copy of source pixel,
- * assuming destination ldepth is >= source ldepth.
- *
- * This code is just plain wrong for >8bpp.
- *
-ulong
-membyteval(Memimage *src)
-{
-	int i, val, bpp;
-	uchar uc;
-
-	unloadmemimage(src, src->r, &uc, 1);
-	bpp = src->depth;
-	uc <<= (src->r.min.x&(7/src->depth))*src->depth;
-	uc &= ~(0xFF>>bpp);
-	/* pixel value is now in high part of byte. repeat throughout byte 
-	val = uc;
-	for(i=bpp; i<8; i<<=1)
-		val |= val>>i;
-	return val;
-}
- * 
- */
-
 void
 memfillcolor(Memimage *i, uint32_t val)
 {

+ 6 - 18
sys/src/libmemdraw/fillpoly.c

@@ -35,18 +35,6 @@ static	int	zcompare(const void*, const void*);
 static	void	xscan(Memimage *dst, Seg **seg, Seg *segtab, int nseg, int wind, Memimage *src, Point sp, int, int, int, int);
 static	void	yscan(Memimage *dst, Seg **seg, Seg *segtab, int nseg, int wind, Memimage *src, Point sp, int, int);
 
-static void
-fillcolor(Memimage *dst, int left, int right, int y, Memimage *src, Point p)
-{
-	int srcval;
-
-	USED(src);
-	srcval = p.x;
-	p.x = left;
-	p.y = y;
-	memset(byteaddr(dst, p), srcval, right-left);
-}
-
 static void
 fillline(Memimage *dst, int left, int right, int y, Memimage *src, Point p, int op)
 {
@@ -483,8 +471,8 @@ ycompare(const void *a, const void *b)
 	Seg **s0, **s1;
 	int32_t y0, y1;
 
-	s0 = a;
-	s1 = b;
+	s0 = (Seg **)a;
+	s1 = (Seg **)b;
 	y0 = (*s0)->p0.y;
 	y1 = (*s1)->p0.y;
 
@@ -501,8 +489,8 @@ xcompare(const void *a, const void *b)
 	Seg **s0, **s1;
 	int32_t x0, x1;
 
-	s0 = a;
-	s1 = b;
+	s0 = (Seg **)a;
+	s1 = (Seg **)b;
 	x0 = (*s0)->p0.x;
 	x1 = (*s1)->p0.x;
 
@@ -519,8 +507,8 @@ zcompare(const void *a, const void *b)
 	Seg **s0, **s1;
 	int32_t z0, z1;
 
-	s0 = a;
-	s1 = b;
+	s0 = (Seg **)a;
+	s1 = (Seg **)b;
 	z0 = (*s0)->z;
 	z1 = (*s1)->z;
 

+ 0 - 9
sys/src/libmemdraw/line.c

@@ -20,15 +20,6 @@ enum
 	Arrow3 = 3,
 };
 
-static
-int
-lmin(int a, int b)
-{
-	if(a < b)
-		return a;
-	return b;
-}
-
 static
 int
 lmax(int a, int b)

+ 1 - 1
sys/src/libmp/port/betomp.c

@@ -20,7 +20,7 @@ betomp(uint8_t *p, uint n, mpint *b)
 
 	if(b == nil){
 		b = mpnew(0);
-		setmalloctag(b, getcallerpc(&p));
+		setmalloctag(b, getcallerpc());
 	}
 
 	// dump leading zeros

+ 1 - 1
sys/src/libmp/port/mpaux.c

@@ -67,7 +67,7 @@ mpnew(int n)
 		sysfatal("mpsetminbits: n < 0");
 
 	b = mallocz(sizeof(mpint), 1);
-	setmalloctag(b, getcallerpc(&n));
+	setmalloctag(b, getcallerpc());
 	if(b == nil)
 		sysfatal("mpnew: %r");
 	n = DIGITS(n);

+ 1 - 1
sys/src/libmp/port/mptobe.c

@@ -24,7 +24,7 @@ mptobe(mpint *b, uint8_t *p, uint n, uint8_t **pp)
 	if(p == nil){
 		n = (b->top+1)*Dbytes;
 		p = malloc(n);
-		setmalloctag(p, getcallerpc(&b));
+		setmalloctag(p, getcallerpc());
 	}
 	if(p == nil)
 		return -1;

+ 2 - 2
sys/src/libndb/csgetval.c

@@ -88,7 +88,7 @@ csgetvalue(char *netroot, char *attr, char *val, char *rattr,
 	}
 
 	if(pp){
-		setmalloctag(first, getcallerpc(&netroot));
+		setmalloctag(first, getcallerpc());
 		*pp = first;
 	} else
 		ndbfree(first);
@@ -114,6 +114,6 @@ csgetval(char *netroot, char *attr, char *val, char *rattr,
 		}
 		free(p);
 	}
-	ndbsetmalloctag(t, getcallerpc(&netroot));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }

+ 1 - 1
sys/src/libndb/csipinfo.c

@@ -72,6 +72,6 @@ csipinfo(char *netroot, char *attr, char *val, char **list, int n)
 	}
 	close(fd);
 
-	ndbsetmalloctag(first, getcallerpc(&netroot));
+	ndbsetmalloctag(first, getcallerpc());
 	return first;
 }

+ 2 - 2
sys/src/libndb/dnsquery.c

@@ -76,7 +76,7 @@ dnsquery(char *net, char *val, char *type)
 	 * walking to /net*^/dns.  Must be prepared to re-open it on error.
 	 */
 	close(fd);
-	ndbsetmalloctag(t, getcallerpc(&net));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }
 
@@ -165,6 +165,6 @@ doquery(int fd, char *dn, char *type)
 		}
 	}
 
-	ndbsetmalloctag(first, getcallerpc(&fd));
+	ndbsetmalloctag(first, getcallerpc());
 	return first;
 }

+ 3 - 3
sys/src/libndb/ndbaux.c

@@ -31,7 +31,7 @@ _ndbparsetuple(char *cp, Ndbtuple **tp)
 		return 0;
 
 	t = ndbnew(nil, nil);
-	setmalloctag(t, getcallerpc(&cp));
+	setmalloctag(t, getcallerpc());
 	*tp = t;
 
 	/* parse attribute */
@@ -95,10 +95,10 @@ _ndbparseline(char *cp)
 		last = t;
 		t->line = 0;
 		t->entry = 0;
-		setmalloctag(t, getcallerpc(&cp));
+		setmalloctag(t, getcallerpc());
 	}
 	if(first)
 		last->line = first;
-	ndbsetmalloctag(first, getcallerpc(&cp));
+	ndbsetmalloctag(first, getcallerpc());
 	return first;
 }

+ 2 - 2
sys/src/libndb/ndbcache.c

@@ -73,7 +73,7 @@ ndbcopy(Ndb *db, Ndbtuple *from_t, Ndbs *from_s, Ndbs *to_s)
 		last = to_t;
 		newline = from_t->line != from_t->entry;
 	}
-	ndbsetmalloctag(first, getcallerpc(&db));
+	ndbsetmalloctag(first, getcallerpc());
 	return first;
 }
 
@@ -137,7 +137,7 @@ _ndbcacheadd(Ndb *db, Ndbs *s, char *attr, char *val, Ndbtuple *t)
 	*l = nil;
 err:
 	ndbcachefree(c);
-	ndbsetmalloctag(t, getcallerpc(&db));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }
 

+ 1 - 1
sys/src/libndb/ndbconcatenate.c

@@ -23,6 +23,6 @@ ndbconcatenate(Ndbtuple *a, Ndbtuple *b)
 	for(t = a; t->entry; t = t->entry)
 		;
 	t->entry = b;
-	ndbsetmalloctag(a, getcallerpc(&a));
+	ndbsetmalloctag(a, getcallerpc());
 	return a;
 }

+ 1 - 1
sys/src/libndb/ndbdiscard.c

@@ -34,6 +34,6 @@ ndbdiscard(Ndbtuple *t, Ndbtuple *a)
 	a->entry = nil;
 	ndbfree(a);
 
-	ndbsetmalloctag(t, getcallerpc(&t));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }

+ 2 - 2
sys/src/libndb/ndbgetipaddr.c

@@ -25,7 +25,7 @@ ndbgetipaddr(Ndb *db, char *val)
 	attr = ipattr(val);
 	if(strcmp(attr, "ip") == 0){
 		it = ndbnew("ip", val);
-		ndbsetmalloctag(it, getcallerpc(&db));
+		ndbsetmalloctag(it, getcallerpc());
 		return it;
 	}
 
@@ -53,6 +53,6 @@ ndbgetipaddr(Ndb *db, char *val)
 		}
 	}
 
-	ndbsetmalloctag(first, getcallerpc(&db));
+	ndbsetmalloctag(first, getcallerpc());
 	return first;
 }

+ 1 - 1
sys/src/libndb/ndbgetval.c

@@ -82,6 +82,6 @@ ndbgetval(Ndb *db, Ndbs *s, char *attr, char *val, char *rattr,
 		}
 		free(p);
 	}
-	ndbsetmalloctag(t, getcallerpc(&db));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }

+ 6 - 6
sys/src/libndb/ndbhash.c

@@ -133,13 +133,13 @@ ndbsearch(Ndb *db, Ndbs *s, char *attr, char *val)
 	if(_ndbcachesearch(db, s, attr, val, &t) == 0){
 		/* found in cache */
 		if(t != nil){
-			ndbsetmalloctag(t, getcallerpc(&db));
+			ndbsetmalloctag(t, getcallerpc());
 			return t;	/* answer from this file */
 		}
 		if(db->next == nil)
 			return nil;
 		t = ndbsearch(db->next, s, attr, val);
-		ndbsetmalloctag(t, getcallerpc(&db));
+		ndbsetmalloctag(t, getcallerpc());
 		return t;
 	}
 
@@ -150,7 +150,7 @@ ndbsearch(Ndb *db, Ndbs *s, char *attr, char *val)
 		p = hfread(s->hf, s->ptr+NDBHLEN, NDBPLEN);
 		if(p == 0){
 			t = _ndbcacheadd(db, s, attr, val, nil);
-			ndbsetmalloctag(t, getcallerpc(&db));
+			ndbsetmalloctag(t, getcallerpc());
 			return t;
 		}
 		s->ptr = NDBGETP(p);
@@ -165,7 +165,7 @@ ndbsearch(Ndb *db, Ndbs *s, char *attr, char *val)
 		if(db->next == 0)
 			return nil;
 		t = ndbsearch(db->next, s, attr, val);
-		ndbsetmalloctag(t, getcallerpc(&db));
+		ndbsetmalloctag(t, getcallerpc());
 		return t;
 	} else {
 		s->ptr = 0;
@@ -173,7 +173,7 @@ ndbsearch(Ndb *db, Ndbs *s, char *attr, char *val)
 	}
 	t = ndbsnext(s, attr, val);
 	_ndbcacheadd(db, s, attr, val, (t != nil && s->db == db)?t:nil);
-	ndbsetmalloctag(t, getcallerpc(&db));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }
 
@@ -264,6 +264,6 @@ nextfile:
 
 	/* advance search to next db file */
 	t = ndbsearch(db->next, s, attr, val);
-	ndbsetmalloctag(t, getcallerpc(&s));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }

+ 4 - 4
sys/src/libndb/ndbipinfo.c

@@ -49,7 +49,7 @@ mkfilter(int argc, char **argv)
 		}
 		strncpy(t->attr, p, sizeof(t->attr)-1);
 	}
-	ndbsetmalloctag(first, getcallerpc(&argc));
+	ndbsetmalloctag(first, getcallerpc());
 	return first;
 }
 
@@ -107,7 +107,7 @@ filter(Ndb *db, Ndbtuple *t, Ndbtuple *f)
 		if(nf->ptr & Ffound)
 			nf->ptr = (nf->ptr & ~Ffound) | Fignore;
 
-	ndbsetmalloctag(t, getcallerpc(&db));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }
 
@@ -155,7 +155,7 @@ subnet(Ndb *db, uint8_t *net, Ndbtuple *f, int prefix)
 		ndbfree(nt);
 		nt = ndbsnext(&s, "ip", netstr);
 	}
-	ndbsetmalloctag(t, getcallerpc(&db));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }
 
@@ -259,6 +259,6 @@ ndbipinfo(Ndb *db, char *attr, char *val, char **alist, int n)
 	}
 
 	ndbfree(f);
-	ndbsetmalloctag(t, getcallerpc(&db));
+	ndbsetmalloctag(t, getcallerpc());
 	return t;
 }

+ 2 - 2
sys/src/libndb/ndbparse.c

@@ -53,7 +53,7 @@ ndbparse(Ndb *db)
 		t = _ndbparseline(line);
 		if(t == 0)
 			continue;
-		setmalloctag(t, getcallerpc(&db));
+		setmalloctag(t, getcallerpc());
 		if(first)
 			last->entry = t;
 		else
@@ -62,6 +62,6 @@ ndbparse(Ndb *db)
 		while(last->entry)
 			last = last->entry;
 	}
-	ndbsetmalloctag(first, getcallerpc(&db));
+	ndbsetmalloctag(first, getcallerpc());
 	return first;
 }

+ 4 - 4
sys/src/libndb/ndbsubstitute.c

@@ -19,12 +19,12 @@ ndbsubstitute(Ndbtuple *t, Ndbtuple *a, Ndbtuple *b)
 	Ndbtuple *nt;
 
 	if(a == b){
-		ndbsetmalloctag(t, getcallerpc(&t));
+		ndbsetmalloctag(t, getcallerpc());
 		return t;
 	}
 	if(b == nil){
 		t = ndbdiscard(t, a);
-		ndbsetmalloctag(t, getcallerpc(&t));
+		ndbsetmalloctag(t, getcallerpc());
 		return t;
 	}
 
@@ -46,10 +46,10 @@ ndbsubstitute(Ndbtuple *t, Ndbtuple *a, Ndbtuple *b)
 	ndbfree(a);
 
 	if(a == t){
-		ndbsetmalloctag(b, getcallerpc(&t));
+		ndbsetmalloctag(b, getcallerpc());
 		return b;
 	}else{
-		ndbsetmalloctag(t, getcallerpc(&t));
+		ndbsetmalloctag(t, getcallerpc());
 		return t;
 	}
 }

+ 4 - 4
sys/src/liboventi/plan9-io.c

@@ -34,7 +34,7 @@ vtMemAlloc(int size)
 	p = malloc(size);
 	if(p == 0)
 		vtFatal("vtMemAlloc: out of memory");
-	setmalloctag(p, getcallerpc(&size));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 
@@ -43,7 +43,7 @@ vtMemAllocZ(int size)
 {
 	void *p = vtMemAlloc(size);
 	memset(p, 0, size);
-	setmalloctag(p, getcallerpc(&size));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 
@@ -55,7 +55,7 @@ vtMemRealloc(void *p, int size)
 	p = realloc(p, size);
 	if(p == 0)
 		vtFatal("vtRealloc: out of memory");
-	setrealloctag(p, getcallerpc(&size));
+	setrealloctag(p, getcallerpc());
 	return p;
 }
 
@@ -81,7 +81,7 @@ vtMemBrk(int n)
 	pad = (align - (uintptr)buf) & (align-1);
 	if(n + pad > nbuf) {
 		buf = vtMemAllocZ(ChunkSize);
-		setmalloctag(buf, getcallerpc(&n));
+		setmalloctag(buf, getcallerpc());
 		nbuf = ChunkSize;
 		pad = (align - (uintptr)buf) & (align-1);
 		nchunk++;

+ 2 - 2
sys/src/liboventi/plan9-thread.c

@@ -212,7 +212,7 @@ vtRendezAlloc(VtLock *p)
 
 	q = vtMemAllocZ(sizeof(VtRendez));
 	q->lk = p;
-	setmalloctag(q, getcallerpc(&p));
+	setmalloctag(q, getcallerpc());
 	return q;
 }
 
@@ -248,7 +248,7 @@ vtLock(VtLock *p)
 	Thread *t;
 
 	lock(&p->lk);
-	p->pc = getcallerpc(&p);
+	p->pc = getcallerpc();
 	t = *vtRock;
 	if(p->writer == nil && p->readers == 0) {
 		p->writer = t;

+ 1 - 1
sys/src/liboventi/rpc.c

@@ -374,7 +374,7 @@ vtGetString(Packet *p, char **ret)
 		return 0;
 	}
 	s = vtMemAlloc(n+1);
-	setmalloctag(s, getcallerpc(&p));
+	setmalloctag(s, getcallerpc());
 	if(!packetConsume(p, (uint8_t*)s, n)) {
 		vtMemFree(s);
 		return 0;

+ 1 - 1
sys/src/liboventi/server.c

@@ -22,7 +22,7 @@ vtServerAlloc(VtServerVtbl *vtbl)
 {
 	VtSession *z = vtAlloc();
 	z->vtbl = vtMemAlloc(sizeof(VtServerVtbl));
-	setmalloctag(z->vtbl, getcallerpc(&vtbl));
+	setmalloctag(z->vtbl, getcallerpc());
 	*z->vtbl = *vtbl;
 	return z;
 }

+ 1 - 1
sys/src/liboventi/strdup.c

@@ -22,6 +22,6 @@ vtStrDup(char *s)
 	n = strlen(s) + 1;
 	ss = vtMemAlloc(n);
 	memmove(ss, s, n);
-	setmalloctag(ss, getcallerpc(&s));
+	setmalloctag(ss, getcallerpc());
 	return ss;
 }

+ 2 - 2
sys/src/libsec/port/x509.c

@@ -177,7 +177,7 @@ emalloc(int n)
 	if(p == nil)
 		sysfatal("out of memory");
 	memset(p, 0, n);
-	setmalloctag(p, getcallerpc(&n));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 
@@ -1429,7 +1429,7 @@ mkel(Elem e, Elist* tail)
 	Elist* el;
 
 	el = (Elist*)emalloc(sizeof(Elist));
-	setmalloctag(el, getcallerpc(&e));
+	setmalloctag(el, getcallerpc());
 	el->hd = e;
 	el->tl = tail;
 	return el;

+ 1 - 1
sys/src/libthread/lib.c

@@ -22,7 +22,7 @@ _threadmalloc(int32_t size, int z)
 	m = malloc(size);
 	if (m == nil)
 		sysfatal("Malloc of size %ld failed: %r", size);
-	setmalloctag(m, getcallerpc(&size));
+	setmalloctag(m, getcallerpc());
 	totalmalloc += size;
 	if (size > 100000000) {
 		fprint(2, "Malloc of size %ld, total %ld\n", size, totalmalloc);

+ 8 - 8
sys/src/libventi/cache.c

@@ -338,7 +338,7 @@ vtcachelocal(VtCache *c, uint32_t addr, int type)
 
 	qlock(&b->lk);
 	b->nlock = 1;
-	b->pc = getcallerpc(&c);
+	b->pc = getcallerpc();
 	return b;
 }
 
@@ -358,7 +358,7 @@ vtcacheallocblock(VtCache *c, int type)
 
 	qlock(&b->lk);
 	b->nlock = 1;
-	b->pc = getcallerpc(&c);
+	b->pc = getcallerpc();
 	return b;
 }
 
@@ -375,14 +375,14 @@ vtcacheglobal(VtCache *c, uint8_t score[VtScoreSize], int type)
 	uint32_t addr;
 
 	if(vttracelevel)
-		fprint(2, "vtcacheglobal %V %d from %p\n", score, type, getcallerpc(&c));
+		fprint(2, "vtcacheglobal %V %d from %p\n", score, type, getcallerpc());
 	addr = vtglobaltolocal(score);
 	if(addr != NilBlock){
 		if(vttracelevel)
 			fprint(2, "vtcacheglobal %V %d => local\n", score, type);
 		b = vtcachelocal(c, addr, type);
 		if(b)
-			b->pc = getcallerpc(&c);
+			b->pc = getcallerpc();
 		return b;
 	}
 
@@ -413,7 +413,7 @@ vtcacheglobal(VtCache *c, uint8_t score[VtScoreSize], int type)
 		}
 		if(vttracelevel)
 			fprint(2, "vtcacheglobal %V %d => found in cache; returning\n", score, type);
-		b->pc = getcallerpc(&c);
+		b->pc = getcallerpc();
 		return b;
 	}
 
@@ -461,7 +461,7 @@ vtcacheglobal(VtCache *c, uint8_t score[VtScoreSize], int type)
 	b->nlock = 1;
 	if(vttracelevel)
 		fprint(2, "vtcacheglobal %V %d => loaded into cache; returning\n", score, type);
-	b->pc = getcallerpc(&b);
+	b->pc = getcallerpc();
 	return b;
 }
 
@@ -492,7 +492,7 @@ vtblockput(VtBlock* b)
 
 if(0)fprint(2, "vtblockput: %d: %x %d %d\n", getpid(), b->addr, c->nheap, b->iostate);
 	if(vttracelevel)
-		fprint(2, "vtblockput %p from %p\n", b, getcallerpc(&b));
+		fprint(2, "vtblockput %p from %p\n", b, getcallerpc());
 
 	if(--b->nlock > 0)
 		return;
@@ -584,7 +584,7 @@ vtblockcopy(VtBlock *b)
 	}
 	memmove(bb->data, b->data, b->c->blocksize);
 	vtblockput(b);
-	bb->pc = getcallerpc(&b);
+	bb->pc = getcallerpc();
 	return bb;
 }
 

+ 5 - 5
sys/src/libventi/file.c

@@ -727,7 +727,7 @@ assert(b->type == VtDirType);
 		vtblockput(b);
 		b = bb;
 	}
-	b->pc = getcallerpc(&r);
+	b->pc = getcallerpc();
 	return b;
 Err:
 	vtblockput(b);
@@ -841,7 +841,7 @@ fileloadblock(VtFile *r, int mode)
 			b = vtcacheglobal(r->c, r->score, VtDirType);
 			if(b == nil)
 				return nil;
-			b->pc = getcallerpc(&r);
+			b->pc = getcallerpc();
 			return b;
 		}
 		assert(r->parent != nil);
@@ -911,7 +911,7 @@ vtfilelock(VtFile *r, int mode)
 	 */
 	assert(r->b == nil);
 	r->b = b;
-	b->pc = getcallerpc(&r);
+	b->pc = getcallerpc();
 	return 0;
 }
 
@@ -958,8 +958,8 @@ vtfilelock2(VtFile *r, VtFile *rr, int mode)
 	 */
 	r->b = b;
 	rr->b = bb;
-	b->pc = getcallerpc(&r);
-	bb->pc = getcallerpc(&r);
+	b->pc = getcallerpc();
+	bb->pc = getcallerpc();
 	return 0;
 }
 

+ 3 - 3
sys/src/libventi/mem.c

@@ -33,7 +33,7 @@ vtmalloc(int size)
 	p = malloc(size);
 	if(p == 0)
 		sysfatal("vtmalloc: out of memory");
-	setmalloctag(p, getcallerpc(&size));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 
@@ -42,7 +42,7 @@ vtmallocz(int size)
 {
 	void *p = vtmalloc(size);
 	memset(p, 0, size);
-	setmalloctag(p, getcallerpc(&size));
+	setmalloctag(p, getcallerpc());
 	return p;
 }
 
@@ -54,7 +54,7 @@ vtrealloc(void *p, int size)
 	p = realloc(p, size);
 	if(p == 0)
 		sysfatal("vtMemRealloc: out of memory");
-	setrealloctag(p, getcallerpc(&size));
+	setrealloctag(p, getcallerpc());
 	return p;
 }
 

+ 4 - 4
sys/src/libventi/packet.c

@@ -149,7 +149,7 @@ packetfree(Packet *p)
 		return;
 
 	NOTFREE(p);
-	p->pc = getcallerpc(&p);
+	p->pc = getcallerpc();
 
 	for(f=p->first; f!=nil; f=ff) {
 		ff = f->next;
@@ -178,7 +178,7 @@ packetdup(Packet *p, int offset, int n)
 	}
 
 	pp = packetalloc();
-	pp->pc = getcallerpc(&p);
+	pp->pc = getcallerpc();
 	if(n == 0){
 		NOTFREE(pp);
 		return pp;
@@ -229,7 +229,7 @@ packetsplit(Packet *p, int n)
 	}
 
 	pp = packetalloc();
-	pp->pc = getcallerpc(&p);
+	pp->pc = getcallerpc();
 	if(n == 0){
 		NOTFREE(pp);
 		return pp;
@@ -814,7 +814,7 @@ packetforeign(uint8_t *buf, int n, void (*free)(void *a), void *a)
 	Frag *f;
 
 	p = packetalloc();
-	p->pc = getcallerpc(&buf);
+	p->pc = getcallerpc();
 	f = fragalloc(p, 0, 0, nil);
 	f->free = free;
 	f->a = a;

+ 3 - 0
util/.gitignore

@@ -9,3 +9,6 @@
 /telnet
 /ufs
 /vendor
+/convert
+/preen
+/profile