Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
forgot to build MC
[simgrid.git] / include / smpi / smpi_helpers_internal.h
1 /* Copyright (c) 2018-2022. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #ifndef SMPI_HELPERS_INTERNAL_H
7 #define SMPI_HELPERS_INTERNAL_H
8
9 #include <getopt.h>
10 #include <stdio.h>  /* for getopt() on OpenIndiana, don't remove */
11 #include <stdlib.h> /* for getopt() on OpenIndiana, don't remove */
12 #include <unistd.h>
13
14 #include <sys/time.h>
15 #if _POSIX_TIMERS
16 #include <time.h>
17 #endif
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 int smpi_usleep(useconds_t usecs);
24 #if _POSIX_TIMERS > 0
25 int smpi_nanosleep(const struct timespec* tp, struct timespec* t);
26 int smpi_clock_gettime(clockid_t clk_id, struct timespec* tp);
27 #endif
28 unsigned int smpi_sleep(unsigned int secs);
29 int smpi_gettimeofday(struct timeval* tv, struct timezone* tz);
30
31 int smpi_getopt_long_only(int argc, char* const* argv, const char* options, const struct option* long_options,
32                           int* opt_index);
33 int smpi_getopt_long(int argc, char* const* argv, const char* options, const struct option* long_options,
34                      int* opt_index);
35 int smpi_getopt(int argc, char* const* argv, const char* options);
36
37 void* smpi_shared_malloc_intercept(size_t size, const char* file, int line);
38 void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line);
39 void* smpi_shared_realloc_intercept(void* data, size_t size, const char* file, int line);
40 void smpi_shared_free(void* data);
41 #ifdef __cplusplus
42 [[noreturn]] // c++11
43 #else
44 _Noreturn // c11
45 #endif
46 void smpi_exit(int status);
47 #ifdef __cplusplus
48 } // extern "C"
49 #endif
50
51 #ifdef __cplusplus
52 namespace std {
53 extern "C" void* smpi_shared_malloc_intercept(size_t size, const char* file, int line);
54 extern "C" void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line);
55 extern "C" void* smpi_shared_realloc_intercept(void* data, size_t size, const char* file, int line);
56 extern "C" void smpi_shared_free(void* ptr);
57
58 extern "C" [[noreturn]] void smpi_exit(int status);
59 } // namespace std
60 #endif
61 #endif