// -----------------------------------------------------------------------
-// Copyright (C) 2005 Mälardalen University, SWEDEN
+// Copyright (C) 2006 - 2007 FRESCOR consortium partners:
+//
+// Universidad de Cantabria, SPAIN
+// University of York, UK
+// Scuola Superiore Sant'Anna, ITALY
+// Kaiserslautern University, GERMANY
+// Univ. Politécnica Valencia, SPAIN
+// Czech Technical University in Prague, CZECH REPUBLIC
+// ENEA SWEDEN
+// Thales Communication S.A. FRANCE
+// 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
+// in part by the European Union Sixth Framework Programme
+// The European Union is not liable of any use that may be
+// made of this code.
+//
+//
+// 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
// University of York, UK
//
-// FRSH API web pages: http://marte.unican.es/frsh/docs/
+// FSF API web pages: http://marte.unican.es/fsf/docs
// http://shark.sssup.it/contrib/first/docs/
//
// This file is part of FRSH API
// Public License.
// -----------------------------------------------------------------------
//frsh.h
-//===========================================================
-// FFFFFFIII RRRRR SSTTTTTTT
-// FF IIR RR SS
-// FF IR SS
-// FFFFFF RRRR SSSSST
-// FF FI RRR SS
-// FF II RRR SS
-// FF IIIIIR RS
+
+//==============================================
+// ******** ******* ******** ** **
+// **///// /**////** **////// /** /**
+// ** /** /** /** /** /**
+// ******* /******* /********* /**********
+// **//// /**///** ////////** /**//////**
+// ** /** //** /** /** /**
+// ** /** //** ******** /** /**
+// // // // //////// // //
//
-// FRSH(FIRST Scheduling Framework) available functionality
-//============================================================
+// FRSH(FRescor ScHeduler), pronounced "fresh"
+//==============================================
+#ifndef _FRSH_H_
+#define _FRSH_H_
+
+/**
+ * @file frsh.h
+ *
+ * Intended to be used by API clients to get the interface
+ * requirements.
+ *
+ * It is also used by the library files to enforce the interface
+ * headings.
+ *
+ * However it is NOT used by any of the FRSH include files to avoid
+ * having include deadlocks.
+ **/
#include "frsh_configuration_parameters.h"
-#include "frsh_opaque_types.h"
-#include "frsh_basic_types.h"
-#include "frsh_core.h"
-#include "frsh_implementation_specific.h"
+/* We include all the types because they are needed for the
+ frsh_contract_parameters_t */
+
+#include "frsh_core_types.h"
+#include "frsh_shared_objects_types.h"
+#include "frsh_spare_capacity_types.h"
+#include "frsh_hierarchical_types.h"
+#include "frsh_distributed_types.h"
+#include "frsh_implementation_specific_types.h"
+#include "frsh_core.h"
+#include "frsh_implementation_specific.h"
-// Configure theses modules by commenting out the appropiate lines
+// Configure these modules by commenting out the appropiate lines
#include "frsh_hierarchical.h" //
#include "frsh_shared_objects.h"
#include "frsh_dynamic_reclaiming.h" //
#include "frsh_spare_capacity.h"
#include "frsh_distributed.h" //
-#include "frsh_distributed_spare_capacity.h" //
+#include "frsh_feedback_control.h"
+#include "frsh_memory_management.h"
+#include "frsh_energy_management.h"
-#ifndef _FRSH_H_
-#define _FRSH_H_
#ifndef FRSH_HIERARCHICAL_MODULE_SUPPORTED
#define FRSH_HIERARCHICAL_MODULE_SUPPORTED 0
#define FRSH_SPARE_CAPACITY_MODULE_SUPPORTED 0
//Return warnings if spare_capacity module is not included:
-
+
#define frsh_set_contract_reclamation_parameters \
(contract, budget_max, period_min, granularity,\
utilization_set, quality, importance) \
( FRSH_WRN_MODULE_NOT SUPPORTED )
-
+
#define frsh_get_contract_reclamation_parameters \
(contract, budget_max, period_min, granularity,\
utilization_set, quality, importance) \
( FRSH_WRN_MODULE_NOT SUPPORTED )
-
+
#define frsh_request_change_quality_and_importance\
(server, new_importance, new_quality) \
( FRSH_WRN_MODULE_NOT SUPPORTED )
-
+
#define frsh_get_total_quality (server,total_quality)\
( FRSH_WRN_MODULE_NOT SUPPORTED )
#define FRSH_DISTRIBUTED_MODULE_SUPPORTED 0
#endif //FRSH_DISTRIBUTED_MODULE_SUPPORTED
-#ifndef FRSH_DISTRIBUTED_SPARE_CAPACITY_MODULE_SUPPORTED
- #define FRSH_DISTRIBUTED_SPARE_CAPACITY_MODULE_SUPPORTED 0
-
- //Return warnings if distributed_spare_capacity module is not included:
-
- #define frsh_set_contract_granted_capacity_flag(contract,granted_capacity_flag)\
- ( FRSH_WRN_MODULE_NOT SUPPORTED )
-
- #define frsh_get_contract_granted_capacity_flag(contract,granted_capacity_flag)\
- ( FRSH_WRN_MODULE_NOT SUPPORTED )
-
- #definr frsh_set_server_capacity(server,new_period,new_budget)\
- ( FRSH_WRN_MODULE_NOT SUPPORTED )
-
-#endif //FRSH_DISTRIBUTED_SPARE_CAPACITY_MODULE_SUPPORTED
#endif // _FRSH_H_