summaryrefslogtreecommitdiff
path: root/sys/src/cmd/5e/seg.c
diff options
context:
space:
mode:
authoraiju <aiju@phicode.de>2011-06-25 16:17:20 +0200
committeraiju <aiju@phicode.de>2011-06-25 16:17:20 +0200
commit0b22dfd1f69985aabc5af37dca8a217a1e6e54e9 (patch)
tree577216074a5edb2402525c2d219ad8a96af8f9d7 /sys/src/cmd/5e/seg.c
parentb4ae96bcb95e76293a81241bf6edebf27cab7e35 (diff)
5e: added note support
added wstat / fwstat / alarm
Diffstat (limited to 'sys/src/cmd/5e/seg.c')
-rw-r--r--sys/src/cmd/5e/seg.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/src/cmd/5e/seg.c b/sys/src/cmd/5e/seg.c
index 1cde88241..66613baff 100644
--- a/sys/src/cmd/5e/seg.c
+++ b/sys/src/cmd/5e/seg.c
@@ -94,6 +94,7 @@ copyifnec(u32int addr, int len, int *copied)
if(len < 0)
len = strlen(targ) + 1;
ret = emalloc(len);
+ setmalloctag(ret, getcallerpc(&addr));
memcpy(ret, targ, len);
segunlock(seg);
*copied = 1;
@@ -103,7 +104,7 @@ copyifnec(u32int addr, int len, int *copied)
void *
bufifnec(u32int addr, int len, int *buffered)
{
- void *targ;
+ void *targ, *v;
Segment *seg;
targ = vaddr(addr, len, &seg);
@@ -113,7 +114,9 @@ bufifnec(u32int addr, int len, int *buffered)
}
segunlock(seg);
*buffered = 1;
- return emalloc(len);
+ v = emalloc(len);
+ setmalloctag(v, getcallerpc(&addr));
+ return v;
}
void
@@ -122,8 +125,10 @@ copyback(u32int addr, int len, void *data)
void *targ;
Segment *seg;
- if(len <= 0)
+ if(len <= 0) {
+ free(data);
return;
+ }
targ = vaddr(addr, len, &seg);
memmove(targ, data, len);
segunlock(seg);