summaryrefslogtreecommitdiff
path: root/umalloc.c
diff options
context:
space:
mode:
authorkaashoek <kaashoek>2006-08-24 19:24:36 +0000
committerkaashoek <kaashoek>2006-08-24 19:24:36 +0000
commit81d521999844f1dfa9c419463bbb8e355817062a (patch)
tree459c6496257649bda7927db9de101253028b15d4 /umalloc.c
parentbcfb84b6a9077b5e035325b3396c062d1f183ac4 (diff)
downloadxv6-labs-81d521999844f1dfa9c419463bbb8e355817062a.tar.gz
xv6-labs-81d521999844f1dfa9c419463bbb8e355817062a.tar.bz2
xv6-labs-81d521999844f1dfa9c419463bbb8e355817062a.zip
bug in sbrk
test malloc
Diffstat (limited to 'umalloc.c')
-rw-r--r--umalloc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/umalloc.c b/umalloc.c
index c0fc4ca..11d816a 100644
--- a/umalloc.c
+++ b/umalloc.c
@@ -25,7 +25,9 @@ void
free(void *ap)
{
Header *bp, *p;
-
+
+ printf(1, "free\n");
+
bp = (Header *) ap - 1;
for (p = freep; !(bp > p && bp < p->s.ptr); p = p->s.ptr)
if (p >= p->s.ptr && (bp > p || bp < p->s.ptr))
@@ -51,6 +53,7 @@ morecore(uint nu)
if (nu < PAGE)
nu = PAGE;
+ printf(1, "call sbrk\n");
cp = sbrk(nu * sizeof(Header));
if (cp == (char *) -1)
return 0;
@@ -66,6 +69,8 @@ malloc(uint nbytes)
Header *p, *prevp;
uint nunits;
+ printf(1, "malloc %d\n", nbytes);
+
nunits = (nbytes + sizeof(Header) - 1)/sizeof(Header) + 1;
if ((prevp = freep) == 0) {
base.s.ptr = freep = prevp = &base;
@@ -81,6 +86,7 @@ malloc(uint nbytes)
p->s.size = nunits;
}
freep = prevp;
+ printf(1, "malloc returns: %d\n", (int) (p+1));
return (void *) (p + 1);
}
if (p == freep)