-/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2004-2013. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
surf_action_t(*write) (void *storage, size_t size, surf_file_t fd);
surf_action_t(*stat) (void *storage, surf_file_t fd);
surf_action_t(*ls) (void *storage, const char *path);
+ xbt_dict_t(*get_properties) (const void *storage);
+ xbt_dict_t(*get_content) (void *storage);
} s_surf_model_extension_storage_t;
/** \ingroup SURF_models
int(*unlink) (void *workstation, surf_file_t fd);
surf_action_t(*ls) (void *workstation, const char* mount, const char *path);
size_t (*get_size) (void *workstation, surf_file_t fd);
+ xbt_dynar_t (*get_info) (void *workstation, surf_file_t fd);
int (*link_shared) (const void *link);
- xbt_dict_t(*get_properties) (const void *resource);
+ xbt_dict_t(*get_properties) (const void *resource);
void (*add_traces) (void);
- size_t (*get_free_size) (void *workstation, surf_storage_t storage);
- xbt_dynar_t (*get_storage_list) (void *workstation);
+ size_t (*get_free_size) (void *workstation,const char* name);
+ size_t (*get_used_size) (void *workstation,const char* name);
+ xbt_dict_t (*get_storage_list) (void *workstation);
} s_surf_model_extension_workstation_t;
static inline void *surf_workstation_resource_priv(const void *host){
return xbt_lib_get_level((void *)host, SURF_WKS_LEVEL);
}
-static inline void *surf_storage_resource_priv(const void *host){
- return xbt_lib_get_level((void *)host, SURF_STORAGE_LEVEL);
+static inline void *surf_storage_resource_priv(const void *storage){
+ return xbt_lib_get_level((void *)storage, SURF_STORAGE_LEVEL);
}
static inline void *surf_cpu_resource_by_name(const char *name) {
surf_model_t model;
char *name;
xbt_dict_t properties;
+ void_f_pvoid_t free_f;
} s_surf_resource_t, *surf_resource_t;
/**
*/
XBT_PUBLIC_DATA(s_surf_model_description_t) surf_storage_model_description[];
+XBT_PUBLIC_DATA(surf_model_t) surf_storage_model;
+
/** \ingroup SURF_models
* \brief The workstation model
*
*/
XBT_PUBLIC_DATA(xbt_dynar_t) model_list;
+/** \ingroup SURF_simulation
+ * \brief List of hosts that have juste restarted and whose autorestart process should be restarted.
+ */
+XBT_PUBLIC_DATA(xbt_dynar_t) host_that_restart;
+
+/** \ingroup SURF_simulation
+ * \brief List of hosts for which one want to be notified if they ever restart.
+ */
+XBT_PUBLIC(xbt_dict_t) watched_hosts_lib;
+
/*******************************************/
/*** SURF Platform *************************/
/*******************************************/
int surf_get_nthreads(void);
void surf_set_nthreads(int nthreads);
-void surf_watched_hosts(void);
-
/*
* Returns the initial path. On Windows the initial path is
* the current directory for the current process in the other