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:
parent
63b396d89c
commit
b99a099cad
|
@ -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
|
||||
|
||||
/*
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue