Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Break #include-dependency cycle
authorGabriel Corona <gabriel.corona@loria.fr>
Tue, 9 Jun 2015 22:49:42 +0000 (00:49 +0200)
committerGabriel Corona <gabriel.corona@loria.fr>
Tue, 9 Jun 2015 22:49:42 +0000 (00:49 +0200)
between simgrid_config.h and misc.h (and dynar.h)

include/simgrid_config.h.in
include/xbt/misc.h

index 49f6a3a..6a93f00 100644 (file)
@@ -6,13 +6,8 @@
 /* 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. */
 
-#include "xbt/misc.h"           /* XBT_PUBLIC */
-#include "xbt/dynar.h"          /* sg_commandline */
-
 #ifndef SIMGRID_PUBLIC_CONFIG_H
 #define SIMGRID_PUBLIC_CONFIG_H
-SG_BEGIN_DECL()
-
 
 /** Define the version numbers of the used header files. 
     sg_version() can be used to retrieve the version of the dynamic library.
@@ -33,13 +28,6 @@ SG_BEGIN_DECL()
                                              SIMGRID_VERSION_MINOR, \
                                              SIMGRID_VERSION_PATCH)
 
-/** Retrieves the version numbers of the used dynamic library (so, DLL or dynlib) , while
-    SIMGRID_VERSION_MAJOR and friends give the version numbers of the used header files */
-XBT_PUBLIC(void) sg_version(int *major,int *minor,int *patch);
-
-/** Contains all the parameters we got from the command line */
-XBT_PUBLIC_DATA(xbt_dynar_t) sg_cmdline;
-
 /* take care of DLL usage madness */
 
 #ifdef _XBT_DLL_EXPORT
@@ -79,45 +67,6 @@ XBT_PUBLIC_DATA(xbt_dynar_t) sg_cmdline;
 @simgrid_need_asprintf@
 @simgrid_need_vasprintf@
 
-#include <stdarg.h>
-
-/* snprintf related functions */
-/** @addtogroup XBT_str
-  * @{ */
-/** @brief print to allocated string (reimplemented when not provided by the system)
- *
- * The functions asprintf() and vasprintf() are analogues of
- * sprintf() and vsprintf(), except that they allocate a string large
- * enough to hold the output including the terminating null byte, and
- * return a pointer to it via the first parameter.  This pointer
- * should be passed to free(3) to release the allocated storage when
- * it is no longer needed.
- */
-#if defined(SIMGRID_NEED_ASPRINTF)||defined(DOXYGEN)
-XBT_PUBLIC(int) asprintf(char **ptr, const char *fmt,   /*args */
-                         ...) _XBT_GNUC_PRINTF(2, 3);
-#endif
-/** @brief print to allocated string (reimplemented when not provided by the system)
- *
- * See asprintf()
- */
-#if defined(SIMGRID_NEED_VASPRINTF)||defined(DOXYGEN)
-XBT_PUBLIC(int) vasprintf(char **ptr, const char *fmt, va_list ap);
-#endif
-/** @brief print to allocated string
- *
- * Works just like vasprintf(), but returns a pointer to the newly
- * created string, or aborts on error.
- */
-XBT_PUBLIC(char *) bvprintf(const char *fmt, va_list ap);
-/** @brief print to allocated string
- *
- * Works just like asprintf(), but returns a pointer to the newly
- * created string, or aborts on error.
- */
-XBT_PUBLIC(char *) bprintf(const char *fmt, ...) _XBT_GNUC_PRINTF(1, 2);
-/** @} */
-
 /* Whether mallocators were enabled in ccmake or not. */
 #define MALLOCATOR_COMPILED_IN @MALLOCATOR_IS_WANTED@
 
@@ -136,5 +85,4 @@ XBT_PUBLIC(char *) bprintf(const char *fmt, ...) _XBT_GNUC_PRINTF(1, 2);
 /* If Model-Checking support was requested */
 #cmakedefine HAVE_MC @HAVE_MC@
 
-SG_END_DECL()
 #endif /* SIMGRID_PUBLIC_CONFIG_H */
index d3d6f17..5a23b73 100644 (file)
@@ -9,6 +9,8 @@
 #ifndef XBT_MISC_H
 #define XBT_MISC_H
 
+#include <stdarg.h>
+
 #include "simgrid_config.h"
 
 /* Define _GNU_SOURCE for getline, isfinite, etc. */
@@ -248,7 +250,55 @@ XBT_PUBLIC_DATA(int) xbt_pagebits;
 
 XBT_PUBLIC(const char *) xbt_procname(void);
 
+/** Retrieves the version numbers of the used dynamic library (so, DLL or dynlib) , while
+    SIMGRID_VERSION_MAJOR and friends give the version numbers of the used header files */
+XBT_PUBLIC(void) sg_version(int *major,int *minor,int *patch);
+
+typedef struct xbt_dynar_s s_xbt_dynar_t, *xbt_dynar_t;
+
+/** Contains all the parameters we got from the command line */
+XBT_PUBLIC_DATA(xbt_dynar_t) sg_cmdline;
+
 #define XBT_BACKTRACE_SIZE 10   /* FIXME: better place? Do document */
 
+/* snprintf related functions */
+/** @addtogroup XBT_str
+  * @{ */
+/** @brief print to allocated string (reimplemented when not provided by the system)
+ *
+ * The functions asprintf() and vasprintf() are analogues of
+ * sprintf() and vsprintf(), except that they allocate a string large
+ * enough to hold the output including the terminating null byte, and
+ * return a pointer to it via the first parameter.  This pointer
+ * should be passed to free(3) to release the allocated storage when
+ * it is no longer needed.
+ */
+#if defined(SIMGRID_NEED_ASPRINTF)||defined(DOXYGEN)
+XBT_PUBLIC(int) asprintf(char **ptr, const char *fmt,   /*args */
+                         ...) _XBT_GNUC_PRINTF(2, 3);
+#endif
+/** @brief print to allocated string (reimplemented when not provided by the system)
+ *
+ * See asprintf()
+ */
+#if defined(SIMGRID_NEED_VASPRINTF)||defined(DOXYGEN)
+XBT_PUBLIC(int) vasprintf(char **ptr, const char *fmt, va_list ap);
+#endif
+
+/** @brief print to allocated string
+ *
+ * Works just like vasprintf(), but returns a pointer to the newly
+ * created string, or aborts on error.
+ */
+XBT_PUBLIC(char *) bvprintf(const char *fmt, va_list ap);
+/** @brief print to allocated string
+ *
+ * Works just like asprintf(), but returns a pointer to the newly
+ * created string, or aborts on error.
+ */
+XBT_PUBLIC(char *) bprintf(const char *fmt, ...) _XBT_GNUC_PRINTF(1, 2);
+/** @} */
+
 SG_END_DECL()
+
 #endif                          /* XBT_MISC_H */