/* Pointers to each of the heap regions to use */
void *std_heap = NULL; /* memory erased each time the MC stuff rollbacks to the beginning. Almost everything goes here */
void *raw_heap = NULL; /* memory persistent over the MC rollbacks. Only MC stuff should go there */
-/* int raw_heap_fd; */ /* unsued */
/* Initialize the model-checker memory subsystem */
/* It creates the two heap regions: std_heap and raw_heap */
void MC_memory_init()
{
-/* Create the first region HEAP_OFFSET bytes after the heap break address */
+ /* Create the first region HEAP_OFFSET bytes after the heap break address */
std_heap = mmalloc_get_default_md();
xbt_assert(std_heap != NULL);
-/* Create the second region a page after the first one ends + safety gap */
-/* raw_heap_fd = shm_open("raw_heap", O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);*/
+ /* Create the second region a page after the first one ends + safety gap */
raw_heap = mmalloc_attach(-1, (char*)(std_heap) + STD_HEAP_SIZE + getpagesize());
xbt_assert(raw_heap != NULL);
}
-/* Finish the memory subsystem */
+/* Finalize the memory subsystem */
#include "xbt_modinter.h"
void MC_memory_exit(void)
{
If the open file corresponding to FD is from a previous use of
mmalloc and passes some basic sanity checks to ensure that it is
- compatible with the current mmalloc package, then it's data is
+ compatible with the current mmalloc package, then its data is
mapped in and is immediately accessible at the same addresses in
the current process as the process that created the file (ignoring
the BASEADDR parameter).
On success, returns a "malloc descriptor" which is used in subsequent
calls to other mmalloc package functions. It is explicitly "void *"
- ("char *" for systems that don't fully support void) so that users
- of the package don't have to worry about the actual implementation
- details.
+ so that users of the package don't have to worry about the actual
+ implementation details.
On failure returns NULL. */