Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b99a099c authored by Carl Shapiro's avatar Carl Shapiro
Browse files

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.
parent 63b396d8
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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

/*
+12 −0
Original line number Diff line number Diff line
@@ -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