1 /* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
7 #ifndef _SIMIX_SMURF_PRIVATE_H
8 #define _SIMIX_SMURF_PRIVATE_H
10 /********************************* Requests ***********************************/
12 #include "smx_req_enum.h"
15 typedef struct s_smx_req {
16 s_xbt_swag_hookup_t state_hookup;
35 } host_get_properties;
45 } host_get_available_speed;
65 double computation_amount;
72 smx_host_t *host_list;
73 double *computation_amount;
74 double *communication_amount;
78 } host_parallel_execute;
81 smx_action_t execution;
82 } host_execution_destroy;
85 smx_action_t execution;
86 } host_execution_cancel;
89 smx_action_t execution;
91 } host_execution_get_remains;
94 smx_action_t execution;
96 } host_execution_get_state;
99 smx_action_t execution;
101 } host_execution_set_priority;
104 smx_action_t execution;
105 } host_execution_wait;
109 xbt_main_func_t code;
111 const char *hostname;
114 xbt_dict_t properties;
115 smx_process_t result;
119 smx_process_t process;
123 smx_process_t process;
126 } process_change_host;
129 smx_process_t process;
133 smx_process_t process;
141 smx_process_t process;
146 smx_process_t process;
151 smx_process_t process;
156 smx_process_t process;
161 smx_process_t process;
163 } process_is_suspended;
166 smx_process_t process;
168 } process_get_properties;
172 e_smx_state_t result;
193 } rdv_comm_count_by_host;
205 size_t src_buff_size;
206 int (*match_fun)(void *, void *);
214 size_t *dst_buff_size;
215 int (*match_fun)(void *, void *);
255 e_smx_state_t result;
281 } comm_get_src_buff_size;
286 } comm_get_dst_buff_size;
290 smx_process_t result;
295 smx_process_t result;
298 #ifdef HAVE_LATENCY_BOUND_TRACKING
302 } comm_is_latency_bounded;
308 const char *category;
385 } sem_acquire_timeout;
392 } s_smx_req_t, *smx_req_t;
394 /******************************** General *************************************/
396 void SIMIX_request_init(void);
397 void SIMIX_request_destroy(void);
398 void SIMIX_request_push(void);
399 smx_req_t SIMIX_request_pop(void);
400 void SIMIX_request_answer(smx_req_t);
401 void SIMIX_request_pre(smx_req_t, int);
402 void SIMIX_request_post(smx_action_t);
403 XBT_INLINE smx_req_t SIMIX_req_mine(void);