X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/99c64fec9d54f28cfa4e27923d886020c1db26d3..872cf95ab5a2b08aa1f2c6ebba29b9f86b0ba54e:/src/include/xbt/mmalloc.h diff --git a/src/include/xbt/mmalloc.h b/src/include/xbt/mmalloc.h index 60e57c4963..bdff2c11a2 100644 --- a/src/include/xbt/mmalloc.h +++ b/src/include/xbt/mmalloc.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2022. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -7,23 +7,28 @@ This file was then part of the GNU C Library. */ #ifndef SIMGRID_MMALLOC_H -#define SIMGRID_MMALLOC_H 1 +#define SIMGRID_MMALLOC_H #include "src/internal_config.h" +/** Environment variable name used to pass the communication socket. + * + * It is set by `simgrid-mc` to enable MC support in the children processes. + * + * It is placed in this file so that it's visible from mmalloc and MC without sharing anythin of xbt in mmalloc + */ +#define MC_ENV_SOCKET_FD "SIMGRID_MC_SOCKET_FD" + #include /* for NULL */ #include /* for size_t */ -#include "xbt/dict.h" -#include "xbt/dynar.h" - -SG_BEGIN_DECL() +SG_BEGIN_DECL /* Datatype representing a separate heap. The whole point of the mmalloc module is to allow several such heaps in the * process. It thus works by redefining all the classical memory management functions (malloc and friends) with an * extra first argument: the heap in which the memory is to be taken. * - * The heap structure itself is an opaque object that shouldnt be messed with. + * The heap structure itself is an opaque object that shouldn't be messed with. */ typedef struct mdesc s_xbt_mheap_t; typedef s_xbt_mheap_t* xbt_mheap_t; @@ -41,20 +46,19 @@ XBT_PUBLIC void* mrealloc(xbt_mheap_t md, void* ptr, size_t size); /* Free a block allocated by `mmalloc', `mrealloc' or `mcalloc'. */ XBT_PUBLIC void mfree(xbt_mheap_t md, void* ptr); -XBT_PUBLIC xbt_mheap_t xbt_mheap_new(int fd, void* baseaddr); - #define XBT_MHEAP_OPTION_MEMSET 1 -XBT_PUBLIC xbt_mheap_t xbt_mheap_new_options(int fd, void* baseaddr, int options); - -XBT_PUBLIC void xbt_mheap_destroy_no_free(xbt_mheap_t md); +XBT_PUBLIC xbt_mheap_t xbt_mheap_new(void* baseaddr, int options); XBT_PUBLIC void* xbt_mheap_destroy(xbt_mheap_t md); /* To get the heap used when using the legacy version malloc/free/realloc and such */ xbt_mheap_t mmalloc_get_current_heap(void); +/* Returns true if we are using the internal mmalloc, and false if we are using the libc's malloc */ +XBT_PUBLIC int malloc_use_mmalloc(void); + #endif -SG_END_DECL() +SG_END_DECL #endif /* SIMGRID_MMALLOC_H */