////////////////// END of AQuoSA //////////////////////
+
+/////////////////////////////////// PARTIKLE ///////////////////////////////////////////
+#if defined(PARTIKLE)
+
+#include <pthread.h>
+#include <signal.h>
+#include <time.h>
+#include <sched.h>
+#include <stdlib.h>
+
+typedef struct {
+ posix_appsched_actions_t actions;
+ struct timespec * timeout_ptr;
+ struct timespec timeout;
+ bool rejected;
+ bool suspended;
+ bool activated;
+} fosa_ads_actions_internal_t;
+
+typedef pthread_t FOSA_THREAD_ID_T_OPAQUE;
+typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
+typedef int FOSA_SIGNAL_T_OPAQUE;
+typedef fosa_ads_actions_internal_t FOSA_ADS_ACTIONS_T_OPAQUE;
+typedef clockid_t FOSA_CLOCK_ID_T_OPAQUE;
+typedef timer_t FOSA_TIMER_ID_T_OPAQUE;
+typedef pthread_cond_t FOSA_COND_T_OPAQUE;
+typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
+typedef void * FOSA_LONG_JUMP_CONTEXT_T_OPAQUE;
+
+
+enum _fosa_clocks_e {
+ FOSA_SYSTEM_CLOCK_OPAQUE = CLOCK_MONOTONIC
+};
+
+enum _fosa_signal_limits_e {
+ FOSA_SIGNAL_MIN = SIGRTMIN,
+ FOSA_SIGNAL_MAX = SIGRTMAX,
+};
+
+enum _fosa_errors_e {
+ FOSA_EINVAL = EINVAL,
+ FOSA_EAGAIN = EAGAIN,
+ FOSA_EREJECT = EREJECT,
+ FOSA_EMASKED = EMASKED,
+ FOSA_EPOLICY = EPOLICY,
+ FOSA_ETIMEDOUT = ETIMEDOUT,
+ FOSA_ENOMEM = ENOMEM,
+};
+
+#endif
+/////////////////////////////////// PARTIKLE END //////////////////////////////////////
+
+
+
////////////////////////// VIRTUAL TIME //////////////////////////////////////
#ifdef VIRTUAL_TIME