+/**
+ * @file modeltypes.h
+ * @brief Common typedefs for the model-checker
+ */
+
#ifndef __MODELTYPES_H__
#define __MODELTYPES_H__
+/**
+ * @brief Represents a unique ID for a Thread
+ *
+ * The space of unique IDs may need to become a non-compact
+ * or non-zero-indexed set of integers (or even some other
+ * type). So this typedef is used to help identify which is
+ * which, where a simple 'int' is meant to be a compact,
+ * zero-indexed set and a 'thread_id_t' may be another type
+ * entirely.
+ *
+ * @see id_to_int
+ * @see int_to_id
+ */
typedef int thread_id_t;
#define THREAD_ID_T_NONE -1
return t;
}
+/**
+ * @brief Map a zero-based integer index to a unique thread ID
+ *
+ * This is the inverse of id_to_int
+ */
static inline thread_id_t int_to_id(int i)
{
return i;
}
+/**
+ * @brief Map a unique thread ID to a zero-based integer index
+ *
+ * This is the inverse of int_to_id
+ */
static inline int id_to_int(thread_id_t id)
{
return id;