// Visual Tools S.A. SPAIN
// Rapita Systems Ltd UK
// Evidence ITALY
-//
+//
// See http://www.frescor.org for a link to partners' websites
//
// FRESCOR project (FP6/2005/IST/5-034026) is funded
//
//
// based on previous work (FSF) done in the FIRST project
-//
+//
// Copyright (C) 2005 Mälardalen University, SWEDEN
// Scuola Superiore S.Anna, ITALY
// Universidad de Cantabria, SPAIN
// **//// /**///** ////////** /**//////**
// ** /** //** /** /** /**
// ** /** //** ******** /** /**
-// // // // //////// // //
+// // // // //////// // //
//
// FRSH(FRescor ScHeduler), pronounced "fresh"
//==============================================
**/
#define FRSH_ADMISSION_TEST_IS_ENABLED true
+/**
+ * This symbol specifies whether the service thread will try to
+ * assign automatically the priorities of each vres
+ **/
+#define FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE true
+
+#define FRSH_DISTRIBUTED_MODULE_SUPPORTED false
/**
* @defgroup internal Array size for memory optimization
**/
/** Maximum number of accepted contracts (vres) **/
-#define FRSH_MAX_N_VRES 125
+#define FRSH_MAX_N_VRES 125
/** Maximum number of threads that may be scheduled by the framework **/
/** Maximum number of shared objects **/
#define FRSH_MAX_N_SHARED_OBJECTS 100
+/** Maximum number of send and receive endpoints in a single node **/
+#define FRSH_MAX_N_ENDPOINTS 10
+
/*@}*/
/**
* operates under the rules of the FIRST scheduling framework.
*
* In this implementation there are two special threads:
- * - The application scheduler thread, that
+ * - The application scheduler thread, that
* implements the scheduler
*
- * - The service thread, that is in charge of
- * negotiating and renegotiating contracts
+ * - The service thread, that is in charge of
+ * negotiating and renegotiating contracts
* concurrently with the application
*
* The following symbols are necessary to adapt the application to the
* thread, and it should be at least 1 level below the maximum of the
* system
**/
-#define FRSH_SCHEDULER_PRIORITY 29 //104
+#define FRSH_SCHEDULER_PRIORITY (fosa_get_priority_max() - FOSA_ADS_SCHEDULER_PRIO_DIFF)
/**
* Real-time signal number reserved for the application scheduler to
* manage its timers.
**/
-#define FRSH_SCHEDULER_SIGNAL SIGRTMIN
+#define FRSH_SCHEDULER_SIGNAL FRSH_SIGNAL_MIN
/**
* it should be defined as one level less than the
* FRSH_SCHEDULER_PRIORITY
**/
-#define FRSH_HIGHEST_THREAD_PRIORITY FRSH_SCHEDULER_PRIORITY-1
+#define FRSH_HIGHEST_THREAD_PRIORITY (FRSH_SCHEDULER_PRIORITY-1)
/**
* The lowest priority that can be assigned to an application thread,
* it should be at least 1 level above the minimum of the system
**/
-#define FRSH_LOWEST_THREAD_PRIORITY 3
+#define FRSH_LOWEST_THREAD_PRIORITY ( fosa_get_priority_min() + 4)
/**
* Each call to the functions that negotiate or renegotiate a contract
* following symbol represents the maximum number of requests that can
* be simultaneously queued.
**/
-#define FRSH_MAX_N_SERVICE_JOBS FRSH_MAX_N_VRES * 2
+#define FRSH_MAX_N_SERVICE_JOBS (FRSH_MAX_N_VRES * 2)
/**
**/
/** Initial period of the service thread (timespec) **/
-#define FRSH_SERVICE_THREAD_PERIOD {0,10000000} // 0.01 seg
- // {0,100000000} //0.1 seg
- // {0,10000000} //3.1 0.01
+#define FRSH_SERVICE_THREAD_PERIOD {5,0}
/** Initial budget of the service thread (timespec) **/
-#define FRSH_SERVICE_THREAD_BUDGET {0,1000000} // 0.001 seg
- // {0,10000000} //0.01 seg
- // {0,1000000} //3.1 0.001
-
+#define FRSH_SERVICE_THREAD_BUDGET {0,1000000}
/**
* Initial priority of the service thread, it has to be lower than the
* expected response times for reconfiguration or tunning of the
* system.
**/
-#define FRSH_SERVICE_THREAD_PRIORITY FRSH_LOWEST_THREAD_PRIORITY+1 //3 3 //3 1
+#define FRSH_SERVICE_THREAD_PRIORITY (FRSH_LOWEST_THREAD_PRIORITY+1) //3 3 //3 1
/*@}*/
* Maximum number of events that can be pending to be signaled in a
* synchronization object
**/
-#define FRSH_MAX_N_EVENTS_IN_SYNCH_OBJECT 100
+#define FRSH_MAX_N_EVENTS_IN_SYNCH_OBJECT 100
/**
* Maximum number of pending replenishments in each sporadic server
#define FRSH_MAX_N_TARGET_WINDOWS 100
/**
- * The cpu time given by the round robin scheduler
+ * The cpu time given by the round robin scheduler
* to the threads in the background (timespec)
**/
#define FRSH_RR_SLICE_CPU_TIME {0,100000000} //3 0.1 sec
/**
* This symbol specifies the maximum number of chars that are stored
* of a given shared_object_id, so this is the maximum length used
- * in comparissons
+ * in comparisons
**/
-#define FRSH_MAX_SIZE_SHARED_OBJ_ID 65
+#define FRSH_MAX_SIZE_SHARED_OBJ_LABEL 15
/** Maximum number of networks accesible from a node **/
**/
#define FRSH_MAX_N_CONTRACT_VALUES 10
-/*@}*/
+/**
+ * Default overheads of shared object protection mechanisms
+ * These values should be calibrated on each specific execution platform
+ */
+
+// fixed overhead for saving the environment and subsequently
+// aborting a critical section; units in nanoseconds
+
+#define FRSH_SO_FIXED_ABORT_OVHD 0
-/*@}*/
+
+// fixed overhead for copying a memory area, in nanoseconds
+
+#define FRSH_SO_FIXED_AREA_OVHD 0
+
+
+// variable overhead for copying a memory area; units in nanoseconds per kbyte
+
+#define FRSH_SO_NANOS_PER_KB 0
+
+
+/*@}*/
+
+/*@}*/
#endif /* _FRSH_CONFIGURATION_PARAMETERS_H_ */