-typedef struct mc_state{
- xbt_setset_set_t transitions;
- xbt_setset_set_t enabled_transitions;
- xbt_setset_set_t interleave;
- xbt_setset_set_t done;
- mc_transition_t executed_transition;
+/* Possible exploration status of a process in a state */
+typedef enum {
+ MC_NOT_INTERLEAVE=0, /* Do not interleave (do not execute) */
+ MC_INTERLEAVE, /* Interleave the process (one or more request) */
+ MC_DONE /* Already interleaved */
+} e_mc_process_state_t;
+
+/* On every state, each process has an entry of the following type */
+typedef struct mc_procstate{
+ e_mc_process_state_t state; /* Exploration control information */
+ unsigned int interleave_count; /* Number of times that the process was
+ interleaved */
+} s_mc_procstate_t, *mc_procstate_t;
+
+/* An exploration state is composed of: */
+typedef struct mc_state {
+ unsigned long max_pid; /* Maximum pid at state's creation time */
+ mc_procstate_t proc_status; /* State's exploration status by process */
+ s_smx_action_t internal_comm; /* To be referenced by the internal_req */
+ s_smx_req_t internal_req; /* Internal translation of request */
+ s_smx_req_t executed_req; /* The executed request of the state */
+ int req_num; /* The request number (in the case of a
+ multi-request like waitany ) */