Add a new method to export the extent of the break, akin to return

value of sbrk(0) in UNIX.  In terms of dlmalloc and our proprietary
contiguous mspace class, this is the highest address returned by its
morecore method.
This commit is contained in:
Carl Shapiro 2010-02-14 19:01:31 -08:00
parent 63b396d89c
commit b99a099cad
2 changed files with 17 additions and 0 deletions

View File

@ -87,6 +87,11 @@ mspace create_contiguous_mspace_with_base(size_t starting_capacity,
size_t max_capacity, int locked, void *base);
size_t destroy_contiguous_mspace(mspace msp);
/*
Returns the position of the "break" within the given mspace.
*/
void *contiguous_mspace_sbrk0(mspace msp);
#endif
/*

View File

@ -271,4 +271,16 @@ size_t destroy_contiguous_mspace(mspace msp) {
}
return 0;
}
void *contiguous_mspace_sbrk0(mspace msp) {
struct mspace_contig_state *cs;
mstate ms;
const unsigned int pagesize = PAGESIZE;
ms = (mstate)msp;
cs = (struct mspace_contig_state *)((uintptr_t)ms & ~(pagesize-1));
assert(cs->magic == CONTIG_STATE_MAGIC);
assert(cs->m == ms);
return cs->brk;
}
#endif