X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9104957deccc59e0e804215d5db498fabfd40d29..9afa0d0db01da2ae64e48fb594cc87c186dde192:/include/smpi/smpi_helpers_internal.h diff --git a/include/smpi/smpi_helpers_internal.h b/include/smpi/smpi_helpers_internal.h index c24e421e5e..4e40b053fc 100644 --- a/include/smpi/smpi_helpers_internal.h +++ b/include/smpi/smpi_helpers_internal.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2018-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2018-2023. 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. */ @@ -12,10 +12,17 @@ #include #include +#include #if _POSIX_TIMERS #include #endif +#if !defined(SMPI_NO_OVERRIDE_MALLOC) && !defined(__GLIBC__) +/* For musl libc, must be included before #defining calloc(). Testing if !defined(__GLIBC__) is a bit crude + * but I don't know a better way. */ +#include +#endif + #ifdef __cplusplus extern "C" { #endif @@ -36,8 +43,28 @@ int smpi_getopt(int argc, char* const* argv, const char* options); void* smpi_shared_malloc_intercept(size_t size, const char* file, int line); void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line); +void* smpi_shared_realloc_intercept(void* data, size_t size, const char* file, int line); void smpi_shared_free(void* data); + +pid_t smpi_getpid(); +#ifdef __cplusplus +[[noreturn]] // c++11 +#else +_Noreturn // c11 +#endif +void smpi_exit(int status); #ifdef __cplusplus } // extern "C" #endif + +#ifdef __cplusplus +namespace std { +extern "C" void* smpi_shared_malloc_intercept(size_t size, const char* file, int line); +extern "C" void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line); +extern "C" void* smpi_shared_realloc_intercept(void* data, size_t size, const char* file, int line); +extern "C" void smpi_shared_free(void* ptr); + +extern "C" [[noreturn]] void smpi_exit(int status); +} // namespace std +#endif #endif