X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1e32d1f72606b96bb1abd9af359f1590528ec843..4a201b7ceece70d2bc461ac48c8b746a36d07243:/include/gras/virtu.h diff --git a/include/gras/virtu.h b/include/gras/virtu.h index 8da06b2e1b..42ca337331 100644 --- a/include/gras/virtu.h +++ b/include/gras/virtu.h @@ -1,61 +1,77 @@ -/* $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 /* offsetof() */ -#include /* size_t */ -#include - - -/*! 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 */ +#include "xbt/time.h" +#include "xbt/dict.h" + +SG_BEGIN_DECL() + +/* Initialization of the simulation world. Do not call them in RL. + Indeed, do not call them at all. Let gras_stub_generator do it for you. */ + void gras_global_init(int *argc, char **argv); + void gras_create_environment(const char *file); + void gras_function_register(const char *name, xbt_main_func_t code); + void gras_launch_application(const char *file); + void gras_clean(void); + void gras_main(void); + + +/** @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) + */ +#define gras_os_time() xbt_time() +/** @brief sleeps for the given amount of time. + * @param sec: number of seconds to sleep + */ +#define gras_os_sleep(sec) xbt_sleep(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. + */ +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 the uri of the current process + * + * Returns the concatenation of gras_os_myname():gras_os_myport(). Please do not free the result. */ -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_hostport(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(int) gras_os_getpid(void); -END_DECL -#endif /* GRAS_VIRTU_H */ +/* Properties related */ +XBT_PUBLIC(xbt_dict_t) gras_process_properties(void); +XBT_PUBLIC(const char *) gras_process_property_value(const char *name); +XBT_PUBLIC(xbt_dict_t) gras_os_host_properties(void); +XBT_PUBLIC(const char *) gras_os_host_property_value(const char *name); + +/** @} */ +SG_END_DECL() +#endif /* GRAS_VIRTU_H */