-typedef enum {
- REQ_HOST_GET_BY_NAME,
- REQ_HOST_GET_NAME,
- REQ_HOST_GET_PROPERTIES,
- REQ_HOST_GET_SPEED,
- REQ_HOST_GET_AVAILABLE_SPEED,
- REQ_HOST_GET_STATE,
- REQ_HOST_GET_DATA,
- REQ_HOST_SET_DATA,
- REQ_HOST_EXECUTE,
- REQ_HOST_PARALLEL_EXECUTE,
- REQ_HOST_EXECUTION_DESTROY,
- REQ_HOST_EXECUTION_CANCEL,
- REQ_HOST_EXECUTION_GET_REMAINS,
- REQ_HOST_EXECUTION_GET_STATE,
- REQ_HOST_EXECUTION_SET_PRIORITY,
- REQ_HOST_EXECUTION_WAIT,
- REQ_PROCESS_CREATE,
- REQ_PROCESS_KILL,
- REQ_PROCESS_CHANGE_HOST,
- REQ_PROCESS_SUSPEND,
- REQ_PROCESS_RESUME,
- REQ_PROCESS_COUNT,
- REQ_PROCESS_GET_DATA,
- REQ_PROCESS_SET_DATA,
- REQ_PROCESS_GET_HOST,
- REQ_PROCESS_GET_NAME,
- REQ_PROCESS_IS_SUSPENDED,
- REQ_PROCESS_GET_PROPERTIES,
- REQ_PROCESS_SLEEP,
- REQ_RDV_CREATE,
- REQ_RDV_DESTROY,
- REQ_RDV_GEY_BY_NAME,
- REQ_RDV_COMM_COUNT_BY_HOST,
- REQ_RDV_GET_HEAD,
- REQ_COMM_ISEND,
- REQ_COMM_IRECV,
- REQ_COMM_DESTROY,
- REQ_COMM_CANCEL,
- REQ_COMM_WAITANY,
- REQ_COMM_WAIT,
- REQ_COMM_TEST,
- REQ_COMM_GET_REMAINS,
- REQ_COMM_GET_STATE,
- REQ_COMM_GET_DATA,
- REQ_COMM_GET_SRC_BUFF,
- REQ_COMM_GET_DST_BUFF,
- REQ_COMM_GET_SRC_BUFF_SIZE,
- REQ_COMM_GET_DST_BUFF_SIZE,
- REQ_COMM_GET_SRC_PROC,
- REQ_COMM_GET_DST_PROC,
+
+/* we want to build the e_smx_t enumeration and the table of the corresponding
+ * strings automatically, using macros */
+
+#define SIMIX_REQ_LIST1 \
+SIMIX_REQ_ENUM_ELEMENT(REQ_NO_REQ),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_GET_BY_NAME),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_GET_NAME),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_GET_PROPERTIES),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_GET_SPEED),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_GET_AVAILABLE_SPEED),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_GET_STATE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_GET_DATA),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_SET_DATA),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_PARALLEL_EXECUTE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTION_DESTROY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTION_CANCEL),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTION_GET_REMAINS),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTION_GET_STATE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTION_SET_PRIORITY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTION_WAIT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_CREATE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_KILL),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_KILLALL),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_CLEANUP),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_CHANGE_HOST),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_SUSPEND),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_RESUME),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_COUNT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_GET_DATA),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_SET_DATA),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_GET_HOST),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_GET_NAME),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_IS_SUSPENDED),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_GET_PROPERTIES),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_SLEEP),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_CREATE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_DESTROY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_GEY_BY_NAME),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_COMM_COUNT_BY_HOST),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_GET_HEAD),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_SEND),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_ISEND),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_RECV),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_IRECV),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_DESTROY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_CANCEL),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_WAITANY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_WAIT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_TEST),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_TESTANY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_REMAINS),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_STATE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_SRC_DATA),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_DST_DATA),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_SRC_PROC),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_DST_PROC),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_MUTEX_INIT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_MUTEX_DESTROY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_MUTEX_LOCK),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_MUTEX_TRYLOCK),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_MUTEX_UNLOCK),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COND_INIT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COND_DESTROY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COND_SIGNAL),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COND_WAIT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COND_WAIT_TIMEOUT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_COND_BROADCAST),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_INIT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_DESTROY),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_RELEASE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_WOULD_BLOCK),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_ACQUIRE),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_ACQUIRE_TIMEOUT),\
+SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_GET_CAPACITY)
+
+/* REQ_COMM_IS_LATENCY_BOUNDED and REQ_SET_CATEGORY make things complicated
+ * because they are not always present */