-/* $Id$ */
+/* $Id$ */
/* gras/virtu.h - public interface to virtualization (cross-OS portability) */
-/* Authors: Martin Quinson */
-/* Copyright (C) 2003,2004 da GRAS posse. */
+/* Copyright (c) 2003, 2004 Martin Quinson. 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. */
+ * under the terms of the license (GNU LGPL) which comes with this package. */
#ifndef GRAS_VIRTU_H
#define GRAS_VIRTU_H
-#include <stddef.h> /* offsetof() */
-#include <sys/types.h> /* size_t */
-#include <stdarg.h>
-
-
-/*! C++ users need love */
-#ifndef BEGIN_DECL
-# ifdef __cplusplus
-# define BEGIN_DECL extern "C" {
-# else
-# define BEGIN_DECL
-# endif
-#endif
-
-/*! C++ users need love */
-#ifndef END_DECL
-# ifdef __cplusplus
-# define END_DECL }
-# else
-# define END_DECL
-# endif
-#endif
-/* End of cruft for C++ */
-
-BEGIN_DECL
-
-/**
- * gras_os_time:
- * @Returns: number of second since the Epoch.
- * (00:00:00 UTC, January 1, 1970 in Real Life, and begining of simulation in SG)
- *
- * Get the current time.
+#include "xbt/misc.h" /* SG_BEGIN_DECL */
+
+SG_BEGIN_DECL()
+
+/** @addtogroup GRAS_virtu
+ * @brief System call abstraction layer.
+ *
+ *
+ * @{
+ */
+
+/** @brief Get the current time
+ * @return number of second since the Epoch.
+ * (00:00:00 UTC, January 1, 1970 in Real Life, and begining of simulation in SG)
+ */
+XBT_PUBLIC(double) gras_os_time(void);
+
+/** @brief sleeps for the given amount of time.
+ * @param sec: number of seconds to sleep
+ */
+XBT_PUBLIC(void) gras_os_sleep(double sec);
+
+/** @brief get the fully-qualified name of the current host
+ *
+ * Returns the fully-qualified name of the host machine, or "localhost" if the name
+ * cannot be determined. Always returns the same value, so multiple calls
+ * cause no problems.
*/
-double gras_os_time(void);
-
-/**
- * gras_os_sleep:
- * @Param1: number of seconds to sleep
- * @Param2: number of microseconds to sleep
- *
- * sleeps for the given amount of time.
+XBT_PUBLIC(const char *)
+gras_os_myname(void);
+
+/** @brief returns the number on which this process is listening for incoming messages */
+XBT_PUBLIC(int) gras_os_myport(void);
+
+/** @brief get process identification
+ *
+ * Returns the process ID of the current process. (This is often used
+ by routines that generate unique temporary file names.)
*/
-void gras_os_sleep(unsigned long sec, unsigned long usec);
+XBT_PUBLIC(long int) gras_os_getpid(void);
-END_DECL
+/** @} */
+SG_END_DECL()
#endif /* GRAS_VIRTU_H */