Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix conflict - Adrien
authoralebre <adrien.lebre@inria.fr>
Thu, 31 Jan 2013 20:57:05 +0000 (21:57 +0100)
committeralebre <adrien.lebre@inria.fr>
Thu, 31 Jan 2013 20:57:05 +0000 (21:57 +0100)
1  2 
src/surf/vm_workstation.c

@@@ -13,7 -13,7 +13,7 @@@
  
  typedef struct workstation_VM2013 {
    s_surf_resource_t generic_resource;   /* Must remain first to add this to a trace */
 -  surf_resource_t physical_workstation;  // Pointer to the host OS
 +  surf_resource_t ind_physical_workstation;  // Pointer to the host OS
    e_msg_vm_state_t current_state;          // See include/msg/datatypes.h
  } s_workstation_VM2013_t, *workstation_VM2013_t;
  
@@@ -22,42 -22,43 +22,44 @@@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_vm
  
  surf_model_t surf_vm_workstation_model = NULL;
  
 -static void vm_ws_create (const char *name, void *phys_workstation)
 +static void vm_ws_create (const char *name, void *ind_phys_workstation)
  {
    workstation_VM2013_t vm_ws = xbt_new0(s_workstation_VM2013_t, 1);
  // TODO Complete the surf vm workstation model
    vm_ws->generic_resource.model = surf_vm_workstation_model;
    vm_ws->generic_resource.name = xbt_strdup(name);
 -  vm_ws->physical_workstation = phys_workstation;
 + // ind means ''indirect'' that this is a reference on the whole dict_elm structure (i.e not on the surf_resource_private infos)
 +  vm_ws->ind_physical_workstation = ind_phys_workstation;
    vm_ws->current_state=msg_vm_state_created,
    xbt_lib_set(host_lib, name, SURF_WKS_LEVEL, vm_ws);
  }
  /*
   * A physical host does not disapper in the current SimGrid code, but a VM may
   * disapper during a simulation.
   */
- static void vm_ws_destroy(const char *name)
- {
-       workstation_VM2013_t workstation = xbt_lib_get_or_null(host_lib, name, SURF_WKS_LEVEL);
-       xbt_assert(workstation);
-       xbt_assert(workstation->generic_resource.model == surf_vm_workstation_model);
-       xbt_free(workstation->generic_resource.name);
+ static void vm_ws_destroy(smx_host_t host)
+ { 
+       workstation_VM2013_t vm_ws = surf_workstation_resource_priv(host);
+       xbt_assert(vm_ws);
+       xbt_assert(vm_ws->generic_resource.model == surf_vm_workstation_model);
  
+       const char *name = vm_ws->generic_resource.name;
        /* not defined yet, but we should have  */
        /* this will call surf_resource_free() */
        xbt_lib_unset(host_lib, name, SURF_WKS_LEVEL);
  
-       xbt_free(workstation);
+       xbt_free(vm_ws->generic_resource.name);
+       xbt_free(vm_ws);
  }
  
 -static int vm_ws_get_state(void *vm_ws){
 -      return ((workstation_VM2013_t)vm_ws)->current_state;
 +static int vm_ws_get_state(void *ind_vm_ws){
 +      return ((workstation_VM2013_t) surf_workstation_resource_priv(ind_vm_ws))->current_state;
  }
  
 -static void vm_ws_set_state(void *vm_ws, int state){
 -       ((workstation_VM2013_t)vm_ws)->current_state=state;
 +static void vm_ws_set_state(void *ind_vm_ws, int state){
 +       ((workstation_VM2013_t) surf_workstation_resource_priv(ind_vm_ws))->current_state=state;
  }
  static void surf_vm_workstation_model_init_internal(void)
  {