version 1.4, 2002/03/25 20:12:10 |
version 1.4.4.2, 2002/06/22 07:23:17 |
|
|
address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_ANON|MAP_SHARED, |
address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_ANON|MAP_SHARED, |
-1, 0); |
-1, 0); |
if (address == MAP_FAILED) |
if (address == MAP_FAILED) |
fatal("mmap(%lu)", (u_long)size); |
fatal("mmap(%lu): %s", (u_long)size, strerror(errno)); |
|
|
mm->address = address; |
mm->address = address; |
mm->size = size; |
mm->size = size; |
|
|
mm_freelist(mm->mmalloc, &mm->rb_allocated); |
mm_freelist(mm->mmalloc, &mm->rb_allocated); |
|
|
if (munmap(mm->address, mm->size) == -1) |
if (munmap(mm->address, mm->size) == -1) |
fatal("munmap(%p, %lu)", mm->address, (u_long)mm->size); |
fatal("munmap(%p, %lu): %s", mm->address, (u_long)mm->size, |
|
strerror(errno)); |
if (mm->mmalloc == NULL) |
if (mm->mmalloc == NULL) |
xfree(mm); |
xfree(mm); |
else |
else |
|
|
|
|
address = mm_malloc(mm, size); |
address = mm_malloc(mm, size); |
if (address == NULL) |
if (address == NULL) |
fatal("%s: mm_malloc(%lu)", __FUNCTION__, (u_long)size); |
fatal("%s: mm_malloc(%lu)", __func__, (u_long)size); |
return (address); |
return (address); |
} |
} |
|
|
|
|
struct mm_master *mmold; |
struct mm_master *mmold; |
struct mmtree rb_free, rb_allocated; |
struct mmtree rb_free, rb_allocated; |
|
|
debug3("%s: Share sync", __FUNCTION__); |
debug3("%s: Share sync", __func__); |
|
|
mm = *pmm; |
mm = *pmm; |
mmold = mm->mmalloc; |
mmold = mm->mmalloc; |
|
|
*pmm = mm; |
*pmm = mm; |
*pmmalloc = mmalloc; |
*pmmalloc = mmalloc; |
|
|
debug3("%s: Share sync end", __FUNCTION__); |
debug3("%s: Share sync end", __func__); |
} |
} |
|
|
void |
void |