X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e2c10f61cfd4d58faa73f006aa74def2c73c8860..f3ba288e92216e2f6d64cabfbee5fd6b3496c99f:/include/xbt/sysdep.h diff --git a/include/xbt/sysdep.h b/include/xbt/sysdep.h index 752ca7ea15..41708e07c6 100644 --- a/include/xbt/sysdep.h +++ b/include/xbt/sysdep.h @@ -22,16 +22,30 @@ SG_BEGIN_DECL() /* FIXME: better place? */ -int asprintf (char **ptr, const char *fmt, /*args*/ ...) _XBT_GNUC_PRINTF(2,3); -int vasprintf (char **ptr, const char *fmt, va_list ap); -XBT_PUBLIC char *bprintf (const char*fmt, ...) _XBT_GNUC_PRINTF(1,2); - -/* They live in asserts.h, but need to be declared before this module. - double declaration to cut dependency cycle */ +extern int asprintf (char **ptr, const char *fmt, /*args*/ ...) _XBT_GNUC_PRINTF(2,3); +extern int vasprintf (char **ptr, const char *fmt, va_list ap); +XBT_PUBLIC(char*) bprintf (const char*fmt, ...) _XBT_GNUC_PRINTF(1,2); + -XBT_PUBLIC void xbt_abort(void) _XBT_GNUC_NORETURN; -XBT_PUBLIC void xbt_die(const char *msg) _XBT_GNUC_NORETURN; +#if ((defined (_MSC_VER) || defined(__BORLANDC__)) && !defined(SSIZE_T_DEFINED)) +typedef int ssize_t; +#define SSIZE_T_DEFINED +#endif +/* FIXME: ssize_t must be 'long' on windows, no idea whether we should define this explicitly */ +XBT_PUBLIC(ssize_t) getline(char **lineptr, size_t *n, FILE *stream); + + +/* They live in asserts.h, but need to be declared before this module. + double declaration to cut dependency cycle */ +/** + * @addtogroup XBT_error + * + * @{ + */ +XBT_PUBLIC(void) xbt_abort(void) _XBT_GNUC_NORETURN; +XBT_PUBLIC(void) xbt_die(const char *msg) _XBT_GNUC_NORETURN; +/** @} */ /** @addtogroup XBT_syscall * @brief Malloc and associated functions, killing the program on error (with \ref XBT_ex) @@ -98,7 +112,11 @@ static XBT_INLINE void *xbt_realloc(void*p,int s){ @hideinitializer */ #define xbt_free free /*nothing specific to do here. A poor valgrind replacement?*/ /*#define xbt_free_fct free * replacement with the guareenty of being a function FIXME:KILLME*/ - + +/** @brief like free + @hideinitializer */ +XBT_PUBLIC(void) xbt_free_f(void* p); + /** @brief like calloc, but xbt_die() on error and don't memset to 0 @hideinitializer */ #define xbt_new(type, count) ((type*)xbt_malloc (sizeof (type) * (count)))