diff options
author | kaashoek <kaashoek> | 2006-08-24 19:24:36 +0000 |
---|---|---|
committer | kaashoek <kaashoek> | 2006-08-24 19:24:36 +0000 |
commit | 81d521999844f1dfa9c419463bbb8e355817062a (patch) | |
tree | 459c6496257649bda7927db9de101253028b15d4 /umalloc.c | |
parent | bcfb84b6a9077b5e035325b3396c062d1f183ac4 (diff) | |
download | xv6-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.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -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) |