summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TAO/ChangeLog43
-rw-r--r--TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp18
-rw-r--r--TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h2
-rw-r--r--TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp8
-rw-r--r--TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp6
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp93
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp356
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp3
-rw-r--r--TAO/orbsvcs/orbsvcs/Makefile.RTSched2
-rw-r--r--TAO/orbsvcs/orbsvcs/RTSched.bor2
-rw-r--r--TAO/orbsvcs/orbsvcs/RTSched.dsp9
-rw-r--r--TAO/orbsvcs/orbsvcs/RTSched.mpc2
-rw-r--r--TAO/orbsvcs/orbsvcs/RtecBase.idl17
-rw-r--r--TAO/orbsvcs/orbsvcs/RtecScheduler.idl160
-rw-r--r--TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp232
-rw-r--r--TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h123
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp176
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h127
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp1120
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h380
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp539
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h175
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp2077
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h339
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp399
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Factory.h82
-rw-r--r--TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp9
-rw-r--r--TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h144
-rw-r--r--TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h144
-rw-r--r--TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h2030
-rw-r--r--TAO/orbsvcs/tests/Event/Basic/Schedule.cpp3
-rw-r--r--TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp55
-rw-r--r--TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp9
34 files changed, 6764 insertions, 2124 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index c3753e062fa..6d38590e47b 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,46 @@
+Sun Aug 24 13:09:50 2003 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * orbsvcs/orbsvcs/Makefile.RTSched:
+ * orbsvcs/orbsvcs/RTSched.bor:
+ * orbsvcs/orbsvcs/RTSched.dsp:
+ * orbsvcs/orbsvcs/RTSched.mpc:
+ * orbsvcs/orbsvcs/RtecBase.idl:
+ * orbsvcs/orbsvcs/RtecScheduler.idl:
+ * orbsvcs/orbsvcs/Runtime_Scheduler.cpp:
+ * orbsvcs/orbsvcs/Runtime_Scheduler.h:
+ * orbsvcs/orbsvcs/Scheduler_Factory.cpp:
+ * orbsvcs/orbsvcs/Scheduler_Factory.h:
+ * orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h:
+ * orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp:
+ * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp:
+ * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h:
+ * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h:
+ * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp:
+ * orbsvcs/orbsvcs/Sched/Config_Scheduler.h:
+ * orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp:
+ Integrated the scheduler from the Boeing WSOA program into the
+ main trunk. This scheduler has more interfaces and bug fixes
+ than the one which existed in the main trunk.
+
+ * orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp:
+ * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.{cpp,h}:
+ * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp:
+ Changes to integrate the scheduler with the event channel.
+
+ * orbsvcs/tests/EC_Multiple/EC_Multiple.{cpp,h}:
+ * orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h:
+ * orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h:
+ * orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h:
+ * orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp (main):
+ * orbsvcs/tests/Sched_Conf/Sched_Conf.cpp (main):
+ * orbsvcs/tests/Event/Basic/Schedule.cpp (execute_test):
+ * orbsvcs/examples/RtEC/Kokyu/Service.cpp:
+ * orbsvcs/Dump_Schedule/Dump_Schedule.cpp:
+ * examples/Simulator/Event_Supplier/DualEC_Sup.{cpp,h}:
+ Changes to compute_scheduling, dump_schedule method calls to
+ reflect changes made to interfaces as part of the WSOA scheduler.
+
+
Sun Aug 24 15:01:12 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl>
* tao/DynamicAny/DynArray_i.cpp:
diff --git a/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp b/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp
index 4f78f028217..ba503cd6270 100644
--- a/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp
+++ b/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp
@@ -704,6 +704,7 @@ DualEC_Supplier::compute_schedules (void)
RtecScheduler::RT_Info_Set_out infos_out_hi (this->infos_hi_);
+ RtecScheduler::Dependency_Set_out deps_out_hi (this->deps_hi_);
RtecScheduler::Config_Info_Set_out configs_out_hi (this->configs_hi_);
RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out_hi (this->anomalies_hi_);
sched_hi_->compute_scheduling
@@ -711,10 +712,12 @@ DualEC_Supplier::compute_schedules (void)
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos_out_hi, configs_out_hi, anomalies_out_hi ACE_ENV_ARG_PARAMETER);
+ infos_out_hi, deps_out_hi_,
+ configs_out_hi, anomalies_out_hi ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
RtecScheduler::RT_Info_Set_out infos_out_lo (this->infos_lo_);
+ RtecScheduler::Dependency_Set_out deps_out_lo (this->deps_lo_);
RtecScheduler::Config_Info_Set_out configs_out_lo (this->configs_lo_);
RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out_lo (this->anomalies_lo_);
sched_lo_->compute_scheduling
@@ -722,7 +725,8 @@ DualEC_Supplier::compute_schedules (void)
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos_out_lo, configs_out_lo, anomalies_out_lo ACE_ENV_ARG_PARAMETER);
+ infos_out_lo, deps_out_lo_,
+ configs_out_lo, anomalies_out_lo ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
#else /* ! __SUNPRO_CC */
@@ -732,7 +736,9 @@ DualEC_Supplier::compute_schedules (void)
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- this->infos_hi_.out (), this->configs_hi_.out (),
+ this->infos_hi_.out (),
+ this->deps_hi_.out (),
+ this->configs_hi_.out (),
this->anomalies_hi_.out () ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
@@ -741,7 +747,9 @@ DualEC_Supplier::compute_schedules (void)
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- this->infos_lo_.out (), this->configs_lo_.out (),
+ this->infos_lo_.out (),
+ this->deps_hi_.out (),
+ this->configs_lo_.out (),
this->anomalies_lo_.out () ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
@@ -750,6 +758,7 @@ DualEC_Supplier::compute_schedules (void)
if (dump_schedule_headers_ && (this->hi_schedule_file_name_ != 0))
{
ACE_Scheduler_Factory::dump_schedule (infos_hi_.in (),
+ deps_hi_.in (),
configs_hi_.in (),
anomalies_hi_.in (),
this->hi_schedule_file_name_);
@@ -759,6 +768,7 @@ DualEC_Supplier::compute_schedules (void)
if (dump_schedule_headers_ && (this->lo_schedule_file_name_ != 0))
{
ACE_Scheduler_Factory::dump_schedule (infos_lo_.in (),
+ deps_lo_.in (),
configs_lo_.in (),
anomalies_lo_.in (),
this->lo_schedule_file_name_);
diff --git a/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h b/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h
index 37c7cb4a1bf..eb66f22e8ec 100644
--- a/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h
+++ b/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h
@@ -168,9 +168,11 @@ private:
// References for CORBA RtecScheduler data structures
RtecScheduler::RT_Info_Set_var infos_hi_;
+ RtecScheduler::Dependency_Set_var deps_hi_;
RtecScheduler::Config_Info_Set_var configs_hi_;
RtecScheduler::Scheduling_Anomaly_Set_var anomalies_hi_;
RtecScheduler::RT_Info_Set_var infos_lo_;
+ RtecScheduler::Dependency_Set_var deps_lo_;
RtecScheduler::Config_Info_Set_var configs_lo_;
RtecScheduler::Scheduling_Anomaly_Set_var anomalies_lo_;
diff --git a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp
index eb83c4b51b6..c90b86978d3 100644
--- a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp
+++ b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp
@@ -1,3 +1,4 @@
+
// $Id$
#include "ace/Sched_Params.h"
@@ -46,6 +47,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[])
ACE_Scheduler_Factory::use_config (naming_context.in (), name);
RtecScheduler::RT_Info_Set_var infos;
+ RtecScheduler::Dependency_Set_var deps;
RtecScheduler::Config_Info_Set_var configs;
RtecScheduler::Scheduling_Anomaly_Set_var anomalies;
@@ -61,6 +63,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[])
// not define instances of _out types.
RtecScheduler::RT_Info_Set_out infos_out (infos);
+ RtecScheduler::Dependency_Set_out deps_out (deps);
RtecScheduler::Config_Info_Set_out configs_out (configs);
RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out (anomalies);
ACE_Scheduler_Factory::server ()->compute_scheduling
@@ -68,7 +71,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[])
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos_out, configs_out, anomalies_out
+ infos_out, deps_out, configs_out, anomalies_out
ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check
#else /* ! __SUNPRO_CC */
ACE_Scheduler_Factory::server ()->compute_scheduling
@@ -76,13 +79,14 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[])
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos.out (), configs.out (), anomalies.out ()
+ infos.out (), deps.out (), configs.out (), anomalies.out ()
ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check
#endif /* ! __SUNPRO_CC */
ACE_TRY_CHECK;
ACE_Scheduler_Factory::dump_schedule (infos.in (),
+ deps.in (),
configs.in (),
anomalies.in (),
"Scheduler_Runtime.cpp");
diff --git a/TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp b/TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp
index dee85a15df1..3e3e0f86321 100644
--- a/TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp
@@ -1,3 +1,4 @@
+
// $Id$
#include "orbsvcs/Sched/Reconfig_Scheduler.h"
@@ -29,7 +30,7 @@ inline RtecScheduler::Period_t time_val_to_period (const ACE_Time_Value &tv)
int parse_args (int argc, char *argv[]);
-typedef TAO_Reconfig_Scheduler<TAO_MUF_Reconfig_Sched_Strategy, TAO_SYNCH_MUTEX> RECONFIG_SCHED_TYPE;
+typedef TAO_Reconfig_Scheduler<TAO_MUF_FAIR_Reconfig_Sched_Strategy, TAO_SYNCH_MUTEX> RECONFIG_SCHED_TYPE;
int
main (int argc, char* argv[])
@@ -332,6 +333,7 @@ main (int argc, char* argv[])
ACE_DEBUG ((LM_DEBUG, "Computing schedule\n"));
RtecScheduler::RT_Info_Set_var infos;
+ RtecScheduler::Dependency_Set_var deps;
RtecScheduler::Config_Info_Set_var configs;
RtecScheduler::Scheduling_Anomaly_Set_var anomalies;
@@ -349,6 +351,7 @@ main (int argc, char* argv[])
scheduler->compute_scheduling (min_os_priority,
max_os_priority,
infos.out (),
+ deps.out (),
configs.out (),
anomalies.out ()
ACE_ENV_ARG_PARAMETER);
@@ -356,6 +359,7 @@ main (int argc, char* argv[])
// Dump the schedule to a file..
ACE_Scheduler_Factory::dump_schedule (infos.in (),
+ deps.in (),
configs.in (),
anomalies.in (),
"schedule.out");
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp
index b18259c6393..1aa6bbfd5e7 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp
@@ -28,6 +28,10 @@ TAO_EC_Kokyu_Filter::
info_type_ (info_type)
{
this->adopt_child (this->body_);
+
+#if 1 //by VS
+this->rt_info_computed_ = 1;
+#endif
}
TAO_EC_Kokyu_Filter::~TAO_EC_Kokyu_Filter (void)
@@ -149,40 +153,93 @@ TAO_EC_Kokyu_Filter::can_match (const RtecEventComm::EventHeader& header) const
return this->body_->can_match (header);
}
+/*
+ Kokyu_Filter
+ |
+ |body
+ |
+ Con/DisjunctionFilter
+ |
+ |children
+ |*
+ Kokyu_Filter
+ |
+ |body
+ |
+ Type_Filter
+
+The entire hierarchy will have the same rt_info as the root. Only the root
+rt_info will be part of the dependency graph in the scheduler. The root
+rt_info will have a dependency on the consumer rt_info.
+
+<--- shows dependency (oneway)
+
+supplier1<-----|
+ con/disj_rt_info<-------consumer_rt_info
+supplier2<-----|
+*/
+
int
TAO_EC_Kokyu_Filter::add_dependencies (const RtecEventComm::EventHeader& header,
const TAO_EC_QOS_Info &qos_info
ACE_ENV_ARG_DECL)
{
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Entering EC_Kokyu_Filter::add_dependencies\n"));
+#endif
this->init_rt_info (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG,
+ "this->rt_info_ = %d, header.type = %d, qos_info.rt_info = %d\n",
+ this->rt_info_, header.type, qos_info.rt_info));
+#endif
+
+ //this call the add_dependencies() on con/disjunction filter
int matches = this->body_->add_dependencies (header,
qos_info
- ACE_ENV_ARG_PARAMETER);
+ ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
if (matches != 0)
{
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Kokyu_Filter::matches != 0\n"));
+#endif
this->scheduler_->add_dependency (this->rt_info_, qos_info.rt_info, 1,
- RtecBase::TWO_WAY_CALL
+ RtecBase::ONE_WAY_CALL
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
RtecScheduler::RT_Info_var info =
this->scheduler_->get (qos_info.rt_info ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
- ACE_DEBUG ((LM_DEBUG, "[%s] ----> [%s]\n",
+ ACE_DEBUG ((LM_DEBUG, "[%s][%d] ----> [%s][%d]\n",
this->name_.c_str (),
- info->entry_point.in ()));
+ this->rt_info_,
+ info->entry_point.in (),
+ qos_info.rt_info));
+ }
+ else
+ {
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Kokyu_Filter::matches == 0\n"));
+#endif
}
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "about to iterate thru children\n"));
+#endif
ChildrenIterator end = this->end ();
for (ChildrenIterator i = this->begin (); i != end; ++i)
{
(*i)->add_dependencies (header, qos_info ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
}
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Exiting EC_Kokyu_Filter: add_dependencies\n"));
+#endif
return 0;
}
@@ -202,7 +259,7 @@ TAO_EC_Kokyu_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
if (this->rt_info_computed_)
return;
-#if 0 //ifdef'ed by VS
+#if 1 //ifdef'ed from 1 to 0 by VS
// Provide dummy values the scheduler will compute them based on the
// dependencies and the fact that this is a DISJUNCTION.
@@ -220,32 +277,6 @@ TAO_EC_Kokyu_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_CHECK;
#endif //ifdef'ed by VS
-#if 0
- ChildrenIterator end = this->end ();
- for (ChildrenIterator i = this->begin (); i != end; ++i)
- {
- TAO_EC_Filter* filter = *i;
-
- TAO_EC_QOS_Info child;
- filter->get_qos_info (child ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->scheduler_->add_dependency (this->rt_info_,
- child.rt_info, 1,
- RtecBase::TWO_WAY_CALL
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- RtecScheduler::RT_Info_var info =
- this->scheduler_->get (child.rt_info ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- ACE_DEBUG ((LM_DEBUG, "[%s] ----> [%s]\n",
- info->entry_point.in (),
- this->name_.c_str ()));
-
- }
-#endif /* 0 */
-
#if 0 //ifdef changed from 1 to 0 by VS
if (this->body_info_ != this->rt_info_)
{
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h
index b48d82927eb..55d64cdb2c9 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h
@@ -26,6 +26,8 @@
#include "rtkokyu_event_export.h"
#include "ace/SString.h"
+//#define EC_KOKYU_LOGGING
+
/**
* @class TAO_EC_Kokyu_Filter
*
@@ -83,7 +85,7 @@ public:
ACE_ENV_ARG_DECL);
virtual void get_qos_info (TAO_EC_QOS_Info& qos_info
ACE_ENV_ARG_DECL);
-
+
private:
ACE_UNIMPLEMENTED_FUNC (TAO_EC_Kokyu_Filter
(const TAO_EC_Kokyu_Filter&))
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp
index 283b7428fef..d708293dfb2 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp
@@ -15,6 +15,23 @@
ACE_RCSID(Event, EC_Kokyu_Filter_Builder, "$Id$")
+const char* designator (long dsgn)
+{
+ switch(dsgn)
+ {
+ case ACE_ES_GLOBAL_DESIGNATOR: return "GLOBAL";
+ case ACE_ES_CONJUNCTION_DESIGNATOR: return "CONJ";
+ case ACE_ES_DISJUNCTION_DESIGNATOR: return "DISJ";
+ case ACE_ES_NEGATION_DESIGNATOR: return "NEG";
+ case ACE_ES_LOGICAL_AND_DESIGNATOR: return "LOG_AND";
+ case ACE_ES_BITMASK_DESIGNATOR: return "BITMASK";
+ case ACE_ES_MASKED_TYPE_DESIGNATOR: return "MASKED_TYPE";
+ case ACE_ES_NULL_DESIGNATOR: return "NULL";
+ }
+
+ return "---";
+}
+
TAO_EC_Kokyu_Filter_Builder::~TAO_EC_Kokyu_Filter_Builder (void)
{
}
@@ -25,7 +42,11 @@ TAO_EC_Kokyu_Filter_Builder::build (
RtecEventChannelAdmin::ConsumerQOS& qos
ACE_ENV_ARG_DECL) const
{
+ CORBA::ULong i=0,found=0;
CORBA::ULong pos = 0;
+ CORBA::Long npos = -1;
+ int establish_final_consumer_dependency=0;
+
CORBA::Object_var tmp =
this->event_channel_->scheduler ();
@@ -33,17 +54,127 @@ TAO_EC_Kokyu_Filter_Builder::build (
RtecScheduler::Scheduler::_narrow (tmp.in () ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
-#if 0 //by VS
- // @@ How do we figure out which parent???
- RtecScheduler::handle_t parent_info =
- scheduler->lookup ("Dispatching_Task-250000.us" ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
+#ifdef EC_KOKYU_LOGGING
+ for (i=0; i<qos.dependencies.length (); ++i)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "consumerqos[%d] event.header.type = %s,"
+ "rt_info = %d\n",
+ i,
+ designator (qos.dependencies[i].event.header.type),
+ qos.dependencies[i].rt_info));
+ }
+#endif
+
+ //find the first entry which is not a designator. We are going to
+ //assume that this entry will have the rt_info of the connecting
+ //consumer (ProxyPushSupplier), which is passed into this function.
+ for (i=0; !found && i<qos.dependencies.length (); ++i)
+ {
+ switch (qos.dependencies[i].event.header.type)
+ {
+ case ACE_ES_CONJUNCTION_DESIGNATOR:
+ case ACE_ES_DISJUNCTION_DESIGNATOR:
+ case ACE_ES_NEGATION_DESIGNATOR:
+ case ACE_ES_LOGICAL_AND_DESIGNATOR:
+ case ACE_ES_BITMASK_DESIGNATOR:
+ case ACE_ES_MASKED_TYPE_DESIGNATOR:
+ case ACE_ES_NULL_DESIGNATOR:
+ establish_final_consumer_dependency = 1;
+ continue;
+
+ case ACE_ES_GLOBAL_DESIGNATOR:
+ case ACE_ES_EVENT_TIMEOUT:
+ case ACE_ES_EVENT_INTERVAL_TIMEOUT:
+ case ACE_ES_EVENT_DEADLINE_TIMEOUT:
+ continue;
+
+ default:
+ npos = i;
+ found = 1;
+ break;
+ }
+ }
+
+ ACE_CString final_consumer_rep_name;
+ RtecScheduler::handle_t h_final_consumer_rt_info = 0;
+ RtecScheduler::handle_t h_final_consumer_rep_rt_info = 0;
+
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "consumer rt_info found in consumerqos[%d] \n", npos));
+#endif
+
+ if (npos >= 0 && establish_final_consumer_dependency == 1)
+ {
+ //Hopefully this will have the final consumer's rt_info
+ h_final_consumer_rt_info = qos.dependencies[npos].rt_info;
+
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "about to get rt_info = %d\n",
+ h_final_consumer_rep_rt_info));
+#endif
+
+ RtecScheduler::RT_Info_var final_consumer_rt_info =
+ scheduler->get ( h_final_consumer_rt_info
+ ACE_ENV_ARG_PARAMETER);
+
+ final_consumer_rep_name = final_consumer_rt_info->entry_point.in ();
+ final_consumer_rep_name += "#rep";
+
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "about to create consumer rep %s\n",
+ final_consumer_rep_name.c_str ()));
#endif
- return this->recursive_build (supplier, qos, pos,
- scheduler.in (),
- 0 //parent_info
+ //create an rt_info corresponding to this rep.
+ h_final_consumer_rep_rt_info =
+ scheduler->create (final_consumer_rep_name.c_str ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "consumer rep created\n"));
+#endif
+
+ }
+
+ //We are passing the final consumer as the parent. The final
+ //consumer is the one which is connecting to the ProxyPushSupplier
+ //passed in to this function.
+
+ TAO_EC_Filter* filter =
+ this->recursive_build (supplier, qos, pos,
+ scheduler.in (),
+ h_final_consumer_rep_rt_info //parent_info
+ ACE_ENV_ARG_PARAMETER);
+
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG,
+ "Filter_Builder::Verifying whether root filter"
+ " dependency can be established\n"));
+#endif
+
+ if (npos >= 0 && establish_final_consumer_dependency == 1)
+ {
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG,
+ "Filter_Builder::root filter dependency "
+ "can be established\n"));
+#endif
+ TAO_EC_Kokyu_Filter* kokyu_filter =
+ ACE_dynamic_cast(TAO_EC_Kokyu_Filter*, filter);
+
+ //add the dependency between the root in the filter hierarchy and
+ //the final consumer
+ TAO_EC_QOS_Info qos_info;
+ kokyu_filter->get_qos_info (qos_info);
+
+ scheduler->add_dependency (h_final_consumer_rt_info,
+ qos_info.rt_info,
+ 1,
+ RtecBase::ONE_WAY_CALL
ACE_ENV_ARG_PARAMETER);
+ }
+ return filter;
}
TAO_EC_Filter*
@@ -57,8 +188,15 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build (
{
const RtecEventComm::Event& e = qos.dependencies[pos].event;
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Filter_Builder::In recursive build\n"));
+#endif
+
if (e.header.type == ACE_ES_CONJUNCTION_DESIGNATOR)
{
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Filter_Builder::Conjuction designator\n"));
+#endif
CORBA::ULong npos = pos;
ACE_CString name;
this->recursive_name (qos, npos,
@@ -66,33 +204,32 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build (
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
- RtecScheduler::handle_t rt_info =
- scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
pos++; // Consume the designator
+
CORBA::ULong n = this->count_children (qos, pos);
+ RtecBase::handle_t conj_rt_info = parent_info;
+
TAO_EC_Filter** children;
ACE_NEW_RETURN (children, TAO_EC_Filter*[n], 0);
for (CORBA::ULong i = 0; i != n; ++i)
{
children[i] = this->recursive_build (supplier, qos, pos,
scheduler,
- rt_info
- ACE_ENV_ARG_PARAMETER);
+ conj_rt_info
+ ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
}
TAO_EC_Kokyu_Filter *filter;
ACE_NEW_RETURN (filter,
TAO_EC_Kokyu_Filter (name.c_str (),
- rt_info,
+ conj_rt_info,
scheduler,
new TAO_EC_Conjunction_Filter(children,
n),
- rt_info,
- parent_info,
+ conj_rt_info,
+ conj_rt_info,
RtecScheduler::CONJUNCTION),
0);
TAO_EC_QOS_Info qos_info;
@@ -104,6 +241,9 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build (
else if (e.header.type == ACE_ES_DISJUNCTION_DESIGNATOR)
{
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Filter_Builder::Disjunction designator\n"));
+#endif
CORBA::ULong npos = pos;
ACE_CString name;
this->recursive_name (qos, npos,
@@ -111,11 +251,10 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build (
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
- RtecScheduler::handle_t rt_info =
- scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
pos++; // Consume the designator
+
+ RtecBase::handle_t disj_rt_info = parent_info;
+
CORBA::ULong n = this->count_children (qos, pos);
TAO_EC_Filter** children;
@@ -124,19 +263,19 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build (
{
children[i] = this->recursive_build (supplier, qos, pos,
scheduler,
- rt_info
+ disj_rt_info
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
}
TAO_EC_Kokyu_Filter *filter;
ACE_NEW_RETURN (filter,
TAO_EC_Kokyu_Filter (name.c_str (),
- rt_info,
+ disj_rt_info,
scheduler,
new TAO_EC_Disjunction_Filter (children,
n),
- rt_info,
- parent_info,
+ disj_rt_info,
+ disj_rt_info,
RtecScheduler::DISJUNCTION),
0);
@@ -146,107 +285,110 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build (
ACE_CHECK_RETURN (0);
return filter;
}
+ else if (e.header.type == ACE_ES_EVENT_TIMEOUT
+ || e.header.type == ACE_ES_EVENT_INTERVAL_TIMEOUT
+ || e.header.type == ACE_ES_EVENT_DEADLINE_TIMEOUT)
+ {
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Filter_Builder::Timeout designator\n"));
+#endif
+ // @@ We need a unique name for each timeout, assigned by the
+ // application?
+ char buf[64];
+
+ //get the rt_info for the timer consumer
+ RtecBase::handle_t h_consumer_rt_info = qos.dependencies[pos].rt_info;
+
+ //build a unique name using the cosumer_rt_info
+ ACE_OS::sprintf (buf, "TIMEOUT:%umsec:%d",
+ ACE_static_cast (u_int,
+ (e.header.creation_time / 10000)),
+ h_consumer_rt_info);
+ ACE_CString name = buf;
+
+ TAO_EC_QOS_Info qos_info;
+ qos_info.rt_info =
+ scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER);
+
+ // Convert the time to the proper units....
+ RtecScheduler::Period_t period =
+ ACE_static_cast (RtecScheduler::Period_t,
+ e.header.creation_time);
+
+#if 1 //by VS original code replaced with this
+ RtecScheduler::RT_Info* consumer_rt_info_ptr;
+
+ consumer_rt_info_ptr = scheduler->get (h_consumer_rt_info);
+ scheduler->set (qos_info.rt_info,
+ consumer_rt_info_ptr->criticality,
+ 0, // worst_cast_execution_time
+ 0, // typical_cast_execution_time
+ 0, // cached_cast_execution_time
+ period,
+ consumer_rt_info_ptr->importance,
+ 0, // quantum
+ 1, // threads
+ RtecScheduler::OPERATION
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+
+ scheduler->add_dependency (qos_info.rt_info,
+ h_consumer_rt_info,
+ 1,
+ RtecBase::TWO_WAY_CALL
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+#endif //by VS
+
+ pos++;
+ return new TAO_EC_Timeout_Filter (this->event_channel_,
+ supplier,
+ qos_info,
+ e.header.type,
+ e.header.creation_time);
+ }
+
#if 1 //added by VS
else if (e.header.type == ACE_ES_GLOBAL_DESIGNATOR)
{
- CORBA::ULong npos = pos+1;
- const RtecEventComm::Event& e = qos.dependencies[npos].event;
-
- RtecScheduler::handle_t body_info = qos.dependencies[npos].rt_info;
-
- RtecScheduler::RT_Info_var info =
- scheduler->get (body_info ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- ACE_CString name = info->entry_point.in ();
-
- TAO_EC_Kokyu_Filter *filter;
- ACE_NEW_RETURN (filter,
- TAO_EC_Kokyu_Filter (name.c_str (),
- body_info,
- scheduler,
- new TAO_EC_Type_Filter (e.header),
- body_info,
- 0,
- RtecScheduler::OPERATION),
- 0);
-
- return filter;
+ pos++;
+ return this->recursive_build (supplier, qos, pos,
+ scheduler,
+ parent_info
+ ACE_ENV_ARG_PARAMETER);
+ }
+ else
+ {
+#ifdef EC_KOKYU_LOGGING
+ ACE_DEBUG ((LM_DEBUG,
+ "Kokyu_Filter_Builder::No designator for this entry. "
+ "Must be a body\n"));
+#endif
}
#endif
- else if (e.header.type == ACE_ES_EVENT_TIMEOUT
- || e.header.type == ACE_ES_EVENT_INTERVAL_TIMEOUT
- || e.header.type == ACE_ES_EVENT_DEADLINE_TIMEOUT)
+ //probably because of a global designator, the parent_info could be 0.
+ if (parent_info == 0)
{
- pos++;
-
- // @@ We need a unique name for each timeout, assigned by the
- // application?
- char buf[64];
- ACE_OS::sprintf (buf, "TIMEOUT:%u",
- ACE_static_cast (u_int,
- (e.header.creation_time / 10000)));
- ACE_CString name = buf;
-
- TAO_EC_QOS_Info qos_info;
- qos_info.rt_info =
- scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- // Convert the time to the proper units....
- RtecScheduler::Period_t period =
- ACE_static_cast (RtecScheduler::Period_t,
- e.header.creation_time / 10);
-
- scheduler->set (qos_info.rt_info,
- RtecScheduler::VERY_LOW_CRITICALITY,
- 0, // worst_cast_execution_time
- 0, // typical_cast_execution_time
- 0, // cached_cast_execution_time
- period,
- RtecScheduler::VERY_LOW_IMPORTANCE,
- 0, // quantum
- 1, // threads
- RtecScheduler::OPERATION
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- scheduler->add_dependency (qos_info.rt_info,
- parent_info,
- 1,
- RtecBase::TWO_WAY_CALL
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return new TAO_EC_Timeout_Filter (this->event_channel_,
- supplier,
- qos_info,
- e.header.type,
- e.header.creation_time);
+ //In this case, the parent_info is the same as the one supplied
+ //in the consumer qos.
+ parent_info = qos.dependencies[pos].rt_info;
}
- RtecScheduler::handle_t body_info = qos.dependencies[pos].rt_info;
-
RtecScheduler::RT_Info_var info =
- scheduler->get (body_info ACE_ENV_ARG_PARAMETER);
+ scheduler->get (parent_info ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
ACE_CString name = info->entry_point.in ();
- name += "#rep";
-
- RtecScheduler::handle_t rt_info =
- scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
pos++;
TAO_EC_Kokyu_Filter *filter;
ACE_NEW_RETURN (filter,
TAO_EC_Kokyu_Filter (name.c_str (),
- rt_info,
+ parent_info,
scheduler,
new TAO_EC_Type_Filter (e.header),
- body_info,
+ parent_info,
parent_info,
RtecScheduler::OPERATION),
0);
@@ -324,7 +466,7 @@ TAO_EC_Kokyu_Filter_Builder:: recursive_name (
pos++;
char buf[64];
- ACE_OS::sprintf (buf, "TIMEOUT:%u",
+ ACE_OS::sprintf (buf, "TIMEOUT:%umsec",
ACE_static_cast (u_int,
(e.header.creation_time / 10000)));
name = buf;
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp
index bd1d0dd9f46..dd857c059e8 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp
@@ -22,10 +22,9 @@ TAO_EC_Kokyu_Scheduling::add_proxy_supplier_dependencies (
TAO_EC_ProxyPushConsumer *consumer
ACE_ENV_ARG_DECL)
{
- ACE_DEBUG ((LM_DEBUG, "add_proxy_supplier_dependencies - %x %x\n",
- supplier, consumer));
const RtecEventChannelAdmin::SupplierQOS& qos =
consumer->publications ();
+
for (CORBA::ULong i = 0; i < qos.publications.length (); ++i)
{
const RtecEventComm::EventHeader &header =
diff --git a/TAO/orbsvcs/orbsvcs/Makefile.RTSched b/TAO/orbsvcs/orbsvcs/Makefile.RTSched
index 7c5364801b1..d24ef9089e7 100644
--- a/TAO/orbsvcs/orbsvcs/Makefile.RTSched
+++ b/TAO/orbsvcs/orbsvcs/Makefile.RTSched
@@ -33,7 +33,7 @@ override TAO_IDLFLAGS += \
-Wb,post_include=ace/post.h
-IDL_FILES += RtecScheduler
+IDL_FILES += RtecScheduler RtecBase
CPP_SRCS += \
Scheduler_Factory \
diff --git a/TAO/orbsvcs/orbsvcs/RTSched.bor b/TAO/orbsvcs/orbsvcs/RTSched.bor
index f0c141b4e3a..69f48913f0c 100644
--- a/TAO/orbsvcs/orbsvcs/RTSched.bor
+++ b/TAO/orbsvcs/orbsvcs/RTSched.bor
@@ -19,6 +19,8 @@ OBJFILES = \
$(OBJDIR)\Reconfig_Scheduler.obj \
$(OBJDIR)\RtecSchedulerC.obj \
$(OBJDIR)\RtecSchedulerS.obj \
+ $(OBJDIR)\RtecBaseC.obj \
+ $(OBJDIR)\RtecBaseS.obj \
$(OBJDIR)\Runtime_Scheduler.obj \
$(OBJDIR)\SchedEntry.obj \
$(OBJDIR)\Scheduler.obj \
diff --git a/TAO/orbsvcs/orbsvcs/RTSched.dsp b/TAO/orbsvcs/orbsvcs/RTSched.dsp
index 646708c6bb9..28cf2d1d6ae 100644
--- a/TAO/orbsvcs/orbsvcs/RTSched.dsp
+++ b/TAO/orbsvcs/orbsvcs/RTSched.dsp
@@ -184,6 +184,15 @@ SOURCE=.\RtecSchedulerS.cpp
# End Source File
# Begin Source File
+SOURCE=.\RtecBaseC.cpp
+# ADD CPP /GR
+# End Source File
+# Begin Source File
+
+SOURCE=.\RtecBaseS.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\Runtime_Scheduler.cpp
# End Source File
# Begin Source File
diff --git a/TAO/orbsvcs/orbsvcs/RTSched.mpc b/TAO/orbsvcs/orbsvcs/RTSched.mpc
index 077f15ffe9b..1175391a2ee 100644
--- a/TAO/orbsvcs/orbsvcs/RTSched.mpc
+++ b/TAO/orbsvcs/orbsvcs/RTSched.mpc
@@ -14,6 +14,8 @@ project(RTSched) : orbsvcslib, core, naming, svc_utils, portableserver {
Sched {
RtecSchedulerC.cpp
RtecSchedulerS.cpp
+ RtecBaseC.cpp
+ RtecBaseS.cpp
Scheduler_Factory.cpp
Runtime_Scheduler.cpp
Scheduler_Utilities.cpp
diff --git a/TAO/orbsvcs/orbsvcs/RtecBase.idl b/TAO/orbsvcs/orbsvcs/RtecBase.idl
index bf1e22d0b49..193e6f65299 100644
--- a/TAO/orbsvcs/orbsvcs/RtecBase.idl
+++ b/TAO/orbsvcs/orbsvcs/RtecBase.idl
@@ -1,9 +1,10 @@
+// $Id$
/**
* @file RtecBase.idl
*
* @brief Define the RtecBase module
*
- * $Id$
+ * RtecBase.idl,v 1.2 2001/09/17 20:50:34 coryan Exp
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
@@ -51,6 +52,15 @@ module RtecBase
*/
typedef long handle_t;
+ enum Dependency_Enabled_Type_t
+ // Specify whether a dependency is enabled, disabled, or
+ // non-volatile (enabled + cannot be disabled automatically).
+ {
+ DEPENDENCY_DISABLED,
+ DEPENDENCY_ENABLED,
+ DEPENDENCY_NON_VOLATILE
+ };
+
/// Define dependencies between two RT_Infos
struct Dependency_Info
{
@@ -62,6 +72,11 @@ module RtecBase
/// Dependency
handle_t rt_info;
+
+ handle_t rt_info_depended_on;
+ Dependency_Enabled_Type_t enabled;
+ // Notice the reference to the RT_Info we
+ // depend on.
};
/// Helper typedef to define the OS priority.
diff --git a/TAO/orbsvcs/orbsvcs/RtecScheduler.idl b/TAO/orbsvcs/orbsvcs/RtecScheduler.idl
index 4b47e58aefc..535ee6eeb96 100644
--- a/TAO/orbsvcs/orbsvcs/RtecScheduler.idl
+++ b/TAO/orbsvcs/orbsvcs/RtecScheduler.idl
@@ -15,6 +15,10 @@ module RtecScheduler
typedef long Period_t; // 100 nanoseconds
+ typedef long Threads_t;
+
+ typedef sequence<Period_t> Period_Set;
+
enum Criticality_t
// Defines the criticality of the operation.
// For use with Dynamic Scheduler.
@@ -48,8 +52,30 @@ module RtecScheduler
REMOTE_DEPENDANT
};
+ typedef RtecBase::Dependency_Enabled_Type_t Dependency_Enabled_Type_t;
typedef RtecBase::Dependency_Type_t Dependency_Type_t;
+
+ enum RT_Info_Enabled_Type_t
+ // Specify whether an RT_Info is enabled, disabled, or
+ // non-volatile (enabled + cannot be disabled automatically).
+ {
+ RT_INFO_DISABLED,
+ RT_INFO_ENABLED,
+ RT_INFO_NON_VOLATILE
+ };
+
typedef RtecBase::handle_t handle_t;
+ // RT_Info's are assigned per-application
+ // unique identifiers.
+
+ struct RT_Info_Enable_State_Pair
+ {
+ handle_t handle;
+ RT_Info_Enabled_Type_t enabled;
+ };
+
+ typedef sequence<RT_Info_Enable_State_Pair> RT_Info_Enable_State_Pair_Set;
+
typedef RtecBase::Dependency_Info Dependency_Info;
typedef sequence<Dependency_Info> Dependency_Set;
@@ -99,7 +125,7 @@ module RtecScheduler
// The number of internal threads contained by
// the operation.
- long threads;
+ Threads_t threads;
// The following attributes are defined by
// the Scheduler once the off-line schedule
@@ -120,6 +146,8 @@ module RtecScheduler
// Info_Type
Info_Type_t info_type;
+ // Whether or not the RT_Info is enabled.
+ RT_Info_Enabled_Type_t enabled;
// Token reserved for the scheduler's internal use:
// information placed here from outside the scheduler
@@ -154,6 +182,9 @@ module RtecScheduler
// type of dispatching queue
Dispatching_Type_t dispatching_type;
+
+ // Set of timer periods associated with the priority level
+ Period_Set timer_periods;
};
typedef sequence<Config_Info> Config_Info_Set;
@@ -272,13 +303,53 @@ module RtecScheduler
in Period_t period,
in Importance_t importance,
in Quantum_t quantum,
- in long threads,
+ in Threads_t threads,
in Info_Type_t info_type)
raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE);
- // Set the attributes of an RT_Info.
+ // Set the input attributes of an RT_Info. Multiple calls
+ // to set with the same handle will result in registration
+ // of different tuples for the same RT_Info, e.g., for multi-rate
+ // admission control.
+ // Notice that some values may not be modified (like priority).
+ // Criticality and Info_Type are only used with the Dynamic Scheduler.
+
+ void reset (in handle_t handle,
+ in Criticality_t criticality,
+ in Time wc_time,
+ in Time typical_time,
+ in Time cached_time,
+ in Period_t period,
+ in Importance_t importance,
+ in Quantum_t quantum,
+ in Threads_t threads,
+ in Info_Type_t info_type)
+ raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE);
+ // Removes previous tuples and resets the attributes of an RT_Info.
// Notice that some values may not be modified (like priority).
// Criticality and Info_Type are only used with the Dynamic Scheduler.
+
+ void set_seq (in RT_Info_Set infos)
+ raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE);
+ // Set the input attributes of an RT_Info. Tuples for the passed
+ // sequence elements will be concatenated with the previous
+ // tuples for the same RT_Infos, e.g., for multi-rate admission control.
+ // Notice that some values may not be modified (like priority).
+
+ void reset_seq (in RT_Info_Set infos)
+ raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE);
+ // Reset the input attributes of an RT_Info. Tuples for the passed
+ // sequence elements will be replace the previous
+ // tuples for the same RT_Infos, e.g., for multi-rate admission control.
+ // Notice that some values may not be modified (like priority).
+
+ void replace_seq (in RT_Info_Set infos)
+ raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE);
+ // Replace all RT_Infos, setting characteristics of the RT_Infos
+ // corresponding to the passed handles. All other RT_Infos are reset
+ // to their uninitialized values, i.e., the same they have just after
+ // the create call.
+
void add_dependency (in handle_t handle,
in handle_t dependency,
in long number_of_calls,
@@ -287,6 +358,39 @@ module RtecScheduler
// Adds <dependency> to <handle>.
// Dependency_Type_t is only used with the Dynamic Scheduler.
+ void remove_dependency (in handle_t handle,
+ in handle_t dependency,
+ in long number_of_calls,
+ in Dependency_Type_t dependency_type)
+ raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK);
+ // Removes <dependency> from <handle>. Raises UNKNOWN_TASK
+ // if no matching dependency is found.
+
+ void set_dependency_enable_state (in handle_t handle,
+ in handle_t dependency,
+ in long number_of_calls,
+ in Dependency_Type_t dependency_type,
+ in Dependency_Enabled_Type_t enabled)
+ raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK);
+ // Enables or disables <dependency> on <handle>. Raises UNKNOWN_TASK
+ // if no matching dependency is found.
+
+ void set_dependency_enable_state_seq (in Dependency_Set dependencies)
+ raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK);
+ // Sets the enable state of each dependency in the sequence. Raises
+ // UNKNOWN_TASK if no matching dependency is found.
+
+ void set_rt_info_enable_state (in handle_t handle,
+ in RT_Info_Enabled_Type_t enabled)
+ raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK);
+ // Enables or disables the RT_Info. Raises UNKNOWN_TASK
+ // if no matching RT_Info is found.
+
+ void set_rt_info_enable_state_seq (in RT_Info_Enable_State_Pair_Set pair_set)
+ raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK);
+ // Enables or disables each rt_info in the passed set. Raises UNKNOWN_TASK
+ // if no matching dependency is found.
+
void priority (in handle_t handle,
out OS_Priority o_priority,
out Preemption_Subpriority_t p_subpriority,
@@ -307,6 +411,7 @@ module RtecScheduler
void compute_scheduling (in long minimum_priority,
in long maximum_priority,
out RT_Info_Set infos,
+ out Dependency_Set dependencies,
out Config_Info_Set configs,
out Scheduling_Anomaly_Set anomalies)
raises (UTILIZATION_BOUND_EXCEEDED,
@@ -321,24 +426,35 @@ module RtecScheduler
// dumped into a C++ file for compilation and even faster (static)
// lookup.
- // TODO: The dependencies field can be removed from the RT_Info
- // and made part of the secrets of "Application", adding the
- // following to satisfy curious clients:
- //
- // struct Dependency {
- // long number_of_calls;
- // Dependency_Type_t dependency_type;
- // handle_t dependency;
- // };
- // typedef sequence<Dependency> Dependency_Set;
- //
- // Dependency_Set dependencies (in handle_t handle)
- // raises (UNKNOWN_TASK);
- // Returns the list of dependencies
- //
- // long number_of_dependencies (in handle_t handle)
- // raises (UNKNOWN_TASK);
- // Returns the number of dependencies.
+
+ void recompute_scheduling (in long minimum_priority,
+ in long maximum_priority,
+ out Scheduling_Anomaly_Set anomalies)
+ raises (UTILIZATION_BOUND_EXCEEDED,
+ SYNCHRONIZATION_FAILURE,
+ INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ TASK_COUNT_MISMATCH,
+ INTERNAL,
+ DUPLICATE_NAME);
+ // Recomputes the scheduling priorities, etc.
+
+ void get_rt_info_set (out RT_Info_Set infos)
+ raises (SYNCHRONIZATION_FAILURE,
+ INTERNAL);
+ // Returns the set of rt_infos, with their assigned priorities (as
+ // of the last schedule re-computation).
+
+ void get_dependency_set (out Dependency_Set dependencies)
+ raises (SYNCHRONIZATION_FAILURE,
+ INTERNAL);
+ // Returns the set of rt_infos, with their assigned priorities (as
+ // of the last schedule re-computation).
+
+ void get_config_info_set (out Config_Info_Set configs)
+ raises (SYNCHRONIZATION_FAILURE,
+ INTERNAL);
+ // Returns the set of config_infos, describing the appropriate
+ // number, types, and priority levels for the dispatching lanes.
void dispatch_configuration (in Preemption_Priority_t p_priority,
out OS_Priority o_priority,
@@ -348,7 +464,7 @@ module RtecScheduler
UNKNOWN_PRIORITY_LEVEL);
// Returns the thread priority and dispatching type assigned
// to the dispatching priority level that was passed in. This
- // information is used to configure the queues through wich
+ // information can be used to configure the queues through which
// the scheduled operations are to be dispatched.
//
// If the schedule has not been computed:
diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp
index e3e7fbf48e0..a3b32ce0624 100644
--- a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp
+++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp
@@ -139,6 +139,93 @@ ACE_Runtime_Scheduler::set (RtecScheduler::handle_t handle,
}
+void
+ACE_Runtime_Scheduler::reset (RtecScheduler::handle_t handle,
+ RtecScheduler::Criticality_t criticality,
+ RtecScheduler::Time time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period_t period,
+ RtecScheduler::Importance_t importance,
+ RtecScheduler::Quantum_t quantum,
+ CORBA::Long threads,
+ RtecScheduler::Info_Type_t info_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK))
+{
+ // Just go ahead and call the set method
+ this->set (handle, criticality, time, typical_time, cached_time,
+ period, importance, quantum, threads, info_type ACE_ENV_ARG_PARAMETER );
+}
+
+
+void
+ACE_Runtime_Scheduler::set_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+{
+ for (u_int i = 0; i < infos.length (); ++i)
+ {
+ // Call the internal set method.
+ this->set (infos[i].handle,
+ infos[i].criticality,
+ infos[i].worst_case_execution_time,
+ infos[i].typical_execution_time,
+ infos[i].cached_execution_time,
+ infos[i].period,
+ infos[i].importance,
+ infos[i].quantum,
+ infos[i].threads,
+ infos[i].info_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+}
+
+void
+ACE_Runtime_Scheduler::replace_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+{
+ for (u_int i = 0; i < infos.length (); ++i)
+ {
+ // Call the internal set method.
+ this->set (infos[i].handle,
+ infos[i].criticality,
+ infos[i].worst_case_execution_time,
+ infos[i].typical_execution_time,
+ infos[i].cached_execution_time,
+ infos[i].period,
+ infos[i].importance,
+ infos[i].quantum,
+ infos[i].threads,
+ infos[i].info_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+}
+
+
+void
+ACE_Runtime_Scheduler::reset_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+{
+ // Just call the set sequence method
+ this->set_seq (infos ACE_ENV_ARG_PARAMETER);
+}
+
+
// Returns the priority and subpriority values assigned to an RT_Info,
// based on its handle.
@@ -222,6 +309,75 @@ ACE_Runtime_Scheduler::add_dependency (RtecScheduler::handle_t handle,
#endif
}
+
+// In the reconfig scheduler, this method removes a dependency between
+// two RT_Infos. In the run time scheduler, this is a no-op.
+
+void
+ACE_Runtime_Scheduler::remove_dependency (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t /* dependency */,
+ CORBA::Long /* number_of_calls */,
+ RtecScheduler::Dependency_Type_t /* dependency_type */
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK))
+{
+ if (handle <= 0 || handle > entry_count_)
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+}
+
+
+// In the reconfig scheduler, this method enables a dependency between
+// two RT_Infos. In the run time scheduler, this is a no-op.
+
+void
+ACE_Runtime_Scheduler::set_dependency_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t /* dependency */,
+ CORBA::Long /* number_of_calls */,
+ RtecScheduler::Dependency_Type_t /* dependency_type */,
+ RtecScheduler::Dependency_Enabled_Type_t /* enabled */
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK))
+{
+ if (handle <= 0 || handle > entry_count_)
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+}
+
+
+// In the reconfig scheduler, this method enables or disables an RT_Info.
+// In the run time scheduler, this is a no-op.
+
+void
+ACE_Runtime_Scheduler::set_rt_info_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::RT_Info_Enabled_Type_t /* enabled */
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK))
+{
+ if (handle <= 0 || handle > entry_count_)
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+}
+
+
+virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+ // This method sets the enable state of a sequence of dependencies.
+{
+}
+
+virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+// This method enables or disables a sequence of RT_Infos.
+{
+}
+
// In the config run scheduler, this method causes scheduling information
// to be computed for all registered RT_Infos. In the run time scheduler,
// this is a no-op.
@@ -230,6 +386,7 @@ void
ACE_Runtime_Scheduler::compute_scheduling (CORBA::Long /* minimum_priority */,
CORBA::Long /* maximum_priority */,
RtecScheduler::RT_Info_Set_out /* infos */,
+ RtecScheduler::Dependency_Set_out /*dependencies */,
RtecScheduler::Config_Info_Set_out /* configs */,
RtecScheduler::Scheduling_Anomaly_Set_out /* anomalies */
ACE_ENV_ARG_DECL_NOT_USED)
@@ -244,6 +401,81 @@ ACE_Runtime_Scheduler::compute_scheduling (CORBA::Long /* minimum_priority */,
return;
}
+// Recomputes the scheduling priorities, etc.
+
+void
+ACE_Runtime_Scheduler::recompute_scheduling (CORBA::Long minimum_priority,
+ CORBA::Long maximum_priority,
+ RtecScheduler::Scheduling_Anomaly_Set_out anomalies
+ ACE_ENV_ARG_DECL)
+
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UTILIZATION_BOUND_EXCEEDED,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ RtecScheduler::TASK_COUNT_MISMATCH,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::DUPLICATE_NAME))
+{
+ // TODO: Right now just do nothing.
+ ACE_UNUSED_ARG(minimum_priority);
+ ACE_UNUSED_ARG(maximum_priority);
+ ACE_UNUSED_ARG(anomalies);
+
+ return;
+}
+
+
+// Returns the set of rt_infos, with their assigned priorities (as
+// of the last schedule re-computation).
+
+void
+ACE_Runtime_Scheduler::get_rt_info_set (RtecScheduler::RT_Info_Set_out infos
+ ACE_ENV_ARG_DECL)
+
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+{
+ // TODO: Right now just do nothing.
+ ACE_UNUSED_ARG(infos);
+ return;
+}
+
+
+// Returns the set of rt_infos, with their assigned priorities (as
+// of the last schedule re-computation).
+
+void
+ACE_Runtime_Scheduler::get_dependency_set (RtecScheduler::Dependency_Set_out dependencies
+ ACE_ENV_ARG_DECL)
+
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+{
+ // TODO: Right now just do nothing.
+ ACE_UNUSED_ARG(dependencies);
+ return;
+}
+
+
+// Returns the set of config_infos, describing the appropriate
+// number, types, and priority levels for the dispatching lanes.
+
+void
+ACE_Runtime_Scheduler::get_config_info_set (RtecScheduler::Config_Info_Set_out configs
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+{
+ // TODO: Right now just do nothing.
+ ACE_UNUSED_ARG(configs);
+ return;
+}
+
+
// Provides the thread priority and queue type for the given priority
// level.
diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h
index 71c5761f988..b2d5ed34061 100644
--- a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h
+++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h
@@ -74,6 +74,48 @@ public:
RtecScheduler::UNKNOWN_TASK));
// Set characteristics of the RT_Info corresponding to the passed handle.
+ virtual void reset (RtecScheduler::handle_t handle,
+ RtecScheduler::Criticality_t criticality,
+ RtecScheduler::Time time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period_t period,
+ RtecScheduler::Importance_t importance,
+ RtecScheduler::Quantum_t quantum,
+ CORBA::Long threads,
+ RtecScheduler::Info_Type_t info_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK));
+ // Reset characteristics of the RT_Info corresponding to the passed handle.
+
+ virtual void set_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Set characteristics of the RT_Infos corresponding to the passed handles.
+ // Tuples are added in the case of existing and/or multiple definitions.
+
+ virtual void replace_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Replace characteristics of the RT_Infos corresponding to the
+ // passed handles.
+
+ virtual void reset_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Reset characteristics of the RT_Infos corresponding to the passed handles.
+ // Tuples are replaced in the case of existing and/or multiple definitions.
+
virtual void priority (RtecScheduler::handle_t handle,
RtecScheduler::OS_Priority& o_priority,
RtecScheduler::Preemption_Subpriority_t& p_subpriority,
@@ -106,9 +148,53 @@ public:
// In the config run scheduler, this method registers a dependency between
// two RT_Infos. In the run time scheduler, this is a no-op.
+ virtual void remove_dependency (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK));
+ // In the reconfig scheduler, this method removes a dependency between
+ // two RT_Infos. In the run time scheduler, this is a no-op.
+
+ virtual void set_dependency_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK));
+ // In the reconfig scheduler, this method (re)enabes a dependency between
+ // two RT_Infos. In the run time scheduler, this is a no-op.
+
+ virtual void set_rt_info_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::RT_Info_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK));
+ // In the reconfig scheduler, enables or disables an RT_Info.
+ // In the run time scheduler, this is a no-op.
+
+ virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method sets the enable state of a sequence of dependencies.
+
+ virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method enables or disables a sequence of RT_Infos.
+
virtual void compute_scheduling (CORBA::Long minimum_priority,
CORBA::Long maximum_priority,
RtecScheduler::RT_Info_Set_out infos,
+ RtecScheduler::Dependency_Set_out deps,
RtecScheduler::Config_Info_Set_out configs,
RtecScheduler::Scheduling_Anomaly_Set_out anomalies
ACE_ENV_ARG_DECL)
@@ -120,6 +206,43 @@ public:
// to be computed for all registered RT_Infos. In the run time scheduler,
// this is a no-op.
+ virtual void recompute_scheduling (CORBA::Long minimum_priority,
+ CORBA::Long maximum_priority,
+ RtecScheduler::Scheduling_Anomaly_Set_out anomalies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UTILIZATION_BOUND_EXCEEDED,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ RtecScheduler::TASK_COUNT_MISMATCH,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::DUPLICATE_NAME));
+ // Recomputes the scheduling priorities, etc.
+
+ virtual void get_rt_info_set (RtecScheduler::RT_Info_Set_out infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of rt_infos, with their assigned priorities (as
+ // of the last schedule re-computation).
+
+ virtual void get_dependency_set (RtecScheduler::Dependency_Set_out dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of rt_infos, with their assigned priorities (as
+ // of the last schedule re-computation).
+
+ virtual void get_config_info_set (RtecScheduler::Config_Info_Set_out configs
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of config_infos, describing the appropriate
+ // number, types, and priority levels for the dispatching lanes.
+
virtual void dispatch_configuration (RtecScheduler::Preemption_Priority_t p_priority,
RtecScheduler::OS_Priority& o_priority,
RtecScheduler::Dispatching_Type_t & d_type
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp
index f6da5e721a3..6c98a2db43c 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp
+++ b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp
@@ -181,6 +181,7 @@ void ACE_Config_Scheduler::priority (RtecScheduler::handle_t handle,
RtecScheduler::UNKNOWN_TASK,
RtecScheduler::NOT_SCHEDULED))
{
+
if (impl->priority (handle, priority, p_subpriority, p_priority) == -1)
{
ACE_ERROR ((LM_ERROR,
@@ -212,6 +213,7 @@ void ACE_Config_Scheduler::add_dependency (RtecScheduler::handle_t handle,
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::UNKNOWN_TASK))
{
+
RtecScheduler::RT_Info* rt_info = 0;
switch (impl->lookup_rt_info (handle, rt_info))
{
@@ -242,6 +244,7 @@ void ACE_Config_Scheduler::add_dependency (RtecScheduler::handle_t handle,
void ACE_Config_Scheduler::compute_scheduling (CORBA::Long minimum_priority,
CORBA::Long maximum_priority,
RtecScheduler::RT_Info_Set_out infos,
+ RtecScheduler::Dependency_Set_out dependencies,
RtecScheduler::Config_Info_Set_out configs,
RtecScheduler::Scheduling_Anomaly_Set_out anomalies
ACE_ENV_ARG_DECL_NOT_USED)
@@ -250,6 +253,7 @@ void ACE_Config_Scheduler::compute_scheduling (CORBA::Long minimum_priority,
RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
RtecScheduler::TASK_COUNT_MISMATCH))
{
+
// Initialize the scheduler implementation.
impl->init (minimum_priority, maximum_priority);
@@ -438,8 +442,10 @@ void ACE_Config_Scheduler::compute_scheduling (CORBA::Long minimum_priority,
ACE_DEBUG ((LM_DEBUG, "Schedule prepared.\n"));
ACE_DEBUG ((LM_DEBUG, "Dumping to stdout.\n"));
- ACE_Scheduler_Factory::dump_schedule (*(infos.ptr()), *(configs.ptr()),
- *(anomalies.ptr()), 0);
+ ACE_Scheduler_Factory::dump_schedule (*(infos.ptr()),
+ *(dependencies.ptr()),
+ *(configs.ptr()),
+ *(anomalies.ptr()), 0);
ACE_DEBUG ((LM_DEBUG, "Dump done.\n"));
}
@@ -452,6 +458,7 @@ void ACE_Config_Scheduler::dispatch_configuration (RtecScheduler::Preemption_Pri
RtecScheduler::NOT_SCHEDULED,
RtecScheduler::UNKNOWN_PRIORITY_LEVEL))
{
+
if (impl->dispatch_configuration (p_priority, priority, d_type) == -1)
{
ACE_ERROR ((LM_ERROR,
@@ -468,6 +475,7 @@ ACE_Config_Scheduler::last_scheduled_priority (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::NOT_SCHEDULED))
{
+
RtecScheduler::Preemption_Priority_t priority = impl->minimum_priority_queue ();
if (priority < 0)
@@ -496,3 +504,167 @@ ACE_Config_Scheduler::get_config_infos (RtecScheduler::Config_Info_Set_out confi
//for now, this function is unimplemented
return;
}
+
+virtual void reset (RtecScheduler::handle_t handle,
+ RtecScheduler::Criticality_t criticality,
+ RtecScheduler::Time time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period_t period,
+ RtecScheduler::Importance_t importance,
+ RtecScheduler::Quantum_t quantum,
+ CORBA::Long threads,
+ RtecScheduler::Info_Type_t info_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void set_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+// Set characteristics of the RT_Infos corresponding to the passed handles.
+// Tuples are added in the case of existing and/or multiple definitions.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void reset_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+// Reset characteristics of the RT_Infos corresponding to the passed handles.
+// Tuples are replaced in the case of existing and/or multiple definitions.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void replace_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+// Replace all RT_Infos, resetting characteristics of the RT_Infos
+// corresponding to the passed handles. All other RT_Infos are
+// reset to their uninitialized values, i.e., the same they have
+// just after the create call.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void remove_dependency (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+// This method removes a dependency between two RT_Infos.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void set_dependency_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+// This method sets the enable state of a dependency between two RT_Infos.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+// This method sets the enable state of a sequence of dependencies.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void set_rt_info_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::RT_Info_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+// This method enables or disables an RT_Info.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+// This method enables or disables a sequence of RT_Infos.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void recompute_scheduling (CORBA::Long minimum_priority,
+ CORBA::Long maximum_priority,
+ RtecScheduler::Scheduling_Anomaly_Set_out anomalies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UTILIZATION_BOUND_EXCEEDED,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ RtecScheduler::TASK_COUNT_MISMATCH,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::DUPLICATE_NAME))
+// Recomputes the scheduling priorities, etc.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void get_rt_info_set (RtecScheduler::RT_Info_Set_out infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+// Returns the set of rt_infos, with their assigned priorities (as
+// of the last schedule re-computation).
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void get_dependency_set (RtecScheduler::Dependency_Set_out dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+// Returns the set of rt_infos, with their assigned priorities (as
+// of the last schedule re-computation).
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
+
+virtual void get_config_info_set (RtecScheduler::Config_Info_Set_out configs
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+// Returns the set of config_infos, describing the appropriate
+// number, types, and priority levels for the dispatching lanes.
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+}
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h
index e0278a40462..1fc887b8fb5 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h
+++ b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h
@@ -90,6 +90,7 @@ public:
virtual void compute_scheduling (CORBA::Long minimum_priority,
CORBA::Long maximum_priority,
RtecScheduler::RT_Info_Set_out infos,
+ RtecScheduler::Dependency_Set_out dependencies,
RtecScheduler::Config_Info_Set_out configs,
RtecScheduler::Scheduling_Anomaly_Set_out anomalies
ACE_ENV_ARG_DECL)
@@ -125,6 +126,132 @@ public:
RtecScheduler::NOT_SCHEDULED));
// Provides the set of Config_Infos associated with the current schedule.
+ virtual void reset (RtecScheduler::handle_t handle,
+ RtecScheduler::Criticality_t criticality,
+ RtecScheduler::Time time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period_t period,
+ RtecScheduler::Importance_t importance,
+ RtecScheduler::Quantum_t quantum,
+ CORBA::Long threads,
+ RtecScheduler::Info_Type_t info_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Reset characteristics of the RT_Info corresponding to the passed handle.
+
+ virtual void set_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Set characteristics of the RT_Infos corresponding to the passed handles.
+ // Tuples are added in the case of existing and/or multiple definitions.
+
+ virtual void reset_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Reset characteristics of the RT_Infos corresponding to the passed handles.
+ // Tuples are replaced in the case of existing and/or multiple definitions.
+
+ virtual void replace_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Replace all RT_Infos, resetting characteristics of the RT_Infos
+ // corresponding to the passed handles. All other RT_Infos are
+ // reset to their uninitialized values, i.e., the same they have
+ // just after the create call.
+
+ virtual void remove_dependency (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method removes a dependency between two RT_Infos.
+
+ virtual void set_dependency_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method sets the enable state of a dependency between two RT_Infos.
+
+ virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method sets the enable state of a sequence of dependencies.
+
+ virtual void set_rt_info_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::RT_Info_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method enables or disables an RT_Info.
+
+ virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method enables or disables a sequence of RT_Infos.
+
+ virtual void recompute_scheduling (CORBA::Long minimum_priority,
+ CORBA::Long maximum_priority,
+ RtecScheduler::Scheduling_Anomaly_Set_out anomalies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UTILIZATION_BOUND_EXCEEDED,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ RtecScheduler::TASK_COUNT_MISMATCH,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::DUPLICATE_NAME));
+ // Recomputes the scheduling priorities, etc.
+
+ virtual void get_rt_info_set (RtecScheduler::RT_Info_Set_out infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of rt_infos, with their assigned priorities (as
+ // of the last schedule re-computation).
+
+ virtual void get_dependency_set (RtecScheduler::Dependency_Set_out dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of rt_infos, with their assigned priorities (as
+ // of the last schedule re-computation).
+
+ virtual void get_config_info_set (RtecScheduler::Config_Info_Set_out configs
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of config_infos, describing the appropriate
+ // number, types, and priority levels for the dispatching lanes.
+
private:
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp
index 25c6cca9bd0..4ad5e2c850f 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp
@@ -34,6 +34,197 @@
ACE_RCSID (Sched, Reconfig_Sched_Utils, "$Id$")
+///////////////////////////
+// struct TAO_RT_Info_Ex //
+///////////////////////////
+
+// Default Constructor.
+
+TAO_RT_Info_Ex::TAO_RT_Info_Ex ()
+{
+ // Note: the entry_point string takes care of itself.
+ handle = 0;
+ criticality = RtecScheduler::VERY_LOW_CRITICALITY;
+ worst_case_execution_time = 0;
+ typical_execution_time = 0;
+ cached_execution_time = 0;
+ period = 0;
+ importance = RtecScheduler::VERY_LOW_IMPORTANCE;
+ quantum = 0;
+ threads = 0;
+ info_type = RtecScheduler::OPERATION;
+ priority = 0;
+ preemption_subpriority = 0;
+ preemption_priority = 0;
+ enabled = RtecScheduler::RT_INFO_ENABLED;
+ volatile_token = 0;
+}
+
+
+// Constructor from an RT_Info
+// (Also serves as a copy constructor)
+
+TAO_RT_Info_Ex::TAO_RT_Info_Ex (const RtecScheduler::RT_Info &info)
+{
+ this->entry_point = info.entry_point;
+ this->handle = info.handle;
+ this->criticality = info.criticality;
+ this->worst_case_execution_time = info.worst_case_execution_time;
+ this->typical_execution_time = info.typical_execution_time;
+ this->cached_execution_time = info.cached_execution_time;
+ this->period = info.period;
+ this->importance = info.importance;
+ this->quantum = info.quantum;
+ this->threads = info.threads;
+ this->info_type = info.info_type;
+ this->priority = info.priority;
+ this->preemption_subpriority = info.preemption_subpriority;
+ this->preemption_priority = info.preemption_priority;
+ this->enabled = info.enabled; // TODO- rethink?
+ this->volatile_token = info.volatile_token;
+}
+
+
+// Destructor.
+TAO_RT_Info_Ex::~TAO_RT_Info_Ex ()
+{
+}
+
+
+// Assignment operator with an RT_Info on the RHS.
+
+void
+TAO_RT_Info_Ex::operator = (const RtecScheduler::RT_Info &info)
+{
+ // IMPORTANT: we don't copy the name or the handle or the output
+ // attributes or the volatile token (entry pointer) or the valid
+ // flag. These can only be copied in the copy ctor at
+ // initialization.
+
+ criticality = info.criticality;
+ worst_case_execution_time = info.worst_case_execution_time;
+ typical_execution_time = info.typical_execution_time;
+ cached_execution_time = info.cached_execution_time;
+ period = info.period;
+ importance = info.importance;
+ quantum = info.quantum;
+ threads = info.threads;
+ info_type = info.info_type;
+ enabled = info.enabled;
+}
+
+
+// Resets all data members to initial (invalid) values, and removes
+// tuples corresponding to the reset flags.
+
+void
+TAO_RT_Info_Ex::reset (u_long reset_flags)
+{
+ // IMPORTANT: among the input arguments, we only reset the period ...
+ // TBD - if execution times etc. can be selected as well, then reset those, e.g.,
+ //
+ // criticality = RtecScheduler::VERY_LOW_CRITICALITY;
+ // worst_case_execution_time = 0;
+ // typical_execution_time = 0;
+ // cached_execution_time = 0;
+ // importance = RtecScheduler::VERY_LOW_IMPORTANCE;
+ // quantum = 0;
+ // threads = 0;
+ // info_type = RtecScheduler::OPERATION;
+
+ period = 0;
+
+ // ... However, we do reset the output attributes ...
+
+ priority = 0;
+ preemption_subpriority = 0;
+ preemption_priority = 0;
+
+ // ... and the appropriate tuples associated with the entry.
+ TAO_Reconfig_Scheduler_Entry * entry_ptr =
+ ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ volatile_token);
+
+ ACE_DEBUG((LM_DEBUG, "Removing Entries for RT_Info: %d, entry_ptr: %x\n", handle, entry_ptr));
+ if (entry_ptr)
+ {
+ entry_ptr->remove_tuples (reset_flags);
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "Pointer to associated entry is zero."));
+ }
+}
+
+void
+TAO_RT_Info_Ex::enabled_state (RtecScheduler::RT_Info_Enabled_Type_t enabled_in)
+{
+ TAO_Reconfig_Scheduler_Entry * entry_ptr =
+ ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ volatile_token);
+ if (entry_ptr)
+ {
+ this->enabled = enabled_in;
+ entry_ptr->enabled_state (enabled_in);
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "Pointer to associated entry is zero."));
+ }
+}
+
+RtecScheduler::RT_Info_Enabled_Type_t
+TAO_RT_Info_Ex::enabled_state ()
+{
+ return this->enabled;
+}
+
+
+
+//////////////////////////////
+// struct TAO_RT_Info_Tuple //
+//////////////////////////////
+
+// Default Constructor.
+TAO_RT_Info_Tuple::TAO_RT_Info_Tuple ()
+ : rate_index (0)
+{
+}
+
+
+// Constructor from an RT_Info.
+// (Also serves as a copy constructor)
+
+TAO_RT_Info_Tuple::TAO_RT_Info_Tuple (const RtecScheduler::RT_Info &info)
+ : TAO_RT_Info_Ex (info),
+ rate_index (0)
+{
+}
+
+// Destructor.
+
+TAO_RT_Info_Tuple::~TAO_RT_Info_Tuple ()
+{
+}
+
+
+// Assignment operator with an RT_Info on the RHS.
+
+void
+TAO_RT_Info_Tuple::operator = (const RtecScheduler::RT_Info &info)
+{
+ ACE_static_cast (TAO_RT_Info_Ex, *this) = info;
+}
+
+
+// Less-than comparison operator: orders tuples by ascending rate (descending period).
+
+int
+TAO_RT_Info_Tuple::operator < (const TAO_RT_Info_Tuple &t)
+{
+ return (this->period > t.period) ? 1 : 0;
+}
+
////////////////////////////////////////
// class TAO_Reconfig_Scheduler_Entry //
@@ -42,7 +233,7 @@ ACE_RCSID (Sched, Reconfig_Sched_Utils, "$Id$")
// Constructor.
TAO_Reconfig_Scheduler_Entry::
-TAO_Reconfig_Scheduler_Entry (RtecScheduler::RT_Info &rt_info)
+TAO_Reconfig_Scheduler_Entry (TAO_RT_Info_Ex &rt_info)
: actual_rt_info_ (&rt_info),
fwd_dfs_status_ (NOT_VISITED),
rev_dfs_status_ (NOT_VISITED),
@@ -53,17 +244,222 @@ TAO_Reconfig_Scheduler_Entry (RtecScheduler::RT_Info &rt_info)
is_thread_delineator_ (0),
has_unresolved_remote_dependencies_ (0),
has_unresolved_local_dependencies_ (0),
- effective_exec_multiplier_ (0),
- effective_period_ (0)
+ aggregate_exec_time_ (0),
+ orig_tuple_period_sum_ (0),
+ prop_tuple_period_sum_ (0),
+ orig_tuple_count_ (0),
+ prop_tuple_count_ (0),
+ current_admitted_tuple_ (0),
+ enabled_ (rt_info.enabled)
+ // effective_exec_multiplier_ (0), //WSOA merge commented out
+ // effective_period_ (0) //WSOA merge commented out
{
// Store the RT_Info fields.
this->orig_rt_info_data (*actual_rt_info_);
}
+// Constructor.
+
+TAO_Reconfig_Scheduler_Entry::
+~TAO_Reconfig_Scheduler_Entry ()
+{
+ this->remove_tuples (ORIGINAL | PROPAGATED);
+}
+
+
+// Removes all tuples from the entry.
+
+void
+TAO_Reconfig_Scheduler_Entry::
+remove_tuples (u_long tuple_flags)
+{
+ TAO_RT_Info_Tuple **tuple_ptr_ptr;
+
+ if (tuple_flags & ORIGINAL)
+ {
+ TUPLE_SET_ITERATOR orig_tuple_iter (this->orig_tuple_subset_);
+
+ while (orig_tuple_iter.done () == 0)
+ {
+ if (orig_tuple_iter.next (tuple_ptr_ptr) == 0
+ || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Failed to access tuple under iterator"));
+ return;
+ }
+
+ delete (*tuple_ptr_ptr);
+
+ orig_tuple_iter.advance ();
+ }
+
+ this->orig_tuple_subset_.reset ();
+ }
+
+ // If either the originals or the propagated tuple pointers are to
+ // be removed, we have to get rid of the propagated pointers lest
+ // they become handles to access violations after the original
+ // tuples are destroyed.
+ if (tuple_flags & PROPAGATED
+ || tuple_flags & ORIGINAL)
+ {
+ this->prop_tuple_subset_.reset ();
+ }
+}
+
+
+// Adds a new tuple to the entry and updates the
+// rate indices and mean rate for the tuples.
+
+int
+TAO_Reconfig_Scheduler_Entry::
+insert_tuple (TAO_RT_Info_Tuple &tuple,
+ Tuple_Type tuple_type,
+ int replace)
+{
+ // Choose the appropriate tuple subset.
+ TUPLE_SET *set_ptr = (tuple_type == ORIGINAL) ? & orig_tuple_subset_ : & prop_tuple_subset_;
+
+ // Recompute rate indices.
+
+ tuple.rate_index = 0;
+ TAO_RT_Info_Tuple **tuple_ptr_ptr;
+
+ TUPLE_SET_ITERATOR tuple_iter (*set_ptr);
+
+ while (tuple_iter.done () == 0)
+ {
+ // Get a pointer to the tuple under the iterator.
+ if (tuple_iter.next (tuple_ptr_ptr) == 0
+ || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "Failed to access tuple under iterator"), -1);
+ }
+
+ // Update existing tuples
+ if ((*tuple_ptr_ptr)->period > tuple.period)
+ {
+ // Move the tuple's rate index higher than any in the set
+ // with lower rates.
+ ++tuple.rate_index;
+ }
+ else if (replace && (*tuple_ptr_ptr)->period == tuple.period)
+ {
+ // If the replace flag is set, and there is already a tuple
+ // with the same rate in the set, just update that tuple and
+ // return.
+ **tuple_ptr_ptr = tuple;
+ return 1;
+ }
+ else
+ {
+ // Otherwise, just update the rate index of the subsequent
+ // tuples, which have the same or higher rates.
+ ++(*tuple_ptr_ptr)->rate_index;
+ }
+
+ tuple_iter.advance ();
+ }
+
+ // Update aggregate rate data, insert the tuple
+ if (tuple_type == ORIGINAL)
+ {
+ this->orig_tuple_period_sum_ += tuple.period;
+ ++this->orig_tuple_count_;
+ return (this->orig_tuple_subset_.insert (&tuple) < 0) ? -1 : 0;
+ }
+ else
+ {
+ this->prop_tuple_period_sum_ += tuple.period;
+ ++this->prop_tuple_count_;
+ return (this->prop_tuple_subset_.insert (&tuple) < 0) ? -1 : 0;
+ }
+}
+
+
+// Updates a matching tuple.
+
+int
+TAO_Reconfig_Scheduler_Entry::
+update_tuple (TAO_RT_Info_Ex &info,
+ Tuple_Type tuple_type)
+{
+ // Choose the appropriate tuple subset.
+ TUPLE_SET *set_ptr = (tuple_type == ORIGINAL) ? & orig_tuple_subset_ : & prop_tuple_subset_;
+
+ // Find and update the first matching tuple, if any.
+
+ TAO_RT_Info_Tuple **tuple_ptr_ptr;
+ TUPLE_SET_ITERATOR tuple_iter (*set_ptr);
+
+ while (tuple_iter.done () == 0)
+ {
+ // Get a pointer to the tuple under the iterator.
+ if (tuple_iter.next (tuple_ptr_ptr) == 0
+ || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "Failed to access tuple under iterator"), -1);
+ }
+ else if ((*tuple_ptr_ptr)->period < info.period)
+ {
+ // If we've hit a tuple with a shorter period (higher rate),
+ // then we're done.
+ break;
+ }
+ else if ((*tuple_ptr_ptr)->period == info.period)
+ {
+ // If the replace flag is set, and there is already a tuple
+ // with the same rate in the set, just update that tuple and
+ // return.
+ **tuple_ptr_ptr = info;
+ return 1;
+ }
+
+ tuple_iter.advance ();
+ }
+
+ return 0;
+}
+
+
+// Registers tuples into the passed tuple pointer array.
+int
+TAO_Reconfig_Scheduler_Entry::
+register_tuples (TAO_RT_Info_Tuple ** tuple_ptr_array,
+ long &tuple_count)
+{
+ // Iterate over the tuples, adding them to the pointer array.
+
+ TAO_RT_Info_Tuple **tuple_ptr_ptr;
+ TUPLE_SET_ITERATOR tuple_iter (orig_tuple_subset_);
+
+ while (tuple_iter.done () == 0)
+ {
+ // Get a pointer to the tuple under the iterator.
+ if (tuple_iter.next (tuple_ptr_ptr) == 0
+ || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "Failed to access tuple under iterator"), -1);
+ }
+ else
+ {
+ tuple_ptr_array [tuple_count] = *tuple_ptr_ptr;
+ ++tuple_count;
+ }
+
+ tuple_iter.advance ();
+ }
+
+ return 0;
+}
+
+
+
// Accessor for original RT_Info data.
-RtecScheduler::RT_Info &
+TAO_RT_Info_Ex &
TAO_Reconfig_Scheduler_Entry::orig_rt_info_data ()
{
return orig_rt_info_data_;
@@ -73,7 +469,7 @@ TAO_Reconfig_Scheduler_Entry::orig_rt_info_data ()
// Mutator for stored original RT_Info data.
void
-TAO_Reconfig_Scheduler_Entry::orig_rt_info_data (RtecScheduler::RT_Info &data)
+TAO_Reconfig_Scheduler_Entry::orig_rt_info_data (TAO_RT_Info_Ex &data)
{
// Only store the information that can be updated by the public interface at run-time.
this->orig_rt_info_data_.worst_case_execution_time = data.worst_case_execution_time;
@@ -85,11 +481,12 @@ TAO_Reconfig_Scheduler_Entry::orig_rt_info_data (RtecScheduler::RT_Info &data)
this->orig_rt_info_data_.quantum = data.quantum;
this->orig_rt_info_data_.threads = data.threads;
this->orig_rt_info_data_.info_type = data.info_type;
+ this->orig_rt_info_data_.enabled = data.enabled;
}
// Accessor for actual RT_Info pointer.
-RtecScheduler::RT_Info *
+TAO_RT_Info_Ex *
TAO_Reconfig_Scheduler_Entry::
actual_rt_info ()
{
@@ -101,7 +498,7 @@ actual_rt_info ()
void
TAO_Reconfig_Scheduler_Entry::
-actual_rt_info (RtecScheduler::RT_Info *rt_info)
+actual_rt_info (TAO_RT_Info_Ex *rt_info)
{
this->actual_rt_info_ = rt_info;
}
@@ -293,7 +690,7 @@ has_unresolved_local_dependencies (int i)
this->has_unresolved_local_dependencies_ = i;
}
-
+/* WSOA merge - commented out
// Accessor for effective period of corresponding RT_Info.
RtecScheduler::Period_t
@@ -332,7 +729,7 @@ effective_exec_multiplier (CORBA::Long l)
{
this->effective_exec_multiplier_ = l;
}
-
+*/
///////////////////////////
// TAO_RSE_Reset_Visitor //
@@ -356,7 +753,20 @@ TAO_RSE_Reset_Visitor::visit (TAO_Reconfig_Scheduler_Entry &rse)
// visitor is applied prior to a DFS traversal, in which callers
// *unset* the thread delineator status of any of their called
// operations that do not specify a period or threads.
- rse.is_thread_delineator (1);
+
+ if (rse.actual_rt_info ()->enabled != RtecScheduler::RT_INFO_NON_VOLATILE)
+ {
+ rse.is_thread_delineator (1);
+
+ // Only reset the period for entries that are not root nodes. Added by BRM.
+ if (rse.actual_rt_info ()->threads == 0)
+ {
+ rse.actual_rt_info ()->period = 0;
+ }
+ }
+
+ // Remove the propagated tuples in the entry.
+ rse.remove_tuples (TAO_Reconfig_Scheduler_Entry::PROPAGATED);
rse.fwd_dfs_status (TAO_Reconfig_Scheduler_Entry::NOT_VISITED);
rse.rev_dfs_status (TAO_Reconfig_Scheduler_Entry::NOT_VISITED);
@@ -366,30 +776,184 @@ TAO_RSE_Reset_Visitor::visit (TAO_Reconfig_Scheduler_Entry &rse)
rse.rev_finished (-1);
rse.has_unresolved_remote_dependencies (0);
rse.has_unresolved_local_dependencies (0);
+ rse.aggregate_exec_time (rse.actual_rt_info ()->worst_case_execution_time);
+ rse.current_admitted_tuple (0);
+ //WSOA merge - commented out
// These settings are used for a conservative but
// efficient approach to estimating utilization:
// for an exact algorithm using frame merging,
// other initial settings might be needed.
- rse.effective_exec_multiplier (0);
- rse.effective_period (0);
+ //rse.effective_exec_multiplier (0);
+ //rse.effective_period (0);
return 0;
}
+// Accessor for effective execution time of corresponding RT_Info.
+
+RtecScheduler::Time
+TAO_Reconfig_Scheduler_Entry::
+aggregate_exec_time ()
+{
+ return this->aggregate_exec_time_;
+}
+// Mutator for effective execution time of corresponding RT_Info.
-///////////////////////////////////////////
-// class TAO_MUF_Reconfig_Sched_Strategy //
-///////////////////////////////////////////
+void
+TAO_Reconfig_Scheduler_Entry::
+aggregate_exec_time (RtecScheduler::Time t)
+{
+ this->aggregate_exec_time_ = t;
+}
+
+// Accessor for the sum of periods for tuples directly associated
+// with the entry.
+RtecScheduler::Period_t
+TAO_Reconfig_Scheduler_Entry::
+orig_tuple_period_sum ()
+{
+ return orig_tuple_period_sum_;
+}
+
+
+// Mutator for the sum of periods for tuples directly associated
+// with the entry.
+void
+TAO_Reconfig_Scheduler_Entry::
+orig_tuple_period_sum (RtecScheduler::Period_t p)
+{
+ orig_tuple_period_sum_ = p;
+}
+
+
+// Accessor for the sum of periods for tuples propagated via
+// dependencies on other entries.
+RtecScheduler::Period_t
+TAO_Reconfig_Scheduler_Entry::
+prop_tuple_period_sum ()
+{
+ return prop_tuple_period_sum_;
+}
+
+
+// Mutator for the sum of periods for tuples propagated via
+// dependencies on other entries.
+void
+TAO_Reconfig_Scheduler_Entry::
+prop_tuple_period_sum (RtecScheduler::Period_t p)
+{
+ prop_tuple_period_sum_ = p;
+}
+
+
+// Accessor for the number of tuples directly associated with the
+// entry.
+u_int
+TAO_Reconfig_Scheduler_Entry::
+orig_tuple_count ()
+{
+ return orig_tuple_count_;
+}
+
+
+// Mutator for the number of tuples directly associated with the
+// entry.
+void
+TAO_Reconfig_Scheduler_Entry::
+orig_tuple_count (u_int c)
+{
+ orig_tuple_count_ = c;
+}
+
+
+// Accessor for the number of tuples propagated via dependencies on
+// other entries.
+u_int
+TAO_Reconfig_Scheduler_Entry::
+prop_tuple_count ()
+{
+ return prop_tuple_count_;
+}
+
+
+// Mutator for the number of tuples propagated via dependencies on
+// other entries.
+void
+TAO_Reconfig_Scheduler_Entry::
+prop_tuple_count (u_int c)
+{
+ prop_tuple_count_ = c;
+}
+
+
+// Accessor for the set of tuples directly associated with the
+// entry.
+TUPLE_SET &
+TAO_Reconfig_Scheduler_Entry::
+orig_tuple_subset ()
+{
+ return orig_tuple_subset_;
+}
+
+
+// Accessor for the set of tuples propagated via dependencies on
+// other entries.
+TUPLE_SET &
+TAO_Reconfig_Scheduler_Entry::
+prop_tuple_subset ()
+{
+ return prop_tuple_subset_;
+}
+
+
+TAO_RT_Info_Tuple *
+TAO_Reconfig_Scheduler_Entry::
+current_admitted_tuple ()
+{
+ return current_admitted_tuple_;
+}
+
+
+void
+TAO_Reconfig_Scheduler_Entry::
+current_admitted_tuple (TAO_RT_Info_Tuple * t)
+{
+ current_admitted_tuple_ = t;
+}
+
+// Accessor for flag indicating whether or not node is enabled.
+
+RtecScheduler::RT_Info_Enabled_Type_t
+TAO_Reconfig_Scheduler_Entry::
+enabled_state () const
+{
+ return this->enabled_;
+}
+
+
+// Mutator for flag indicating whether or not node is enabled.
+
+void
+TAO_Reconfig_Scheduler_Entry::
+enabled_state (RtecScheduler::RT_Info_Enabled_Type_t et)
+{
+ this->enabled_ = et;
+}
+
+
+////////////////////////////////////////////
+// class TAO_Reconfig_Sched_Strategy_Base //
+////////////////////////////////////////////
// Ordering function to compare the DFS finish times of
// two task entries, so qsort orders these in topological
// order, with the higher times *first*
int
-TAO_MUF_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, const void *second)
+TAO_Reconfig_Sched_Strategy_Base::comp_entry_finish_times (const void *first, const void *second)
{
const TAO_Reconfig_Scheduler_Entry *first_entry =
* ACE_reinterpret_cast (const TAO_Reconfig_Scheduler_Entry *const *,
@@ -409,6 +973,16 @@ TAO_MUF_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, con
return -1;
}
+ // sort disabled entries to the end
+ if (first_entry->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return (second_entry->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1;
+ }
+ else if (second_entry->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return -1;
+ }
+
// Sort entries with higher forward DFS finishing times before those
// with lower forward DFS finishing times.
if (first_entry->fwd_finished () >
@@ -425,12 +999,88 @@ TAO_MUF_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, con
return 0;
}
-// Ordering function used to qsort an array of TAO_Reconfig_Scheduler_Entry
-// pointers into a total <priority, subpriority> ordering. Returns -1 if the
-// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+// Determines whether or not an entry is critical, based on operation characteristics.
+// returns 1 if critical, 0 if not
int
-TAO_MUF_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t)
+TAO_Reconfig_Sched_Strategy_Base::is_critical (TAO_Reconfig_Scheduler_Entry &rse)
+{
+ // Look at the underlying RT_Info's criticality field.
+ return (rse.actual_rt_info ()->criticality == RtecScheduler::HIGH_CRITICALITY ||
+ rse.actual_rt_info ()->criticality == RtecScheduler::VERY_HIGH_CRITICALITY)
+ ? 1 : 0;
+}
+
+// Determines whether or not a tuple is critical, based on operation
+// characteristics. returns 1 if critical, 0 if not
+
+int
+TAO_Reconfig_Sched_Strategy_Base::is_critical (TAO_RT_Info_Tuple &t)
+{
+ // Look at the underlying RT_Info's criticality field.
+ return (t.criticality == RtecScheduler::HIGH_CRITICALITY ||
+ t.criticality == RtecScheduler::VERY_HIGH_CRITICALITY)
+ ? 1 : 0;
+}
+
+
+// Compares two entries by subpriority alone. Returns -1 if the first
+// one is higher, 0 if they're the same, and 1 if the second one is
+// higher.
+
+int
+TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (TAO_Reconfig_Scheduler_Entry &lhs,
+ TAO_Reconfig_Scheduler_Entry &rhs)
+{
+ // First, compare importance.
+
+ if (lhs.actual_rt_info ()->importance > rhs.actual_rt_info ()->importance)
+ {
+ return -1;
+ }
+ else if (lhs.actual_rt_info ()->importance < rhs.actual_rt_info ()->importance)
+ {
+ return 1;
+ }
+
+ // Same importance, so look at dfs finish time as a tiebreaker.
+
+ else if (lhs.fwd_finished () > rhs.fwd_finished ())
+ {
+ return -1;
+ }
+ else if (lhs.fwd_finished () < rhs.fwd_finished ())
+ {
+ return 1;
+ }
+
+ // Same dfs finish time, so look at handle as a tiebreaker.
+
+ else if (lhs.actual_rt_info ()->handle > rhs.actual_rt_info ()->handle)
+ {
+ return -1;
+ }
+ else if (lhs.actual_rt_info ()->handle < rhs.actual_rt_info ()->handle)
+ {
+ return 1;
+ }
+
+ // They're the same if we got here.
+ return 0;
+}
+
+
+////////////////////////////////////////////////
+// class TAO_MUF_FAIR_Reconfig_Sched_Strategy //
+////////////////////////////////////////////////
+
+// Ordering function used to qsort an array of TAO_RT_Info_Tuple
+// pointers into a total <priority, subpriority> ordering. Returns -1
+// if the first one is higher, 0 if they're the same, and 1 if the
+// second one is higher.
+
+int
+TAO_MUF_FAIR_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t)
{
// Convert the passed pointers: the double cast is needed to
// make Sun C++ 4.2 happy.
@@ -451,15 +1101,25 @@ TAO_MUF_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void
return -1;
}
+ // sort disabled entries to the end
+ if ((*first)->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1;
+ }
+ else if ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return -1;
+ }
+
int result =
- TAO_MUF_Reconfig_Sched_Strategy::priority_diff (*((*first)->actual_rt_info ()),
- *((*second)->actual_rt_info ()));
+ TAO_MUF_FAIR_Reconfig_Sched_Strategy::compare_priority (**first,
+ **second);
// Check whether they were distinguished by priority.
if (result == 0)
{
- return TAO_MUF_Reconfig_Sched_Strategy::compare_subpriority (**first,
- **second);
+ return TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (**first,
+ **second);
}
else
{
@@ -468,66 +1128,102 @@ TAO_MUF_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void
}
-// Compares two entries by priority alone. Returns -1 if the
-// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+// Ordering function used to qsort an array of RT_Info_Tuple
+// pointers into a total ordering for admission control. Returns
+// -1 if the first one is higher, 0 if they're the same, and 1 if
+// the second one is higher.
int
-TAO_MUF_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &s,
- TAO_Reconfig_Scheduler_Entry &t)
+TAO_MUF_FAIR_Reconfig_Sched_Strategy::total_admission_comp (const void *s,
+ const void *t)
{
- // Simply call the corresponding comparison based on the underlying rt_infos.
- return TAO_MUF_Reconfig_Sched_Strategy::priority_diff (*s.actual_rt_info (),
- *t.actual_rt_info ());
-}
+ // Convert the passed pointers: the double cast is needed to
+ // make Sun C++ 4.2 happy.
+ TAO_RT_Info_Tuple **first =
+ ACE_reinterpret_cast (TAO_RT_Info_Tuple **,
+ ACE_const_cast (void *, s));
+ TAO_Reconfig_Scheduler_Entry * first_entry =
+ ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ (*first)->volatile_token);
-// Compares two entries by subpriority alone. Returns -1 if the
-// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+ TAO_RT_Info_Tuple **second =
+ ACE_reinterpret_cast (TAO_RT_Info_Tuple **,
+ ACE_const_cast (void *, t));
-int
-TAO_MUF_Reconfig_Sched_Strategy::compare_subpriority (TAO_Reconfig_Scheduler_Entry &s,
- TAO_Reconfig_Scheduler_Entry &t)
-{
- // @@ TO DO: add dependency hash tables to strategy, use them to look for
- // *direct* dependencies between two nodes.
+ TAO_Reconfig_Scheduler_Entry * second_entry =
+ ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ (*second)->volatile_token);
- // Compare importance.
- if (s.actual_rt_info ()->importance > t.actual_rt_info ()->importance)
+ // Check the converted pointers.
+ if (first == 0 || *first == 0)
{
- return -1;
+ return (second == 0 || *second == 0) ? 0 : 1;
}
- else if (s.actual_rt_info ()->importance < t.actual_rt_info ()->importance)
+ else if (second == 0 || *second == 0)
{
- return 1;
+ return -1;
}
- // Same importance, so look at dfs finish time as a tiebreaker.
- else if (s.fwd_finished () > t.fwd_finished ())
+
+ // sort disabled tuples to the end
+ if ((*first)->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1;
+ }
+ else if ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return -1;
+ }
+
+ // First, compare according to rate index.
+
+ if ((*first)->rate_index < (*second)->rate_index)
{
return -1;
}
- else if (s.fwd_finished () < t.fwd_finished ())
+ else if ((*second)->rate_index < (*first)->rate_index)
{
return 1;
}
- // They're the same if we got here.
+ // Then compare by priority.
+
+ int result =
+ TAO_MUF_FAIR_Reconfig_Sched_Strategy::compare_priority (**first, **second);
+ if (result != 0)
+ {
+ return result;
+ }
+
+ // Then compare by subpriority.
+
+ result = TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (*first_entry,
+ *second_entry);
+ if (result != 0)
+ {
+ return result;
+ }
+
return 0;
}
-// Compares two RT_Infos by priority alone. Returns -1 if the
+
+// Compares two RT_Info entries by priority alone. Returns -1 if the
// first one is higher, 0 if they're the same, and 1 if the second one is higher.
int
-TAO_MUF_Reconfig_Sched_Strategy::priority_diff (RtecScheduler::RT_Info &s,
- RtecScheduler::RT_Info &t)
+TAO_MUF_FAIR_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &lhs,
+ TAO_Reconfig_Scheduler_Entry &rhs)
{
// In MUF, priority is per criticality level: compare criticalities.
- if (s.criticality > t.criticality)
+ if (lhs.actual_rt_info ()->criticality >
+ rhs.actual_rt_info ()->criticality)
{
return -1;
}
- else if (s.criticality < t.criticality)
+ else if (lhs.actual_rt_info ()->criticality <
+ rhs.actual_rt_info ()->criticality)
{
return 1;
}
@@ -537,24 +1233,34 @@ TAO_MUF_Reconfig_Sched_Strategy::priority_diff (RtecScheduler::RT_Info &s,
}
-// Determines whether or not an entry is critical, based on operation characteristics.
-// returns 1 if critical, 0 if not
+// Compares two RT_Info tuples by priority alone. Returns -1 if the
+// first one is higher, 0 if they're the same, and 1 if the second one is higher.
int
-TAO_MUF_Reconfig_Sched_Strategy::is_critical (TAO_Reconfig_Scheduler_Entry &rse)
+TAO_MUF_FAIR_Reconfig_Sched_Strategy::compare_priority (TAO_RT_Info_Tuple &lhs,
+ TAO_RT_Info_Tuple &rhs)
{
- // Look at the underlying RT_Info's criticality field.
- return (rse.actual_rt_info ()->criticality == RtecScheduler::HIGH_CRITICALITY ||
- rse.actual_rt_info ()->criticality == RtecScheduler::VERY_HIGH_CRITICALITY)
- ? 1 : 0;
+ // In MUF, priority is per criticality level: compare criticalities.
+ if (lhs.criticality > rhs.criticality)
+ {
+ return -1;
+ }
+ else if (lhs.criticality < rhs.criticality)
+ {
+ return 1;
+ }
+
+ // They're the same if we got here.
+ return 0;
}
+
// Fills in a static dispatch configuration for a priority level, based
// on the operation characteristics of a representative scheduling entry.
int
-TAO_MUF_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info,
- TAO_Reconfig_Scheduler_Entry &rse)
+TAO_MUF_FAIR_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info,
+ TAO_Reconfig_Scheduler_Entry &rse)
{
// Global and thread priority of dispatching queue are simply
// those assigned the representative operation it will dispatch.
@@ -567,56 +1273,20 @@ TAO_MUF_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info
return 0;
}
-///////////////////////////////////////////
-// class TAO_RMS_Reconfig_Sched_Strategy //
-///////////////////////////////////////////
-// Ordering function to compare the DFS finish times of
-// two task entries, so qsort orders these in topological
-// order, with the higher times *first*
-int
-TAO_RMS_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, const void *second)
-{
- const TAO_Reconfig_Scheduler_Entry *first_entry =
- * ACE_reinterpret_cast (const TAO_Reconfig_Scheduler_Entry *const *,
- first);
-
- const TAO_Reconfig_Scheduler_Entry *second_entry =
- * ACE_reinterpret_cast (const TAO_Reconfig_Scheduler_Entry *const *,
- second);
-
- // sort blank entries to the end
- if (! first_entry)
- {
- return (second_entry) ? 1 : 0;
- }
- else if (! second_entry)
- {
- return -1;
- }
- // Sort entries with higher forward DFS finishing times before those
- // with lower forward DFS finishing times.
- if (first_entry->fwd_finished () >
- second_entry->fwd_finished ())
- {
- return -1;
- }
- else if (first_entry->fwd_finished () <
- second_entry->fwd_finished ())
- {
- return 1;
- }
+///////////////////////////////////////////////////
+// class TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy //
+///////////////////////////////////////////////////
- return 0;
-}
-// Ordering function used to qsort an array of TAO_Reconfig_Scheduler_Entry
-// pointers into a total <priority, subpriority> ordering. Returns -1 if the
-// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+// Ordering function used to qsort an array of TAO_RT_Info_Tuple
+// pointers into a total <priority, subpriority> ordering. Returns -1
+// if the first one is higher, 0 if they're the same, and 1 if the
+// second one is higher.
int
-TAO_RMS_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t)
+TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t)
{
// Convert the passed pointers: the double cast is needed to
// make Sun C++ 4.2 happy.
@@ -637,15 +1307,28 @@ TAO_RMS_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void
return -1;
}
+ // sort disabled entries to the end
+ if ((*first)->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1;
+ }
+ else if ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return -1;
+ }
+
+
+ // Check whether they are distinguished by priority, and if not,
+ // then by subpriority.
+
int result =
- TAO_RMS_Reconfig_Sched_Strategy::priority_diff (*((*first)->actual_rt_info ()),
- *((*second)->actual_rt_info ()));
+ TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_priority (**first,
+ **second);
- // Check whether they were distinguished by priority.
if (result == 0)
{
- return TAO_RMS_Reconfig_Sched_Strategy::compare_subpriority (**first,
- **second);
+ return TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (**first,
+ **second);
}
else
{
@@ -654,104 +1337,235 @@ TAO_RMS_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void
}
-// Compares two entries by priority alone. Returns -1 if the
-// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+// Ordering function used to qsort an array of RT_Info_Tuple
+// pointers into a total ordering for admission control. Returns
+// -1 if the first one is higher, 0 if they're the same, and 1 if
+// the second one is higher.
int
-TAO_RMS_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &s,
- TAO_Reconfig_Scheduler_Entry &t)
+TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::total_admission_comp (const void *s,
+ const void *t)
{
- // Simply call the corresponding comparison based on the underlying rt_infos.
- return TAO_RMS_Reconfig_Sched_Strategy::priority_diff (*s.actual_rt_info (),
- *t.actual_rt_info ());
-}
+ // Convert the passed pointers: the double cast is needed to
+ // make Sun C++ 4.2 happy.
+ TAO_RT_Info_Tuple **first =
+ ACE_reinterpret_cast (TAO_RT_Info_Tuple **,
+ ACE_const_cast (void *, s));
+ TAO_Reconfig_Scheduler_Entry * first_entry =
+ ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ (*first)->volatile_token);
-// Compares two entries by subpriority alone. Returns -1 if the
-// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+ TAO_RT_Info_Tuple **second =
+ ACE_reinterpret_cast (TAO_RT_Info_Tuple **,
+ ACE_const_cast (void *, t));
-int
-TAO_RMS_Reconfig_Sched_Strategy::compare_subpriority (TAO_Reconfig_Scheduler_Entry &s,
- TAO_Reconfig_Scheduler_Entry &t)
-{
- // @@ TO DO: add dependency hash tables to strategy, use them to look for
- // *direct* dependencies between two nodes.
+ TAO_Reconfig_Scheduler_Entry * second_entry =
+ ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ (*second)->volatile_token);
- // Compare importance.
- if (s.actual_rt_info ()->importance > t.actual_rt_info ()->importance)
+ // Check the converted pointers.
+ if (first == 0 || *first == 0)
+ {
+ return (second == 0 || *second == 0) ? 0 : 1;
+ }
+ else if (second == 0 || *second == 0)
{
return -1;
}
- else if (s.actual_rt_info ()->importance < t.actual_rt_info ()->importance)
+
+ // sort disabled tuples to the end
+ if ((*first)->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1;
+ }
+ else if ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return -1;
+ }
+
+ // First, compare according to minimal rate index.
+
+ if ((*first)->rate_index == 0 && (*second)->rate_index != 0)
+ {
+ return -1;
+ }
+ else if ((*second)->rate_index == 0 && (*first)->rate_index != 0)
{
return 1;
}
- // Same importance, so look at dfs finish time as a tiebreaker.
- else if (s.fwd_finished () > t.fwd_finished ())
+
+ // Then compare by priority.
+
+ int result =
+ TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_criticality (**first,
+ **second);
+ if (result != 0)
+ {
+ return result;
+ }
+
+ // Then compare by subpriority.
+
+ result = TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (*first_entry,
+ *second_entry);
+ if (result != 0)
+ {
+ return result;
+ }
+
+ // Finally, compare by rate index.
+
+ if ((*first)->rate_index < (*second)->rate_index)
{
return -1;
}
- else if (s.fwd_finished () < t.fwd_finished ())
+ else if ((*second)->rate_index < (*first)->rate_index)
{
return 1;
}
- // They're the same if we got here.
return 0;
}
-// Compares two RT_Infos by priority alone. Returns -1 if the
+// Compares two RT_Info entries by criticality alone. Returns -1 if the
// first one is higher, 0 if they're the same, and 1 if the second one is higher.
int
-TAO_RMS_Reconfig_Sched_Strategy::priority_diff (RtecScheduler::RT_Info &s,
- RtecScheduler::RT_Info &t)
+TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_criticality(TAO_Reconfig_Scheduler_Entry &lhs,
+ TAO_Reconfig_Scheduler_Entry &rhs)
{
- // In RMS, priority is per criticality level: compare criticalities.
- if (s.period > t.period)
+ // In MUF, priority is per criticality level: compare criticalities.
+
+ if (lhs.actual_rt_info ()->criticality > rhs.actual_rt_info ()->criticality)
{
return -1;
}
- else if (s.period < t.period)
+ else if (lhs.actual_rt_info ()->criticality < rhs.actual_rt_info ()->criticality)
{
return 1;
}
+ else
+ {
+ return 0;
+ }
+}
+
+// Compares two RT_Info entries by criticality alone. Returns -1 if the
+// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+int
+TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_criticality(TAO_RT_Info_Tuple &lhs,
+ TAO_RT_Info_Tuple &rhs)
+{
+ if (lhs.criticality > rhs.criticality)
+ {
+ return -1;
+ }
+ else if (lhs.criticality < rhs.criticality)
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+// Compares two RT_Info entries by priority alone. Returns -1 if the
+// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+
+int
+TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &lhs,
+ TAO_Reconfig_Scheduler_Entry &rhs)
+{
+ // In MUF, priority is per criticality level: compare criticalities.
+ int result = TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_criticality(lhs, rhs);
+
+ if (result != 0)
+ {
+ return result;
+ }
+
+ // Same criticality: if high criticality, differentiate by rate.
+ if (TAO_Reconfig_Sched_Strategy_Base::is_critical (rhs))
+ {
+ if (lhs.actual_rt_info ()->period < rhs.actual_rt_info ()->period)
+ {
+ return -1;
+ }
+ else if (lhs.actual_rt_info ()->period > rhs.actual_rt_info ()->period)
+ {
+ return 1;
+ }
+ }
// They're the same if we got here.
return 0;
}
-// Determines whether or not an entry is critical, based on operation characteristics.
-// returns 1 if critical, 0 if not
+// Compares two RT_Info tuples by priority alone. Returns -1 if the
+// first one is higher, 0 if they're the same, and 1 if the second one is higher.
int
-TAO_RMS_Reconfig_Sched_Strategy::is_critical (TAO_Reconfig_Scheduler_Entry &rse)
+TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_priority (TAO_RT_Info_Tuple &lhs,
+ TAO_RT_Info_Tuple &rhs)
{
- // Look at the underlying RT_Info's criticality field.
- return (rse.actual_rt_info ()->criticality == RtecScheduler::HIGH_CRITICALITY ||
- rse.actual_rt_info ()->criticality == RtecScheduler::VERY_HIGH_CRITICALITY)
- ? 1 : 0;
+ // In RMS_Dyn, priority is first partitioned per criticality level:
+ // compare criticalities.
+
+ if (lhs.criticality > rhs.criticality)
+ {
+ return -1;
+ }
+ else if (lhs.criticality < rhs.criticality)
+ {
+ return 1;
+ }
+
+ // Same criticality: if high criticality, differentiate by rate.
+ else if (TAO_Reconfig_Sched_Strategy_Base::is_critical (rhs))
+ {
+ if (lhs.period < rhs.period)
+ {
+ return -1;
+ }
+ else if (lhs.period > rhs.period)
+ {
+ return 1;
+ }
+ }
+
+ // They're the same if we got here.
+ return 0;
}
+
// Fills in a static dispatch configuration for a priority level, based
// on the operation characteristics of a representative scheduling entry.
int
-TAO_RMS_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info,
- TAO_Reconfig_Scheduler_Entry &rse)
+TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info,
+ TAO_Reconfig_Scheduler_Entry &rse)
{
// Global and thread priority of dispatching queue are simply
// those assigned the representative operation it will dispatch.
info.preemption_priority = rse.actual_rt_info ()->preemption_priority;
info.thread_priority = rse.actual_rt_info ()->priority;
- // Dispatching queues are all laxity-based in this strategy.
- info.dispatching_type = RtecScheduler::STATIC_DISPATCHING;
+ // Critical queues are static, and non-critical ones are
+ // laxity-based in this strategy.
+ if (TAO_Reconfig_Sched_Strategy_Base::is_critical (rse))
+ {
+ info.dispatching_type = RtecScheduler::STATIC_DISPATCHING;
+ }
+ else
+ {
+ info.dispatching_type = RtecScheduler::LAXITY_DISPATCHING;
+ }
return 0;
}
-
#endif /* TAO_RECONFIG_SCHED_UTILS_C */
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h
index 1b9e3bb151f..06c2a18da5e 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h
@@ -18,6 +18,10 @@
#define TAO_RECONFIG_SCHED_UTILS_H
#include /**/ "ace/pre.h"
+// Uncomment this to turn on some extra trace level debugging info,
+// comment it out to turn off that extra debugging info.
+#define SCHEDULER_LOGGING
+
#include "ace/config-all.h"
#include "orbsvcs/Scheduler_Factory.h"
@@ -28,10 +32,77 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+struct TAO_RTSched_Export TAO_RT_Info_Ex
+ : public RtecScheduler::RT_Info
+ // = TITLE
+ // A wrapper class for the IDL-generated RT_Info operation descriptors.
+ //
+ // = DESCRIPTION
+ // This class provides (re)initialization methods and a validity flag
+ // for the underlying IDL-generated RT_Info descriptor.
+{
+ TAO_RT_Info_Ex ();
+ // Default Constructor.
+
+ TAO_RT_Info_Ex (const RtecScheduler::RT_Info &);
+ // Constructor from an RT_Info
+ // (also serves as a copy constructor).
+
+ virtual ~TAO_RT_Info_Ex ();
+ // Destructor.
+
+ void operator = (const RtecScheduler::RT_Info &);
+ // Assignment operator with an RT_Info on the RHS.
+
+ virtual void reset (u_long reset_flags);
+ // Resets output data members to initial values, and removes tuples
+ // corresponding to the reset flags.
+
+ virtual void enabled_state (RtecScheduler::RT_Info_Enabled_Type_t);
+ // Sets the info and underlying entry's enable states.
+
+ virtual RtecScheduler::RT_Info_Enabled_Type_t enabled_state ();
+ // Returns the info's enable state.
+};
+
+
+struct TAO_RTSched_Export TAO_RT_Info_Tuple
+ : public TAO_RT_Info_Ex
+ // = TITLE
+ // An implementation class used to wrap available operation descriptors.
+ // Each operation may have one or more tuples describing different rates,
+ // etc., for the same operation.
+ //
+ // = DESCRIPTION
+ // This class enables admission control within the Reconfig Scheduler,
+ // which offers improved performance compared to admission control
+ // outside the scheduler.
+{
+ TAO_RT_Info_Tuple ();
+ // Default Constructor.
+
+ TAO_RT_Info_Tuple (const RtecScheduler::RT_Info &);
+ // Constructor from an RT_Info.
+ // (also serves as a copy constructor).
+
+ virtual ~TAO_RT_Info_Tuple ();
+ // Destructor.
+
+ void operator = (const RtecScheduler::RT_Info &);
+ // Assignment operator with an RT_Info on the RHS.
+
+ int operator < (const TAO_RT_Info_Tuple &t);
+ // Less-than comparison operator: orders tuples by ascending rate (descending period).
+
+ u_long rate_index;
+ // Index of the tuple in the operation's ordered available rates
+};
+
class TAO_RTSched_Export TAO_Reconfig_Scheduler_Entry
// = TITLE
- // An implementation class used to store interim scheduling results
+ // An implementation class used to decouple the available descriptors
+ // from the admitted descriptors, and to store interim scheduling results
// such as DFS finishing order, etc.
//
// = DESCRIPTION
@@ -44,19 +115,40 @@ public:
// Info for DFS traversal, topological sort of call graph.
enum DFS_Status {NOT_VISITED, VISITED, FINISHED};
- TAO_Reconfig_Scheduler_Entry (RtecScheduler::RT_Info &rt_info);
+ enum Tuple_Type {ORIGINAL = 0x01UL, PROPAGATED = 0x02UL};
+
+ TAO_Reconfig_Scheduler_Entry (TAO_RT_Info_Ex &rt_info);
// Constructor.
- RtecScheduler::RT_Info & orig_rt_info_data (void);
+ ~TAO_Reconfig_Scheduler_Entry ();
+ // Destructor.
+
+ void remove_tuples (u_long tuple_flags = ORIGINAL | PROPAGATED);
+ // Removes all tuples from the entry.
+
+ int insert_tuple (TAO_RT_Info_Tuple &tuple,
+ Tuple_Type tuple_type = ORIGINAL,
+ int replace = 0);
+ // Inserts a tuple into the appropriate tuple multiset.
+
+ int update_tuple (TAO_RT_Info_Ex &info,
+ Tuple_Type tuple_type = ORIGINAL);
+ // Updates a matching tuple.
+
+ int register_tuples (TAO_RT_Info_Tuple ** tuple_ptr_array,
+ long &tuple_count);
+ // Registers tuples into the passed tuple pointer array.
+
+ TAO_RT_Info_Ex & orig_rt_info_data (void);
// Accessor for stored original RT_Info data.
- void orig_rt_info_data (RtecScheduler::RT_Info &data);
+ void orig_rt_info_data (TAO_RT_Info_Ex &data);
// Mutator for stored original RT_Info data.
- RtecScheduler::RT_Info * actual_rt_info ();
+ TAO_RT_Info_Ex * actual_rt_info ();
// Accessor for actual RT_Info.
- void actual_rt_info (RtecScheduler::RT_Info *);
+ void actual_rt_info (TAO_RT_Info_Ex *);
// Mutator for actual RT_Info.
long fwd_discovered () const;
@@ -119,6 +211,74 @@ public:
// Mutator for flag indicating whether node has unresolved local
// dependencies.
+ RtecScheduler::Time aggregate_exec_time ();
+ // Accessor for effective execution time of the corresponding
+ // RT_Info and all of its disjunctively (i.e., dispatching waveforms
+ // are additive) executed dependants.
+
+ void aggregate_exec_time (RtecScheduler::Time t);
+ // Mutator for effective execution time of the corresponding RT_Info
+ // and its disjunctively executed dependants.
+
+ RtecScheduler::Period_t orig_tuple_period_sum ();
+ // Accessor for the sum of periods for tuples directly associated
+ // with the entry. It can be used to compute the mean rate for the
+ // entry.
+
+ void orig_tuple_period_sum (RtecScheduler::Period_t p);
+ // Mutator for the sum of periods for tuples directly associated
+ // with the entry. It can be used to compute the mean rate for the
+ // entry.
+
+ RtecScheduler::Period_t prop_tuple_period_sum ();
+ // Accessor for the sum of periods for tuples propagated via
+ // dependencies on other entries. It can be used to compute the
+ // mean rate for the entry.
+
+ void prop_tuple_period_sum (RtecScheduler::Period_t p);
+ // Mutator for the sum of periods for tuples propagated via
+ // dependencies on other entries. It can be used to compute the
+ // mean rate for the entry.
+
+ u_int orig_tuple_count ();
+ // Accessor for the number of tuples directly associated with the
+ // entry.
+
+ void orig_tuple_count (u_int c);
+ // Mutator for the number of tuples directly associated with the
+ // entry.
+
+ u_int prop_tuple_count ();
+ // Accessor for the number of tuples propagated via dependencies on
+ // other entries.
+
+ void prop_tuple_count (u_int c);
+ // Mutator for the number of tuples propagated via dependencies on
+ // other entries.
+
+ TUPLE_SET& orig_tuple_subset ();
+ // Accessor for the set of tuples directly associated with the
+ // entry.
+
+ TUPLE_SET& prop_tuple_subset ();
+ // Accessor for the set of tuples propagated via dependencies on
+ // other entries.
+
+ TAO_RT_Info_Tuple * current_admitted_tuple ();
+ // Returns a pointer to the entry's most recently admitted tuple.
+ // The pointer is zero if no tuples have been admitted so far.
+
+ void current_admitted_tuple (TAO_RT_Info_Tuple *);
+ // Sets a pointer to the entry's most recently admitted tuple.
+ // The pointer is zero if no tuples have been admitted so far.
+
+ RtecScheduler::RT_Info_Enabled_Type_t enabled_state () const;
+ // Accessor for flag indicating whether or not node is enabled.
+
+ void enabled_state (RtecScheduler::RT_Info_Enabled_Type_t);
+ // Mutator for flag indicating whether or not node is enabled.
+
+/* WSOA merge - commented out
RtecScheduler::Period_t effective_period ();
// Accessor for effective period of corresponding RT_Info.
@@ -132,16 +292,17 @@ public:
void effective_exec_multiplier (CORBA::Long l);
// Mutator for effective execution time multiplier of corresponding
// RT_Info.
+*/
private:
- RtecScheduler::RT_Info orig_rt_info_data_;
+ TAO_RT_Info_Ex orig_rt_info_data_;
// Stores the values of operation characteristics as they were specified
// in the most recent call to the Reconfig_Scheduler's set () method.
// That way, the scheduler propagation pass can overwrite RT_Info fields
// without losing the original values. This is useful when
- RtecScheduler::RT_Info *actual_rt_info_;
+ TAO_RT_Info_Ex *actual_rt_info_;
// Points to the actual RT_Info to which the schedling entry corresponds.
DFS_Status fwd_dfs_status_;
@@ -173,12 +334,45 @@ private:
// Flag indicating whether or not there are unresolved local
// dependencies in the entry's dependency call chain.
+ RtecScheduler::Time aggregate_exec_time_;
+ // Effective execution time for corresponding RT_Info and its
+ // disjunctively executed dependants.
+
+ RtecScheduler::Period_t orig_tuple_period_sum_;
+ // Sum of periods for tuples directly associated with the entry. It
+ // can be used to compute the mean rate for the entry.
+
+ RtecScheduler::Period_t prop_tuple_period_sum_;
+ // The sum of periods for tuples propagated via dependencies on
+ // other entries. It can be used to compute the mean rate for the
+ // entry.
+
+ u_int orig_tuple_count_;
+ // The number of tuples directly associated with the entry.
+
+ u_int prop_tuple_count_;
+ // The number of tuples propagated via dependencies on other
+ // entries.
+
+ TUPLE_SET orig_tuple_subset_;
+ // The set of tuples directly associated with the entry.
+
+ TUPLE_SET prop_tuple_subset_;
+ // The set of tuples propagated via dependencies on other entries.
+
+ TAO_RT_Info_Tuple * current_admitted_tuple_;
+ // A pointer to the entry's most recently admitted tuple.
+
+ RtecScheduler::RT_Info_Enabled_Type_t enabled_;
+ // Flag indicating whether or not node is enabled.
+
+ /* - WSOA merge - commented out
CORBA::Long effective_exec_multiplier_;
// Effective execution time multiplier for corresponding RT_Info.
RtecScheduler::Period_t effective_period_;
// Effective period of corresponding RT_Info.
-
+ */
};
@@ -213,58 +407,104 @@ public:
TAO_RSE_Reset_Visitor ();
// Constructor.
+ virtual ~TAO_RSE_Reset_Visitor () {}
+ // Destructor.
+
virtual int visit (TAO_Reconfig_Scheduler_Entry &rse);
// Resets the fields in the entry to pre-DFS traversal states.
// Returns 0 on success and -1 on error.
};
+class TAO_RTSched_Export TAO_RT_Info_Tuple_Visitor
+ // = TITLE
+ // An abstract base class for RT_Info tuple visitors.
+ //
+ // = DESCRIPTION
+ // This class simplifies the reconfig scheduler implementation
+ // by giving a common interface for distinct visitors over the
+ // RT_Info tuples.
+{
+public:
+
+ virtual int visit (TAO_RT_Info_Tuple &) = 0;
+ // Visit a RT_Info tuple.
+
+};
+
+
+class TAO_RTSched_Export TAO_Reconfig_Sched_Strategy_Base
+ // = TITLE
+ // A base class for scheduling strategies
+ //
+ // = DESCRIPTION This class provides a DFS finish time comparison
+ // function, a static subpriority comparison function, and a
+ // criticality evaluation function for all scheduling strategies.
+{
+public:
+
+ static int comp_entry_finish_times (const void *first, const void *second);
+ // Ordering function to compare the DFS finish times of
+ // two task entries, so qsort orders these in topological
+ // order, with the higher times *first*.
+ static int is_critical (TAO_Reconfig_Scheduler_Entry &rse);
+ // Determines whether or not an entry is critical, based on
+ // operation characteristics. returns 1 if critical, 0 if not
+ static int is_critical (TAO_RT_Info_Tuple &t);
+ // Determines whether or not a tuple is critical, based on operation
+ // characteristics. returns 1 if critical, 0 if not
-class TAO_RTSched_Export TAO_MUF_Reconfig_Sched_Strategy
- // = TITLE
- // A scheduling strategy that implements the Maximum
- // Urgency First scheduling algorithm.
+ static int compare_subpriority (TAO_Reconfig_Scheduler_Entry &,
+ TAO_Reconfig_Scheduler_Entry &);
+ // Compares two entries by subpriority alone. Returns -1 if the
+ // first one is higher, 0 if they're the same, and 1 if the second one is higher.
+};
+
+class TAO_RTSched_Export TAO_MUF_FAIR_Reconfig_Sched_Strategy
+ : public TAO_Reconfig_Sched_Strategy_Base
+ // = TITLE
+ // A scheduling strategy that implements the Maximum Urgency First
+ // scheduling algorithm with Fair Admission of Indexed Rates
+ // (FAIR).
//
// = DESCRIPTION
// The strategy assigns static thread and global priority according
// to operation criticality, assigns static subpriority according to
// importance and then topological order, and assigns a dispatching
// configuration with a minimum laxity dispatching queue for each
- // distinct criticality level.
+ // distinct criticality level. It admits operation tuples in order
+ // of ascending rate index, where the lowest rate for an operation
+ // has index 0, the next higher rate has index 1, etc.
{
public:
- static int comp_entry_finish_times (const void *first, const void *second);
- // Ordering function to compare the DFS finish times of
- // two task entries, so qsort orders these in topological
- // order, with the higher times *first*.
-
static int total_priority_comp (const void *, const void *);
- // Ordering function used to qsort an array of
- // TAO_Reconfig_Scheduler_Entry pointers into a total <priority,
- // subpriority> ordering. Returns -1 if the first one is higher, 0
- // if they're the same, and 1 if the second one is higher.
+ // Ordering function used to qsort an array of RT_Info_Tuple
+ // pointers into a total <priority, subpriority> ordering. Returns
+ // -1 if the first one is higher, 0 if they're the same, and 1 if
+ // the second one is higher.
+
+ static int total_admission_comp (const void *, const void *);
+ // Ordering function used to qsort an array of RT_Info_Tuple
+ // pointers into a total ordering for admission control. Returns
+ // -1 if the first one is higher, 0 if they're the same, and 1 if
+ // the second one is higher.
static int compare_priority (TAO_Reconfig_Scheduler_Entry &,
TAO_Reconfig_Scheduler_Entry &);
// Compares two entries by priority alone. Returns -1 if the
// first one is higher, 0 if they're the same, and 1 if the second one is higher.
-
- static int compare_subpriority (TAO_Reconfig_Scheduler_Entry &,
- TAO_Reconfig_Scheduler_Entry &);
- // Compares two entries by subpriority alone. Returns -1 if the
+ static int compare_priority (TAO_RT_Info_Tuple &,
+ TAO_RT_Info_Tuple &);
+ // Compares two tuples by priority alone. Returns -1 if the
// first one is higher, 0 if they're the same, and 1 if the second one is higher.
- static int priority_diff (RtecScheduler::RT_Info &s,
- RtecScheduler::RT_Info &t);
- // Compares two RT_Infos by priority alone. Returns -1 if the
- // first one is higher, 0 if they're the same, and 1 if the second one is higher.
-
- static int is_critical (TAO_Reconfig_Scheduler_Entry &rse);
- // Determines whether or not an entry is critical, based on operation characteristics.
- // returns 1 if critical, 0 if not
+ static int compare_admission_order (TAO_RT_Info_Tuple &,
+ TAO_RT_Info_Tuple &);
+ // Compares two tuples by the given admission ordering. Returns -1 if the
+ // first one is earlier, 0 if they're the same, and 1 if the second one is earlier.
static int assign_config (RtecScheduler::Config_Info &,
TAO_Reconfig_Scheduler_Entry &);
@@ -272,51 +512,69 @@ public:
// on the operation characteristics of a representative scheduling entry.
};
-class TAO_RTSched_Export TAO_RMS_Reconfig_Sched_Strategy
+
+class TAO_RTSched_Export TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy
+ : public TAO_Reconfig_Sched_Strategy_Base
// = TITLE
- // A scheduling strategy that implements the Maximum
- // Urgency First scheduling algorithm.
+ // A scheduling strategy that implements the Boeing RMS-Dynamic
+ // scheduling algorithm, and the Honeywell MNO admission control
+ // algorithm.
//
// = DESCRIPTION
- // The strategy assigns static thread and global priority according
- // to operation criticality, assigns static subpriority according to
- // importance and then topological order, and assigns a dispatching
- // configuration with a minimum laxity dispatching queue for each
- // distinct criticality level.
+ // The strategy assigns static thread and global priority
+ // according to criticality and rate, assigns static subpriority
+ // according to importance and then topological order, and assigns
+ // a dispatching configuration with a static dispatching queue for
+ // each high criticality rate, and a single minimum laxity
+ // dispatching queue for all low criticality operations. It
+ // admits the lowest rate-index tuple for each operation, then
+ // admits operations at their highest admissible rates in priority
+ // order.
{
public:
- static int comp_entry_finish_times (const void *first, const void *second);
- // Ordering function to compare the DFS finish times of
- // two task entries, so qsort orders these in topological
- // order, with the higher times *first*.
-
static int total_priority_comp (const void *, const void *);
- // Ordering function used to qsort an array of
- // TAO_Reconfig_Scheduler_Entry pointers into a total <priority,
- // subpriority> ordering. Returns -1 if the first one is higher, 0
- // if they're the same, and 1 if the second one is higher.
+ // Ordering function used to qsort an array of RT_Info_Tuple
+ // pointers into a total <priority, subpriority> ordering. Returns
+ // -1 if the first one is higher, 0 if they're the same, and 1 if
+ // the second one is higher.
+
+ static int total_admission_comp (const void *, const void *);
+ // Ordering function used to qsort an array of RT_Info_Tuple
+ // pointers into a total ordering for admission control. Returns
+ // -1 if the first one is higher, 0 if they're the same, and 1 if
+ // the second one is higher.
+
+ static int compare_criticality(TAO_Reconfig_Scheduler_Entry &lhs,
+ TAO_Reconfig_Scheduler_Entry &rhs);
+ // Compares two entries by criticality alone. Returns -1 if the
+ // first one is higher, 0 if they're the same, and 1 if the second one is higher.
+
+ static int compare_criticality(TAO_RT_Info_Tuple &lhs,
+ TAO_RT_Info_Tuple &rhs);
+ // Compares two entries by criticality alone. Returns -1 if the
+ // first one is higher, 0 if they're the same, and 1 if the second one is higher.
static int compare_priority (TAO_Reconfig_Scheduler_Entry &,
TAO_Reconfig_Scheduler_Entry &);
// Compares two entries by priority alone. Returns -1 if the
// first one is higher, 0 if they're the same, and 1 if the second one is higher.
+ static int compare_priority (TAO_RT_Info_Tuple &,
+ TAO_RT_Info_Tuple &);
+ // Compares two tuples by priority alone. Returns -1 if the
+ // first one is higher, 0 if they're the same, and 1 if the second one is higher.
+
+ static int compare_admission_order (TAO_RT_Info_Tuple &,
+ TAO_RT_Info_Tuple &);
+ // Compares two entries by admission ordering policy. Returns -1 if the
+ // first one is earlier, 0 if they're the same, and 1 if the second one is earlier.
static int compare_subpriority (TAO_Reconfig_Scheduler_Entry &,
TAO_Reconfig_Scheduler_Entry &);
// Compares two entries by subpriority alone. Returns -1 if the
// first one is higher, 0 if they're the same, and 1 if the second one is higher.
- static int priority_diff (RtecScheduler::RT_Info &s,
- RtecScheduler::RT_Info &t);
- // Compares two RT_Infos by priority alone. Returns -1 if the
- // first one is higher, 0 if they're the same, and 1 if the second one is higher.
-
- static int is_critical (TAO_Reconfig_Scheduler_Entry &rse);
- // Determines whether or not an entry is critical, based on operation characteristics.
- // returns 1 if critical, 0 if not
-
static int assign_config (RtecScheduler::Config_Info &,
TAO_Reconfig_Scheduler_Entry &);
// Fills in a static dispatch configuration for a priority level, based
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp
index d9919c85c6f..6882f6632c0 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp
@@ -40,15 +40,7 @@ ACE_RCSID(Sched, Reconfig_Sched_Utils_T, "$Id$")
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
TAO_RSE_Dependency_Visitor
- (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & dependency_map, ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & rt_info_map)
+ (DEPENDENCY_SET_MAP & dependency_map, RT_INFO_MAP & rt_info_map)
: dependency_map_ (dependency_map),
rt_info_map_ (rt_info_map)
{
@@ -65,6 +57,7 @@ visit (TAO_Reconfig_Scheduler_Entry &rse)
{
int result = 0;
+ /* WSOA merge - commented out
// Call unconditional action method, which performs any necessary
// modifications that are applied to each node unconditionally.
if (this->unconditional_action (rse) < 0)
@@ -73,6 +66,7 @@ visit (TAO_Reconfig_Scheduler_Entry &rse)
"TAO_RSE_Dependency_Visitor::"
"visit: error from unconditional action.\n"), -1);
}
+ */
// Call precondition hook method, and only proceed if the
// precondition returns 0 for success.
@@ -103,15 +97,22 @@ visit (TAO_Reconfig_Scheduler_Entry &rse)
{
// Iterate over the set of dependencies for the current entry.
TAO_Reconfig_Scheduler_Entry * next_rse = 0;
- RtecScheduler::RT_Info *next_rt_info;
+ TAO_RT_Info_Ex *next_rt_info;
for (u_int i = 0; i < dependency_set->length (); ++i)
{
+ // Skip over disabled dependencies
+ if ((*dependency_set) [i].enabled == RtecBase::DEPENDENCY_DISABLED)
+ {
+ continue;
+ }
+
// Take the handle from the dependency and use it
// to obtain an RT_Info pointer from the map.
if (rt_info_map_.find ((*dependency_set) [i].rt_info,
next_rt_info) != 0)
{
- ACE_ERROR_RETURN ((LM_ERROR, "RT_Info not found.\n"), -1);
+ ACE_ERROR_RETURN ((LM_ERROR, "RT_Info (%i) not found.\n",
+ (*dependency_set) [i].rt_info), -1);
}
// Extract a pointer to the scheduling entry from the RT_Info.
@@ -170,7 +171,7 @@ visit (TAO_Reconfig_Scheduler_Entry &rse)
return 0;
}
-
+/* WSOA merge - commented out
// Performs an unconditional action when the entry is first reached.
// Returns 0 for success, and -1 if an error occurred.
@@ -182,7 +183,7 @@ unconditional_action (TAO_Reconfig_Scheduler_Entry &rse)
ACE_UNUSED_ARG (rse);
return 0;
}
-
+*/
// Tests whether or not any conditional actions should be taken for
// the entry. Returns 0 if the actions should be applied, 1 if the
@@ -192,9 +193,10 @@ template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
precondition (TAO_Reconfig_Scheduler_Entry &rse)
{
- // Default behavior: just return success.
- ACE_UNUSED_ARG (rse);
- return 0;
+ // Only signal to proceed (0) if the passed entry is enabled or non-volatile
+ return (rse.enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ ? 1
+ : 0;
}
@@ -251,16 +253,8 @@ postfix_action (TAO_Reconfig_Scheduler_Entry &rse)
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
TAO_RSE_DFS_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
TAO_RSE_DFS_Visitor
- (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & dependency_map,
- ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & rt_info_map)
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map)
: TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
(dependency_map, rt_info_map),
DFS_time_ (0)
@@ -276,12 +270,17 @@ template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
TAO_RSE_DFS_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
precondition (TAO_Reconfig_Scheduler_Entry &rse)
{
- return (rse.fwd_dfs_status () ==
- TAO_Reconfig_Scheduler_Entry::NOT_VISITED)
- ? 0 : 1;
+ int result =
+ TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+ precondition (rse);
+
+ return (result == 0)
+ ? ((rse.fwd_dfs_status () == TAO_Reconfig_Scheduler_Entry::NOT_VISITED)
+ ? 0
+ : 1)
+ : result;
}
-
// Marks entry as forward visited and sets its forward DFS start
// time, prior to visiting any of its successors. Returns 0 on
// success and -1 on error.
@@ -308,10 +307,11 @@ pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry,
ACE_UNUSED_ARG (entry);
ACE_UNUSED_ARG (di);
- // Operations we reached via a dependency and that do not
+ // Enabled operations we reached via a dependency and that do not
// specify a period are not thread delineators.
- if (successor.actual_rt_info ()->period == 0 &&
- successor.actual_rt_info ()->threads == 0)
+ if (successor.enabled_state () != RtecScheduler::RT_INFO_DISABLED
+ && successor.actual_rt_info ()->period == 0
+ && successor.actual_rt_info ()->threads == 0)
{
successor.is_thread_delineator (0);
}
@@ -343,16 +343,8 @@ postfix_action (TAO_Reconfig_Scheduler_Entry &rse)
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
TAO_RSE_SCC_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
TAO_RSE_SCC_Visitor
- (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & dependency_map,
- ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & rt_info_map)
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map)
: TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
(dependency_map, rt_info_map),
DFS_time_ (0),
@@ -361,7 +353,6 @@ TAO_RSE_SCC_Visitor
{
}
-
// Accessor for number of cycles detected in traversal.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
@@ -393,7 +384,7 @@ in_a_cycle (int i)
this->in_a_cycle_ = i;
}
-
+/* WSOA merge - commented out
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
TAO_RSE_SCC_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
unconditional_action (TAO_Reconfig_Scheduler_Entry &rse)
@@ -408,6 +399,7 @@ unconditional_action (TAO_Reconfig_Scheduler_Entry &rse)
return 0;
}
+*/
// Makes sure the entry has not previously been visited in the
// reverse DFS (call graph transpose) direction. Returns 0 if
@@ -418,9 +410,15 @@ template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
TAO_RSE_SCC_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
precondition (TAO_Reconfig_Scheduler_Entry &rse)
{
- return (rse.rev_dfs_status () ==
- TAO_Reconfig_Scheduler_Entry::NOT_VISITED)
- ? 0 : 1;
+ int result =
+ TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+ precondition (rse);
+
+ return (result == 0)
+ ? ((rse.rev_dfs_status () == TAO_Reconfig_Scheduler_Entry::NOT_VISITED)
+ ? 0
+ : 1)
+ : 1;
}
@@ -454,7 +452,9 @@ pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry,
{
ACE_UNUSED_ARG (di);
- if (successor.rev_dfs_status () ==
+ if (successor.enabled_state () !=
+ RtecScheduler::RT_INFO_DISABLED
+ && successor.rev_dfs_status () ==
TAO_Reconfig_Scheduler_Entry::NOT_VISITED)
{
if (this->in_a_cycle () == 0)
@@ -487,26 +487,85 @@ postfix_action (TAO_Reconfig_Scheduler_Entry &rse)
return 0;
}
+/////////////////////////////////////////
+// TAO_RSE_Reverse_Propagation_Visitor //
+/////////////////////////////////////////
+
+// Constructor.
-/////////////////////////////////
-// TAO_RSE_Propagation_Visitor //
-/////////////////////////////////
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+TAO_RSE_Reverse_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Reverse_Propagation_Visitor
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map)
+ : TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> (dependency_map, rt_info_map)
+{
+}
+
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
+TAO_RSE_Reverse_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry,
+ TAO_Reconfig_Scheduler_Entry &successor,
+ const RtecScheduler::Dependency_Info &di)
+{
+ ACE_UNUSED_ARG (di);
+
+ // @TODO - check for conjunction nodes here and perform conjunctive
+ // function on existing rate tuples. Idea: treat conjunctive tuples
+ // as skolem functions over the possible rates of their incedent
+ // edges thread delineators!!! Then, can tentatively compute
+ // utilization for rate combinations. Question: can I find a case
+ // where this makes tuple rate admission non-monotonic??? I.e.,
+ // where a higher rate for an input results in a lower utilization?
+ // Might require a skew in the exec times and rates. What are the
+ // determining characteristics of this? What impact if any does
+ // phasing have on this?
+
+ // Check for conjunction nodes and don't propagate
+ // upward from them: they represent a cut point in the graph.
+ // Do not allow conjunction nodes for now.
+ if (entry.actual_rt_info ()->info_type == RtecScheduler::CONJUNCTION)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Conjunction Nodes are not supported currently.")),
+ -1);
+ }
+ else
+ {
+ // @TODO - replace the explicit WCET attribute propagation with
+ // a scheduling strategy functor that propagates arbitrary
+ // execution time attributes. BTW, for conjunctions BCET and WCET
+ // are probably needed relative the upper and lower bounds on
+ // arrival waveforms.
+
+ // Add the successor's aggregate time to the entry's aggregate time.
+ // Since we're visiting in topological order (called nodes before
+ // calling nodes), the successor's aggregate time is up to date.
+ if (successor.enabled_state () != RtecScheduler::RT_INFO_DISABLED)
+ {
+ entry.aggregate_exec_time (entry.aggregate_exec_time ()
+ + successor.aggregate_exec_time ());
+ }
+ }
+
+
+ // Do not recurse on the successor node, just continue to the next successor.
+ return 1;
+}
+
+
+/////////////////////////////////////////
+// TAO_RSE_Forward_Propagation_Visitor //
+/////////////////////////////////////////
// Constructor.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
-TAO_RSE_Propagation_Visitor
- (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & dependency_map,
- ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & rt_info_map)
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map)
: TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> (dependency_map, rt_info_map),
unresolved_locals_ (0),
unresolved_remotes_ (0),
@@ -518,7 +577,7 @@ TAO_RSE_Propagation_Visitor
// Accessor for number of nodes with unresolved local dependencies.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
unresolved_locals (void)
{
return this->unresolved_locals_;
@@ -528,7 +587,7 @@ unresolved_locals (void)
// Mutator for number of nodes with unresolved local dependencies.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
unresolved_locals (int i)
{
this->unresolved_locals_ = i;
@@ -538,7 +597,7 @@ unresolved_locals (int i)
// Accessor for number of nodes with unresolved remote dependencies.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
unresolved_remotes (void)
{
return this->unresolved_remotes_;
@@ -548,7 +607,7 @@ unresolved_remotes (void)
// Mutator for number of nodes with unresolved remote dependencies.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
unresolved_remotes (int i)
{
this->unresolved_remotes_ = i;
@@ -557,7 +616,7 @@ unresolved_remotes (int i)
// Accessor for number of nodes with thread specification errors.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
thread_specification_errors (void)
{
return this->thread_specification_errors_;
@@ -567,7 +626,7 @@ thread_specification_errors (void)
// Mutator for number of nodes with thread specification errors.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
thread_specification_errors (int i)
{
this->thread_specification_errors_ = i;
@@ -581,7 +640,7 @@ thread_specification_errors (int i)
// problems is not considered an error, at least for this method).
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
prefix_action (TAO_Reconfig_Scheduler_Entry &rse)
{
// Complain about anything that is still marked as a thread
@@ -622,7 +681,7 @@ prefix_action (TAO_Reconfig_Scheduler_Entry &rse)
// must also specify a period.
++this->thread_specification_errors_;
ACE_DEBUG ((LM_ERROR,
- "RT_Info \"%s\" specifies %ld "
+ "RT_Info \"%s\" specifies %1d "
"threads, but no period.\n",
rse.actual_rt_info ()->entry_point.in (),
rse.actual_rt_info ()->threads));
@@ -634,112 +693,98 @@ prefix_action (TAO_Reconfig_Scheduler_Entry &rse)
}
-// Propagates effective period and execution time multiplier from
-// entry to successor prior to visiting successor. Returns 0 on
-// success and -1 on error.
+// Propagates effective period from entry to successor prior to
+// visiting successor. Returns 0 on success and -1 on error.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
-TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry,
TAO_Reconfig_Scheduler_Entry &successor,
const RtecScheduler::Dependency_Info &di)
{
+ if (successor.enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return 1;
+ }
+
ACE_UNUSED_ARG (di);
+ TAO_RT_Info_Tuple **tuple_ptr_ptr;
- // This method makes a conservative estimate in cases where periods
- // differ, taking the minimum frame size and dividing down the
- // execution multiplier of the longer frame (and rounding the result
- // upward as needed). A more exact computation could be achieved
- // by merging sets of arrivals and frame offsets, but that
- // would in turn cost more in run-time computation time.
- // NOTE: this approach *only* works for harmonic periods. For
- // non-harmonic periods, the set merge approach is necessary.
+ TUPLE_SET_ITERATOR orig_tuple_iter (entry.orig_tuple_subset ());
- if (successor.effective_period () == 0)
+ while (orig_tuple_iter.done () == 0)
{
- // If this is the first dependency by which the successor has
- // been reached, and the successor is not itself a thread
- // delineator, then simply adopt the effective period and
- // execution time multiplier of the shorter period.
- successor.effective_period (entry.effective_period ());
- successor.effective_exec_multiplier (entry.effective_exec_multiplier ());
+ if (orig_tuple_iter.next (tuple_ptr_ptr) == 0
+ || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Failed to access tuple under iterator"));
+ return -1;
+ }
+
+ // @TODO - check for conjunction nodes here and perform conjunctive
+ // function on existing rate tuples.
+
+ ACE_DEBUG((LM_DEBUG, "Inserting new propagated tuple for RT_Info: %d, entry_ptr: 0x%x, tuple_ptr: 0x%x\n",
+ successor.actual_rt_info ()->handle,
+ &successor,
+ (*tuple_ptr_ptr)));
+ // Propagate tuples disjunctively.
+ successor.insert_tuple (**tuple_ptr_ptr,
+ TAO_Reconfig_Scheduler_Entry::PROPAGATED);
+
+ successor.actual_rt_info ()->period =
+ (successor.actual_rt_info ()->period == 0)
+ ? (*tuple_ptr_ptr)->period
+ : ACE::minimum_frame_size (successor.actual_rt_info ()->period,
+ (*tuple_ptr_ptr)->period);
+ orig_tuple_iter.advance ();
}
- else
- {
- // Otherwise, take the smaller of the two periods, and divide down
- // the execution multipliers accordingly.
- long new_exec_multiplier = 0;
- long old_exec_multiplier = 0;
+ TUPLE_SET_ITERATOR prop_tuple_iter (entry.prop_tuple_subset ());
- if (successor.effective_period () < entry.effective_period ())
+ while (prop_tuple_iter.done () == 0)
+ {
+ if (prop_tuple_iter.next (tuple_ptr_ptr) == 0
+ || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0)
{
- // Store the previous execution multiplier.
- old_exec_multiplier = successor.effective_exec_multiplier ();
-
- // Divide down the new execution multiplier.
- new_exec_multiplier =
- ACE_static_cast (long,
- (old_exec_multiplier *
- successor.effective_period ()) /
- entry.effective_period ());
-
- // Adjust for round-off error.
- if (old_exec_multiplier >
- ACE_static_cast (long,
- (new_exec_multiplier *
- entry.effective_period ()) /
- successor.effective_period ()))
- {
- ++new_exec_multiplier;
- }
-
- // Set the successor's effective period and execution multiplier.
- successor.effective_period (entry.effective_period ());
- successor.effective_exec_multiplier (entry.effective_exec_multiplier () +
- new_exec_multiplier);
- }
- else
- {
- // Store the previous execution multiplier.
- old_exec_multiplier = entry.effective_exec_multiplier ();
-
- // Divide down the new execution multiplier.
- new_exec_multiplier =
- ACE_static_cast (long,
- old_exec_multiplier *
- entry.effective_period () /
- successor.effective_period ());
-
- // Adjust for round-off error.
- if (old_exec_multiplier >
- ACE_static_cast (long,
- new_exec_multiplier *
- successor.effective_period () /
- entry.effective_period ()))
- {
- ++new_exec_multiplier;
- }
-
- // Just set the successor's execution multiplier (the period is unchanged).
- successor.effective_exec_multiplier (successor.effective_exec_multiplier () +
- new_exec_multiplier);
+ ACE_ERROR ((LM_ERROR,
+ "Failed to access tuple under iterator"));
+ return -1;
}
+
+ // @TODO - check for conjunction nodes here and perform conjunctive
+ // function on existing rate tuples.
+
+ ACE_DEBUG((LM_DEBUG, "Inserting new propagated tuple for RT_Info: %d, entry_ptr: 0x%x, tuple_ptr: 0x%x\n",
+ successor.actual_rt_info ()->handle,
+ &successor,
+ (*tuple_ptr_ptr)));
+ // Propagate tuples disjunctively.
+ successor.insert_tuple (**tuple_ptr_ptr,
+ TAO_Reconfig_Scheduler_Entry::PROPAGATED);
+
+ successor.actual_rt_info ()->period =
+ (successor.actual_rt_info ()->period == 0)
+ ? (*tuple_ptr_ptr)->period
+ : ACE::minimum_frame_size (successor.actual_rt_info ()->period,
+ (*tuple_ptr_ptr)->period);
+
+ prop_tuple_iter.advance ();
}
// Do not recurse on the successor node, just continue to the next successor.
return 1;
}
-
////////////////////////////////////
// class TAO_RSE_Priority_Visitor //
////////////////////////////////////
// Constructor.
-template <class RECONFIG_SCHED_STRATEGY>
-TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
TAO_RSE_Priority_Visitor (RtecScheduler::handle_t handles,
TAO_Reconfig_Scheduler_Entry ** entry_ptr_array)
: previous_entry_ (0),
@@ -754,17 +799,23 @@ TAO_RSE_Priority_Visitor (RtecScheduler::handle_t handles,
}
-// Visit a Reconfig Scheduler Entry. This method
-// assigns a priority and subpriority value to each
-// entry. Priorities are assigned in increasing value
-// order, with lower numbers corresponding to higher
-// priorities.
+// Visit a RT_Info tuple. This method assigns a priority and
+// subpriority value to each tuple. Priorities are assigned in
+// increasing numeric order, with lower numbers corresponding to
+// higher priorities.
-template <class RECONFIG_SCHED_STRATEGY> int
-TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler_Entry &rse)
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
+TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::visit (TAO_Reconfig_Scheduler_Entry &rse)
{
int result = 0;
+ ACE_DEBUG ((LM_DEBUG,
+ "Priority_Visitor visiting %s[%d],crit=%d,period=%d\n",
+ rse.actual_rt_info ()->entry_point.in(),
+ rse.actual_rt_info ()->handle,
+ rse.actual_rt_info ()->criticality,
+ rse.actual_rt_info ()->period));
+
if (previous_entry_ == 0)
{
// Indicate a new priority level was assigned.
@@ -777,7 +828,16 @@ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler
}
else
{
- if (RECONFIG_SCHED_STRATEGY::compare_priority (*previous_entry_, rse) == 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "Previous entry %s[%d],crit=%d,period=%d\n",
+ previous_entry_->actual_rt_info ()->entry_point.in(),
+ previous_entry_->actual_rt_info ()->handle,
+ previous_entry_->actual_rt_info ()->criticality,
+ previous_entry_->actual_rt_info ()->period));
+
+ // Don't change priority levels on a disabled node.
+ if (rse.enabled_state () == RtecScheduler::RT_INFO_DISABLED
+ || RECONFIG_SCHED_STRATEGY::compare_priority (*previous_entry_, rse) == 0)
{
// Subpriority is increased at each new node.
++subpriority_;
@@ -796,8 +856,7 @@ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler
// Iterate back through and adjust the subpriority levels.
for (int i = 0; i <= subpriority_; ++i, ++first_subpriority_entry_)
{
- (*first_subpriority_entry_)->
- actual_rt_info ()->
+ (*first_subpriority_entry_)->actual_rt_info ()->
preemption_subpriority += subpriority_;
}
@@ -805,9 +864,12 @@ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler
rse.actual_rt_info ()->preemption_subpriority = subpriority_;
++priority_;
+#ifdef SCHEDULER_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "New priority %d formed\n", priority_));
+#endif
os_priority_ = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO,
- os_priority_,
- ACE_SCOPE_PROCESS);
+ os_priority_,
+ ACE_SCOPE_PROCESS);
}
}
@@ -825,31 +887,34 @@ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler
// Finishes scheduler entry priority assignment by iterating over the
// remaining entries in the last subpriority level, and adjusting
// their subpriorities.
-template <class RECONFIG_SCHED_STRATEGY> int
-TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::finish ()
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
+TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::finish ()
{
// Iterate back through and adjust the subpriority levels.
for (int i = 0; i <= subpriority_; ++i, ++first_subpriority_entry_)
{
- (*first_subpriority_entry_)->
- actual_rt_info ()->
- preemption_subpriority += subpriority_;
+ (*first_subpriority_entry_)->actual_rt_info ()->
+ preemption_subpriority += subpriority_;
}
- // Indicate no new proirity level was identified.
+ // Indicate no new priority level was identified.
return 0;
}
///////////////////////////////////////
-// class TAO_RSE_Utilization_Visitor //
+// class TAO_Tuple_Admission_Visitor //
///////////////////////////////////////
// Constructor.
template <class RECONFIG_SCHED_STRATEGY>
-TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::TAO_RSE_Utilization_Visitor ()
+TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::
+TAO_Tuple_Admission_Visitor (const CORBA::Double & critical_utilization_threshold,
+ const CORBA::Double & noncritical_utilization_threshold)
: critical_utilization_ (0.0),
- noncritical_utilization_ (0.0)
+ noncritical_utilization_ (0.0),
+ critical_utilization_threshold_ (critical_utilization_threshold),
+ noncritical_utilization_threshold_ (noncritical_utilization_threshold)
{
}
@@ -860,24 +925,63 @@ TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::TAO_RSE_Utilization_Visito
// operation is critical.
template <class RECONFIG_SCHED_STRATEGY> int
-TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler_Entry &rse)
+TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_RT_Info_Tuple &t)
{
- CORBA::Double entry_period = rse.effective_period ();
- CORBA::Double entry_time = ACE_static_cast (
- CORBA::Double,
- ACE_UINT64_DBLCAST_ADAPTER (rse.actual_rt_info ()->
- worst_case_execution_time));
- CORBA::Double entry_mult = rse.effective_exec_multiplier ();
+ TAO_Reconfig_Scheduler_Entry *entry =
+ ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ t.volatile_token);
+
+ // Ignore disabled tuples and entries
+ if (t.enabled_state () == RtecScheduler::RT_INFO_DISABLED
+ || entry->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ return 0;
+ }
- if (RECONFIG_SCHED_STRATEGY::is_critical (rse))
+ // Compute the current tuple's utilization.
+ CORBA::Double delta_utilization =
+ (ACE_static_cast (CORBA::Double,
+ t.threads)
+ * ACE_static_cast (CORBA::Double,
+ ACE_UINT64_DBLCAST_ADAPTER (entry->
+ aggregate_exec_time ())))
+ / ACE_static_cast (CORBA::Double,
+ t.period);
+
+ // Subtract the previous tuple's utilization (if any) for the entry.
+ if (entry->current_admitted_tuple ())
{
- this->critical_utilization_ =
- (entry_mult * entry_time) / entry_period;
+ delta_utilization -=
+ (ACE_static_cast (CORBA::Double,
+ entry->current_admitted_tuple ()->threads)
+ * ACE_static_cast (CORBA::Double,
+ ACE_UINT64_DBLCAST_ADAPTER (entry->
+ aggregate_exec_time ())))
+ / ACE_static_cast (CORBA::Double,
+ entry->current_admitted_tuple ()->period);
+ }
+
+ if (RECONFIG_SCHED_STRATEGY::is_critical (t))
+ {
+ if (this->critical_utilization_ + this->noncritical_utilization_
+ +delta_utilization
+ < this->critical_utilization_threshold_)
+ {
+ this->critical_utilization_ += delta_utilization;
+ entry->current_admitted_tuple (&t);
+ entry->actual_rt_info ()->period = t.period;
+ }
}
else
{
- this->noncritical_utilization_ =
- (entry_mult * entry_time) / entry_period;
+ if (this->critical_utilization_ + this->noncritical_utilization_
+ +delta_utilization
+ < this->noncritical_utilization_threshold_)
+ {
+ this->noncritical_utilization_ += delta_utilization;
+ entry->current_admitted_tuple (&t);
+ entry->actual_rt_info ()->period = t.period;
+ }
}
return 0;
@@ -887,7 +991,7 @@ TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Schedu
// Accessor for utilization by critical operations.
template <class RECONFIG_SCHED_STRATEGY> CORBA::Double
-TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::critical_utilization ()
+TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::critical_utilization ()
{
return this->critical_utilization_;
}
@@ -896,10 +1000,73 @@ TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::critical_utilization ()
// Accessor for utilization by noncritical operations.
template <class RECONFIG_SCHED_STRATEGY> CORBA::Double
-TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::noncritical_utilization ()
+TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::noncritical_utilization ()
{
return this->noncritical_utilization_;
}
+// Accessor for utilization threshold for critical operations.
+
+template <class RECONFIG_SCHED_STRATEGY> CORBA::Double
+TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::critical_utilization_threshold ()
+{
+ return this->critical_utilization_threshold_;
+}
+
+
+// Accessor for utilization by noncritical operations.
+
+template <class RECONFIG_SCHED_STRATEGY> CORBA::Double
+TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::noncritical_utilization_threshold ()
+{
+ return this->noncritical_utilization_threshold_;
+}
+
+
+/////////////////////////////////////////
+// TAO_RSE_Criticality_Propagation_Visitor //
+/////////////////////////////////////////
+
+// Constructor.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+TAO_RSE_Criticality_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_RSE_Criticality_Propagation_Visitor
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map)
+ : TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> (dependency_map, rt_info_map)
+{
+}
+
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
+TAO_RSE_Criticality_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry,
+ TAO_Reconfig_Scheduler_Entry &successor,
+ const RtecScheduler::Dependency_Info &di)
+{
+ ACE_UNUSED_ARG (di);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Crit Prop_Visitor visiting %s[%d], successor is %s[%d]\n",
+ entry.actual_rt_info ()->entry_point.in(),
+ entry.actual_rt_info ()->handle,
+ successor.actual_rt_info ()->entry_point.in(),
+ successor.actual_rt_info ()->handle));
+
+ if (successor.enabled_state () != RtecScheduler::RT_INFO_DISABLED)
+ {
+ successor.actual_rt_info ()->criticality =
+ ace_max (entry.actual_rt_info ()->criticality,
+ successor.actual_rt_info ()->criticality);
+ ACE_DEBUG ((LM_DEBUG,
+ "Successor's new criticality is %d\n",
+ successor.actual_rt_info ()->criticality));
+ }
+
+ // Do not recurse on the successor node, just continue to the next successor.
+ return 1;
+}
+
#endif /* TAO_RECONFIG_SCHED_UTILS_T_C */
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h
index c8543a41fa1..9ea96225a4c 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h
@@ -19,9 +19,7 @@
#include /**/ "ace/pre.h"
#include "ace/config-all.h"
-
#include "Reconfig_Sched_Utils.h"
-
#include "ace/Hash_Map_Manager.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
@@ -54,7 +52,7 @@ public:
// dependency sets by caller or called handle.
typedef ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
+ TAO_RT_Info_Ex*,
ACE_Hash<RtecScheduler::handle_t>,
ACE_Equal_To<RtecScheduler::handle_t>,
ACE_LOCK> RT_INFO_MAP;
@@ -72,11 +70,11 @@ public:
// design pattern.
protected:
-
+ /* WSOA merge - commented out
virtual int unconditional_action (TAO_Reconfig_Scheduler_Entry &rse);
// Performs an unconditional action when the entry is first reached.
// Returns 0 for success, and -1 if an error occurred.
-
+ */
virtual int precondition (TAO_Reconfig_Scheduler_Entry &rse);
// Tests whether or not any conditional actions should be taken for
// the entry. Returns 0 if the actions should be applied, 1 if the
@@ -120,18 +118,9 @@ class TAO_RSE_DFS_Visitor :
{
public:
-
TAO_RSE_DFS_Visitor
- (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & dependency_map,
- ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK>& rt_info_map);
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map);
// Constructor.
protected:
@@ -177,16 +166,8 @@ class TAO_RSE_SCC_Visitor :
public:
TAO_RSE_SCC_Visitor
- (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & dependency_map,
- ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & rt_info_map);
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map);
// Constructor.
int number_of_cycles (void);
@@ -201,10 +182,12 @@ public:
// detected cycle.
protected:
+ /* WSOA merge - commented out
virtual int unconditional_action (TAO_Reconfig_Scheduler_Entry &rse);
// If the entry is a thread delineator, sets its effective period and
// execution multiplier from the values in its corresponding RT_Info.
// Returns 0 for success, and -1 if an error occurred.
+ */
virtual int precondition (TAO_Reconfig_Scheduler_Entry &rse);
// Makes sure the entry has not previously been visited in the
@@ -245,9 +228,39 @@ private:
// currently within a previously discovered cycle.
};
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+class TAO_RSE_Reverse_Propagation_Visitor :
+ public TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
+ // = TITLE
+ // A scheduler entry visitor that propagates aggregate execution
+ // times from called to calling nodes in a topologically ordered
+ // graph.
+ //
+ // = DESCRIPTION
+ // This class computes the aggregate execution time of each node
+ // and its dependants, according to its dependencies.
+{
+public:
+
+ TAO_RSE_Reverse_Propagation_Visitor
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map);
+ // Constructor.
+
+protected:
+
+ virtual int pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry,
+ TAO_Reconfig_Scheduler_Entry &successor,
+ const RtecScheduler::Dependency_Info &di);
+ // Propagates aggregate execution time from successor to calling
+ // entry. Returns 1 on success (to prevent recursion on the
+ // successor), and -1 on error.
+
+};
+
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-class TAO_RSE_Propagation_Visitor :
+class TAO_RSE_Forward_Propagation_Visitor :
public TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
// = TITLE
// A scheduler entry visitor that propagates effective periods and
@@ -260,17 +273,9 @@ class TAO_RSE_Propagation_Visitor :
{
public:
- TAO_RSE_Propagation_Visitor
- (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & dependency_map,
- ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & rt_info_map);
+ TAO_RSE_Forward_Propagation_Visitor
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map);
// Constructor.
int unresolved_locals (void);
@@ -318,13 +323,13 @@ private:
// Number of nodes with thread specification errors.
};
-template <class RECONFIG_SCHED_STRATEGY>
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
class TAO_RSE_Priority_Visitor :
public TAO_Reconfig_Sched_Entry_Visitor
// = TITLE
- // A scheduler entry visitor that assigns static priority and
- // subpriority values to entries in an array already sorted in
- // static <priority, subpriority> order.
+ // An entry visitor that assigns static priority and subpriority
+ // values to entries in an array already sorted in static
+ // <priority, subpriority> order.
//
// = DESCRIPTION
// The visitor uses the parameterized strategy type to determine
@@ -337,25 +342,24 @@ public:
// Constructor.
virtual int visit (TAO_Reconfig_Scheduler_Entry &);
- // Visit a Reconfig Scheduler Entry. This method
- // assigns a priority and subpriority value to each
- // entry. Priorities are assigned in increasing value
- // order, with lower numbers corresponding to higher
- // priorities. Returns -1 on error, 1 if a new priority
- // was assigned, or 0 otherwise.
+ // Visit a RT_Info tuple. This method assigns a priority and
+ // subpriority value to each tuple. Priorities are assigned in
+ // increasing value order, with lower numbers corresponding to
+ // higher priorities. Returns -1 on error, 1 if a new priority was
+ // assigned, or 0 otherwise.
int finish ();
- // Finishes scheduler entry priority assignment by iterating over the
- // remaining entries in the last subpriority level, and adjusting
+ // Finishes tuple priority assignment by iterating over the
+ // remaining tuples in the last subpriority level, and adjusting
// their subpriorities.
private:
TAO_Reconfig_Scheduler_Entry *previous_entry_;
- // Pointer to previous entry most recently seen in the iteration.
+ // Pointer to previous tuple in the iteration.
TAO_Reconfig_Scheduler_Entry **first_subpriority_entry_;
- // Pointer to first subpriority entry in the priority level.
+ // Pointer to first subpriority tuple in the priority level.
RtecScheduler::Preemption_Priority_t priority_;
// Current priority value.
@@ -374,11 +378,15 @@ private:
};
template <class RECONFIG_SCHED_STRATEGY>
-class TAO_RSE_Utilization_Visitor :
- public TAO_Reconfig_Sched_Entry_Visitor
+class TAO_Tuple_Admission_Visitor :
+ public TAO_RT_Info_Tuple_Visitor
// = TITLE
- // A scheduler entry visitor that accumulates utilization separately
- // for the critical operations and the non-critical operations.
+
+ // A tuple visitor that accumulates utilization separately for
+ // critical and non-critical operations. Operation tuples that
+ // fit within the threashold defined for their criticality level
+ // are admitted to the schedule, by updating the corresponding
+ // RT_Info with the tuple data.
//
// = DESCRIPTION
// The visitor uses the parameterized strategy type to determine
@@ -386,15 +394,15 @@ class TAO_RSE_Utilization_Visitor :
{
public:
- TAO_RSE_Utilization_Visitor ();
+ TAO_Tuple_Admission_Visitor (const CORBA::Double & critical_utilization_threshold,
+ const CORBA::Double & noncritical_utilization_threshold);
// Constructor.
- virtual int visit (TAO_Reconfig_Scheduler_Entry &);
- // Visit a Reconfig Scheduler Entry. This method
- // determines the utilization by the entry, and
- // adds it to the critical or non-critical utilization,
- // depending on whether or not the strategy says the
- // operation is critical.
+ virtual int visit (TAO_RT_Info_Tuple &);
+ // Visit an RT_Info tuple. This method determines the utilization by
+ // the tuple, and if it's admissible, updates its RT_Info and either
+ // the critical or non-critical utilization, depending on whether or
+ // not the strategy says the operation is critical.
CORBA::Double critical_utilization ();
// Accessor for utilization by critical operations.
@@ -402,6 +410,12 @@ public:
CORBA::Double noncritical_utilization ();
// Accessor for utilization by noncritical operations.
+ CORBA::Double critical_utilization_threshold ();
+ // Accessor for utilization by critical operations.
+
+ CORBA::Double noncritical_utilization_threshold ();
+ // Accessor for utilization by noncritical operations.
+
private:
CORBA::Double critical_utilization_;
@@ -409,8 +423,43 @@ private:
CORBA::Double noncritical_utilization_;
// Utilization by noncritical operations.
+
+ CORBA::Double critical_utilization_threshold_;
+ // Utilization by critical operations.
+
+ CORBA::Double noncritical_utilization_threshold_;
+ // Utilization by noncritical operations.
};
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+class TAO_RSE_Criticality_Propagation_Visitor :
+ public TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
+ // = TITLE
+ // A scheduler entry visitor that propagates criticality
+ // from called to calling nodes in a topologically ordered
+ // graph.
+ //
+ // = DESCRIPTION
+ // This class computes the criticality of each node
+ // and its dependants, according to its dependencies.
+{
+public:
+
+ TAO_RSE_Criticality_Propagation_Visitor
+ (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map,
+ ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map);
+ // Constructor.
+
+protected:
+
+ virtual int pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry,
+ TAO_Reconfig_Scheduler_Entry &successor,
+ const RtecScheduler::Dependency_Info &di);
+ // Propagates criticality from successor to calling
+ // entry. Returns 1 on success (to prevent recursion on the
+ // successor), and -1 on error.
+
+};
#if defined (__ACE_INLINE__)
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp
index abe943d96c2..e9bda62714e 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp
@@ -30,6 +30,10 @@
#include "Reconfig_Scheduler_T.i"
#endif /* __ACE_INLINE__ */
+//#ifdef _DEBUG
+//#define SCHEDULER_LOGGING 1
+//#endif
+
ACE_RCSID(Sched, Reconfig_Scheduler_T, "$Id$")
//////////////////////////////////////////////
@@ -46,17 +50,31 @@ typedef int (*COMP_FUNC) (const void*, const void*);
// Default constructor.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::TAO_Reconfig_Scheduler (int enforce_schedule_stability)
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+TAO_Reconfig_Scheduler (int enforce_schedule_stability,
+ const CORBA::Double & critical_utilization_threshold,
+ const CORBA::Double & noncritical_utilization_threshold)
: config_info_count_ (0),
rt_info_count_ (0),
+ rt_info_tuple_count_ (0),
next_handle_ (1),
entry_ptr_array_ (0),
entry_ptr_array_size_ (0),
+ tuple_ptr_array_ (0),
+ tuple_ptr_array_size_ (0),
stability_flags_ (SCHED_NONE_STABLE),
enforce_schedule_stability_ (enforce_schedule_stability),
dependency_count_ (0),
- last_scheduled_priority_ (0)
+ last_scheduled_priority_ (0),
+ noncritical_utilization_ (0.0),
+ critical_utilization_ (0.0),
+ noncritical_utilization_threshold_ (noncritical_utilization_threshold),
+ critical_utilization_threshold_ (critical_utilization_threshold)
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler default ctor.\n"));
+#endif /* SCHEDULER_LOGGING */
}
// Constructor. Initialize the scheduler from the POD_Config_Info, POD_RT_Info,
@@ -71,15 +89,30 @@ TAO_Reconfig_Scheduler (int config_count,
int dependency_count,
ACE_Scheduler_Factory::POD_Dependency_Info dependency_infos[],
u_long stability_flags,
- int enforce_schedule_stability)
+ int enforce_schedule_stability,
+ const CORBA::Double & critical_utilization_threshold,
+ const CORBA::Double & noncritical_utilization_threshold)
: config_info_count_ (0),
rt_info_count_ (0),
+ rt_info_tuple_count_ (0),
next_handle_ (1),
stability_flags_ (SCHED_ALL_STABLE),
enforce_schedule_stability_ (enforce_schedule_stability),
dependency_count_ (0),
- last_scheduled_priority_ (0)
+ last_scheduled_priority_ (0),
+ noncritical_utilization_ (0.0),
+ critical_utilization_ (0.0),
+ noncritical_utilization_threshold_ (noncritical_utilization_threshold),
+ critical_utilization_threshold_ (critical_utilization_threshold)
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler alternative ctor.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ // @ TODO - think about what it means to emit all the tuples as
+ // well as the established RT_Infos. State is more complex now.
+
// The init method can throw an exception, which must be caught
// *inside* the constructor to be portable between compilers that
// differ in whether they support native C++ exceptions.
@@ -101,6 +134,38 @@ TAO_Reconfig_Scheduler (int config_count,
}
+// Destructor.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+~TAO_Reconfig_Scheduler ()
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler dtor.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_TRY_NEW_ENV
+ {
+ this->close (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (CORBA::SystemException, corba_sysex)
+ {
+ ACE_ERROR ((LM_ERROR, "TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, "
+ "ACE_LOCK>::~TAO_Reconfig_Scheduler "
+ "exception: cannot close scheduler.\n"));
+ }
+ ACE_ENDTRY;
+
+ // Delete the entry and tuple pointer arrays.
+ delete [] entry_ptr_array_;
+ delete [] tuple_ptr_array_;
+}
+
+// Additive initialization: can be called multiple times, with
+// new sets of operation, dependency, and config information.
+
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
init (int config_count,
@@ -117,23 +182,48 @@ init (int config_count,
RtecScheduler::SYNCHRONIZATION_FAILURE,
RtecScheduler::INTERNAL))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::init.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK_RETURN (-1);
int result = 0;
+ int i = 0;
+/* WSOA merge - commented out
// Clear out the previous entries, if any.
this->close (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
+*/
+
+ // Re-map the RT_Info and dependency handle values if necessary.
+ // Assumes that dependencies only refer to handles within the
+ // current set: changing that assumption would require us to use
+ // operation names, and the equivalent of a symbol table and
+ // relocating linker for RT_Infos to do this correctly in the
+ // general case.
+ if (this->next_handle_ > 1)
+ {
+ for (i = 0; i < rt_info_count; ++i)
+ {
+ rt_info [i].handle += this->next_handle_ - 1;
+ }
+ for (i = 0; i < dependency_count; ++i)
+ {
+ dependency_info [i].info_that_depends += this->next_handle_ - 1;
+ dependency_info [i].info_depended_on += this->next_handle_ - 1;
+ }
+ }
// (Re)initialize using the new settings.
// Add the passed config infos to the scheduler
auto_ptr<RtecScheduler::Config_Info> new_config_info_ptr;
- for (this->config_info_count_ = 0;
- this->config_info_count_ < config_count;
- ++this->config_info_count_)
+ for (i = 0; i < config_count; ++i)
{
RtecScheduler::Config_Info* new_config_info;
ACE_NEW_THROW_EX (new_config_info,
@@ -144,7 +234,7 @@ init (int config_count,
// Make sure the new config info is cleaned up if we exit abruptly.
ACE_AUTO_PTR_RESET (new_config_info_ptr, new_config_info, RtecScheduler::Config_Info);
- result = config_info_map_.bind (config_info [config_info_count_].preemption_priority,
+ result = config_info_map_.bind (config_info [i].preemption_priority,
new_config_info);
switch (result)
{
@@ -161,11 +251,11 @@ init (int config_count,
}
new_config_info->preemption_priority =
- config_info [config_info_count_].preemption_priority;
+ config_info [i].preemption_priority;
new_config_info->thread_priority =
- config_info [config_info_count_].thread_priority;
+ config_info [i].thread_priority;
new_config_info->dispatching_type =
- config_info [config_info_count_].dispatching_type;
+ config_info [i].dispatching_type;
if (new_config_info->preemption_priority >
last_scheduled_priority_)
@@ -177,19 +267,30 @@ init (int config_count,
// Release the auto_ptr so it does not clean
// up the sucessfully bound config info.
new_config_info_ptr.release ();
+
+ // Increase the count of successfully bound config infos.
+ ++this->config_info_count_;
}
// Add RT_Infos to scheduler
- RtecScheduler::RT_Info* new_rt_info;
+ TAO_RT_Info_Ex* new_rt_info;
for (int num_rt_infos = 0; num_rt_infos < rt_info_count; ++num_rt_infos)
{
new_rt_info = create_i (rt_info [num_rt_infos].entry_point,
- rt_info [num_rt_infos].handle
+ rt_info [num_rt_infos].handle, 1
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
+ if (new_rt_info == 0)
+ {
+ ACE_THROW_RETURN (RtecScheduler::INTERNAL (), -1);
+ }
+
+ // Set the new info's enabled state
+ new_rt_info->enabled_state (rt_info [num_rt_infos].enabled);
+
// Fill in the portions to which the user has access.
- set_i (new_rt_info,
+ this->set_i (new_rt_info,
RtecScheduler::Criticality_t (rt_info [num_rt_infos].criticality),
rt_info [num_rt_infos].worst_case_execution_time,
rt_info [num_rt_infos].typical_execution_time,
@@ -198,7 +299,9 @@ init (int config_count,
RtecScheduler::Importance_t (rt_info [num_rt_infos].importance),
rt_info [num_rt_infos].quantum,
rt_info [num_rt_infos].threads,
- RtecScheduler::Info_Type_t (rt_info [num_rt_infos].info_type));
+ RtecScheduler::Info_Type_t (rt_info [num_rt_infos].info_type)
+ ACE_ENV_ARG_DECL);
+ ACE_CHECK_RETURN (-1);
// Fill in the scheduler managed portions.
new_rt_info->priority =
@@ -210,16 +313,17 @@ init (int config_count,
new_rt_info->volatile_token = 0;
// Add dependencies between RT_Infos to scheduler.
- for (this->dependency_count_ = 0;
- this->dependency_count_ < dependency_count;
- ++this->dependency_count_)
+ for (i = 0; i < dependency_count; ++i)
{
add_dependency_i (dependency_info [dependency_count_].info_that_depends,
dependency_info [dependency_count_].info_depended_on,
dependency_info [dependency_count_].number_of_calls,
- dependency_info [dependency_count_].dependency_type
+ dependency_info [dependency_count_].dependency_type,
+ dependency_info [dependency_count_].enabled
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
+
+ ++this->dependency_count_;
}
}
@@ -235,15 +339,22 @@ init (int config_count,
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::close (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL,
RtecScheduler::UNKNOWN_TASK,
RtecScheduler::SYNCHRONIZATION_FAILURE))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::close.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK;
- // Unbind and delete each RT_Info in the map.
- RtecScheduler::RT_Info *rt_info;
+ // Unbind and delete each RT_Info in the map: this also cleans up
+ // all the entries and tuples associated with each RT_Info.
+ TAO_RT_Info_Ex *rt_info;
RtecScheduler::handle_t handle;
while (rt_info_map_.current_size () > 0)
{
@@ -252,11 +363,15 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::close (ACE_ENV_SINGLE
{
if (rt_info_tree_.unbind (rt_info->entry_point) == 0)
{
+ // Delete the entry associated with the RT_Info, then
+ // the RT_Info itself.
+ delete ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ rt_info->volatile_token);
delete rt_info;
}
else
{
- ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ ACE_THROW (RtecScheduler::INTERNAL ());
}
}
else
@@ -277,23 +392,60 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::close (ACE_ENV_SINGLE
}
else
{
- ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+
+ // Delete each dependency set in the caller map
+ RtecScheduler::Dependency_Set *dependency_set;
+ while (calling_dependency_set_map_.current_size () > 0)
+ {
+ handle = (*calling_dependency_set_map_.begin ()).ext_id_;
+ if (calling_dependency_set_map_.unbind (handle, dependency_set) == 0)
+ {
+ delete dependency_set;
+ }
+ else
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+
+ // Delete each dependency set in the called map
+ while (called_dependency_set_map_.current_size () > 0)
+ {
+ handle = (*called_dependency_set_map_.begin ()).ext_id_;
+ if (called_dependency_set_map_.unbind (handle, dependency_set) == 0)
+ {
+ delete dependency_set;
+ }
+ else
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
}
}
// Zero out the scheduling entry pointer array but do not deallocate it.
if (entry_ptr_array_size_ > 0)
{
- ACE_OS::memset (entry_ptr_array_, 0,
- sizeof (TAO_Reconfig_Scheduler_Entry *) *
- entry_ptr_array_size_);
+ ACE_OS::memset (this->entry_ptr_array_, 0,
+ sizeof (TAO_Reconfig_Scheduler_Entry *)
+ * this->entry_ptr_array_size_);
}
+ // Zero out the scheduling entry pointer array but do not deallocate it.
+ if (tuple_ptr_array_size_ > 0)
+ {
+ ACE_OS::memset (this->tuple_ptr_array_, 0,
+ sizeof (TAO_RT_Info_Tuple *)
+ * this->tuple_ptr_array_size_);
+ }
// Finally, reset the entry counts and start over with the lowest
// handle number.
this->config_info_count_ = 0;
this->rt_info_count_ = 0;
+ this->rt_info_tuple_count_ = 0;
this->next_handle_ = 1;
}
@@ -312,12 +464,17 @@ create (const char *entry_point
RtecScheduler::INTERNAL,
RtecScheduler::SYNCHRONIZATION_FAILURE))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::create.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK_RETURN (0);
RtecScheduler::handle_t handle = next_handle_;
- create_i (entry_point, handle ACE_ENV_ARG_PARAMETER);
+ create_i (entry_point, handle, 0 ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (handle);
// Set affected stability flags.
@@ -340,6 +497,11 @@ lookup (const char * entry_point
RtecScheduler::UNKNOWN_TASK,
RtecScheduler::SYNCHRONIZATION_FAILURE))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::lookup.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK_RETURN (0);
@@ -363,12 +525,17 @@ get (RtecScheduler::handle_t handle
RtecScheduler::UNKNOWN_TASK,
RtecScheduler::SYNCHRONIZATION_FAILURE))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::get.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK_RETURN (0);
// Find the RT_Info in the hash map.
- RtecScheduler::RT_Info *rt_info = 0;
+ TAO_RT_Info_Ex *rt_info = 0;
if (rt_info_map_.find (handle, rt_info) != 0)
{
ACE_THROW_RETURN (RtecScheduler::UNKNOWN_TASK (), 0);
@@ -408,91 +575,378 @@ set (RtecScheduler::handle_t handle,
RtecScheduler::INTERNAL,
RtecScheduler::SYNCHRONIZATION_FAILURE))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::set.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK;
// Look up the RT_Info by its handle, throw an exception if it's not there.
- RtecScheduler::RT_Info *rt_info_ptr = 0;
+ TAO_RT_Info_Ex *rt_info_ptr = 0;
if (rt_info_map_.find (handle, rt_info_ptr) != 0)
{
ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
}
+ if (rt_info_ptr == 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ // Enable the RT_Info if it was disabled. Does not modify NON_VOLATILE ops.
+ if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED);
+ }
+
// Call the internal set method.
this->set_i (rt_info_ptr, criticality, time, typical_time,
cached_time, period, importance, quantum,
- threads, info_type);
+ threads, info_type ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
- // Update stability flags, based on changes to operation characteristics.
- // Reference the associated scheduling entry: the double cast is
- // needed to ensure that the size of the pointer and the size of the
- // stored magic cookie are the same (see the definition of
- // ptrdiff_t in ACE to grok how this works portably).
- TAO_Reconfig_Scheduler_Entry *sched_entry_ptr =
- ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
- rt_info_ptr->volatile_token);
+ // Update stability flags. For now, just mark everything as unstable.
+ // @@ TODO - revisit this and see if we can efficiently detect when
+ // changes do not affect stability of various aspects.
+ this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE;
+
+ return;
+}
- if (0 == sched_entry_ptr)
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+reset (RtecScheduler::handle_t handle,
+ RtecScheduler::Criticality_t criticality,
+ RtecScheduler::Time time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period_t period,
+ RtecScheduler::Importance_t importance,
+ RtecScheduler::Quantum_t quantum,
+ CORBA::Long threads,
+ RtecScheduler::Info_Type_t info_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::reset.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ // Look up the RT_Info by its handle, throw an exception if it's not there.
+ TAO_RT_Info_Ex *rt_info_ptr = 0;
+ if (rt_info_map_.find (handle, rt_info_ptr) != 0)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+ if (rt_info_ptr == 0)
{
ACE_THROW (RtecScheduler::INTERNAL ());
}
- // Test the utilization difference between the old and new values.
- if ((sched_entry_ptr->orig_rt_info_data ().period != rt_info_ptr->period
- && sched_entry_ptr->orig_rt_info_data ().worst_case_execution_time
- != rt_info_ptr->worst_case_execution_time))
+ // Enable the RT_Info if it was disabled. Does not modify NON_VOLATILE ops.
+ if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_NON_VOLATILE)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+ else
{
- CORBA::Double orig_time = ACE_static_cast (
- CORBA::Double,
- ACE_UINT64_DBLCAST_ADAPTER (sched_entry_ptr->
- orig_rt_info_data ().
- worst_case_execution_time));
+ // Reset the RT_Info.
+ rt_info_ptr->reset (TAO_Reconfig_Scheduler_Entry::ORIGINAL
+ | TAO_Reconfig_Scheduler_Entry::PROPAGATED);
- CORBA::Double orig_period =
- sched_entry_ptr->orig_rt_info_data ().period;
+ rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED);
+ }
- CORBA::Double new_time = ACE_static_cast (
- CORBA::Double,
- ACE_UINT64_DBLCAST_ADAPTER (rt_info_ptr->
- worst_case_execution_time));
+ // Refresh the internal tuple pointer array.
+ this->refresh_tuple_ptr_array_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
- CORBA::Double new_period = rt_info_ptr->period;
+ // Then call the internal set method.
+ this->set_i (rt_info_ptr, criticality, time, typical_time,
+ cached_time, period, importance, quantum,
+ threads, info_type ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
- if ((orig_time / orig_period) - (new_time / new_period) > DBL_EPSILON
- || (orig_time / orig_period) - (new_time / new_period) < DBL_EPSILON)
+
+ // Update stability flags. For now, just mark everything as unstable.
+ // @@ TODO - revisit this and see if we can efficiently detect when
+ // changes do not affect stability of various aspects.
+ this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE;
+
+ return;
+}
+
+
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+set_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::set_seq.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ for (u_int i = 0; i < infos.length (); ++i)
+ {
+ // Look up the RT_Info by its handle, throw an exception if it's not there.
+ TAO_RT_Info_Ex *rt_info_ptr = 0;
+ if (rt_info_map_.find (infos[i].handle, rt_info_ptr) != 0)
{
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+
+ if (rt_info_ptr == 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ // Enable the RT_Info if it was disabled. Does not modify NON_VOLATILE ops.
+ if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED);
+ }
+
+ // Call the internal set method.
+ this->set_i (rt_info_ptr,
+ infos[i].criticality,
+ infos[i].worst_case_execution_time,
+ infos[i].typical_execution_time,
+ infos[i].cached_execution_time,
+ infos[i].period,
+ infos[i].importance,
+ infos[i].quantum,
+ infos[i].threads,
+ infos[i].info_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+
+ // Update stability flags. For now, just mark everything as unstable.
+ // @@ TODO - revisit this and see if we can efficiently detect when
+ // changes do not affect stability of various aspects.
this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE;
+
+ return;
+}
+
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+reset_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::reset_seq.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ TAO_RT_Info_Ex *rt_info_ptr = 0;
+ u_int i;
+
+ for (i = 0; i < infos.length (); ++i)
+ {
+ // Look up the RT_Info by its handle, throw an exception if it's not there.
+ if (rt_info_map_.find (infos[i].handle, rt_info_ptr) != 0)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+
+ // Enable the RT_Info. Does not modify NON_VOLATILE ops.
+ if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_NON_VOLATILE)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+ else
+ {
+ // Reset the RT_Info.
+ rt_info_ptr->reset (TAO_Reconfig_Scheduler_Entry::ORIGINAL
+ | TAO_Reconfig_Scheduler_Entry::PROPAGATED);
+
+ rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED);
}
}
- // Test the priority difference between the old and new info.
- if (RECONFIG_SCHED_STRATEGY::priority_diff (sched_entry_ptr->
- orig_rt_info_data (),
- *rt_info_ptr) != 0)
+ // Refresh the internal tuple pointer array.
+ this->refresh_tuple_ptr_array_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ for (i = 0; i < infos.length (); ++i)
+ {
+ // Look up the RT_Info by its handle, throw an exception if it's not there.
+ if (rt_info_map_.find (infos[i].handle, rt_info_ptr) != 0)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+
+ if (rt_info_ptr == 0)
{
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ // Call the internal set method.
+ this->set_i (rt_info_ptr,
+ infos[i].criticality,
+ infos[i].worst_case_execution_time,
+ infos[i].typical_execution_time,
+ infos[i].cached_execution_time,
+ infos[i].period,
+ infos[i].importance,
+ infos[i].quantum,
+ infos[i].threads,
+ infos[i].info_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+
+ // Update stability flags. For now, just mark everything as unstable.
+ // @@ TODO - revisit this and see if we can efficiently detect when
+ // changes do not affect stability of various aspects.
+ this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE;
this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE;
+
+ return;
+}
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+replace_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::replace_seq.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ TAO_RT_Info_Ex *rt_info_ptr = 0;
+
+ for (ACE_TYPENAME RT_INFO_MAP::iterator info_iter (this->rt_info_map_);
+ info_iter.done () == 0;
+ ++info_iter)
+ {
+ // Get a pointer to each registered RT_Info.
+ rt_info_ptr = (*info_iter).int_id_;
+ if (! rt_info_ptr)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ switch (rt_info_ptr->enabled_state ())
+ {
+ case RtecScheduler::RT_INFO_ENABLED:
+
+ // Disable enabled RT_Infos.
+ rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_DISABLED);
+
+ // Reset Enabled and Non-Volatile RT_Infos.
+ rt_info_ptr->reset (TAO_Reconfig_Scheduler_Entry::ORIGINAL
+ | TAO_Reconfig_Scheduler_Entry::PROPAGATED);
+ break;
+
+ // Intentional fall-through to ignore non-volatile RT_Infos
+ case RtecScheduler::RT_INFO_NON_VOLATILE:
+
+ default: // Ignore disabled RT_Infos.
+ break;
+ }
}
- // If the period changed, look up the handle in the calling
- // dependency map and see if there is anything there: if so,
- // the propagation is unstable.
- if (sched_entry_ptr->orig_rt_info_data ().period
- != rt_info_ptr->period)
+ // Zero out the tuple pointer array, set count to zero
+ ACE_OS::memset (this->tuple_ptr_array_, 0,
+ sizeof (TAO_RT_Info_Tuple *)
+ * this->tuple_ptr_array_size_);
+ this->rt_info_tuple_count_ = 0;
+
+ for (u_int i = 0; i < infos.length (); ++i)
{
- // Get the dependency set for the current entry.
- RtecScheduler::Dependency_Set *dependency_set = 0;
- int result = calling_dependency_set_map_.find (rt_info_ptr->handle,
- dependency_set);
- if (result == 0 && dependency_set->length () > 0)
+ // Look up the RT_Info by its handle, throw an exception if it's not there.
+ if (rt_info_map_.find (infos[i].handle, rt_info_ptr) != 0)
{
- this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE;
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+
+ if (rt_info_ptr == 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
}
+
+ // Enable the RT_Info if it was disabled. Does not modify NON_VOLATILE ops.
+ if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_DISABLED)
+ {
+ rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED);
+ }
+
+ // Call the internal set method.
+ this->set_i (rt_info_ptr,
+ infos[i].criticality,
+ infos[i].worst_case_execution_time,
+ infos[i].typical_execution_time,
+ infos[i].cached_execution_time,
+ infos[i].period,
+ infos[i].importance,
+ infos[i].quantum,
+ infos[i].threads,
+ infos[i].info_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
}
- // Update the stored operation characteristics values in the scheduling entry
- sched_entry_ptr->orig_rt_info_data (*rt_info_ptr);
+ // Update stability flags. For now, just mark everything as unstable.
+ // @@ TODO - revisit this and see if we can efficiently detect when
+ // changes do not affect stability of various aspects.
+ this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE;
+ this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE;
+
+ return;
}
@@ -523,7 +977,11 @@ priority (RtecScheduler::handle_t handle,
ACE_THROW (RtecScheduler::NOT_SCHEDULED ());
}
- RtecScheduler::RT_Info *rt_info = 0;
+ // CDG - TBD - address priority "generations" i.e., after an
+ // adaptive transition. For now, go ahead and return whatever
+ // priority is there, even if the RT_Info_Ex is disabled.
+
+ TAO_RT_Info_Ex *rt_info = 0;
if (rt_info_map_.find (handle, rt_info) != 0)
{
ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
@@ -551,6 +1009,11 @@ entry_point_priority (const char * entry_point,
RtecScheduler::SYNCHRONIZATION_FAILURE,
RtecScheduler::NOT_SCHEDULED))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::entry_point_priority.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK;
@@ -582,13 +1045,18 @@ add_dependency (RtecScheduler::handle_t handle /* RT_Info that has the dependenc
RtecScheduler::SYNCHRONIZATION_FAILURE,
RtecScheduler::UNKNOWN_TASK))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::add_dependency.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK;
// Delegate to the internal method.
- add_dependency_i (handle, dependency, number_of_calls,
- dependency_type ACE_ENV_ARG_PARAMETER);
+ add_dependency_i (handle, dependency, number_of_calls, dependency_type,
+ RtecBase::DEPENDENCY_ENABLED ACE_ENV_ARG_DECL);
ACE_CHECK;
// Since the call graph topology has changed, set *all*
@@ -598,6 +1066,183 @@ add_dependency (RtecScheduler::handle_t handle /* RT_Info that has the dependenc
}
+// This method removes a dependency between two RT_Infos.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+remove_dependency (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::remove_dependency.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ // Delegate to the internal method.
+ remove_dependency_i (handle, dependency, number_of_calls,
+ dependency_type ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Since the call graph topology has changed, set *all*
+ // stability flags before incrementing the dependency count.
+ this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE;
+ --dependency_count_;
+}
+
+// This method sets the enable state for a dependency between two RT_Infos.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+set_dependency_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::set_dependency_enable_state.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ // Delegate to the internal method.
+ set_dependency_enable_state_i (handle, dependency, number_of_calls,
+ dependency_type, enabled ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+}
+
+
+// This method sets the enable state of a sequence of dependencies.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::set_dependency_enable_state_seq.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ // Delegate to the internal method for each dependency in the sequence.
+ for (u_int i = 0; i < dependencies.length (); ++i)
+ {
+ set_dependency_enable_state_i (dependencies[i].rt_info,
+ dependencies[i].rt_info_depended_on,
+ dependencies[i].number_of_calls,
+ dependencies[i].dependency_type,
+ dependencies[i].enabled
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+}
+
+
+// This method enables or disables an RT_Info.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+set_rt_info_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::RT_Info_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::set_rt_info_enable_state.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ // Look up the RT_Info by its handle, throw an exception if it's not there.
+ TAO_RT_Info_Ex *rt_info_ptr = 0;
+ if (rt_info_map_.find (handle, rt_info_ptr) != 0)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+
+ if (rt_info_ptr == 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ // Enable the RT_Info.
+ rt_info_ptr->enabled_state (enabled);
+}
+
+
+// This method enables or disables a sequence of RT_Infos.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::set_rt_info_enable_state_seq.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
+ RtecScheduler::SYNCHRONIZATION_FAILURE ());
+ ACE_CHECK;
+
+ for (u_int i = 0; i < pair_set.length (); ++i)
+ {
+ // Look up the RT_Info by its handle, throw an exception if it's not there.
+ TAO_RT_Info_Ex *rt_info_ptr = 0;
+ if (rt_info_map_.find (pair_set[i].handle, rt_info_ptr) != 0)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+
+ if (rt_info_ptr == 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ // Enable the RT_Info.
+ rt_info_ptr->enabled_state (pair_set[i].enabled);
+ }
+}
+
+
// If information has been added or changed since the last stable
// schedule was computed, this method causes scheduling information
// to be computed for all registered RT_Infos. If the schedule is
@@ -609,6 +1254,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
compute_scheduling (CORBA::Long minimum_priority,
CORBA::Long maximum_priority,
RtecScheduler::RT_Info_Set_out infos,
+ RtecScheduler::Dependency_Set_out dependencies,
RtecScheduler::Config_Info_Set_out configs,
RtecScheduler::Scheduling_Anomaly_Set_out anomalies
ACE_ENV_ARG_DECL)
@@ -620,6 +1266,53 @@ compute_scheduling (CORBA::Long minimum_priority,
RtecScheduler::INTERNAL,
RtecScheduler::DUPLICATE_NAME))
{
+ // Delegates to recompute_scheduling and the respective accessors.
+ this->recompute_scheduling (minimum_priority, maximum_priority,
+ anomalies ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->get_rt_info_set (infos ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->get_dependency_set (dependencies ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->get_config_info_set (configs ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+#if defined (SCHEDULER_DUMP)
+ ACE_DEBUG ((LM_TRACE, "Schedule prepared.\n"));
+ ACE_DEBUG ((LM_TRACE, "Dumping to stdout.\n"));
+ ACE_Scheduler_Factory::dump_schedule (*(infos.ptr()), *(dependencies.ptr()), *(configs.ptr()),
+ *(anomalies.ptr()), 0);
+ ACE_DEBUG ((LM_TRACE, "Dump done.\n"));
+#endif // SCHEDULER_DUMP
+
+ return;
+}
+
+// Recomputes the scheduling priorities, etc.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+recompute_scheduling (CORBA::Long minimum_priority,
+ CORBA::Long maximum_priority,
+ RtecScheduler::Scheduling_Anomaly_Set_out anomalies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UTILIZATION_BOUND_EXCEEDED,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ RtecScheduler::TASK_COUNT_MISMATCH,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::DUPLICATE_NAME))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::compute_scheduling.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK;
@@ -631,43 +1324,114 @@ compute_scheduling (CORBA::Long minimum_priority,
// If everything is already up to date, we're done.
if (SCHED_ALL_STABLE == stability_flags_)
{
+
+ // Must always provide a value for an out parameter
+ ACE_NEW_THROW_EX (anomalies,
+ RtecScheduler::Scheduling_Anomaly_Set (0),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
return;
}
// @@ TO DO - use try/catch blocks to catch exceptions and add anomalies
// to scheduling anomaly set, and then perhaps rethrow)
- if (this->stability_flags_ & SCHED_PROPAGATION_NOT_STABLE)
+ if ((this->stability_flags_ & SCHED_PROPAGATION_NOT_STABLE)
+ || (this->stability_flags_ & SCHED_UTILIZATION_NOT_STABLE))
{
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "1_pre_crit_traverse.txt");
+#endif
+
+ // Traverse criticality dependency graph, assigning a
+ // topological ordering and identifying threads.
+ crit_dfs_traverse_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "2_crit_dfs_traverse_i.txt");
+#endif
+
+ // Propagate criticalities.
+ propagate_criticalities_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "3_propagate_criticalities_i.txt");
+#endif
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "4_pre_traverse.txt");
+#endif
+
// Traverse dependency graph, assigning a topological ordering and identifying threads.
dfs_traverse_i (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "5_dfs_traverse_i.txt");
+#endif
// Sort an array of RT_info handles in topological order, check
// for loops using the strongly connected components algorithm.
detect_cycles_i (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
-
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "6_detect_cycles_i.txt");
+#endif
+
+ // Perform admission control for task delineator rate tuples.
+ perform_admission_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "7_perform_admission_i.txt");
+#endif
+
// Propagate effective execution time and period, set total frame size.
propagate_characteristics_i (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "8_propagate_characteristics_i.txt");
+#endif
+
}
if (this->stability_flags_ & SCHED_PRIORITY_NOT_STABLE)
{
- // Sort operations by urgency (done by strategy), then
- // assign priorities and subpriorities in one pass.
- // Sets last scheduled priority.
+ // Sort operations by urgency, then assign priorities and
+ // subpriorities in one pass. Sets last scheduled priority and
+ // last feasible priority.
assign_priorities_i (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
+
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_,
+ this->rt_info_count_,
+ "9_assign_priorities_i.txt");
+#endif
+
}
- if (this->stability_flags_ & SCHED_UTILIZATION_NOT_STABLE)
- {
- // Compute utilization, set last feasible priority.
- compute_utilization_i (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
- }
// @@ TODO: record any scheduling anomalies in a set within the scheduler,
// storing the maximum severity level recorded so far.
@@ -679,7 +1443,27 @@ compute_scheduling (CORBA::Long minimum_priority,
ACE_CHECK;
}
+
+ // Set stability flags last.
+ this->stability_flags_ = SCHED_ALL_STABLE;
+ return;
+}
+
+
+// Returns the set of rt_infos, with their assigned priorities (as
+// of the last schedule re-computation).
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+get_rt_info_set (RtecScheduler::RT_Info_Set_out infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+{
// return the set of scheduled RT_Infos
+
if (infos.ptr () == 0)
{
ACE_NEW_THROW_EX (infos,
@@ -687,17 +1471,81 @@ compute_scheduling (CORBA::Long minimum_priority,
CORBA::NO_MEMORY ());
ACE_CHECK;
}
+
infos->length (this->rt_info_count_);
- RtecScheduler::RT_Info* rt_info = 0;
+ TAO_RT_Info_Ex* rt_info = 0;
for (ACE_TYPENAME RT_INFO_MAP::iterator info_iter (this->rt_info_map_);
info_iter.done () == 0;
++info_iter)
{
+ // TODO - rethink this: is it more useful to only return the *enabled* RT_Infos?
rt_info = (*info_iter).int_id_;
infos[ACE_static_cast (CORBA::ULong, rt_info->handle - 1)] = *rt_info;
}
- // return the set of scheduled Config_Infos
+ return;
+}
+
+
+// Returns the set of rt_infos, with their assigned priorities (as
+// of the last schedule re-computation).
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+get_dependency_set (RtecScheduler::Dependency_Set_out dependencies
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+{
+ // Return the set of dependencies: just need to iterate over one of the maps.
+
+ if (dependencies.ptr () == 0)
+ {
+ dependencies = new RtecScheduler::Dependency_Set (this->dependency_count_);
+ }
+ dependencies->length (this->dependency_count_);
+ RtecScheduler::Dependency_Set *dependency_set = 0;
+ int i = 0;
+ for (ACE_TYPENAME DEPENDENCY_SET_MAP::iterator
+ dependency_iter (this->called_dependency_set_map_);
+ dependency_iter.done () == 0 && i < this->dependency_count_;
+ ++dependency_iter)
+ {
+ dependency_set = (*dependency_iter).int_id_;
+ for (u_int j = 0;
+ j < dependency_set->length () && i < this->dependency_count_;
+ ++i, ++j)
+ {
+ (* dependencies) [i] = (*dependency_set) [j];
+ // For two-way calls, swap the handles (stored in reverse order in the called map)
+ if ((* dependencies) [i].dependency_type == RtecBase::TWO_WAY_CALL)
+ {
+ (* dependencies) [i].rt_info = (* dependency_set) [j].rt_info_depended_on;
+ (* dependencies) [i].rt_info_depended_on = (* dependency_set) [j].rt_info;
+ }
+ }
+ }
+
+ return;
+}
+
+
+// Returns the set of config_infos, describing the appropriate
+// number, types, and priority levels for the dispatching lanes.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+get_config_info_set (RtecScheduler::Config_Info_Set_out configs
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL))
+{
+ // Return the set of scheduled Config_Infos.
+
if (configs.ptr () == 0)
{
ACE_NEW_THROW_EX (configs,
@@ -706,6 +1554,7 @@ compute_scheduling (CORBA::Long minimum_priority,
CORBA::NO_MEMORY ());
ACE_CHECK;
}
+
configs->length (this->config_info_count_);
RtecScheduler::Config_Info* config_info = 0;
for (ACE_TYPENAME CONFIG_INFO_MAP::iterator config_iter (this->config_info_map_);
@@ -716,14 +1565,6 @@ compute_scheduling (CORBA::Long minimum_priority,
configs[ACE_static_cast (CORBA::ULong, config_info->preemption_priority)] = *config_info;
}
- ACE_DEBUG ((LM_DEBUG, "Schedule prepared.\n"));
- ACE_DEBUG ((LM_DEBUG, "Dumping to stdout.\n"));
- ACE_Scheduler_Factory::dump_schedule (*(infos.ptr()), *(configs.ptr()),
- *(anomalies.ptr()), 0);
- ACE_DEBUG ((LM_DEBUG, "Dump done.\n"));
-
- // Set stability flags last.
- this->stability_flags_ = SCHED_ALL_STABLE;
return;
}
@@ -743,6 +1584,11 @@ dispatch_configuration (RtecScheduler::Preemption_Priority_t p_priority,
RtecScheduler::SYNCHRONIZATION_FAILURE,
RtecScheduler::UNKNOWN_PRIORITY_LEVEL))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::dispatch_configuration.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK;
@@ -773,11 +1619,16 @@ dispatch_configuration (RtecScheduler::Preemption_Priority_t p_priority,
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
RtecScheduler::Preemption_Priority_t
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
-last_scheduled_priority (ACE_ENV_SINGLE_ARG_DECL)
+last_scheduled_priority (ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::SYNCHRONIZATION_FAILURE,
RtecScheduler::NOT_SCHEDULED))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::last_scheduled_priority.\n"));
+#endif /* SCHEDULER_LOGGING */
+
ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_,
RtecScheduler::SYNCHRONIZATION_FAILURE ());
ACE_CHECK_RETURN (0);
@@ -835,37 +1686,52 @@ get_config_infos (RtecScheduler::Config_Info_Set_out configs
}
}
-// Internal method to create an RT_Info. If it does not exist, a new RT_Info is
-// created and inserted into the schedule, and the handle of the new
-// RT_Info is returned. If the RT_Info already exists, an exception
-// is thrown.
+
+// Internal method to create an RT_Info. If it does not exist, a new
+// RT_Info is created and inserted into the schedule, and the handle
+// of the new RT_Info is returned. If the RT_Info already exists,
+// then if the ignore_duplicates flag is set, the handle is simply
+// returned; otherwise, an exception is thrown.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-RtecScheduler::RT_Info *
+TAO_RT_Info_Ex *
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
create_i (const char *entry_point,
- RtecScheduler::handle_t handle
+ RtecScheduler::handle_t handle,
+ int ignore_duplicates
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::DUPLICATE_NAME,
RtecScheduler::INTERNAL))
{
- RtecScheduler::RT_Info* new_rt_info = 0;
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::create_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ TAO_RT_Info_Ex* new_rt_info = 0;
TAO_Reconfig_Scheduler_Entry* new_sched_entry = 0;
int result = 0;
+ // If we're ignoring duplicates, check for and return the existing
+ // entry if there is one.
+ if (ignore_duplicates
+ && rt_info_map_.find (handle, new_rt_info) == 0)
+ {
+ return new_rt_info;
+ }
+
// Create a new scheduling entry for the RT_Info.
ACE_NEW_THROW_EX (new_rt_info,
- RtecScheduler::RT_Info,
+ TAO_RT_Info_Ex,
CORBA::NO_MEMORY ());
ACE_CHECK_RETURN (0);
// Make sure the new scheduling entry is cleaned up if we exit abruptly.
- auto_ptr<RtecScheduler::RT_Info> new_rt_info_ptr (new_rt_info);
+ auto_ptr<TAO_RT_Info_Ex> new_rt_info_ptr (new_rt_info);
// Set some reasonable default values, and store the passed ones.
- TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::init_rt_info (*new_rt_info);
- new_rt_info->entry_point = CORBA::string_dup(entry_point);
+ new_rt_info->entry_point = CORBA::string_dup (entry_point);
new_rt_info->handle = handle;
// Bind the new RT_Info to its handle, in the RT_Info map.
@@ -878,7 +1744,16 @@ create_i (const char *entry_point,
case 1:
// Tried to bind an operation that was already in the map.
+ if (ignore_duplicates)
+ {
+ // Should never get here unless something is badly awry.
+ ACE_THROW_RETURN (RtecScheduler::INTERNAL (), 0);
+ }
+ else
+ {
+ // Already bound, and we're not ignoring duplicates.
ACE_THROW_RETURN (RtecScheduler::DUPLICATE_NAME (), 0);
+ }
default:
break;
@@ -911,74 +1786,27 @@ create_i (const char *entry_point,
// Make sure the new scheduling entry is cleaned up if we exit abruptly.
auto_ptr<TAO_Reconfig_Scheduler_Entry> new_sched_entry_ptr (new_sched_entry);
- // Make sure there is room in the scheduling entry pointer array:
- // expand the array eagerly, to minimize memory allocation overhead
-
- if (this->entry_ptr_array_size_ <= handle)
- {
- if (entry_ptr_array_size_ > 0)
- {
- // Store previous array size.
- long new_size = entry_ptr_array_size_;
-
- // Double the size of the array until sufficient.
- do
- {
- new_size *= 2;
- }
- while (new_size <= handle);
-
- // Allocate the new array of the proper size, zero it out.
-
- TAO_Reconfig_Scheduler_Entry ** new_array;
- ACE_NEW_THROW_EX (new_array,
- TAO_Reconfig_Scheduler_Entry * [new_size],
- CORBA::NO_MEMORY ());
-
- ACE_OS::memset (new_array, 0,
- sizeof (TAO_Reconfig_Scheduler_Entry *) *
- new_size);
-
- // Copy in the previous array.
- ACE_OS::memcpy (new_array, entry_ptr_array_,
- sizeof (TAO_Reconfig_Scheduler_Entry *) *
- entry_ptr_array_size_);
+ // Maintain the size of the entry pointer array.
+ ::maintain_scheduling_array (entry_ptr_array_, entry_ptr_array_size_,
+ handle ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
- // Free the old array and swap to point to the new one.
- delete [] entry_ptr_array_;
- entry_ptr_array_ = new_array;
- entry_ptr_array_size_ = new_size;
- }
- else
- {
- // For the first allocation, just start with sufficient space
- // for the handle that was given.
- ACE_NEW_THROW_EX (entry_ptr_array_,
- TAO_Reconfig_Scheduler_Entry * [handle + 1],
- CORBA::NO_MEMORY ());
- entry_ptr_array_size_ = handle + 1;
- }
- }
- // Atore in the scheduling entry pointer array.
+ // Store the new entry in the scheduling entry pointer array.
entry_ptr_array_ [handle - 1] = new_sched_entry;
- // Store a pointer to the scheduling entry in the scheduling entry
- // pointer array and in the RT_Info: the double cast is needed to
- // ensure that the size of the pointer and the size of the stored
- // magic cookie are the same (see the definition of ptrdiff_t in
- // ACE to grok how this works portably).
- new_rt_info->volatile_token =
- ACE_static_cast (CORBA::ULongLong,
- ACE_reinterpret_cast (ptrdiff_t,
- new_sched_entry));
-
// Release the auto pointers, so their destruction does not
// remove the new rt_info that is now in the map and tree,
// or the scheduling entry attached to the rt_info.
new_rt_info_ptr.release ();
new_sched_entry_ptr.release ();
+ // Connect the entry to the RT_Info.
+ new_rt_info->volatile_token =
+ ACE_static_cast (CORBA::ULongLong,
+ ACE_reinterpret_cast (ptrdiff_t,
+ new_sched_entry));
+
// With everything safely registered in the map and tree, just
// update the next handle and info counter and return the new info.
if (handle >= this->next_handle_)
@@ -993,12 +1821,11 @@ create_i (const char *entry_point,
return new_rt_info;
}
-
// Internal method to set characteristics of the passed RT_Info.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
-set_i (RtecScheduler::RT_Info *rt_info,
+set_i (TAO_RT_Info_Ex *rt_info,
RtecScheduler::Criticality_t criticality,
RtecScheduler::Time time,
RtecScheduler::Time typical_time,
@@ -1007,8 +1834,26 @@ set_i (RtecScheduler::RT_Info *rt_info,
RtecScheduler::Importance_t importance,
RtecScheduler::Quantum_t quantum,
CORBA::Long threads,
- RtecScheduler::Info_Type_t info_type)
+ RtecScheduler::Info_Type_t info_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::set_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ // Do not allow conjunction nodes for now.
+ if (info_type == RtecScheduler::CONJUNCTION)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("Conjunction Nodes are not supported currently.")));
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+
+ // Set the base RT_Info to have the attributes of the latest values.
rt_info->criticality = criticality;
rt_info->worst_case_execution_time = time;
rt_info->typical_execution_time = typical_time;
@@ -1018,9 +1863,68 @@ set_i (RtecScheduler::RT_Info *rt_info,
rt_info->quantum = quantum;
rt_info->threads = threads;
rt_info->info_type = info_type;
+
+ // If a rate is advertised, create a separate tuple for that rate.
+ if (period > 0)
+ {
+ TAO_Reconfig_Scheduler_Entry * rse_ptr =
+ ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *,
+ rt_info->volatile_token);
+// ACE_DEBUG((LM_DEBUG, "Updating or inserting tuple for RT_Info: %d, entry_ptr: %x\n", rt_info->handle, rse_ptr));
+ if (rse_ptr == 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ int result = rse_ptr->update_tuple (*rt_info);
+ if (result < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ else if (result == 0) // We did not find an existing tuple.
+ {
+ // Create a new RT_Info tuple from the passed RT_Info.
+ TAO_RT_Info_Tuple *tuple_ptr = 0;
+ ACE_NEW_THROW_EX (tuple_ptr,
+ TAO_RT_Info_Tuple (*rt_info),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
+
+
+ // Make sure the new tuple is cleaned up if we exit abruptly.
+ auto_ptr<TAO_RT_Info_Tuple> tuple_auto_ptr (tuple_ptr);
+
+// ACE_DEBUG((LM_DEBUG, "Tuple not found. Inserting new tuple for RT_Info: %d, entry_ptr: 0x%x, tuple_ptr: 0x%x\n",
+// rt_info->handle,
+// rse_ptr,
+// tuple_ptr));
+ // Add the tuple to the entry's original tuple set
+ result = rse_ptr->insert_tuple (*tuple_ptr);
+ if (result < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ // Maintain the size of the entry pointer array.
+ ::maintain_scheduling_array (tuple_ptr_array_,
+ tuple_ptr_array_size_,
+ rt_info_tuple_count_
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Store the new tuple in the tuple pointer array.
+ tuple_ptr_array_ [this->rt_info_tuple_count_] = tuple_ptr;
+
+ ++this->rt_info_tuple_count_;
+
+ // All is well: release the auto pointer's hold on the tuple.
+ tuple_auto_ptr.release ();
+ }
+ }
}
+
// Internal method to lookup a handle for an RT_Info, and return its
// handle, or an error value if it's not present.
@@ -1032,7 +1936,12 @@ lookup_i (const char * entry_point
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::UNKNOWN_TASK))
{
- RtecScheduler::RT_Info *rt_info = 0;
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::lookup_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ TAO_RT_Info_Ex *rt_info = 0;
if (rt_info_tree_.find (entry_point, rt_info) != 0)
{
ACE_THROW_RETURN (RtecScheduler::UNKNOWN_TASK (), 0);
@@ -1063,7 +1972,7 @@ priority_i (RtecScheduler::handle_t handle,
ACE_THROW (RtecScheduler::NOT_SCHEDULED ());
}
- RtecScheduler::RT_Info *rt_info = 0;
+ TAO_RT_Info_Ex *rt_info = 0;
if (rt_info_map_.find (handle, rt_info) != 0)
{
ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
@@ -1075,19 +1984,25 @@ priority_i (RtecScheduler::handle_t handle,
}
-// This method registers a dependency between two RT_Infos.
+// This internal method registers a dependency between two RT_Infos.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the dependency */,
RtecScheduler::handle_t dependency /* RT_Info on which it depends */,
CORBA::Long number_of_calls,
- RtecScheduler::Dependency_Type_t dependency_type
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::INTERNAL,
RtecScheduler::UNKNOWN_TASK))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::add_dependency_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
// All dependencies are mapped by both the calling and called
// operation handles, so that a topological sort can be performed
// once over both one-way and two-way dependencies. The dependency
@@ -1106,7 +2021,8 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende
dependency, // called handle
calling_dependency_set_map_, // calling map
number_of_calls,
- dependency_type
+ dependency_type,
+ enabled
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
@@ -1115,10 +2031,11 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende
handle, // calling handle
called_dependency_set_map_, // called map
number_of_calls,
- dependency_type
+ dependency_type,
+ enabled
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
-
+
break;
// In a one-way call, the called operation depends on the
@@ -1130,7 +2047,8 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende
handle, // called handle
calling_dependency_set_map_, // calling map
number_of_calls,
- dependency_type
+ dependency_type,
+ enabled
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
@@ -1139,10 +2057,113 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende
dependency, // calling handle
called_dependency_set_map_, // called map
number_of_calls,
- dependency_type
+ dependency_type,
+ enabled
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
+ break;
+
+ default:
+
+ // There should not be any other kinds of dependencies.
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+
+ // Add the criticality dependency map entry.
+ // If A---TW--->B and C---OW--->D, the add_dependency_calls
+ // would look like this
+ // add_dependency (A, B, TW)
+ // add_dependency (D, C, OW)
+ // Neither of the other two maps capture these dependencies
+ // A depends on B and D depends on C.
+ // The calling dependency map captures
+ // A calls B and C calls D.
+ // The called dependency map captures
+ // B called by A and D called by C.
+
+ map_dependency_i (handle, // calling handle
+ dependency, // called handle
+ crit_dependency_set_map_,// crit dependency map
+ number_of_calls,
+ dependency_type,
+ enabled
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+}
+
+
+// This internal method removes a dependency between two RT_Infos.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+remove_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the dependency */,
+ RtecScheduler::handle_t dependency /* RT_Info on which it depends */,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::remove_dependency_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ // All dependencies are mapped by both the calling and called
+ // operation handles, so that a topological sort can be performed
+ // once over both one-way and two-way dependencies. The dependency
+ // specification is in absolute terms, however, so that the calling
+ // and called handles are reversed for one-way and two way
+ // dependencies.
+
+ switch (dependency_type)
+ {
+ // In a two-way call, the calling operation depends on the
+ // called operation.
+ case RtecBase::TWO_WAY_CALL:
+
+ // Remove the calling dependency map entry
+ unmap_dependency_i (handle, // calling handle
+ dependency, // called handle
+ calling_dependency_set_map_, // calling map
+ number_of_calls,
+ dependency_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Remove the called dependency map entry
+ unmap_dependency_i (dependency, // called handle
+ handle, // calling handle
+ called_dependency_set_map_, // called map
+ number_of_calls,
+ dependency_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ break;
+
+ // In a one-way call, the called operation depends on the
+ // calling operation.
+ case RtecBase::ONE_WAY_CALL:
+
+ // Remove the calling dependency map entry
+ unmap_dependency_i (dependency, // calling handle
+ handle, // called handle
+ calling_dependency_set_map_, // calling map
+ number_of_calls,
+ dependency_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ // Remove the called dependency map entry
+ unmap_dependency_i (handle, // called handle
+ dependency, // calling handle
+ called_dependency_set_map_, // called map
+ number_of_calls,
+ dependency_type
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
break;
default:
@@ -1150,7 +2171,93 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende
// There should not be any other kinds of dependencies.
ACE_THROW (RtecScheduler::INTERNAL ());
}
+}
+
+
+// This method sets the enable state for a dependency between two RT_Infos.
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+set_dependency_enable_state_i (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::set_dependency_enable_state_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ // All dependencies are mapped by both the calling and called
+ // operation handles, so that a topological sort can be performed
+ // once over both one-way and two-way dependencies. The dependency
+ // specification is in absolute terms, however, so that the calling
+ // and called handles are reversed for one-way and two way
+ // dependencies.
+
+ switch (dependency_type)
+ {
+ // In a two-way call, the calling operation depends on the
+ // called operation.
+ case RtecBase::TWO_WAY_CALL:
+
+ // Update the calling dependency map entry
+ map_dependency_enable_state_i (handle, // calling handle
+ dependency, // called handle
+ calling_dependency_set_map_, // calling map
+ number_of_calls,
+ dependency_type,
+ enabled
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Update the called dependency map entry
+ map_dependency_enable_state_i (dependency, // called handle
+ handle, // calling handle
+ called_dependency_set_map_, // called map
+ number_of_calls,
+ dependency_type,
+ enabled
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ break;
+
+ // In a one-way call, the called operation depends on the
+ // calling operation.
+ case RtecBase::ONE_WAY_CALL:
+
+ // Update the calling dependency map entry
+ map_dependency_enable_state_i (dependency, // calling handle
+ handle, // called handle
+ calling_dependency_set_map_, // calling map
+ number_of_calls,
+ dependency_type,
+ enabled
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Update the called dependency map entry
+ map_dependency_enable_state_i (handle, // called handle
+ dependency, // calling handle
+ called_dependency_set_map_, // called map
+ number_of_calls,
+ dependency_type,
+ enabled
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ break;
+
+ default:
+
+ // There should not be any other kinds of dependencies.
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
}
// This method installs a dependency in a dependency set map.
@@ -1159,21 +2266,24 @@ template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
map_dependency_i (RtecScheduler::handle_t key,
RtecScheduler::handle_t handle,
- ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> & map,
+ ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map,
CORBA::Long number_of_calls,
- RtecScheduler::Dependency_Type_t dependency_type
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL,
RtecScheduler::UNKNOWN_TASK))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::map_dependency_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
RtecScheduler::Dependency_Set *dependency_set;
// Look up the dependency set in the passed map
- if (map.find (key, dependency_set) != 0)
+ if (dependency_map.find (key, dependency_set) != 0)
{
// Create a new one
ACE_NEW_THROW_EX (dependency_set,
@@ -1181,10 +2291,10 @@ map_dependency_i (RtecScheduler::handle_t key,
CORBA::NO_MEMORY ());
ACE_CHECK;
- if (map.bind (key, dependency_set) != 0)
+ if (dependency_map.bind (key, dependency_set) != 0)
{
delete dependency_set;
- ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ ACE_THROW (RtecScheduler::INTERNAL ());
}
}
@@ -1193,8 +2303,139 @@ map_dependency_i (RtecScheduler::handle_t key,
int prev_length = dependency_set->length ();
dependency_set->length (prev_length + 1);
(*dependency_set) [prev_length].rt_info = handle;
+ (*dependency_set) [prev_length].rt_info_depended_on = key; // may actually be the other way around
(*dependency_set) [prev_length].number_of_calls = number_of_calls;
(*dependency_set) [prev_length].dependency_type = dependency_type;
+ (*dependency_set) [prev_length].enabled = enabled;
+}
+
+
+// This method removes a dependency from a dependency set map.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+unmap_dependency_i (RtecScheduler::handle_t key,
+ RtecScheduler::handle_t handle,
+ ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::unmap_dependency_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ RtecScheduler::Dependency_Set *dependency_set = 0;
+
+ // Try to unbind the matching dependency set from the passed map
+ // and if successful, destroy the
+ if (dependency_map.find (key, dependency_set) == 0)
+ {
+ if (dependency_set)
+ {
+ int prev_length = dependency_set->length ();
+ int found = 0;
+ for (int i = 0; i < prev_length; ++i)
+ {
+ if ((*dependency_set) [i].rt_info == handle
+ && (*dependency_set) [i].number_of_calls == number_of_calls
+ && (*dependency_set) [i].dependency_type == dependency_type)
+ {
+ // we found the dependency to delete: set our
+ // found flag to true and compact the array
+ found = 1;
+ for (int j = i+1; j < prev_length; ++j)
+ {
+ (*dependency_set) [j - 1].rt_info = (*dependency_set) [j].rt_info;
+ (*dependency_set) [j - 1].number_of_calls = (*dependency_set) [j].number_of_calls;
+ (*dependency_set) [j - 1].dependency_type = (*dependency_set) [j].dependency_type;
+ (*dependency_set) [j - 1].enabled = (*dependency_set) [j].enabled;
+ }
+ dependency_set->length (prev_length - 1);
+ break;
+ }
+ }
+
+ if (!found)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+ }
+ else
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+ else
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+}
+
+// Internal method that enables or disables a dependency between two RT_Infos.
+// Assumes it is being called with all locks held, and does *not*
+// set any schedule stability flags.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+map_dependency_enable_state_i (RtecScheduler::handle_t key,
+ RtecScheduler::handle_t handle,
+ ACE_TYPENAME
+ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::UNKNOWN_TASK))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::map_dependency_enable_state_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ RtecScheduler::Dependency_Set *dependency_set = 0;
+
+ // Try to unbind the matching dependency set from the passed map
+ // and if successful, destroy the
+ if (dependency_map.find (key, dependency_set) == 0)
+ {
+ if (dependency_set)
+ {
+ int set_length = dependency_set->length ();
+ int found = 0;
+ for (int i = 0; i < set_length; ++i)
+ {
+ if ((*dependency_set) [i].rt_info == handle
+ && (*dependency_set) [i].number_of_calls == number_of_calls
+ && (*dependency_set) [i].dependency_type == dependency_type)
+ {
+ // we found the dependency to update
+ found = 1;
+ (*dependency_set) [i].enabled = enabled;
+ break;
+ }
+ }
+
+ if (!found)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
+ }
+ else
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+ else
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK ());
+ }
}
@@ -1208,6 +2449,11 @@ dfs_traverse_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::INTERNAL))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::dfs_traverse_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
int i; // index into array of scheduling entry pointers
// Reset registered RT_Infos.
@@ -1244,9 +2490,14 @@ detect_cycles_i (ACE_ENV_SINGLE_ARG_DECL)
RtecScheduler::INTERNAL,
RtecScheduler::CYCLIC_DEPENDENCIES))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::detect_cycles_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
// Sort the pointers to entries in order of descending forward
- // finish times, which produces a topological ordering, with
- // callers ahead of called nodes.
+ // finish times, which produces a reverse topological ordering,
+ // with callers ahead of called nodes.
ACE_OS::qsort (ACE_reinterpret_cast (void *, entry_ptr_array_),
this->rt_info_count_,
sizeof (TAO_Reconfig_Scheduler_Entry *),
@@ -1276,7 +2527,152 @@ detect_cycles_i (ACE_ENV_SINGLE_ARG_DECL)
}
}
-// Propagates effective execution time and period, sets total frame size.
+
+// Propagates aggregate execution times, then performs admission over
+// rate tuples.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+perform_admission_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::perform_admission_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ // Traverse entries in topological (ascending forward DFS
+ // finish time) order, propagating aggregate execution
+ // time from called nodes to calling node at each step.
+
+ TAO_RSE_Reverse_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
+ prop_visitor (this->calling_dependency_set_map_,
+ this->rt_info_map_);
+ int i;
+ for (i = this->rt_info_count_ - 1; i >= 0; --i)
+ {
+ if (prop_visitor.visit (* (entry_ptr_array_ [i])) < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+
+ // Sort the pointers to original tuples in ascending admission
+ // order, according to the scheduling strategy's admission policy.
+ ACE_OS::qsort (ACE_reinterpret_cast (void *, tuple_ptr_array_),
+ this->rt_info_tuple_count_,
+ sizeof (TAO_RT_Info_Tuple *),
+ ACE_reinterpret_cast (COMP_FUNC,
+ RECONFIG_SCHED_STRATEGY::total_admission_comp));
+
+ // Traverse tuples in admission order, updating the associate tuple
+ // for each thread delineator.
+#if defined (SCHEDULER_LOGGING)
+ ACE_Scheduler_Factory::log_scheduling_tuples(tuple_ptr_array_,
+ this->rt_info_tuple_count_,
+ "sorted_admit_tuples.txt");
+#endif
+
+ TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>
+ admit_visitor (critical_utilization_threshold_,
+ noncritical_utilization_threshold_);
+
+ for (i = 0; i < this->rt_info_tuple_count_; ++i)
+ {
+ if (admit_visitor.visit (* (tuple_ptr_array_ [i])) < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+
+ // Store the values accumulated by the visitor.
+ this->noncritical_utilization_ =
+ admit_visitor.noncritical_utilization ();
+ this->critical_utilization_ =
+ admit_visitor.critical_utilization ();
+}
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+crit_dfs_traverse_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::crit_dfs_traverse_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ int i; // index into array of scheduling entry pointers
+
+ // Reset registered RT_Infos.
+ TAO_RSE_Reset_Visitor reset_visitor;
+ for (i = 0; i < this->rt_info_count_; ++i)
+ {
+ if (reset_visitor.visit (* (entry_ptr_array_ [i])) < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+
+ // Traverse registered RT_Infos, assigning DFS start, finish order.
+ TAO_RSE_DFS_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
+ dfs_visitor (this->crit_dependency_set_map_,
+ this->rt_info_map_);
+ for (i = 0; i < this->rt_info_count_; ++i)
+ {
+ if (dfs_visitor.visit (* (entry_ptr_array_ [i])) < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+}
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+propagate_criticalities_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL))
+{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::propagate_criticalities_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ // Sort the pointers to original tuples in ascending admission
+ // order, according to the scheduling strategy's admission policy.
+ ACE_OS::qsort (ACE_reinterpret_cast (void *, tuple_ptr_array_),
+ this->rt_info_tuple_count_,
+ sizeof (TAO_RT_Info_Tuple *),
+ ACE_reinterpret_cast (COMP_FUNC,
+ RECONFIG_SCHED_STRATEGY::comp_entry_finish_times ));
+
+ // Traverse entries in topological (ascending forward DFS
+ // finish time) order, propagating aggregate execution
+ // time from called nodes to calling node at each step.
+
+ TAO_RSE_Criticality_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
+ crit_prop_visitor (this->crit_dependency_set_map_,
+ this->rt_info_map_);
+ int i;
+ for (i = 0; i<this->rt_info_count_; ++i)
+ {
+ if (crit_prop_visitor.visit (* (entry_ptr_array_ [i])) < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+ for (i = this->rt_info_count_-1; i>=0; --i)
+ {
+ if (crit_prop_visitor.visit (* (entry_ptr_array_ [i])) < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+}
+
+// Propagates periods, sets total frame size.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
propagate_characteristics_i (ACE_ENV_SINGLE_ARG_DECL)
@@ -1285,10 +2681,15 @@ propagate_characteristics_i (ACE_ENV_SINGLE_ARG_DECL)
RtecScheduler::UNRESOLVED_LOCAL_DEPENDENCIES,
RtecScheduler::THREAD_SPECIFICATION))
{
- // Traverse entries in topological (DFS finish) order,
- // propagating period and effective execution time from
- // calling node to called node at each step.
- TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::propagate_characteristics_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ // Traverse entries in reverse topological (descending forward DFS
+ // finish time) order, propagating period and effective execution
+ // time from calling node to called node at each step.
+ TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
prop_visitor (this->calling_dependency_set_map_,
this->rt_info_map_);
for (int i = 0; i < this->rt_info_count_; ++i)
@@ -1322,6 +2723,26 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL)
RtecScheduler::INTERNAL,
RtecScheduler::DUPLICATE_NAME))
{
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::assign_priorities_i.\n"));
+
+ ACE_DEBUG ((LM_DEBUG, "Scheduler::entry ptr array before sorting is\n"));
+ for (int i = 0; i < this->rt_info_count_; ++i)
+ {
+ RtecScheduler::RT_Info* rt_info_ptr =
+ this->entry_ptr_array_[i]->actual_rt_info ();
+ ACE_DEBUG ((LM_DEBUG,
+ " %s [%d] crit=%d,prio=%d,preemption_prio=%d,subprio=%d\n ",
+ rt_info_ptr->entry_point.in (),
+ rt_info_ptr->handle,
+ rt_info_ptr->criticality,
+ rt_info_ptr->priority,
+ rt_info_ptr->preemption_priority,
+ rt_info_ptr->preemption_subpriority));
+ }
+#endif /* SCHEDULER_LOGGING */
+
// Sort the pointers to entries in descending order
// of static priority and static subpriority, according
// to our given scheduling strategy.
@@ -1331,6 +2752,23 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_reinterpret_cast (COMP_FUNC,
RECONFIG_SCHED_STRATEGY::total_priority_comp));
+#ifdef SCHEDULER_LOGGING
+ ACE_DEBUG ((LM_DEBUG, "Scheduler::qsorted array is\n"));
+ for (int i = 0; i < this->rt_info_count_; ++i)
+ {
+ RtecScheduler::RT_Info* rt_info_ptr =
+ this->entry_ptr_array_[i]->actual_rt_info ();
+ ACE_DEBUG ((LM_DEBUG,
+ " %s [%d] crit=%d,prio=%d,preemption_prio=%d,subprio=%d\n ",
+ rt_info_ptr->entry_point.in (),
+ rt_info_ptr->handle,
+ rt_info_ptr->criticality,
+ rt_info_ptr->priority,
+ rt_info_ptr->preemption_priority,
+ rt_info_ptr->preemption_subpriority));
+ }
+#endif
+
// Empty out the previously stored configuration infos, if any.
RtecScheduler::Preemption_Priority_t config_priority;
RtecScheduler::Config_Info *config_info_temp;
@@ -1346,10 +2784,11 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW (RtecScheduler::INTERNAL ());
}
}
+ this->config_info_count_ = 0;
// Traverse using a priority assignment visitor, which uses a
// strategy to decide when a new priority or subpriority is reached.
- TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>
+ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>
prio_visitor (this->rt_info_count_, this->entry_ptr_array_);
auto_ptr<RtecScheduler::Config_Info> new_config_info_ptr;
for (int i = 0; i <= this->rt_info_count_; ++i)
@@ -1392,7 +2831,7 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL)
}
if (new_config_info->preemption_priority >
- last_scheduled_priority_)
+ this->last_scheduled_priority_)
{
this->last_scheduled_priority_ =
new_config_info->preemption_priority;
@@ -1422,53 +2861,36 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL)
}
}
-// Compute utilization, set last feasible priority.
+
+// Refreshes the array of tuple pointers, tuple pointer count.
+
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
-compute_utilization_i (ACE_ENV_SINGLE_ARG_DECL)
+refresh_tuple_ptr_array_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::INTERNAL))
{
- TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY> util_visitor;
+#if defined (SCHEDULER_LOGGING)
+ ACE_DEBUG ((LM_TRACE,
+ " TAO_Reconfig_Scheduler::refresh_tuple_ptr_array_i.\n"));
+#endif /* SCHEDULER_LOGGING */
+
+ // Zero out the tuple pointer array, set count to zero
+ ACE_OS::memset (this->tuple_ptr_array_, 0,
+ sizeof (TAO_RT_Info_Tuple *)
+ * this->tuple_ptr_array_size_);
+ this->rt_info_tuple_count_ = 0;
+
for (int i = 0; i < this->rt_info_count_; ++i)
{
- if (util_visitor.visit (* (entry_ptr_array_ [i])) < 0)
+ if (entry_ptr_array_ [i]->register_tuples (this->tuple_ptr_array_,
+ this->rt_info_tuple_count_) < 0)
{
ACE_THROW (RtecScheduler::INTERNAL ());
}
}
-
- // Store the values accumulated by the visitor.
- this->noncritical_utilization_ =
- util_visitor.noncritical_utilization ();
- this->critical_utilization_ =
- util_visitor.critical_utilization ();
-}
-
-
-// Static helper method to give an RT_Info some reasonable default values.
-
-template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
-TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::init_rt_info (RtecScheduler::RT_Info &rt_info)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // Set some reasonable default values.
- rt_info.criticality = RtecScheduler::VERY_LOW_CRITICALITY;
- rt_info.worst_case_execution_time = 0;
- rt_info.typical_execution_time = 0;
- rt_info.cached_execution_time = 0;
- rt_info.period = 1;
- rt_info.importance = RtecScheduler::VERY_LOW_IMPORTANCE;
- rt_info.quantum = 0;
- rt_info.threads = 0;
- rt_info.info_type = RtecScheduler::OPERATION;
- rt_info.priority = 0;
- rt_info.preemption_subpriority = 0;
- rt_info.preemption_priority = 0;
- rt_info.volatile_token = 0;
}
-
// Accesses scheduling strategy for the reconfig scheduler.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> RECONFIG_SCHED_STRATEGY &
@@ -1481,11 +2903,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::sched_strategy ()
// Accesses map for O(1) lookup of Config_Infos by priority level.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-ACE_Hash_Map_Manager_Ex<RtecScheduler::Preemption_Priority_t,
- RtecScheduler::Config_Info*,
- ACE_Hash<RtecScheduler::Preemption_Priority_t>,
- ACE_Equal_To<RtecScheduler::Preemption_Priority_t>,
- ACE_LOCK> &
+ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::CONFIG_INFO_MAP &
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::config_info_map ()
{
return this->config_info_map_;
@@ -1505,11 +2923,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::config_info_count ()
// Accesses map for O(1) lookup of RT_Infos by handle.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> &
+ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP &
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_map ()
{
return this->rt_info_map_;
@@ -1524,14 +2938,19 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_count ()
return this->rt_info_count_;
}
+// Returns the number of registered RT_Info tuples.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> long
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_tuple_count ()
+{
+ return this->rt_info_tuple_count_;
+}
+
// Accesses tree for O(log n) lookup of RT_Infos by name.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-ACE_RB_Tree<const char *,
- RtecScheduler::RT_Info*,
- ACE_Less_Than<const char *>,
- ACE_LOCK> &
+ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_TREE &
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_tree ()
{
return this->rt_info_tree_;
@@ -1542,11 +2961,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_tree ()
// set by the caller operation's handle.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> &
+ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::calling_dependency_set_map ()
{
return this->calling_dependency_set_map_;
@@ -1557,11 +2972,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::calling_dependency_se
// set by the called operation's handle.
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
-ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> &
+ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &
TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::called_dependency_set_map ()
{
return this->called_dependency_set_map_;
@@ -1577,6 +2988,160 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::dependency_count ()
return this->dependency_count_;
}
+// Accessor for utilization by noncritical tasks.
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+CORBA::Double
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+noncritical_utilization ()
+{
+ return noncritical_utilization_;
+}
+
+// Accessor for utilization by critical tasks.
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+CORBA::Double
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+critical_utilization ()
+{
+ return critical_utilization_;
+}
+
+// Accessor for noncritical task utilization threshold.
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+CORBA::Double
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+noncritical_utilization_threshold ()
+{
+ return noncritical_utilization_threshold_;
+}
+
+// Mutator for noncritical task utilization threshold.
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+noncritical_utilization_threshold (const CORBA::Double &d)
+{
+ noncritical_utilization_threshold_ = d;
+}
+
+// Accessor for critical task utilization threshold.
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+CORBA::Double
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+critical_utilization_threshold ()
+{
+ return critical_utilization_threshold_;
+}
+
+// Mutator for critical task utilization threshold.
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+critical_utilization_threshold (const CORBA::Double &d)
+{
+ critical_utilization_threshold_ = d;
+}
+
+
+// Helper function: makes sure there is room in the scheduling pointer
+// arrays. This function expands the array eagerly, to minimize
+// memory allocation overhead.
+
+template <class ARRAY_ELEMENT_TYPE> void
+maintain_scheduling_array (ARRAY_ELEMENT_TYPE ** & current_ptr_array,
+ long & current_ptr_array_size,
+ RtecScheduler::handle_t handle
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ if (current_ptr_array_size <= handle)
+ {
+ long new_size = handle + 1;
+ ARRAY_ELEMENT_TYPE ** new_array;
+
+ if (current_ptr_array_size > 0)
+ {
+ // Store previous array size.
+ for (new_size = 2 * current_ptr_array_size;
+ new_size <= handle;
+ new_size *= 2);
+ }
+
+ // Allocate the new array of the proper size, zero it out.
+
+ ACE_NEW_THROW_EX (new_array,
+ ARRAY_ELEMENT_TYPE * [new_size],
+ CORBA::NO_MEMORY ());
+
+ ACE_OS::memset (new_array, 0,
+ sizeof (ARRAY_ELEMENT_TYPE *) *
+ new_size);
+
+ if (current_ptr_array_size > 0)
+ {
+ // Copy in the previous array.
+ ACE_OS::memcpy (new_array, current_ptr_array,
+ sizeof (ARRAY_ELEMENT_TYPE *) *
+ current_ptr_array_size);
+
+ // Free the old array and swap to point to the new one.
+ delete [] current_ptr_array;
+ }
+
+ current_ptr_array = new_array;
+ current_ptr_array_size = new_size;
+ }
+}
+
+/* WSOA merge - commented out
+// Compute utilization, set last feasible priority.
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
+
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+compute_utilization_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL))
+{
+ TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY> util_visitor;
+ for (int i = 0; i < this->rt_info_count_; ++i)
+ {
+ if (util_visitor.visit (* (entry_ptr_array_ [i])) < 0)
+ {
+ ACE_THROW (RtecScheduler::INTERNAL ());
+ }
+ }
+
+ // Store the values accumulated by the visitor.
+ this->noncritical_utilization_ =
+ util_visitor.noncritical_utilization ();
+ this->critical_utilization_ =
+ util_visitor.critical_utilization ();
+}
+
+
+// Static helper method to give an RT_Info some reasonable default values.
+
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::init_rt_info (RtecScheduler::RT_Info &rt_info)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Set some reasonable default values.
+ rt_info.criticality = RtecScheduler::VERY_LOW_CRITICALITY;
+ rt_info.worst_case_execution_time = 0;
+ rt_info.typical_execution_time = 0;
+ rt_info.cached_execution_time = 0;
+ rt_info.period = 1;
+ rt_info.importance = RtecScheduler::VERY_LOW_IMPORTANCE;
+ rt_info.quantum = 0;
+ rt_info.threads = 0;
+ rt_info.info_type = RtecScheduler::OPERATION;
+ rt_info.priority = 0;
+ rt_info.preemption_subpriority = 0;
+ rt_info.preemption_priority = 0;
+ rt_info.volatile_token = 0;
+}
+
+*/
#endif /* TAO_RECONFIG_SCHEDULER_T_C */
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h
index a9fd17ab431..d2fe751d304 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h
@@ -46,14 +46,14 @@ class TAO_Reconfig_Scheduler :
public:
typedef ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::RT_Info*,
+ TAO_RT_Info_Ex *,
ACE_Hash<RtecScheduler::handle_t>,
ACE_Equal_To<RtecScheduler::handle_t>,
ACE_LOCK> RT_INFO_MAP;
// Type of map used for O(1) lookup of RT_Infos by their handles.
typedef ACE_RB_Tree<const char *,
- RtecScheduler::RT_Info*,
+ TAO_RT_Info_Ex*,
ACE_Less_Than<const char *>,
ACE_LOCK> RT_INFO_TREE;
// Type of tree used for O(log n) lookup of RT_Infos by their names.
@@ -73,7 +73,13 @@ public:
// Type of map used for O(1) lookup of RT_Info
// dependency sets by caller or called handle.
- TAO_Reconfig_Scheduler (int enforce_schedule_stability = 0);
+ typedef typename DEPENDENCY_SET_MAP::ITERATOR DEPENDENCY_SET_MAP_ITERATOR;
+ // Type of iterator for traversal of RT_Info dependency sets by
+ // caller or called handle.
+
+ TAO_Reconfig_Scheduler (int enforce_schedule_stability = 0,
+ const CORBA::Double & critical_utilization_threshold = 1.0,
+ const CORBA::Double & noncritical_utilization_threshold = 1.1);
// Default constructor.
TAO_Reconfig_Scheduler (int config_count,
@@ -83,10 +89,15 @@ public:
int dependency_count,
ACE_Scheduler_Factory::POD_Dependency_Info dependency_info[],
u_long stability_flags,
- int enforce_schedule_stability = 0);
+ int enforce_schedule_stability = 0,
+ const CORBA::Double & critical_utilization_threshold = 1.0,
+ const CORBA::Double & noncritical_utilization_threshold = 1.1);
// Constructor. Initialize the scheduler from POD_Config_Info, POD_RT_Info,
// and POD_Dependency arrays, plus schedule stability flags.
+ ~TAO_Reconfig_Scheduler ();
+ // Destructor.
+
int init (int config_count,
ACE_Scheduler_Factory::POD_Config_Info config_info[],
int rt_info_count,
@@ -104,6 +115,7 @@ public:
void close (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL,
RtecScheduler::UNKNOWN_TASK,
RtecScheduler::SYNCHRONIZATION_FAILURE));
// Closes the scheduler, releasing all current resources.
@@ -151,6 +163,52 @@ public:
RtecScheduler::SYNCHRONIZATION_FAILURE));
// Set characteristics of the RT_Info corresponding to the passed handle.
+ virtual void reset (RtecScheduler::handle_t handle,
+ RtecScheduler::Criticality_t criticality,
+ RtecScheduler::Time time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period_t period,
+ RtecScheduler::Importance_t importance,
+ RtecScheduler::Quantum_t quantum,
+ CORBA::Long threads,
+ RtecScheduler::Info_Type_t info_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Reset characteristics of the RT_Info corresponding to the passed handle.
+
+ virtual void set_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Set characteristics of the RT_Infos corresponding to the passed handles.
+ // Tuples are added in the case of existing and/or multiple definitions.
+
+ virtual void reset_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Reset characteristics of the RT_Infos corresponding to the passed handles.
+ // Tuples are replaced in the case of existing and/or multiple definitions.
+
+ virtual void replace_seq (const RtecScheduler::RT_Info_Set& infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::SYNCHRONIZATION_FAILURE));
+ // Replace all RT_Infos, resetting characteristics of the RT_Infos
+ // corresponding to the passed handles. All other RT_Infos are
+ // reset to their uninitialized values, i.e., the same they have
+ // just after the create call.
+
virtual void priority (RtecScheduler::handle_t handle,
RtecScheduler::OS_Priority& o_priority,
RtecScheduler::Preemption_Subpriority_t& p_subpriority,
@@ -185,9 +243,53 @@ public:
RtecScheduler::UNKNOWN_TASK));
// This method registers a dependency between two RT_Infos.
+ virtual void remove_dependency (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method removes a dependency between two RT_Infos.
+
+ virtual void set_dependency_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method sets the enable state of a dependency between two RT_Infos.
+
+ virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method sets the enable state of a sequence of dependencies.
+
+ virtual void set_rt_info_enable_state (RtecScheduler::handle_t handle,
+ RtecScheduler::RT_Info_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method enables or disables an RT_Info.
+
+ virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method enables or disables a sequence of RT_Infos.
+
virtual void compute_scheduling (CORBA::Long minimum_priority,
CORBA::Long maximum_priority,
RtecScheduler::RT_Info_Set_out infos,
+ RtecScheduler::Dependency_Set_out dependencies,
RtecScheduler::Config_Info_Set_out configs,
RtecScheduler::Scheduling_Anomaly_Set_out anomalies
ACE_ENV_ARG_DECL)
@@ -203,6 +305,44 @@ public:
// to be computed for all registered RT_Infos. If the schedule is
// already stable, this is a no-op.
+ virtual void recompute_scheduling (CORBA::Long minimum_priority,
+ CORBA::Long maximum_priority,
+ RtecScheduler::Scheduling_Anomaly_Set_out anomalies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UTILIZATION_BOUND_EXCEEDED,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ RtecScheduler::TASK_COUNT_MISMATCH,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::DUPLICATE_NAME));
+ // Recomputes the scheduling priorities, etc.
+
+ virtual void get_rt_info_set (RtecScheduler::RT_Info_Set_out infos
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of rt_infos, with their assigned priorities (as
+ // of the last schedule re-computation).
+
+ virtual void get_dependency_set (RtecScheduler::Dependency_Set_out dependencies
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of rt_infos, with their assigned priorities (as
+ // of the last schedule re-computation).
+
+ virtual void get_config_info_set (RtecScheduler::Config_Info_Set_out configs
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::INTERNAL));
+ // Returns the set of config_infos, describing the appropriate
+ // number, types, and priority levels for the dispatching lanes.
+
+
virtual void dispatch_configuration (RtecScheduler::Preemption_Priority_t p_priority,
RtecScheduler::OS_Priority& o_priority,
RtecScheduler::Dispatching_Type_t & d_type
@@ -247,6 +387,9 @@ public:
long rt_info_count ();
// Returns the number of registered RT_Infos.
+ long rt_info_tuple_count ();
+ // Returns the number of registered RT_Info tuples.
+
RT_INFO_TREE & rt_info_tree ();
// Accesses tree for O(log n) lookup of RT_Infos by name.
@@ -262,11 +405,33 @@ public:
// Returns the number of dependencies in the dependency lists of all RT_Infos.
// This is used when traversing the dependency graph.
+ CORBA::Double noncritical_utilization ();
+ // Accessor for utilization by noncritical tasks.
+
+ CORBA::Double critical_utilization ();
+ // Accessor for utilization by critical tasks.
+
+ CORBA::Double noncritical_utilization_threshold ();
+ // Accessor for noncritical task utilization threshold.
+
+ void noncritical_utilization_threshold (const CORBA::Double &);
+ // Mutator for noncritical task utilization threshold.
+
+ CORBA::Double critical_utilization_threshold ();
+ // Accessor for critical task utilization threshold.
+
+ void critical_utilization_threshold (const CORBA::Double &);
+ // Mutator for critical task utilization threshold.
+
protected:
// @@ TO DO: use a memento to save and restore scheduler state without
// breaking encapsulation, particularly of these flags.
+ // @@ TO DO: Recheck the applicability and fine-grain management of
+ // these flags. Do these still correctly reflect the phases
+ // of the computation?
+
enum Stability_Flags
{
// This should always be zero.
@@ -293,18 +458,20 @@ protected:
};
// Flags indicating stability conditions of schedule.
- virtual RtecScheduler::RT_Info * create_i (const char * entry_point,
- RtecScheduler::handle_t handle
- ACE_ENV_ARG_DECL)
+ TAO_RT_Info_Ex * create_i (const char * entry_point,
+ RtecScheduler::handle_t handle,
+ int ignore_duplicates
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::DUPLICATE_NAME,
RtecScheduler::INTERNAL));
- // Internal method to create an RT_Info. If it does not exist,
- // a new RT_Info is created and inserted into the schedule,
- // and the handle of the new RT_Info is returned.
- // If the RT_Info already exists, an exception is thrown.
+ // Internal method to create an RT_Info. If it does not exist, a
+ // new RT_Info is created and inserted into the schedule, and the
+ // handle of the new RT_Info is returned. If the RT_Info already
+ // exists, then if the ignore_duplicates flag is set, the handle
+ // is simply returned; otherwise, an exception is thrown.
- virtual void set_i (RtecScheduler::RT_Info *rt_info,
+ void set_i (TAO_RT_Info_Ex *rt_info,
RtecScheduler::Criticality_t criticality,
RtecScheduler::Time time,
RtecScheduler::Time typical_time,
@@ -313,7 +480,10 @@ protected:
RtecScheduler::Importance_t importance,
RtecScheduler::Quantum_t quantum,
CORBA::Long threads,
- RtecScheduler::Info_Type_t info_type);
+ RtecScheduler::Info_Type_t info_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL));
// Internal method to set characteristics of the passed RT_Info.
virtual RtecScheduler::handle_t lookup_i (const char * entry_point
@@ -337,8 +507,9 @@ protected:
virtual void add_dependency_i (RtecScheduler::handle_t handle,
RtecScheduler::handle_t dependency,
CORBA::Long number_of_calls,
- RtecScheduler::Dependency_Type_t dependency_type
- ACE_ENV_ARG_DECL)
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::INTERNAL,
RtecScheduler::UNKNOWN_TASK));
@@ -346,21 +517,68 @@ protected:
// Assumes it is being called with all locks held, and does *not*
// set any schedule stability flags.
+ virtual void remove_dependency_i (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // Internal method that removes a dependency between two RT_Infos.
+ // Assumes it is being called with all locks held, and does *not*
+ // set any schedule stability flags.
+
+ virtual void set_dependency_enable_state_i (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::SYNCHRONIZATION_FAILURE,
+ RtecScheduler::UNKNOWN_TASK));
+ // Internal method that enables or disables a dependency between two RT_Infos.
+ // Assumes it is being called with all locks held, and does *not*
+ // set any schedule stability flags.
+
+
virtual void map_dependency_i
(RtecScheduler::handle_t key,
RtecScheduler::handle_t handle,
- ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t,
- RtecScheduler::Dependency_Set*,
- ACE_Hash<RtecScheduler::handle_t>,
- ACE_Equal_To<RtecScheduler::handle_t>,
- ACE_LOCK> &map,
+ ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map,
CORBA::Long number_of_calls,
- RtecScheduler::Dependency_Type_t dependency_type
- ACE_ENV_ARG_DECL)
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL,
RtecScheduler::UNKNOWN_TASK));
// This method installs a dependency in a dependency set map.
+ void unmap_dependency_i (RtecScheduler::handle_t key,
+ RtecScheduler::handle_t handle,
+ ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method removes a dependency from a dependency set map.
+
+ void map_dependency_enable_state_i (RtecScheduler::handle_t key,
+ RtecScheduler::handle_t handle,
+ ACE_TYPENAME
+ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map,
+ CORBA::Long number_of_calls,
+ RtecScheduler::Dependency_Type_t dependency_type,
+ RtecScheduler::Dependency_Enabled_Type_t enabled
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL,
+ RtecScheduler::UNKNOWN_TASK));
+ // This method updates the enable state of a dependency in a dependency set map.
virtual void dfs_traverse_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
@@ -375,7 +593,28 @@ protected:
// Sorts an array of RT_info handles in topological order, then
// checks for loops, marks unresolved remote dependencies.
- virtual void propagate_characteristics_i (ACE_ENV_SINGLE_ARG_DECL)
+ void perform_admission_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL));
+ // Compute aggregate execution times, then performs admission over
+ // rate tuples.
+
+
+ void crit_dfs_traverse_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL));
+ // Traverses criticality dependency graph, assigning a topological
+ // ordering. Resets DFS map entries, do DFS traversal, constructs
+ // DFS map.
+
+
+ void propagate_criticalities_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL));
+ // Propagates criticalities.
+
+
+ void propagate_characteristics_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::INTERNAL,
RtecScheduler::UNRESOLVED_LOCAL_DEPENDENCIES,
@@ -386,21 +625,26 @@ protected:
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::INTERNAL,
RtecScheduler::DUPLICATE_NAME));
- // Sort operations by urgency (done by strategy), then
- // assign priorities and subpriorities in one pass.
- // Sets last scheduled priority.
+ // Sort operations by urgency (done by strategy), then assign
+ // priorities and subpriorities in one pass. (Re)computes utilization
+ // and sets last scheduled priority and last feasible priority.
+
+ void refresh_tuple_ptr_array_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::INTERNAL));
+ // Refreshes the array of tuple pointers, corrects the count.
+/* WSOA merge - commented out
virtual void compute_utilization_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::INTERNAL));
// Compute utilization, set last feasible priority.
+
static void init_rt_info (RtecScheduler::RT_Info &rt_info)
ACE_THROW_SPEC ((CORBA::SystemException));
// Helper method to give an RT_Info some reasonable default values
-
-
-
+*/
// = Protected class members.
RECONFIG_SCHED_STRATEGY sched_strategy_;
@@ -419,6 +663,9 @@ protected:
long rt_info_count_;
// The number of registered RT_Infos.
+ long rt_info_tuple_count_;
+ // The number of registered RT_Info tuples.
+
RT_INFO_TREE rt_info_tree_;
// Tree for O(log n) lookup of RT_Infos by name.
@@ -430,6 +677,13 @@ protected:
// Map for O(1) lookup of RT_Info dependency
// set by the called operation's handle.
+ DEPENDENCY_SET_MAP crit_dependency_set_map_;
+ // Map for O(1) lookup of RT_Info dependency set. The above two maps
+ // store the calling and called dependencies. This map stores the
+ // true dependencies based on criticality propagation direction. For
+ // two-ways, this is the same as the direction of invocation,
+ // whereas for one-ways, it is in the opposite direction.
+
RtecScheduler::handle_t next_handle_;
// Next RT_Info descriptor handle to allocate. The first handle is
// always 1.
@@ -444,6 +698,16 @@ protected:
long entry_ptr_array_size_;
// Size of the array of scheduling entry pointers.
+ TAO_RT_Info_Tuple ** tuple_ptr_array_;
+ // Array of pointers to scheduling entries. This
+ // array is maintained by the methods that create
+ // scheduling entries, and sorted in topological
+ // order and then priority order at various points
+ // during schedule computation.
+
+ long tuple_ptr_array_size_;
+ // Size of the array of scheduling entry pointers.
+
u_long stability_flags_;
// Flags indicating whether a stable schedule has been computed
// since the last addition or modification of information, and which
@@ -468,11 +732,28 @@ protected:
CORBA::Double critical_utilization_;
// Utilization by critical tasks.
+ CORBA::Double noncritical_utilization_threshold_;
+ // Utilization by noncritical tasks.
+
+ CORBA::Double critical_utilization_threshold_;
+ // Utilization by critical tasks.
+
ACE_LOCK mutex_;
// Mutual exclusion lock for the scheduler itself. This is needed to
// synchronize updates and accesses to scheduling information.
};
+
+template <class ARRAY_ELEMENT_TYPE> void
+maintain_scheduling_array (ARRAY_ELEMENT_TYPE ** & current_ptr_array,
+ long & current_ptr_array_size,
+ RtecScheduler::handle_t handle
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+// Helper function: makes sure there is room in the scheduling pointer
+// arrays. This function expands the array eagerly, to minimize time
+// overhead for memory allocation (at a cost of some unused space).
+
#if defined (__ACE_INLINE__)
#include "Reconfig_Scheduler_T.i"
#endif /* __ACE_INLINE__ */
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
index b3fcf71b250..f1391b4ae64 100644
--- a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
@@ -5,6 +5,8 @@
#include "ace/Null_Mutex.h"
#include "orbsvcs/Runtime_Scheduler.h"
+#include "orbsvcs/Sched/Reconfig_Scheduler.h"
+#include "orbsvcs/Sched/Reconfig_Sched_Utils.h"
#include "orbsvcs/Scheduler_Factory.h"
#if ! defined (__ACE_INLINE__)
@@ -20,12 +22,71 @@ RtecScheduler::Scheduler_ptr ACE_Scheduler_Factory::server_ = 0;
ACE_Scheduler_Factory::Factory_Status ACE_Scheduler_Factory::status_ =
ACE_Scheduler_Factory::UNINITIALIZED;
+
+RtecScheduler::Period_t ACE_Scheduler_Factory::period_default_ = 0;
+RtecScheduler::Threads_t ACE_Scheduler_Factory::threads_default_ = 0;
+RtecScheduler::Importance_t ACE_Scheduler_Factory::importance_default_ = RtecScheduler::MEDIUM_IMPORTANCE;
+RtecScheduler::Criticality_t ACE_Scheduler_Factory::criticality_default_ = RtecScheduler::HIGH_CRITICALITY;
+RtecScheduler::RT_Info_Enabled_Type_t ACE_Scheduler_Factory::rt_info_enable_state_default_ = RtecScheduler::RT_INFO_NON_VOLATILE;
+
+RtecScheduler::Period_t ACE_Scheduler_Factory::period_default()
+{
+ return period_default_;
+}
+
+RtecScheduler::Threads_t ACE_Scheduler_Factory::threads_default()
+{
+ return threads_default_;
+}
+
+RtecScheduler::Importance_t ACE_Scheduler_Factory::importance_default()
+{
+ return importance_default_;
+}
+
+RtecScheduler::Criticality_t ACE_Scheduler_Factory::criticality_default()
+{
+ return criticality_default_;
+}
+
+void ACE_Scheduler_Factory::period_default(RtecScheduler::Period_t period_default)
+{
+ period_default_ = period_default;
+}
+
+void ACE_Scheduler_Factory::threads_default(RtecScheduler::Threads_t threads_default)
+{
+ threads_default_ = threads_default;
+}
+
+void ACE_Scheduler_Factory::importance_default(RtecScheduler::Importance_t importance_default)
+{
+ importance_default_ = importance_default;
+}
+
+void ACE_Scheduler_Factory::criticality_default(RtecScheduler::Criticality_t criticality_default)
+{
+ criticality_default_ = criticality_default;
+}
+
+RtecScheduler::RT_Info_Enabled_Type_t ACE_Scheduler_Factory::rt_info_enable_state_default()
+{
+ return rt_info_enable_state_default_;
+}
+
+void ACE_Scheduler_Factory::rt_info_enable_state_default(RtecScheduler::RT_Info_Enabled_Type_t rt_info_enable_state_default)
+{
+ rt_info_enable_state_default_ = rt_info_enable_state_default;
+}
+
// This symbols are extern because the automatic template
-// instantiation mechanism in SunCC get confused otherwise.
+// instantiation mechanism in SunCC gets confused otherwise.
int TAO_SF_config_count = -1;
ACE_Scheduler_Factory::POD_Config_Info* TAO_SF_config_info = 0;
int TAO_SF_entry_count = -1;
ACE_Scheduler_Factory::POD_RT_Info* TAO_SF_rt_info = 0;
+int TAO_SF_dependency_count = -1;
+ACE_Scheduler_Factory::POD_Dependency_Info* TAO_SF_dep_info = 0;
struct ACE_Scheduler_Factory_Data
{
@@ -34,8 +95,13 @@ struct ACE_Scheduler_Factory_Data
// ACE_TSS objects. We can't use ACE_Singleton directly, because
// construction of ACE_Runtime_Scheduler takes arguments.
+/* WSOA merge - commented out
ACE_Runtime_Scheduler scheduler_;
// The static runtime scheduler.
+*/
+
+ TAO_Reconfig_Scheduler<TAO_MUF_FAIR_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX> scheduler_;
+ // The scheduler.
ACE_TSS<ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t> >
preemption_priority_;
@@ -47,7 +113,10 @@ struct ACE_Scheduler_Factory_Data
: scheduler_ (TAO_SF_config_count,
TAO_SF_config_info,
TAO_SF_entry_count,
- TAO_SF_rt_info),
+ TAO_SF_rt_info,
+ TAO_SF_dependency_count,
+ TAO_SF_dep_info,
+ 0),
preemption_priority_ ()
{
}
@@ -211,6 +280,17 @@ static char end_infos_empty[] =
"};\n\n"
"static int infos_size = 0;\n\n";
+static char start_dependencies[] =
+"\n\nstatic ACE_Scheduler_Factory::POD_Dependency_Info dependencies[] = {\n";
+
+static char end_dependencies[] =
+"};\n\n"
+"static int dependencies_size = sizeof(dependencies)/sizeof(dependencies[0]);\n\n";
+
+static char end_dependencies_empty[] =
+"};\n\n"
+"static int dependencies_size = 0;\n\n";
+
static char start_configs[] =
"\nstatic ACE_Scheduler_Factory::POD_Config_Info configs[] = {\n";
@@ -224,28 +304,48 @@ static char end_configs_empty[] =
int ACE_Scheduler_Factory::dump_schedule
(const RtecScheduler::RT_Info_Set& infos,
+ const RtecScheduler::Dependency_Set& dependencies,
const RtecScheduler::Config_Info_Set& configs,
const RtecScheduler::Scheduling_Anomaly_Set& anomalies,
const char* file_name,
const char* rt_info_format,
- const char* config_info_format)
+ const char* dependency_format,
+ const char* config_info_format,
+ int dump_disabled_infos,
+ int dump_disabled_dependencies)
{
u_int i;
char entry_point [BUFSIZ];
// Default format for printing RT_Info output.
if (rt_info_format == 0)
- rt_info_format = "{%20s, %10d, %10d, %10d, "
- "%10d, %10d, "
- "(RtecScheduler::Criticality_t) %d, "
- "(RtecScheduler::Importance_t) %d, "
- "%10d, %10d, %10d, %10d, %10d, "
- "(RtecScheduler::Info_Type_t) %d }";
+ rt_info_format = "{%20s, /* entry_point */\n"
+ "%10d, /* handle */\n"
+ "%10d, /* worst_case_execution_time */,\n"
+ "%10d, /* typical_execution_time */,\n"
+ "%10d, /* cached_execution_time */,\n"
+ "%10d, /* period */\n"
+ "(RtecScheduler::Criticality_t) %d, /* [ VL_C = 0, L_C = 1, M_C = 2, H_C = 3, VH_C = 4] */\n"
+ "(RtecScheduler::Importance_t) %d, /* [ VL_I = 0, L_I = 1, M_I = 2, H_I = 3, VH_I = 4] */\n"
+ "%10d, /* quantum */\n"
+ "%10d, /* threads */\n"
+ "%10d, /* priority */\n"
+ "%10d, /* preemption_subpriority */\n"
+ "%10d, /* preemption_priority */\n"
+ "(RtecScheduler::Info_Type_t) %d, /* [OPERATION = 0, CONJUNCTION = 1, DISJUNCTION = 2, REMOTE_DEPENDANT = 3] */\n"
+ "(RtecScheduler::RT_Info_Enabled_Type_t) %d } /* [RT_INFO_DISABLED = 0, RT_INFO_ENABLED = 1, RT_INFO_NON_VOLATILE = 2] */\n";
+
+
+ // Default format for printing dependency output.
+ if (dependency_format == 0)
+ dependency_format = " { (RtecScheduler::Dependency_Type_t) %d, %10d, "
+ "%10d, %10d,"
+ "(RtecScheduler::Dispatching_Type_t) %d }";
// Default format for printing Config_Info output.
if (config_info_format == 0)
config_info_format = " { %10d, %10d, "
- "(RtecScheduler::Dispatching_Type_t) %d }";
+ "(RtecScheduler::Dependency_Enabled_Type_t) %d }";
FILE* file = stdout;
if (file_name != 0)
@@ -289,6 +389,16 @@ int ACE_Scheduler_Factory::dump_schedule
(const char *) anomaly.description);
}
+ // Print out banner indicating which infos are dumped.
+ if (dump_disabled_infos)
+ {
+ ACE_OS::fprintf (file, "\n// Both enabled and disabled RT_Infos were dumped to this file.\n\n");
+ }
+ else
+ {
+ ACE_OS::fprintf (file, "\n// Only enabled RT_Infos were dumped to this file.\n\n");
+ }
+
// Print out operation QoS info.
ACE_OS::fprintf (file, start_infos);
@@ -296,6 +406,12 @@ int ACE_Scheduler_Factory::dump_schedule
i < infos.length ();
++i)
{
+ const RtecScheduler::RT_Info& info = infos[i];
+
+ if (dump_disabled_infos
+ || info.enabled == RtecScheduler::RT_INFO_ENABLED
+ || info.enabled == RtecScheduler::RT_INFO_NON_VOLATILE)
+ {
if (i != 0)
// Finish previous line.
ACE_OS::fprintf(file, ",\n");
@@ -323,18 +439,68 @@ int ACE_Scheduler_Factory::dump_schedule
info.threads,
info.priority,
info.preemption_subpriority,
- info.preemption_priority,
- info.info_type);
+ info.preemption_priority,
+ info.info_type,
+ info.enabled);
+ }
}
+
// Finish last line.
- ACE_OS::fprintf(file,
- "\n");
+ ACE_OS::fprintf(file, "\n");
if (infos.length () > 0)
ACE_OS::fprintf (file, end_infos);
else
ACE_OS::fprintf (file, end_infos_empty);
+ // Print out banner indicating which dependencies are dumped.
+ if (dump_disabled_dependencies)
+ {
+ ACE_OS::fprintf (file, "\n// Both enabled and disabled dependencies were dumped to this file.\n\n");
+ }
+ else
+ {
+ ACE_OS::fprintf (file, "\n// Only enabled dependencies were dumped to this file.\n\n");
+ }
+
+ // Print out operation dependency info.
+ ACE_OS::fprintf (file, start_dependencies);
+
+ for (i = 0;
+ i < dependencies.length ();
+ ++i)
+ {
+ const RtecScheduler::Dependency_Info& dep = dependencies[i];
+
+ if (dump_disabled_infos
+ || dep.enabled == RtecBase::DEPENDENCY_ENABLED
+ || dep.enabled == RtecBase::DEPENDENCY_NON_VOLATILE)
+ {
+ // Finish previous line.
+ if (i != 0)
+ {
+ ACE_OS::fprintf (file, ",\n");
+ }
+
+ ACE_OS::fprintf (file,
+ dependency_format,
+ dep.dependency_type,
+ dep.number_of_calls,
+ dep.rt_info,
+ dep.rt_info_depended_on,
+ dep.enabled);
+ }
+ }
+
+ // Finish last line.
+ ACE_OS::fprintf (file, "\n");
+
+ if (dependencies.length () > 0)
+ ACE_OS::fprintf (file, end_dependencies);
+ else
+ ACE_OS::fprintf (file, end_dependencies_empty);
+
+
// Print out queue configuration info.
ACE_OS::fprintf (file, start_configs);
@@ -367,6 +533,205 @@ int ACE_Scheduler_Factory::dump_schedule
return 0;
}
+void ACE_Scheduler_Factory::log_scheduling_entry(TAO_Reconfig_Scheduler_Entry * entry, FILE* file)
+{
+
+ if( entry == 0 )
+ {
+ ACE_OS::fprintf (file, "Entry is NULL");
+ return;
+ }
+
+ // Print out the actual rt_info data
+ const char* rt_info_format = "{%20s, /* entry_point */\n"
+ "%10d, /* handle */\n"
+ "%10d, /* period */\n"
+ "%10d, /* criticality */\n"
+ "%10d, /* threads */\n"
+ "%10d, /* priority */\n"
+ "%10d, /* preemption_subpriority */\n"
+ "%10d, /* preemption_priority */\n"
+ "%10d /* enabled */\n";
+
+ TAO_RT_Info_Ex* actual_info = entry->actual_rt_info();
+
+ ACE_OS::fprintf (file,
+ rt_info_format,
+ actual_info->entry_point.in(),
+ actual_info->handle,
+ actual_info->period,
+ actual_info->criticality,
+ actual_info->threads,
+ actual_info->priority,
+ actual_info->preemption_subpriority,
+ actual_info->preemption_priority,
+ actual_info->enabled);
+
+
+ // Print out the current admitted tuple
+ const char* admitted_tuple_format = " {"
+ "%13d, /* handle */\n"
+ "%13d, /* rate_index */\n"
+ "%13d, /* period */\n"
+ "%13d, /* criticality */\n"
+ "%13d, /* priority */\n"
+ "%13d, /* preemption_subpriority */\n"
+ "%13d, /* preemption_priority */\n"
+ "%13d } /* enabled */\n";
+
+ TAO_RT_Info_Tuple* current_admitted_tuple = entry->current_admitted_tuple();
+
+ ACE_OS::fprintf(file, "\n Current admitted Tuple:\n");
+ if( current_admitted_tuple == 0 )
+ {
+ ACE_OS::fprintf (file, " =>NONE_ADMITTED\n");
+ }
+ else
+ {
+ ACE_OS::fprintf (file,
+ admitted_tuple_format,
+ current_admitted_tuple->handle,
+ current_admitted_tuple->rate_index,
+ current_admitted_tuple->period,
+ current_admitted_tuple->criticality,
+ current_admitted_tuple->priority,
+ current_admitted_tuple->preemption_subpriority,
+ current_admitted_tuple->preemption_priority,
+ current_admitted_tuple->enabled);
+ }
+
+ // Print out the orig_tuple_subset_
+ ACE_OS::fprintf(file, "\n Original Tuple Subset\n {\n");
+ log_tuple_subset(entry->orig_tuple_subset(), file);
+ ACE_OS::fprintf(file, "\n }");
+
+ // Print out the prop_tuple_subset_
+ ACE_OS::fprintf(file, "\n Propagated Tuple Subset\n {\n");
+ log_tuple_subset(entry->prop_tuple_subset(), file);
+ ACE_OS::fprintf(file, "\n }\n}");
+
+
+}
+
+void ACE_Scheduler_Factory::log_tuple_subset(TUPLE_SET & tuple_subset,
+ FILE* file)
+{
+ TAO_RT_Info_Tuple **tuple_ptr_ptr;
+ const char* subset_tuple_format = " {\n"
+ "%13d, /* handle */\n"
+ "%13d, /* rate_index */\n"
+ "%13d, /* period */\n"
+ "%13d, /* criticality */\n"
+ "%13d, /* threads */\n"
+ "%13d, /* priority */\n"
+ "%13d, /* preemption_subpriority */\n"
+ "%13d, /* preemption_priority */\n"
+ "%13d } /* enabled */\n";
+
+ TUPLE_SET_ITERATOR
+ tuple_iter (tuple_subset);
+
+
+ while (tuple_iter.done () == 0)
+ {
+ // Get a pointer to the tuple COPY under the iterator.
+ if (tuple_iter.next (tuple_ptr_ptr) == 0
+ || tuple_ptr_ptr == 0 || ((*tuple_ptr_ptr) == 0) )
+ {
+ ACE_OS::fprintf (file, "{ NULL TUPLE POINTER }\n");
+ }
+ else
+ {
+
+ ACE_OS::fprintf (file,
+ subset_tuple_format,
+ (*tuple_ptr_ptr)->handle,
+ (*tuple_ptr_ptr)->rate_index,
+ (*tuple_ptr_ptr)->period,
+ (*tuple_ptr_ptr)->criticality,
+ (*tuple_ptr_ptr)->threads,
+ (*tuple_ptr_ptr)->priority,
+ (*tuple_ptr_ptr)->preemption_subpriority,
+ (*tuple_ptr_ptr)->preemption_priority,
+ (*tuple_ptr_ptr)->enabled);
+ }
+
+ tuple_iter.advance ();
+ }
+}
+
+int
+ACE_Scheduler_Factory::log_scheduling_entries(TAO_Reconfig_Scheduler_Entry ** entry_ptr_array,
+ long entry_ptr_array_size,
+ const char* file_name)
+{
+ // Open the file
+ FILE* file = stdout;
+ if (file_name != 0)
+ {
+ file = ACE_OS::fopen (file_name, "w");
+ if (file == 0)
+ return -1;
+ }
+
+
+ // Iterate through the array. The index is the (handle - 1) of the rt_info in the array
+ for(int index = 0; index < entry_ptr_array_size; ++index)
+ {
+ ACE_OS::fprintf(file, "\n\nScheduler Entry Array contents\n");
+ TAO_Reconfig_Scheduler_Entry * entry = entry_ptr_array[index];
+
+ log_scheduling_entry(entry, file);
+
+
+ }
+
+
+ ACE_OS::fclose (file);
+ return 0;
+
+}
+
+void
+ACE_Scheduler_Factory::log_scheduling_tuples(TAO_RT_Info_Tuple ** tuple_ptr_array,
+ long tuple_ptr_array_size,
+ const char* file_name)
+{
+ // Open the file
+ FILE* file = stdout;
+ if (file_name != 0)
+ {
+ file = ACE_OS::fopen (file_name, "w");
+ if (file == 0)
+ return;
+ }
+
+ const char* subset_tuple_format = " {\n"
+ "%13d, /* handle */\n"
+ "%13d, /* rate_index */\n"
+ "%13d, /* period */\n"
+ "%13d, /* criticality */\n"
+ "%13d, /* priority */\n"
+ "%13d, /* preemption_subpriority */\n"
+ "%13d, /* preemption_priority */\n"
+ "%13d } /* enabled */\n";
+
+ for (int ndx = 0; ndx < tuple_ptr_array_size; ndx++)
+ {
+ fprintf(file,
+ subset_tuple_format,
+ tuple_ptr_array[ndx]->handle,
+ tuple_ptr_array[ndx]->rate_index,
+ tuple_ptr_array[ndx]->period,
+ tuple_ptr_array[ndx]->criticality,
+ tuple_ptr_array[ndx]->priority,
+ tuple_ptr_array[ndx]->preemption_subpriority,
+ tuple_ptr_array[ndx]->preemption_priority,
+ tuple_ptr_array[ndx]->enabled);
+ }
+
+ ACE_OS::fclose (file);
+}
#if defined (HPUX) && !defined (__GNUG__)
// aCC can't handle RtecScheduler::Preemption_Priority_t used as an operator
// name.
@@ -425,10 +790,12 @@ ACE_Scheduler_Factory::set_preemption_priority
template class ACE_Singleton<ACE_Scheduler_Factory_Data, ACE_Null_Mutex>;
template class ACE_TSS<ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t> >;
template class ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t>;
+template class ACE_Ordered_MultiSet<TAO_RT_Info_Tuple *>;
+template class ACE_Ordered_MultiSet_Iterator<TAO_RT_Info_Tuple *>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#pragma instantiate ACE_Singleton<ACE_Scheduler_Factory_Data, ACE_Null_Mutex>
#pragma instantiate ACE_TSS<ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t> >
#pragma instantiate ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t>
-#elif defined (__GNUC__) && (defined (_AIX) || defined (__hpux) || defined (VXWORKS))
-template ACE_Singleton<ACE_Scheduler_Factory_Data, ACE_Null_Mutex> * ACE_Singleton<ACE_Scheduler_Factory_Data, ACE_Null_Mutex>::singleton_;
+#pragma instantiate ACE_Ordered_MultiSet<TAO_RT_Info_Tuple *>
+#pragma instantiate ACE_Ordered_MultiSet_Iterator<TAO_RT_Info_Tuple *>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h
index 4140e3a3892..08b2fcb20c8 100644
--- a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h
@@ -18,15 +18,21 @@
#define ACE_SCHEDULER_FACTORY_H
#include /**/ "ace/pre.h"
-#include "orbsvcs/CosNamingC.h"
+#include "ace/Containers_T.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "orbsvcs/CosNamingC.h"
#include "orbsvcs/RtecSchedulerC.h"
#include "orbsvcs/Sched/sched_export.h"
+class TAO_Reconfig_Scheduler_Entry;
+struct TAO_RT_Info_Tuple;
+typedef ACE_Ordered_MultiSet<TAO_RT_Info_Tuple *> TUPLE_SET;
+typedef ACE_Ordered_MultiSet_Iterator<TAO_RT_Info_Tuple *> TUPLE_SET_ITERATOR;
+
class TAO_RTSched_Export ACE_Scheduler_Factory
{
// = TITLE
@@ -74,11 +80,13 @@ public:
CORBA::Long criticality;
CORBA::Long importance;
RtecScheduler::Quantum_t quantum;
- CORBA::Long threads;
+ RtecScheduler::Threads_t threads;
RtecScheduler::OS_Priority priority;
RtecScheduler::Preemption_Subpriority_t static_subpriority;
RtecScheduler::Preemption_Priority_t preemption_priority;
CORBA::Long info_type;
+ RtecScheduler::RT_Info_Enabled_Type_t enabled;
+
};
@@ -92,10 +100,11 @@ public:
// dependencies between RT_Infos. This is useful for implementing
// arrays of those.
- RtecScheduler::handle_t info_that_depends;
- RtecScheduler::handle_t info_depended_on;
RtecScheduler::Dependency_Type_t dependency_type;
CORBA::Long number_of_calls;
+ RtecScheduler::handle_t info_that_depends;
+ RtecScheduler::handle_t info_depended_on;
+ RtecScheduler::Dependency_Enabled_Type_t enabled;
};
struct POD_Config_Info
@@ -154,17 +163,39 @@ public:
// from main, after resolve_initial_references.
static int dump_schedule (const RtecScheduler::RT_Info_Set& infos,
+ const RtecScheduler::Dependency_Set& dependencies,
const RtecScheduler::Config_Info_Set& configs,
const RtecScheduler::Scheduling_Anomaly_Set& anomalies,
const char* file_name = 0,
const char* rt_info_format = 0,
- const char* config_info_format = 0);
+ const char* dependency_format = 0,
+ const char* config_info_format = 0,
+ int dump_disabled_infos = 0,
+ int dump_disabled_dependencies = 0);
// This helper function will dump the schedule returned by a
// RtecScheduler::Scheduler into a file, the file can be compiled to
// create an efficient local implementation of the Scheduler.
// TODO: How to do cleanup()? Use the ACE_Object_Manager stuff?
+ static void log_scheduling_entry(TAO_Reconfig_Scheduler_Entry * entry,
+ FILE* file);
+ // This helper function prints out a single scheduling entry contents
+
+ static int log_scheduling_entries(TAO_Reconfig_Scheduler_Entry ** entry_ptr_array,
+ long entry_ptr_array_size,
+ const char* file_name);
+ // This helper function prints out the intermediate scheduling entries
+
+ static void log_scheduling_tuples(TAO_RT_Info_Tuple ** tuple_ptr_array,
+ long tuple_ptr_array_size,
+ const char* file_name);
+ // This helper function prints out the arry used to create scheduling entries
+ // sorted in topological order then priority order
+
+ static void log_tuple_subset(TUPLE_SET & tuple_subset,
+ FILE* file);
+
static Factory_Status status (void);
// This helper function allows the application to determine whether
// the factory is uninitialized, or in a config or runtime mode of
@@ -181,7 +212,34 @@ public:
// that the preemption priority is set before any access of the
// preemption priority.
+ // Accessor for obtaining the default period (Boeing Extension)
+ static RtecScheduler::Period_t period_default();
+ // Method for setting the default period (Boeing Extension)
+ static void period_default(RtecScheduler::Period_t period_default);
+
+ // Accessor for obtaining the default threads (Boeing Extension)
+ static RtecScheduler::Threads_t threads_default();
+ // Method for setting the default threads (Boeing Extension)
+ static void threads_default(RtecScheduler::Threads_t threads_default);
+
+ // Accessor for obtaining the default importance (VERY_LOW_IMPORTANCE to VERY_HIGH_IMPORTANCE). (Boeing Extension)
+ static RtecScheduler::Importance_t importance_default();
+ // Method for setting the default importance (VERY_LOW_IMPORTANCE to VERY_HIGH_IMPORTANCE). (Boeing Extension)
+ static void importance_default(RtecScheduler::Importance_t importance_default);
+
+ // Accessor for obtaining the default criticality (VERY_LOW_CRITICALITY to VERY_HIGH_CRITICALITY). (Boeing Extension)
+ static RtecScheduler::Criticality_t criticality_default();
+ // Method for setting the default criticality (VERY_LOW_CRITICALITY to VERY_HIGH_CRITICALITY). (Boeing Extension)
+ static void criticality_default(RtecScheduler::Criticality_t criticality_default);
+
+ // Accessor for obtaining the default rt_info enabled state. (RT_INFO_DISABLED, RT_INFO_ENABLED, or RT_INFO_NON_VOLATILE)
+ static RtecScheduler::RT_Info_Enabled_Type_t rt_info_enable_state_default();
+
+ // Method for setting the default rt_info enabled state. (RT_INFO_DISABLED, RT_INFO_ENABLED, or RT_INFO_NON_VOLATILE)
+ static void rt_info_enable_state_default(RtecScheduler::RT_Info_Enabled_Type_t rt_info_enable_state_default);
+
protected:
+
static int no_config_run (void);
// By default this factory assumes we are runnning a config
// run. Calling this method disables that. Since the methods
@@ -192,7 +250,21 @@ protected:
private:
static RtecScheduler::Scheduler_ptr server_;
+
static Factory_Status status_;
+ // Default period configuration. (Boeing Extension)
+ static RtecScheduler::Period_t period_default_;
+ // Default threads configuration. (Boeing Extension)
+ static RtecScheduler::Threads_t threads_default_;
+
+ // Default importance configuration. (Boeing Extension)
+ static RtecScheduler::Importance_t importance_default_;
+ // Default criticality. (Boeing Extension)
+ static RtecScheduler::Criticality_t criticality_default_;
+
+ // Default rt_info enabled state. (Boeing Extension)
+ static RtecScheduler::RT_Info_Enabled_Type_t rt_info_enable_state_default_;
+
};
#if defined (__ACE_INLINE__)
diff --git a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp
index ec6491c4da2..c43b71cb4ca 100644
--- a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp
+++ b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp
@@ -581,6 +581,7 @@ Test_ECG::run (int argc, char* argv[])
if (this->schedule_file_ != 0)
{
RtecScheduler::RT_Info_Set_var infos;
+ RtecScheduler::Dependency_Set_var deps;
RtecScheduler::Config_Info_Set_var configs;
RtecScheduler::Scheduling_Anomaly_Set_var anomalies;
@@ -596,6 +597,7 @@ Test_ECG::run (int argc, char* argv[])
// not define instances of _out types.
RtecScheduler::RT_Info_Set_out infos_out (infos);
+ RtecScheduler::Dependency_Set_out deps_out (deps);
RtecScheduler::Config_Info_Set_out configs_out (configs);
RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out (anomalies);
ACE_Scheduler_Factory::server ()->compute_scheduling
@@ -603,7 +605,8 @@ Test_ECG::run (int argc, char* argv[])
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos_out, configs_out, anomalies_out ACE_ENV_ARG_PARAMETER);
+ infos_out, deps_out,
+ configs_out, anomalies_out ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
#else /* ! __SUNPRO_CC */
ACE_Scheduler_Factory::server ()->compute_scheduling
@@ -611,12 +614,14 @@ Test_ECG::run (int argc, char* argv[])
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos.out (), configs.out (), anomalies.out ()
+ infos.out (), deps.out (),
+ configs.out (), anomalies.out ()
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
#endif /* ! __SUNPRO_CC */
ACE_Scheduler_Factory::dump_schedule (infos.in (),
+ deps.in (),
configs.in (),
anomalies.in (),
this->schedule_file_);
diff --git a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h
index fc6dd8f71b3..a6de5dd6f1d 100644
--- a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h
+++ b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h
@@ -6,149 +6,149 @@
static ACE_Scheduler_Factory::POD_RT_Info runtime_infos_1[] = {
{ "Reactor_Task-25000.us", 1, 0, 0, 0, 250000,
- 4, 0, 0, 1, 4, 0, 0, 0 },
+ 4, 0, 0, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "Reactor_Task-50000.us", 2, 0, 0, 0, 500000,
- 4, 0, 0, 1, 3, 0, 0, 0 },
+ 4, 0, 0, 1, 3, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "Reactor_Task-100000.us", 3, 0, 0, 0, 1000000,
- 4, 0, 0, 1, 2, 0, 0, 0 },
+ 4, 0, 0, 1, 2, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "Reactor_Task-200000.us", 4, 0, 0, 0, 2000000,
- 4, 0, 0, 1, 1, 0, 0, 0 },
+ 4, 0, 0, 1, 1, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "Reactor_Task-1000000.us", 5, 0, 0, 0, 10000000,
- 4, 0, 0, 1, 0, 0, 0, 0 },
+ 4, 0, 0, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-25000.us", 6, 0, 0, 0, 0,
- 4, 0, 0, 1, 4, 0, 0, 0 },
+ 4, 0, 0, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-50000.us", 7, 0, 0, 0, 0,
- 4, 0, 0, 1, 3, 0, 0, 0 },
+ 4, 0, 0, 1, 3, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-100000.us", 8, 0, 0, 0, 0,
- 4, 0, 0, 1, 2, 0, 0, 0 },
+ 4, 0, 0, 1, 2, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-200000.us", 9, 0, 0, 0, 0,
- 4, 0, 0, 1, 1, 0, 0, 0 },
+ 4, 0, 0, 1, 1, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-1000000.us", 10, 0, 0, 0, 0,
- 4, 0, 0, 1, 0, 0, 0, 0 },
+ 4, 0, 0, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_00@ECM1", 11, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_01@ECM1", 12, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_02@ECM1", 13, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_03@ECM1", 14, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_04@ECM1", 15, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_05@ECM1", 16, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_06@ECM1", 17, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_07@ECM1", 18, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_08@ECM1", 19, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_09@ECM1", 20, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_00@ECM1", 21, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_01@ECM1", 22, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_02@ECM1", 23, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_03@ECM1", 24, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_04@ECM1", 25, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ecg_ECM2@ECM1", 26, 5000, 5000, 5000, 250000,
- 4, 0, 5000, 0, 4, 0, 0, 0 },
+ 4, 0, 5000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ecg_ECM1@ECM1", 27, 5000, 5000, 5000, 250000,
- 4, 0, 5000, 1, 4, 0, 0, 0 },
+ 4, 0, 5000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_00@ECM1", 28, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_01@ECM1", 29, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_02@ECM1", 30, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_03@ECM1", 31, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_04@ECM1", 32, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_05@ECM1", 33, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_06@ECM1", 34, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_07@ECM1", 35, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_08@ECM1", 36, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_09@ECM1", 37, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_10@ECM1", 38, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_11@ECM1", 39, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_12@ECM1", 40, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_13@ECM1", 41, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_14@ECM1", 42, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_15@ECM1", 43, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_16@ECM1", 44, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_17@ECM1", 45, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_18@ECM1", 46, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_19@ECM1", 47, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_20@ECM1", 48, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_21@ECM1", 49, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_22@ECM1", 50, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_23@ECM1", 51, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_24@ECM1", 52, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_00@ECM1", 53, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_01@ECM1", 54, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_02@ECM1", 55, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_03@ECM1", 56, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_04@ECM1", 57, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_00@ECM1", 58, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_01@ECM1", 59, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_02@ECM1", 60, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_03@ECM1", 61, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_04@ECM1", 62, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_05@ECM1", 63, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_06@ECM1", 64, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_07@ECM1", 65, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_08@ECM1", 66, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_09@ECM1", 67, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_00@ECM1", 68, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_01@ECM1", 69, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_02@ECM1", 70, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_03@ECM1", 71, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_04@ECM1", 72, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 }
+ 4, 0, 20000, 1, 0, 0, 0, 0, (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}
};
static int runtime_infos_1_size = sizeof(runtime_infos_1)/sizeof(runtime_infos_1[0]);
diff --git a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h
index 7b636968f54..44b87de3f80 100644
--- a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h
+++ b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h
@@ -6,149 +6,149 @@
static ACE_Scheduler_Factory::POD_RT_Info runtime_infos_2[] = {
{ "Reactor_Task-25000.us", 1, 0, 0, 0, 250000,
- 4, 0, 0, 1, 4, 0, 0, 0 },
+ 4, 0, 0, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "Reactor_Task-50000.us", 2, 0, 0, 0, 500000,
- 4, 0, 0, 1, 3, 0, 0, 0 },
+ 4, 0, 0, 1, 3, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "Reactor_Task-100000.us", 3, 0, 0, 0, 1000000,
- 4, 0, 0, 1, 2, 0, 0, 0 },
+ 4, 0, 0, 1, 2, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "Reactor_Task-200000.us", 4, 0, 0, 0, 2000000,
- 4, 0, 0, 1, 1, 0, 0, 0 },
+ 4, 0, 0, 1, 1, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "Reactor_Task-1000000.us", 5, 0, 0, 0, 10000000,
- 4, 0, 0, 1, 0, 0, 0, 0 },
+ 4, 0, 0, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-25000.us", 6, 0, 0, 0, 0,
- 4, 0, 0, 1, 4, 0, 0, 0 },
+ 4, 0, 0, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-50000.us", 7, 0, 0, 0, 0,
- 4, 0, 0, 1, 3, 0, 0, 0 },
+ 4, 0, 0, 1, 3, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-100000.us", 8, 0, 0, 0, 0,
- 4, 0, 0, 1, 2, 0, 0, 0 },
+ 4, 0, 0, 1, 2, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-200000.us", 9, 0, 0, 0, 0,
- 4, 0, 0, 1, 1, 0, 0, 0 },
+ 4, 0, 0, 1, 1, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ACE_ES_Dispatch_Queue-1000000.us", 10, 0, 0, 0, 0,
- 4, 0, 0, 1, 0, 0, 0, 0 },
+ 4, 0, 0, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_00@ECM2", 11, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_01@ECM2", 12, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_02@ECM2", 13, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_03@ECM2", 14, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_04@ECM2", 15, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_05@ECM2", 16, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_06@ECM2", 17, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_07@ECM2", 18, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_08@ECM2", 19, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_supplier_09@ECM2", 20, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_00@ECM2", 21, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_01@ECM2", 22, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_02@ECM2", 23, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_03@ECM2", 24, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_supplier_04@ECM2", 25, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ecg_ECM2@ECM2", 26, 5000, 5000, 5000, 250000,
- 4, 0, 5000, 1, 4, 0, 0, 0 },
+ 4, 0, 5000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "ecg_ECM1@ECM2", 27, 5000, 5000, 5000, 250000,
- 4, 0, 5000, 0, 4, 0, 0, 0 },
+ 4, 0, 5000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_00@ECM2", 28, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_01@ECM2", 29, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_02@ECM2", 30, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_03@ECM2", 31, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_04@ECM2", 32, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_05@ECM2", 33, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_06@ECM2", 34, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_07@ECM2", 35, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_08@ECM2", 36, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_09@ECM2", 37, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_10@ECM2", 38, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_11@ECM2", 39, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_12@ECM2", 40, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_13@ECM2", 41, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_14@ECM2", 42, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_15@ECM2", 43, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_16@ECM2", 44, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_17@ECM2", 45, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_18@ECM2", 46, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_19@ECM2", 47, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_20@ECM2", 48, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_21@ECM2", 49, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_22@ECM2", 50, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_23@ECM2", 51, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "hp_consumer_24@ECM2", 52, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 4, 0, 0, 0 },
+ 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_00@ECM2", 53, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_01@ECM2", 54, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_02@ECM2", 55, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_03@ECM2", 56, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "lp_consumer_04@ECM2", 57, 20000, 20000, 20000, 0,
- 4, 0, 20000, 0, 0, 0, 0, 0 },
+ 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_00@ECM2", 58, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_01@ECM2", 59, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_02@ECM2", 60, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_03@ECM2", 61, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_04@ECM2", 62, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_05@ECM2", 63, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_06@ECM2", 64, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_07@ECM2", 65, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_08@ECM2", 66, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_hp_supplier_09@ECM2", 67, 20000, 20000, 20000, 250000,
- 4, 0, 20000, 1, 4, 0, 0, 0 },
+ 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_00@ECM2", 68, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_01@ECM2", 69, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_02@ECM2", 70, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_03@ECM2", 71, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 },
+ 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED},
{ "consumer_lp_supplier_04@ECM2", 72, 20000, 20000, 20000, 10000000,
- 4, 0, 20000, 1, 0, 0, 0, 0 }
+ 4, 0, 20000, 1, 0, 0, 0, 0, (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}
};
static int runtime_infos_2_size = sizeof(runtime_infos_2)/sizeof(runtime_infos_2[0]);
diff --git a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h
index d4ae4f1d0cd..86089e80ff4 100644
--- a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h
+++ b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h
@@ -5,1021 +5,1021 @@
#include "orbsvcs/Scheduler_Factory.h"
static ACE_Scheduler_Factory::POD_RT_Info runtime_infos_3[] = {
-{ "Reactor_Task-25000.us", 1, 0, 0, 0, 250000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1022, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "Reactor_Task-50000.us", 2, 0, 0, 0, 500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1020, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "Reactor_Task-100000.us", 3, 0, 0, 0, 1000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1018, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "Reactor_Task-200000.us", 4, 0, 0, 0, 2000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1016, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "Reactor_Task-1000000.us", 5, 0, 0, 0, 10000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "hp_supplier_00@ECM3", 6, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 10, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_supplier_00@ECM3", 7, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 9, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "hp_consumer_00@ECM3", 8, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1012, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_00@ECM3", 9, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1011, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_01@ECM3", 10, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1010, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_02@ECM3", 11, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1009, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_03@ECM3", 12, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1008, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_04@ECM3", 13, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1007, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_05@ECM3", 14, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1006, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_06@ECM3", 15, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1005, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_07@ECM3", 16, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1004, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_08@ECM3", 17, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1003, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_09@ECM3", 18, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1002, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_10@ECM3", 19, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1001, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_11@ECM3", 20, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1000, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_12@ECM3", 21, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 999, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_13@ECM3", 22, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 998, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_14@ECM3", 23, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 997, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_15@ECM3", 24, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 996, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_16@ECM3", 25, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 995, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_17@ECM3", 26, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 994, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_18@ECM3", 27, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 993, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_19@ECM3", 28, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 992, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_20@ECM3", 29, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 991, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_21@ECM3", 30, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 990, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_22@ECM3", 31, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 989, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_23@ECM3", 32, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 988, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_24@ECM3", 33, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 987, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_25@ECM3", 34, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 986, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_26@ECM3", 35, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 985, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_27@ECM3", 36, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 984, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_28@ECM3", 37, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 983, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_29@ECM3", 38, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 982, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_30@ECM3", 39, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 981, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_31@ECM3", 40, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 980, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_32@ECM3", 41, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 979, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_33@ECM3", 42, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 978, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_34@ECM3", 43, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 977, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_35@ECM3", 44, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 976, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_36@ECM3", 45, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 975, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_37@ECM3", 46, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 974, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_38@ECM3", 47, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 973, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_39@ECM3", 48, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 972, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_40@ECM3", 49, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 971, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_41@ECM3", 50, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 970, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_42@ECM3", 51, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 969, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_43@ECM3", 52, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 968, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_44@ECM3", 53, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 967, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_45@ECM3", 54, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 966, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_46@ECM3", 55, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 965, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_47@ECM3", 56, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 964, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_48@ECM3", 57, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 963, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_49@ECM3", 58, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 962, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_50@ECM3", 59, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 961, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_51@ECM3", 60, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 960, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_52@ECM3", 61, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 959, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_53@ECM3", 62, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 958, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_54@ECM3", 63, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 957, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_55@ECM3", 64, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 956, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_56@ECM3", 65, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 955, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_57@ECM3", 66, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 954, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_58@ECM3", 67, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 953, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_59@ECM3", 68, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 952, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_60@ECM3", 69, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 951, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_61@ECM3", 70, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 950, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_62@ECM3", 71, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 949, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_63@ECM3", 72, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 948, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_64@ECM3", 73, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 947, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_65@ECM3", 74, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 946, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_66@ECM3", 75, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 945, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_67@ECM3", 76, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 944, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_68@ECM3", 77, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 943, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_69@ECM3", 78, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 942, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_70@ECM3", 79, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 941, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_71@ECM3", 80, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 940, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_72@ECM3", 81, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 939, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_73@ECM3", 82, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 938, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_74@ECM3", 83, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 937, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_75@ECM3", 84, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 936, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_76@ECM3", 85, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 935, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_77@ECM3", 86, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 934, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_78@ECM3", 87, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 933, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_79@ECM3", 88, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 932, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_80@ECM3", 89, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 931, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_81@ECM3", 90, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 930, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_82@ECM3", 91, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 929, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_83@ECM3", 92, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 928, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_84@ECM3", 93, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 927, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_85@ECM3", 94, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 926, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_86@ECM3", 95, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 925, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_87@ECM3", 96, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 924, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_88@ECM3", 97, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 923, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_89@ECM3", 98, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 922, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_90@ECM3", 99, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 921, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_91@ECM3", 100, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 920, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_92@ECM3", 101, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 919, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_93@ECM3", 102, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 918, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_94@ECM3", 103, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 917, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_95@ECM3", 104, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 916, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_96@ECM3", 105, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 915, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_97@ECM3", 106, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 914, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_98@ECM3", 107, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 913, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_99@ECM3", 108, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 912, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_100@ECM3", 109, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 911, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_101@ECM3", 110, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 910, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_102@ECM3", 111, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 909, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_103@ECM3", 112, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 908, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_104@ECM3", 113, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 907, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_105@ECM3", 114, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 906, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_106@ECM3", 115, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 905, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_107@ECM3", 116, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 904, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_108@ECM3", 117, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 903, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_109@ECM3", 118, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 902, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_110@ECM3", 119, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 901, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_111@ECM3", 120, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 900, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_112@ECM3", 121, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 899, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_113@ECM3", 122, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 898, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_114@ECM3", 123, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 897, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_115@ECM3", 124, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 896, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_116@ECM3", 125, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 895, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_117@ECM3", 126, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 894, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_118@ECM3", 127, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 893, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_119@ECM3", 128, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 892, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_120@ECM3", 129, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 891, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_121@ECM3", 130, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 890, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_122@ECM3", 131, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 889, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_123@ECM3", 132, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 888, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_124@ECM3", 133, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 887, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_125@ECM3", 134, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 886, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_126@ECM3", 135, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 885, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_127@ECM3", 136, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 884, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_128@ECM3", 137, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 883, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_129@ECM3", 138, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 882, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_130@ECM3", 139, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 881, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_131@ECM3", 140, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 880, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_132@ECM3", 141, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 879, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_133@ECM3", 142, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 878, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_134@ECM3", 143, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 877, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_135@ECM3", 144, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 876, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_136@ECM3", 145, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 875, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_137@ECM3", 146, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 874, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_138@ECM3", 147, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 873, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_139@ECM3", 148, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 872, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_140@ECM3", 149, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 871, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_141@ECM3", 150, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 870, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_142@ECM3", 151, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 869, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_143@ECM3", 152, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 868, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_144@ECM3", 153, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 867, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_145@ECM3", 154, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 866, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_146@ECM3", 155, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 865, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_147@ECM3", 156, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 864, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_148@ECM3", 157, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 863, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_149@ECM3", 158, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 862, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_150@ECM3", 159, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 861, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_151@ECM3", 160, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 860, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_152@ECM3", 161, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 859, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_153@ECM3", 162, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 858, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_154@ECM3", 163, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 857, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_155@ECM3", 164, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 856, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_156@ECM3", 165, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 855, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_157@ECM3", 166, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 854, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_158@ECM3", 167, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 853, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_159@ECM3", 168, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 852, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_160@ECM3", 169, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 851, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_161@ECM3", 170, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 850, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_162@ECM3", 171, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 849, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_163@ECM3", 172, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 848, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_164@ECM3", 173, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 847, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_165@ECM3", 174, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 846, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_166@ECM3", 175, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 845, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_167@ECM3", 176, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 844, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_168@ECM3", 177, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 843, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_169@ECM3", 178, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 842, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_170@ECM3", 179, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 841, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_171@ECM3", 180, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 840, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_172@ECM3", 181, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 839, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_173@ECM3", 182, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 838, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_174@ECM3", 183, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 837, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_175@ECM3", 184, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 836, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_176@ECM3", 185, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 835, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_177@ECM3", 186, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 834, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_178@ECM3", 187, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 833, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_179@ECM3", 188, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 832, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_180@ECM3", 189, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 831, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_181@ECM3", 190, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 830, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_182@ECM3", 191, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 829, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_183@ECM3", 192, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 828, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_184@ECM3", 193, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 827, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_185@ECM3", 194, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 826, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_186@ECM3", 195, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 825, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_187@ECM3", 196, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 824, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_188@ECM3", 197, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 823, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_189@ECM3", 198, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 822, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_190@ECM3", 199, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 821, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_191@ECM3", 200, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 820, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_192@ECM3", 201, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 819, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_193@ECM3", 202, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 818, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_194@ECM3", 203, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 817, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_195@ECM3", 204, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 816, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_196@ECM3", 205, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 815, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_197@ECM3", 206, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 814, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_198@ECM3", 207, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 813, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_199@ECM3", 208, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 812, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_200@ECM3", 209, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 811, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_201@ECM3", 210, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 810, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_202@ECM3", 211, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 809, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_203@ECM3", 212, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 808, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_204@ECM3", 213, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 807, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_205@ECM3", 214, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 806, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_206@ECM3", 215, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 805, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_207@ECM3", 216, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 804, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_208@ECM3", 217, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 803, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_209@ECM3", 218, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 802, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_210@ECM3", 219, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 801, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_211@ECM3", 220, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 800, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_212@ECM3", 221, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 799, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_213@ECM3", 222, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 798, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_214@ECM3", 223, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 797, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_215@ECM3", 224, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 796, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_216@ECM3", 225, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 795, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_217@ECM3", 226, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 794, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_218@ECM3", 227, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 793, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_219@ECM3", 228, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 792, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_220@ECM3", 229, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 791, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_221@ECM3", 230, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 790, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_222@ECM3", 231, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 789, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_223@ECM3", 232, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 788, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_224@ECM3", 233, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 787, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_225@ECM3", 234, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 786, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_226@ECM3", 235, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 785, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_227@ECM3", 236, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 784, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_228@ECM3", 237, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 783, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_229@ECM3", 238, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 782, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_230@ECM3", 239, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 781, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_231@ECM3", 240, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 780, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_232@ECM3", 241, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 779, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_233@ECM3", 242, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 778, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_234@ECM3", 243, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 777, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_235@ECM3", 244, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 776, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_236@ECM3", 245, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 775, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_237@ECM3", 246, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 774, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_238@ECM3", 247, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 773, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_239@ECM3", 248, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 772, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_240@ECM3", 249, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 771, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_241@ECM3", 250, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 770, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_242@ECM3", 251, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 769, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_243@ECM3", 252, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 768, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_244@ECM3", 253, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 767, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_245@ECM3", 254, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 766, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_246@ECM3", 255, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 765, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_247@ECM3", 256, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 764, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_248@ECM3", 257, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 763, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_249@ECM3", 258, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 762, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_250@ECM3", 259, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 761, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_251@ECM3", 260, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 760, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_252@ECM3", 261, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 759, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_253@ECM3", 262, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 758, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_254@ECM3", 263, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 757, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_255@ECM3", 264, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 756, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_256@ECM3", 265, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 755, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_257@ECM3", 266, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 754, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_258@ECM3", 267, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 753, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_259@ECM3", 268, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 752, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_260@ECM3", 269, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 751, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_261@ECM3", 270, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 750, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_262@ECM3", 271, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 749, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_263@ECM3", 272, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 748, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_264@ECM3", 273, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 747, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_265@ECM3", 274, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 746, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_266@ECM3", 275, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 745, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_267@ECM3", 276, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 744, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_268@ECM3", 277, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 743, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_269@ECM3", 278, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 742, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_270@ECM3", 279, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 741, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_271@ECM3", 280, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 740, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_272@ECM3", 281, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 739, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_273@ECM3", 282, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 738, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_274@ECM3", 283, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 737, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_275@ECM3", 284, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 736, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_276@ECM3", 285, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 735, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_277@ECM3", 286, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 734, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_278@ECM3", 287, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 733, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_279@ECM3", 288, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 732, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_280@ECM3", 289, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 731, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_281@ECM3", 290, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 730, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_282@ECM3", 291, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 729, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_283@ECM3", 292, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 728, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_284@ECM3", 293, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 727, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_285@ECM3", 294, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 726, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_286@ECM3", 295, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 725, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_287@ECM3", 296, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 724, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_288@ECM3", 297, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 723, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_289@ECM3", 298, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 722, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_290@ECM3", 299, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 721, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_291@ECM3", 300, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 720, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_292@ECM3", 301, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 719, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_293@ECM3", 302, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 718, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_294@ECM3", 303, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 717, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_295@ECM3", 304, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 716, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_296@ECM3", 305, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 715, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_297@ECM3", 306, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 714, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_298@ECM3", 307, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 713, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_299@ECM3", 308, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 712, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_300@ECM3", 309, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 711, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_301@ECM3", 310, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 710, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_302@ECM3", 311, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 709, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_303@ECM3", 312, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 708, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_304@ECM3", 313, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 707, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_305@ECM3", 314, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 706, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_306@ECM3", 315, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 705, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_307@ECM3", 316, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 704, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_308@ECM3", 317, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 703, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_309@ECM3", 318, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 702, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_310@ECM3", 319, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 701, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_311@ECM3", 320, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 700, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_312@ECM3", 321, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 699, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_313@ECM3", 322, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 698, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_314@ECM3", 323, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 697, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_315@ECM3", 324, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 696, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_316@ECM3", 325, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 695, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_317@ECM3", 326, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 694, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_318@ECM3", 327, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 693, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_319@ECM3", 328, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 692, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_320@ECM3", 329, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 691, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_321@ECM3", 330, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 690, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_322@ECM3", 331, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 689, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_323@ECM3", 332, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 688, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_324@ECM3", 333, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 687, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_325@ECM3", 334, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 686, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_326@ECM3", 335, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 685, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_327@ECM3", 336, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 684, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_328@ECM3", 337, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 683, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_329@ECM3", 338, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 682, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_330@ECM3", 339, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 681, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_331@ECM3", 340, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 680, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_332@ECM3", 341, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 679, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_333@ECM3", 342, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 678, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_334@ECM3", 343, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 677, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_335@ECM3", 344, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 676, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_336@ECM3", 345, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 675, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_337@ECM3", 346, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 674, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_338@ECM3", 347, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 673, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_339@ECM3", 348, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 672, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_340@ECM3", 349, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 671, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_341@ECM3", 350, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 670, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_342@ECM3", 351, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 669, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_343@ECM3", 352, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 668, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_344@ECM3", 353, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 667, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_345@ECM3", 354, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 666, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_346@ECM3", 355, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 665, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_347@ECM3", 356, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 664, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_348@ECM3", 357, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 663, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_349@ECM3", 358, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 662, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_350@ECM3", 359, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 661, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_351@ECM3", 360, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 660, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_352@ECM3", 361, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 659, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_353@ECM3", 362, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 658, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_354@ECM3", 363, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 657, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_355@ECM3", 364, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 656, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_356@ECM3", 365, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 655, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_357@ECM3", 366, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 654, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_358@ECM3", 367, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 653, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_359@ECM3", 368, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 652, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_360@ECM3", 369, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 651, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_361@ECM3", 370, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 650, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_362@ECM3", 371, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 649, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_363@ECM3", 372, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 648, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_364@ECM3", 373, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 647, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_365@ECM3", 374, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 646, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_366@ECM3", 375, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 645, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_367@ECM3", 376, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 644, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_368@ECM3", 377, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 643, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_369@ECM3", 378, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 642, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_370@ECM3", 379, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 641, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_371@ECM3", 380, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 640, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_372@ECM3", 381, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 639, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_373@ECM3", 382, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 638, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_374@ECM3", 383, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 637, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_375@ECM3", 384, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 636, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_376@ECM3", 385, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 635, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_377@ECM3", 386, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 634, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_378@ECM3", 387, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 633, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_379@ECM3", 388, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 632, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_380@ECM3", 389, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 631, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_381@ECM3", 390, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 630, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_382@ECM3", 391, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 629, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_383@ECM3", 392, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 628, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_384@ECM3", 393, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 627, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_385@ECM3", 394, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 626, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_386@ECM3", 395, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 625, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_387@ECM3", 396, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 624, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_388@ECM3", 397, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 623, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_389@ECM3", 398, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 622, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_390@ECM3", 399, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 621, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_391@ECM3", 400, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 620, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_392@ECM3", 401, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 619, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_393@ECM3", 402, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 618, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_394@ECM3", 403, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 617, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_395@ECM3", 404, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 616, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_396@ECM3", 405, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 615, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_397@ECM3", 406, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 614, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_398@ECM3", 407, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 613, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_399@ECM3", 408, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 612, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_400@ECM3", 409, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 611, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_401@ECM3", 410, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 610, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_402@ECM3", 411, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 609, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_403@ECM3", 412, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 608, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_404@ECM3", 413, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 607, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_405@ECM3", 414, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 606, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_406@ECM3", 415, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 605, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_407@ECM3", 416, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 604, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_408@ECM3", 417, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 603, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_409@ECM3", 418, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 602, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_410@ECM3", 419, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 601, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_411@ECM3", 420, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 600, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_412@ECM3", 421, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 599, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_413@ECM3", 422, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 598, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_414@ECM3", 423, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 597, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_415@ECM3", 424, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 596, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_416@ECM3", 425, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 595, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_417@ECM3", 426, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 594, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_418@ECM3", 427, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 593, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_419@ECM3", 428, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 592, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_420@ECM3", 429, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 591, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_421@ECM3", 430, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 590, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_422@ECM3", 431, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 589, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_423@ECM3", 432, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 588, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_424@ECM3", 433, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 587, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_425@ECM3", 434, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 586, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_426@ECM3", 435, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 585, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_427@ECM3", 436, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 584, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_428@ECM3", 437, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 583, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_429@ECM3", 438, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 582, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_430@ECM3", 439, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 581, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_431@ECM3", 440, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 580, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_432@ECM3", 441, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 579, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_433@ECM3", 442, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 578, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_434@ECM3", 443, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 577, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_435@ECM3", 444, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 576, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_436@ECM3", 445, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 575, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_437@ECM3", 446, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 574, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_438@ECM3", 447, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 573, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_439@ECM3", 448, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 572, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_440@ECM3", 449, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 571, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_441@ECM3", 450, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 570, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_442@ECM3", 451, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 569, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_443@ECM3", 452, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 568, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_444@ECM3", 453, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 567, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_445@ECM3", 454, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 566, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_446@ECM3", 455, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 565, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_447@ECM3", 456, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 564, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_448@ECM3", 457, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 563, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_449@ECM3", 458, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 562, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_450@ECM3", 459, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 561, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_451@ECM3", 460, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 560, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_452@ECM3", 461, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 559, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_453@ECM3", 462, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 558, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_454@ECM3", 463, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 557, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_455@ECM3", 464, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 556, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_456@ECM3", 465, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 555, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_457@ECM3", 466, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 554, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_458@ECM3", 467, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 553, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_459@ECM3", 468, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 552, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_460@ECM3", 469, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 551, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_461@ECM3", 470, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 550, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_462@ECM3", 471, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 549, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_463@ECM3", 472, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 548, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_464@ECM3", 473, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 547, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_465@ECM3", 474, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 546, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_466@ECM3", 475, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 545, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_467@ECM3", 476, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 544, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_468@ECM3", 477, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 543, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_469@ECM3", 478, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 542, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_470@ECM3", 479, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 541, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_471@ECM3", 480, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 540, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_472@ECM3", 481, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 539, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_473@ECM3", 482, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 538, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_474@ECM3", 483, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 537, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_475@ECM3", 484, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 536, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_476@ECM3", 485, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 535, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_477@ECM3", 486, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 534, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_478@ECM3", 487, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 533, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_479@ECM3", 488, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 532, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_480@ECM3", 489, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 531, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_481@ECM3", 490, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 530, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_482@ECM3", 491, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 529, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_483@ECM3", 492, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 528, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_484@ECM3", 493, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 527, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_485@ECM3", 494, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 526, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_486@ECM3", 495, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 525, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_487@ECM3", 496, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 524, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_488@ECM3", 497, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 523, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_489@ECM3", 498, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 522, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_490@ECM3", 499, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 521, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_491@ECM3", 500, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 520, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_492@ECM3", 501, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 519, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_493@ECM3", 502, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 518, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_494@ECM3", 503, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 517, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_495@ECM3", 504, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 516, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_496@ECM3", 505, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 515, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_497@ECM3", 506, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 514, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_498@ECM3", 507, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 513, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_499@ECM3", 508, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 512, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_500@ECM3", 509, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 511, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_501@ECM3", 510, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 510, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_502@ECM3", 511, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 509, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_503@ECM3", 512, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 508, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_504@ECM3", 513, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 507, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_505@ECM3", 514, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 506, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_506@ECM3", 515, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 505, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_507@ECM3", 516, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 504, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_508@ECM3", 517, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 503, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_509@ECM3", 518, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 502, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_510@ECM3", 519, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 501, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_511@ECM3", 520, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 500, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_512@ECM3", 521, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 499, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_513@ECM3", 522, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 498, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_514@ECM3", 523, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 497, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_515@ECM3", 524, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 496, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_516@ECM3", 525, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 495, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_517@ECM3", 526, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 494, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_518@ECM3", 527, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 493, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_519@ECM3", 528, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 492, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_520@ECM3", 529, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 491, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_521@ECM3", 530, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 490, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_522@ECM3", 531, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 489, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_523@ECM3", 532, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 488, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_524@ECM3", 533, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 487, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_525@ECM3", 534, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 486, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_526@ECM3", 535, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 485, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_527@ECM3", 536, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 484, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_528@ECM3", 537, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 483, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_529@ECM3", 538, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 482, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_530@ECM3", 539, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 481, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_531@ECM3", 540, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 480, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_532@ECM3", 541, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 479, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_533@ECM3", 542, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 478, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_534@ECM3", 543, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 477, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_535@ECM3", 544, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 476, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_536@ECM3", 545, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 475, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_537@ECM3", 546, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 474, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_538@ECM3", 547, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 473, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_539@ECM3", 548, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 472, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_540@ECM3", 549, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 471, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_541@ECM3", 550, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 470, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_542@ECM3", 551, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 469, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_543@ECM3", 552, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 468, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_544@ECM3", 553, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 467, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_545@ECM3", 554, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 466, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_546@ECM3", 555, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 465, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_547@ECM3", 556, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 464, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_548@ECM3", 557, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 463, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_549@ECM3", 558, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 462, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_550@ECM3", 559, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 461, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_551@ECM3", 560, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 460, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_552@ECM3", 561, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 459, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_553@ECM3", 562, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 458, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_554@ECM3", 563, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 457, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_555@ECM3", 564, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 456, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_556@ECM3", 565, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 455, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_557@ECM3", 566, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 454, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_558@ECM3", 567, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 453, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_559@ECM3", 568, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 452, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_560@ECM3", 569, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 451, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_561@ECM3", 570, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 450, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_562@ECM3", 571, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 449, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_563@ECM3", 572, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 448, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_564@ECM3", 573, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 447, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_565@ECM3", 574, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 446, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_566@ECM3", 575, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 445, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_567@ECM3", 576, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 444, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_568@ECM3", 577, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 443, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_569@ECM3", 578, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 442, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_570@ECM3", 579, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 441, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_571@ECM3", 580, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 440, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_572@ECM3", 581, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 439, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_573@ECM3", 582, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 438, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_574@ECM3", 583, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 437, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_575@ECM3", 584, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 436, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_576@ECM3", 585, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 435, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_577@ECM3", 586, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 434, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_578@ECM3", 587, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 433, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_579@ECM3", 588, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 432, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_580@ECM3", 589, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 431, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_581@ECM3", 590, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 430, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_582@ECM3", 591, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 429, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_583@ECM3", 592, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 428, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_584@ECM3", 593, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 427, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_585@ECM3", 594, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 426, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_586@ECM3", 595, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 425, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_587@ECM3", 596, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 424, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_588@ECM3", 597, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 423, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_589@ECM3", 598, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 422, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_590@ECM3", 599, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 421, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_591@ECM3", 600, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 420, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_592@ECM3", 601, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 419, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_593@ECM3", 602, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 418, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_594@ECM3", 603, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 417, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_595@ECM3", 604, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 416, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_596@ECM3", 605, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 415, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_597@ECM3", 606, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 414, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_598@ECM3", 607, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 413, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_599@ECM3", 608, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 412, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_600@ECM3", 609, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 411, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_601@ECM3", 610, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 410, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_602@ECM3", 611, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 409, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_603@ECM3", 612, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 408, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_604@ECM3", 613, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 407, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_605@ECM3", 614, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 406, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_606@ECM3", 615, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 405, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_607@ECM3", 616, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 404, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_608@ECM3", 617, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 403, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_609@ECM3", 618, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 402, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_610@ECM3", 619, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 401, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_611@ECM3", 620, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 400, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_612@ECM3", 621, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 399, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_613@ECM3", 622, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 398, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_614@ECM3", 623, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 397, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_615@ECM3", 624, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 396, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_616@ECM3", 625, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 395, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_617@ECM3", 626, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 394, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_618@ECM3", 627, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 393, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_619@ECM3", 628, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 392, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_620@ECM3", 629, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 391, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_621@ECM3", 630, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 390, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_622@ECM3", 631, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 389, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_623@ECM3", 632, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 388, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_624@ECM3", 633, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 387, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_625@ECM3", 634, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 386, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_626@ECM3", 635, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 385, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_627@ECM3", 636, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 384, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_628@ECM3", 637, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 383, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_629@ECM3", 638, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 382, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_630@ECM3", 639, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 381, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_631@ECM3", 640, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 380, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_632@ECM3", 641, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 379, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_633@ECM3", 642, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 378, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_634@ECM3", 643, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 377, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_635@ECM3", 644, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 376, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_636@ECM3", 645, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 375, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_637@ECM3", 646, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 374, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_638@ECM3", 647, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 373, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_639@ECM3", 648, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 372, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_640@ECM3", 649, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 371, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_641@ECM3", 650, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 370, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_642@ECM3", 651, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 369, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_643@ECM3", 652, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 368, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_644@ECM3", 653, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 367, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_645@ECM3", 654, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 366, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_646@ECM3", 655, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 365, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_647@ECM3", 656, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 364, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_648@ECM3", 657, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 363, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_649@ECM3", 658, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 362, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_650@ECM3", 659, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 361, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_651@ECM3", 660, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 360, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_652@ECM3", 661, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 359, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_653@ECM3", 662, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 358, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_654@ECM3", 663, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 357, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_655@ECM3", 664, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 356, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_656@ECM3", 665, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 355, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_657@ECM3", 666, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 354, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_658@ECM3", 667, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 353, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_659@ECM3", 668, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 352, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_660@ECM3", 669, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 351, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_661@ECM3", 670, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 350, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_662@ECM3", 671, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 349, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_663@ECM3", 672, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 348, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_664@ECM3", 673, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 347, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_665@ECM3", 674, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 346, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_666@ECM3", 675, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 345, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_667@ECM3", 676, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 344, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_668@ECM3", 677, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 343, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_669@ECM3", 678, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 342, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_670@ECM3", 679, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 341, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_671@ECM3", 680, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 340, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_672@ECM3", 681, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 339, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_673@ECM3", 682, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 338, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_674@ECM3", 683, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 337, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_675@ECM3", 684, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 336, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_676@ECM3", 685, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 335, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_677@ECM3", 686, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 334, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_678@ECM3", 687, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 333, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_679@ECM3", 688, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 332, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_680@ECM3", 689, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 331, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_681@ECM3", 690, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 330, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_682@ECM3", 691, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 329, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_683@ECM3", 692, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 328, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_684@ECM3", 693, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 327, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_685@ECM3", 694, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 326, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_686@ECM3", 695, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 325, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_687@ECM3", 696, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 324, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_688@ECM3", 697, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 323, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_689@ECM3", 698, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 322, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_690@ECM3", 699, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 321, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_691@ECM3", 700, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 320, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_692@ECM3", 701, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 319, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_693@ECM3", 702, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 318, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_694@ECM3", 703, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 317, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_695@ECM3", 704, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 316, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_696@ECM3", 705, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 315, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_697@ECM3", 706, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 314, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_698@ECM3", 707, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 313, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_699@ECM3", 708, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 312, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_700@ECM3", 709, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 311, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_701@ECM3", 710, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 310, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_702@ECM3", 711, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 309, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_703@ECM3", 712, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 308, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_704@ECM3", 713, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 307, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_705@ECM3", 714, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 306, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_706@ECM3", 715, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 305, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_707@ECM3", 716, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 304, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_708@ECM3", 717, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 303, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_709@ECM3", 718, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 302, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_710@ECM3", 719, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 301, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_711@ECM3", 720, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 300, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_712@ECM3", 721, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 299, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_713@ECM3", 722, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 298, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_714@ECM3", 723, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 297, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_715@ECM3", 724, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 296, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_716@ECM3", 725, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 295, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_717@ECM3", 726, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 294, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_718@ECM3", 727, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 293, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_719@ECM3", 728, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 292, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_720@ECM3", 729, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 291, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_721@ECM3", 730, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 290, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_722@ECM3", 731, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 289, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_723@ECM3", 732, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 288, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_724@ECM3", 733, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 287, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_725@ECM3", 734, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 286, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_726@ECM3", 735, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 285, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_727@ECM3", 736, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 284, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_728@ECM3", 737, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 283, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_729@ECM3", 738, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 282, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_730@ECM3", 739, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 281, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_731@ECM3", 740, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 280, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_732@ECM3", 741, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 279, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_733@ECM3", 742, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 278, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_734@ECM3", 743, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 277, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_735@ECM3", 744, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 276, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_736@ECM3", 745, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 275, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_737@ECM3", 746, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 274, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_738@ECM3", 747, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 273, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_739@ECM3", 748, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 272, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_740@ECM3", 749, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 271, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_741@ECM3", 750, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 270, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_742@ECM3", 751, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 269, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_743@ECM3", 752, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 268, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_744@ECM3", 753, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 267, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_745@ECM3", 754, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 266, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_746@ECM3", 755, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 265, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_747@ECM3", 756, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 264, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_748@ECM3", 757, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 263, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_749@ECM3", 758, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 262, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_750@ECM3", 759, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 261, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_751@ECM3", 760, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 260, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_752@ECM3", 761, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 259, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_753@ECM3", 762, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 258, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_754@ECM3", 763, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 257, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_755@ECM3", 764, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 256, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_756@ECM3", 765, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 255, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_757@ECM3", 766, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 254, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_758@ECM3", 767, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 253, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_759@ECM3", 768, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 252, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_760@ECM3", 769, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 251, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_761@ECM3", 770, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 250, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_762@ECM3", 771, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 249, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_763@ECM3", 772, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 248, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_764@ECM3", 773, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 247, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_765@ECM3", 774, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 246, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_766@ECM3", 775, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 245, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_767@ECM3", 776, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 244, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_768@ECM3", 777, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 243, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_769@ECM3", 778, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 242, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_770@ECM3", 779, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 241, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_771@ECM3", 780, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 240, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_772@ECM3", 781, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 239, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_773@ECM3", 782, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 238, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_774@ECM3", 783, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 237, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_775@ECM3", 784, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 236, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_776@ECM3", 785, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 235, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_777@ECM3", 786, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 234, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_778@ECM3", 787, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 233, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_779@ECM3", 788, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 232, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_780@ECM3", 789, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 231, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_781@ECM3", 790, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 230, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_782@ECM3", 791, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 229, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_783@ECM3", 792, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 228, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_784@ECM3", 793, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 227, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_785@ECM3", 794, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 226, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_786@ECM3", 795, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 225, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_787@ECM3", 796, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 224, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_788@ECM3", 797, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 223, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_789@ECM3", 798, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 222, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_790@ECM3", 799, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 221, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_791@ECM3", 800, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 220, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_792@ECM3", 801, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 219, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_793@ECM3", 802, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 218, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_794@ECM3", 803, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 217, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_795@ECM3", 804, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 216, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_796@ECM3", 805, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 215, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_797@ECM3", 806, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 214, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_798@ECM3", 807, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 213, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_799@ECM3", 808, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 212, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_800@ECM3", 809, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 211, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_801@ECM3", 810, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 210, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_802@ECM3", 811, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 209, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_803@ECM3", 812, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 208, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_804@ECM3", 813, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 207, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_805@ECM3", 814, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 206, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_806@ECM3", 815, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 205, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_807@ECM3", 816, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 204, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_808@ECM3", 817, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 203, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_809@ECM3", 818, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 202, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_810@ECM3", 819, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 201, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_811@ECM3", 820, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 200, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_812@ECM3", 821, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 199, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_813@ECM3", 822, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 198, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_814@ECM3", 823, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 197, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_815@ECM3", 824, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 196, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_816@ECM3", 825, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 195, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_817@ECM3", 826, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 194, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_818@ECM3", 827, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 193, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_819@ECM3", 828, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 192, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_820@ECM3", 829, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 191, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_821@ECM3", 830, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 190, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_822@ECM3", 831, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 189, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_823@ECM3", 832, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 188, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_824@ECM3", 833, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 187, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_825@ECM3", 834, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 186, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_826@ECM3", 835, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 185, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_827@ECM3", 836, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 184, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_828@ECM3", 837, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 183, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_829@ECM3", 838, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 182, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_830@ECM3", 839, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 181, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_831@ECM3", 840, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 180, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_832@ECM3", 841, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 179, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_833@ECM3", 842, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 178, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_834@ECM3", 843, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 177, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_835@ECM3", 844, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 176, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_836@ECM3", 845, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 175, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_837@ECM3", 846, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 174, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_838@ECM3", 847, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 173, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_839@ECM3", 848, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 172, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_840@ECM3", 849, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 171, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_841@ECM3", 850, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 170, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_842@ECM3", 851, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 169, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_843@ECM3", 852, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 168, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_844@ECM3", 853, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 167, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_845@ECM3", 854, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 166, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_846@ECM3", 855, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 165, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_847@ECM3", 856, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 164, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_848@ECM3", 857, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 163, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_849@ECM3", 858, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 162, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_850@ECM3", 859, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 161, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_851@ECM3", 860, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 160, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_852@ECM3", 861, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 159, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_853@ECM3", 862, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 158, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_854@ECM3", 863, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 157, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_855@ECM3", 864, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 156, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_856@ECM3", 865, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 155, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_857@ECM3", 866, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 154, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_858@ECM3", 867, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 153, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_859@ECM3", 868, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 152, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_860@ECM3", 869, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 151, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_861@ECM3", 870, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 150, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_862@ECM3", 871, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 149, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_863@ECM3", 872, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 148, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_864@ECM3", 873, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 147, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_865@ECM3", 874, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 146, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_866@ECM3", 875, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 145, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_867@ECM3", 876, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 144, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_868@ECM3", 877, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 143, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_869@ECM3", 878, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 142, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_870@ECM3", 879, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 141, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_871@ECM3", 880, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 140, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_872@ECM3", 881, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 139, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_873@ECM3", 882, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 138, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_874@ECM3", 883, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 137, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_875@ECM3", 884, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 136, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_876@ECM3", 885, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 135, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_877@ECM3", 886, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 134, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_878@ECM3", 887, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 133, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_879@ECM3", 888, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 132, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_880@ECM3", 889, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 131, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_881@ECM3", 890, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 130, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_882@ECM3", 891, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 129, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_883@ECM3", 892, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 128, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_884@ECM3", 893, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 127, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_885@ECM3", 894, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 126, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_886@ECM3", 895, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 125, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_887@ECM3", 896, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 124, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_888@ECM3", 897, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 123, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_889@ECM3", 898, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 122, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_890@ECM3", 899, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 121, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_891@ECM3", 900, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 120, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_892@ECM3", 901, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 119, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_893@ECM3", 902, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 118, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_894@ECM3", 903, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 117, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_895@ECM3", 904, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 116, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_896@ECM3", 905, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 115, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_897@ECM3", 906, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 114, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_898@ECM3", 907, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 113, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_899@ECM3", 908, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 112, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_900@ECM3", 909, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 111, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_901@ECM3", 910, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 110, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_902@ECM3", 911, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 109, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_903@ECM3", 912, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 108, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_904@ECM3", 913, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 107, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_905@ECM3", 914, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 106, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_906@ECM3", 915, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 105, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_907@ECM3", 916, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 104, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_908@ECM3", 917, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 103, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_909@ECM3", 918, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 102, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_910@ECM3", 919, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 101, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_911@ECM3", 920, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 100, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_912@ECM3", 921, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 99, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_913@ECM3", 922, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 98, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_914@ECM3", 923, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 97, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_915@ECM3", 924, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 96, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_916@ECM3", 925, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 95, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_917@ECM3", 926, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 94, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_918@ECM3", 927, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 93, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_919@ECM3", 928, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 92, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_920@ECM3", 929, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 91, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_921@ECM3", 930, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 90, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_922@ECM3", 931, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 89, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_923@ECM3", 932, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 88, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_924@ECM3", 933, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 87, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_925@ECM3", 934, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 86, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_926@ECM3", 935, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 85, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_927@ECM3", 936, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 84, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_928@ECM3", 937, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 83, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_929@ECM3", 938, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 82, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_930@ECM3", 939, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 81, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_931@ECM3", 940, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 80, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_932@ECM3", 941, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 79, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_933@ECM3", 942, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 78, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_934@ECM3", 943, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 77, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_935@ECM3", 944, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 76, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_936@ECM3", 945, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 75, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_937@ECM3", 946, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 74, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_938@ECM3", 947, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 73, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_939@ECM3", 948, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 72, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_940@ECM3", 949, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 71, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_941@ECM3", 950, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 70, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_942@ECM3", 951, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 69, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_943@ECM3", 952, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 68, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_944@ECM3", 953, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 67, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_945@ECM3", 954, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 66, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_946@ECM3", 955, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 65, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_947@ECM3", 956, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 64, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_948@ECM3", 957, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 63, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_949@ECM3", 958, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 62, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_950@ECM3", 959, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 61, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_951@ECM3", 960, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 60, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_952@ECM3", 961, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 59, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_953@ECM3", 962, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 58, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_954@ECM3", 963, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 57, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_955@ECM3", 964, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 56, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_956@ECM3", 965, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 55, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_957@ECM3", 966, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 54, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_958@ECM3", 967, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 53, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_959@ECM3", 968, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 52, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_960@ECM3", 969, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 51, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_961@ECM3", 970, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 50, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_962@ECM3", 971, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 49, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_963@ECM3", 972, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 48, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_964@ECM3", 973, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 47, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_965@ECM3", 974, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 46, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_966@ECM3", 975, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 45, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_967@ECM3", 976, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 44, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_968@ECM3", 977, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 43, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_969@ECM3", 978, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 42, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_970@ECM3", 979, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 41, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_971@ECM3", 980, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 40, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_972@ECM3", 981, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 39, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_973@ECM3", 982, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 38, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_974@ECM3", 983, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 37, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_975@ECM3", 984, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 36, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_976@ECM3", 985, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 35, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_977@ECM3", 986, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 34, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_978@ECM3", 987, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 33, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_979@ECM3", 988, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 32, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_980@ECM3", 989, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 31, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_981@ECM3", 990, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 30, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_982@ECM3", 991, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 29, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_983@ECM3", 992, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 28, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_984@ECM3", 993, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 27, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_985@ECM3", 994, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 26, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_986@ECM3", 995, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 25, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_987@ECM3", 996, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 24, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_988@ECM3", 997, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 23, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_989@ECM3", 998, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 22, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_990@ECM3", 999, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 21, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_991@ECM3", 1000, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 20, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_992@ECM3", 1001, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 19, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_993@ECM3", 1002, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 18, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_994@ECM3", 1003, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 17, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_995@ECM3", 1004, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 16, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_996@ECM3", 1005, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 15, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_997@ECM3", 1006, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 14, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_998@ECM3", 1007, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 13, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "lp_consumer_999@ECM3", 1008, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 12, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "consumer_hp_supplier_00@ECM3", 1009, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 3, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "consumer_lp_supplier_00@ECM3", 1010, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 2, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "ACE_ES_Dispatch_Queue-25000.us", 1011, 0, 0, 0, 250000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1021, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "ACE_ES_Dispatch_Queue-50000.us", 1012, 0, 0, 0, 500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1019, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "ACE_ES_Dispatch_Queue-100000.us", 1013, 0, 0, 0, 1000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1017, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "ACE_ES_Dispatch_Queue-200000.us", 1014, 0, 0, 0, 2000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1015, 0, (RtecScheduler::Info_Type_t) 0 },
-{ "ACE_ES_Dispatch_Queue-1000000.us", 1015, 0, 0, 0, 10000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 0, 0, (RtecScheduler::Info_Type_t) 0 }
+ { "Reactor_Task-25000.us", 1, 0, 0, 0, 250000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1022, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "Reactor_Task-50000.us", 2, 0, 0, 0, 500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1020, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "Reactor_Task-100000.us", 3, 0, 0, 0, 1000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1018, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "Reactor_Task-200000.us", 4, 0, 0, 0, 2000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1016, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "Reactor_Task-1000000.us", 5, 0, 0, 0, 10000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "hp_supplier_00@ECM3", 6, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 10, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_supplier_00@ECM3", 7, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 9, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "hp_consumer_00@ECM3", 8, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1012, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_00@ECM3", 9, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1011, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_01@ECM3", 10, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1010, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_02@ECM3", 11, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1009, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_03@ECM3", 12, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1008, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_04@ECM3", 13, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1007, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_05@ECM3", 14, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1006, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_06@ECM3", 15, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1005, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_07@ECM3", 16, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1004, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_08@ECM3", 17, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1003, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_09@ECM3", 18, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1002, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_10@ECM3", 19, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1001, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_11@ECM3", 20, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1000, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_12@ECM3", 21, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 999, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_13@ECM3", 22, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 998, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_14@ECM3", 23, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 997, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_15@ECM3", 24, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 996, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_16@ECM3", 25, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 995, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_17@ECM3", 26, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 994, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_18@ECM3", 27, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 993, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_19@ECM3", 28, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 992, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_20@ECM3", 29, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 991, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_21@ECM3", 30, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 990, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_22@ECM3", 31, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 989, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_23@ECM3", 32, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 988, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_24@ECM3", 33, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 987, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_25@ECM3", 34, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 986, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_26@ECM3", 35, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 985, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_27@ECM3", 36, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 984, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_28@ECM3", 37, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 983, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_29@ECM3", 38, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 982, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_30@ECM3", 39, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 981, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_31@ECM3", 40, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 980, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_32@ECM3", 41, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 979, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_33@ECM3", 42, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 978, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_34@ECM3", 43, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 977, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_35@ECM3", 44, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 976, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_36@ECM3", 45, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 975, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_37@ECM3", 46, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 974, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_38@ECM3", 47, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 973, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_39@ECM3", 48, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 972, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_40@ECM3", 49, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 971, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_41@ECM3", 50, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 970, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_42@ECM3", 51, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 969, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_43@ECM3", 52, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 968, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_44@ECM3", 53, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 967, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_45@ECM3", 54, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 966, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_46@ECM3", 55, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 965, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_47@ECM3", 56, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 964, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_48@ECM3", 57, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 963, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_49@ECM3", 58, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 962, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_50@ECM3", 59, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 961, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_51@ECM3", 60, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 960, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_52@ECM3", 61, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 959, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_53@ECM3", 62, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 958, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_54@ECM3", 63, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 957, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_55@ECM3", 64, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 956, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_56@ECM3", 65, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 955, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_57@ECM3", 66, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 954, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_58@ECM3", 67, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 953, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_59@ECM3", 68, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 952, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_60@ECM3", 69, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 951, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_61@ECM3", 70, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 950, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_62@ECM3", 71, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 949, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_63@ECM3", 72, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 948, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_64@ECM3", 73, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 947, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_65@ECM3", 74, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 946, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_66@ECM3", 75, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 945, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_67@ECM3", 76, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 944, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_68@ECM3", 77, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 943, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_69@ECM3", 78, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 942, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_70@ECM3", 79, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 941, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_71@ECM3", 80, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 940, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_72@ECM3", 81, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 939, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_73@ECM3", 82, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 938, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_74@ECM3", 83, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 937, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_75@ECM3", 84, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 936, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_76@ECM3", 85, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 935, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_77@ECM3", 86, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 934, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_78@ECM3", 87, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 933, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_79@ECM3", 88, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 932, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_80@ECM3", 89, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 931, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_81@ECM3", 90, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 930, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_82@ECM3", 91, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 929, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_83@ECM3", 92, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 928, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_84@ECM3", 93, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 927, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_85@ECM3", 94, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 926, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_86@ECM3", 95, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 925, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_87@ECM3", 96, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 924, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_88@ECM3", 97, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 923, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_89@ECM3", 98, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 922, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_90@ECM3", 99, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 921, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_91@ECM3", 100, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 920, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_92@ECM3", 101, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 919, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_93@ECM3", 102, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 918, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_94@ECM3", 103, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 917, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_95@ECM3", 104, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 916, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_96@ECM3", 105, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 915, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_97@ECM3", 106, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 914, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_98@ECM3", 107, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 913, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_99@ECM3", 108, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 912, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_100@ECM3", 109, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 911, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_101@ECM3", 110, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 910, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_102@ECM3", 111, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 909, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_103@ECM3", 112, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 908, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_104@ECM3", 113, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 907, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_105@ECM3", 114, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 906, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_106@ECM3", 115, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 905, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_107@ECM3", 116, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 904, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_108@ECM3", 117, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 903, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_109@ECM3", 118, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 902, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_110@ECM3", 119, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 901, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_111@ECM3", 120, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 900, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_112@ECM3", 121, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 899, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_113@ECM3", 122, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 898, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_114@ECM3", 123, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 897, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_115@ECM3", 124, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 896, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_116@ECM3", 125, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 895, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_117@ECM3", 126, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 894, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_118@ECM3", 127, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 893, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_119@ECM3", 128, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 892, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_120@ECM3", 129, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 891, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_121@ECM3", 130, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 890, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_122@ECM3", 131, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 889, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_123@ECM3", 132, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 888, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_124@ECM3", 133, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 887, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_125@ECM3", 134, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 886, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_126@ECM3", 135, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 885, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_127@ECM3", 136, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 884, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_128@ECM3", 137, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 883, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_129@ECM3", 138, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 882, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_130@ECM3", 139, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 881, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_131@ECM3", 140, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 880, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_132@ECM3", 141, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 879, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_133@ECM3", 142, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 878, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_134@ECM3", 143, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 877, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_135@ECM3", 144, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 876, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_136@ECM3", 145, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 875, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_137@ECM3", 146, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 874, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_138@ECM3", 147, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 873, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_139@ECM3", 148, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 872, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_140@ECM3", 149, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 871, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_141@ECM3", 150, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 870, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_142@ECM3", 151, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 869, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_143@ECM3", 152, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 868, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_144@ECM3", 153, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 867, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_145@ECM3", 154, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 866, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_146@ECM3", 155, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 865, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_147@ECM3", 156, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 864, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_148@ECM3", 157, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 863, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_149@ECM3", 158, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 862, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_150@ECM3", 159, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 861, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_151@ECM3", 160, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 860, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_152@ECM3", 161, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 859, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_153@ECM3", 162, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 858, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_154@ECM3", 163, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 857, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_155@ECM3", 164, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 856, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_156@ECM3", 165, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 855, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_157@ECM3", 166, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 854, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_158@ECM3", 167, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 853, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_159@ECM3", 168, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 852, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_160@ECM3", 169, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 851, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_161@ECM3", 170, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 850, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_162@ECM3", 171, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 849, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_163@ECM3", 172, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 848, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_164@ECM3", 173, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 847, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_165@ECM3", 174, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 846, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_166@ECM3", 175, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 845, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_167@ECM3", 176, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 844, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_168@ECM3", 177, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 843, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_169@ECM3", 178, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 842, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_170@ECM3", 179, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 841, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_171@ECM3", 180, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 840, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_172@ECM3", 181, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 839, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_173@ECM3", 182, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 838, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_174@ECM3", 183, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 837, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_175@ECM3", 184, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 836, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_176@ECM3", 185, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 835, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_177@ECM3", 186, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 834, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_178@ECM3", 187, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 833, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_179@ECM3", 188, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 832, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_180@ECM3", 189, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 831, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_181@ECM3", 190, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 830, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_182@ECM3", 191, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 829, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_183@ECM3", 192, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 828, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_184@ECM3", 193, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 827, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_185@ECM3", 194, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 826, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_186@ECM3", 195, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 825, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_187@ECM3", 196, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 824, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_188@ECM3", 197, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 823, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_189@ECM3", 198, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 822, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_190@ECM3", 199, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 821, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_191@ECM3", 200, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 820, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_192@ECM3", 201, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 819, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_193@ECM3", 202, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 818, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_194@ECM3", 203, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 817, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_195@ECM3", 204, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 816, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_196@ECM3", 205, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 815, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_197@ECM3", 206, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 814, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_198@ECM3", 207, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 813, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_199@ECM3", 208, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 812, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_200@ECM3", 209, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 811, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_201@ECM3", 210, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 810, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_202@ECM3", 211, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 809, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_203@ECM3", 212, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 808, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_204@ECM3", 213, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 807, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_205@ECM3", 214, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 806, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_206@ECM3", 215, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 805, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_207@ECM3", 216, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 804, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_208@ECM3", 217, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 803, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_209@ECM3", 218, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 802, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_210@ECM3", 219, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 801, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_211@ECM3", 220, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 800, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_212@ECM3", 221, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 799, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_213@ECM3", 222, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 798, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_214@ECM3", 223, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 797, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_215@ECM3", 224, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 796, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_216@ECM3", 225, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 795, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_217@ECM3", 226, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 794, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_218@ECM3", 227, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 793, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_219@ECM3", 228, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 792, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_220@ECM3", 229, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 791, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_221@ECM3", 230, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 790, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_222@ECM3", 231, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 789, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_223@ECM3", 232, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 788, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_224@ECM3", 233, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 787, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_225@ECM3", 234, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 786, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_226@ECM3", 235, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 785, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_227@ECM3", 236, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 784, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_228@ECM3", 237, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 783, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_229@ECM3", 238, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 782, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_230@ECM3", 239, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 781, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_231@ECM3", 240, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 780, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_232@ECM3", 241, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 779, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_233@ECM3", 242, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 778, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_234@ECM3", 243, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 777, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_235@ECM3", 244, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 776, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_236@ECM3", 245, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 775, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_237@ECM3", 246, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 774, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_238@ECM3", 247, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 773, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_239@ECM3", 248, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 772, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_240@ECM3", 249, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 771, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_241@ECM3", 250, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 770, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_242@ECM3", 251, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 769, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_243@ECM3", 252, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 768, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_244@ECM3", 253, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 767, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_245@ECM3", 254, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 766, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_246@ECM3", 255, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 765, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_247@ECM3", 256, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 764, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_248@ECM3", 257, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 763, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_249@ECM3", 258, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 762, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_250@ECM3", 259, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 761, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_251@ECM3", 260, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 760, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_252@ECM3", 261, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 759, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_253@ECM3", 262, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 758, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_254@ECM3", 263, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 757, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_255@ECM3", 264, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 756, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_256@ECM3", 265, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 755, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_257@ECM3", 266, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 754, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_258@ECM3", 267, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 753, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_259@ECM3", 268, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 752, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_260@ECM3", 269, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 751, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_261@ECM3", 270, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 750, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_262@ECM3", 271, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 749, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_263@ECM3", 272, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 748, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_264@ECM3", 273, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 747, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_265@ECM3", 274, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 746, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_266@ECM3", 275, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 745, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_267@ECM3", 276, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 744, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_268@ECM3", 277, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 743, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_269@ECM3", 278, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 742, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_270@ECM3", 279, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 741, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_271@ECM3", 280, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 740, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_272@ECM3", 281, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 739, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_273@ECM3", 282, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 738, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_274@ECM3", 283, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 737, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_275@ECM3", 284, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 736, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_276@ECM3", 285, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 735, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_277@ECM3", 286, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 734, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_278@ECM3", 287, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 733, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_279@ECM3", 288, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 732, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_280@ECM3", 289, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 731, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_281@ECM3", 290, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 730, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_282@ECM3", 291, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 729, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_283@ECM3", 292, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 728, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_284@ECM3", 293, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 727, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_285@ECM3", 294, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 726, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_286@ECM3", 295, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 725, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_287@ECM3", 296, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 724, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_288@ECM3", 297, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 723, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_289@ECM3", 298, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 722, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_290@ECM3", 299, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 721, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_291@ECM3", 300, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 720, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_292@ECM3", 301, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 719, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_293@ECM3", 302, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 718, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_294@ECM3", 303, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 717, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_295@ECM3", 304, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 716, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_296@ECM3", 305, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 715, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_297@ECM3", 306, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 714, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_298@ECM3", 307, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 713, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_299@ECM3", 308, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 712, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_300@ECM3", 309, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 711, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_301@ECM3", 310, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 710, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_302@ECM3", 311, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 709, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_303@ECM3", 312, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 708, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_304@ECM3", 313, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 707, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_305@ECM3", 314, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 706, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_306@ECM3", 315, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 705, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_307@ECM3", 316, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 704, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_308@ECM3", 317, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 703, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_309@ECM3", 318, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 702, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_310@ECM3", 319, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 701, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_311@ECM3", 320, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 700, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_312@ECM3", 321, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 699, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_313@ECM3", 322, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 698, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_314@ECM3", 323, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 697, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_315@ECM3", 324, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 696, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_316@ECM3", 325, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 695, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_317@ECM3", 326, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 694, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_318@ECM3", 327, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 693, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_319@ECM3", 328, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 692, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_320@ECM3", 329, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 691, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_321@ECM3", 330, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 690, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_322@ECM3", 331, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 689, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_323@ECM3", 332, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 688, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_324@ECM3", 333, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 687, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_325@ECM3", 334, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 686, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_326@ECM3", 335, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 685, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_327@ECM3", 336, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 684, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_328@ECM3", 337, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 683, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_329@ECM3", 338, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 682, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_330@ECM3", 339, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 681, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_331@ECM3", 340, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 680, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_332@ECM3", 341, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 679, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_333@ECM3", 342, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 678, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_334@ECM3", 343, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 677, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_335@ECM3", 344, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 676, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_336@ECM3", 345, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 675, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_337@ECM3", 346, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 674, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_338@ECM3", 347, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 673, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_339@ECM3", 348, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 672, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_340@ECM3", 349, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 671, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_341@ECM3", 350, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 670, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_342@ECM3", 351, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 669, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_343@ECM3", 352, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 668, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_344@ECM3", 353, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 667, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_345@ECM3", 354, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 666, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_346@ECM3", 355, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 665, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_347@ECM3", 356, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 664, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_348@ECM3", 357, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 663, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_349@ECM3", 358, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 662, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_350@ECM3", 359, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 661, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_351@ECM3", 360, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 660, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_352@ECM3", 361, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 659, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_353@ECM3", 362, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 658, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_354@ECM3", 363, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 657, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_355@ECM3", 364, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 656, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_356@ECM3", 365, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 655, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_357@ECM3", 366, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 654, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_358@ECM3", 367, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 653, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_359@ECM3", 368, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 652, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_360@ECM3", 369, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 651, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_361@ECM3", 370, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 650, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_362@ECM3", 371, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 649, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_363@ECM3", 372, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 648, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_364@ECM3", 373, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 647, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_365@ECM3", 374, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 646, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_366@ECM3", 375, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 645, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_367@ECM3", 376, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 644, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_368@ECM3", 377, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 643, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_369@ECM3", 378, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 642, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_370@ECM3", 379, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 641, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_371@ECM3", 380, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 640, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_372@ECM3", 381, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 639, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_373@ECM3", 382, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 638, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_374@ECM3", 383, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 637, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_375@ECM3", 384, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 636, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_376@ECM3", 385, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 635, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_377@ECM3", 386, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 634, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_378@ECM3", 387, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 633, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_379@ECM3", 388, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 632, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_380@ECM3", 389, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 631, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_381@ECM3", 390, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 630, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_382@ECM3", 391, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 629, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_383@ECM3", 392, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 628, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_384@ECM3", 393, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 627, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_385@ECM3", 394, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 626, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_386@ECM3", 395, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 625, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_387@ECM3", 396, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 624, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_388@ECM3", 397, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 623, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_389@ECM3", 398, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 622, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_390@ECM3", 399, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 621, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_391@ECM3", 400, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 620, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_392@ECM3", 401, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 619, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_393@ECM3", 402, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 618, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_394@ECM3", 403, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 617, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_395@ECM3", 404, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 616, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_396@ECM3", 405, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 615, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_397@ECM3", 406, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 614, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_398@ECM3", 407, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 613, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_399@ECM3", 408, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 612, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_400@ECM3", 409, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 611, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_401@ECM3", 410, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 610, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_402@ECM3", 411, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 609, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_403@ECM3", 412, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 608, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_404@ECM3", 413, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 607, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_405@ECM3", 414, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 606, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_406@ECM3", 415, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 605, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_407@ECM3", 416, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 604, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_408@ECM3", 417, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 603, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_409@ECM3", 418, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 602, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_410@ECM3", 419, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 601, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_411@ECM3", 420, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 600, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_412@ECM3", 421, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 599, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_413@ECM3", 422, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 598, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_414@ECM3", 423, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 597, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_415@ECM3", 424, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 596, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_416@ECM3", 425, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 595, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_417@ECM3", 426, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 594, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_418@ECM3", 427, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 593, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_419@ECM3", 428, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 592, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_420@ECM3", 429, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 591, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_421@ECM3", 430, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 590, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_422@ECM3", 431, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 589, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_423@ECM3", 432, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 588, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_424@ECM3", 433, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 587, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_425@ECM3", 434, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 586, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_426@ECM3", 435, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 585, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_427@ECM3", 436, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 584, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_428@ECM3", 437, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 583, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_429@ECM3", 438, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 582, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_430@ECM3", 439, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 581, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_431@ECM3", 440, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 580, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_432@ECM3", 441, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 579, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_433@ECM3", 442, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 578, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_434@ECM3", 443, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 577, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_435@ECM3", 444, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 576, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_436@ECM3", 445, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 575, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_437@ECM3", 446, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 574, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_438@ECM3", 447, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 573, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_439@ECM3", 448, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 572, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_440@ECM3", 449, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 571, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_441@ECM3", 450, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 570, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_442@ECM3", 451, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 569, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_443@ECM3", 452, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 568, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_444@ECM3", 453, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 567, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_445@ECM3", 454, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 566, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_446@ECM3", 455, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 565, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_447@ECM3", 456, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 564, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_448@ECM3", 457, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 563, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_449@ECM3", 458, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 562, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_450@ECM3", 459, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 561, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_451@ECM3", 460, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 560, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_452@ECM3", 461, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 559, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_453@ECM3", 462, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 558, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_454@ECM3", 463, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 557, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_455@ECM3", 464, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 556, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_456@ECM3", 465, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 555, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_457@ECM3", 466, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 554, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_458@ECM3", 467, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 553, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_459@ECM3", 468, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 552, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_460@ECM3", 469, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 551, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_461@ECM3", 470, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 550, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_462@ECM3", 471, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 549, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_463@ECM3", 472, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 548, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_464@ECM3", 473, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 547, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_465@ECM3", 474, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 546, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_466@ECM3", 475, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 545, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_467@ECM3", 476, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 544, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_468@ECM3", 477, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 543, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_469@ECM3", 478, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 542, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_470@ECM3", 479, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 541, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_471@ECM3", 480, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 540, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_472@ECM3", 481, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 539, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_473@ECM3", 482, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 538, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_474@ECM3", 483, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 537, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_475@ECM3", 484, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 536, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_476@ECM3", 485, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 535, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_477@ECM3", 486, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 534, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_478@ECM3", 487, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 533, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_479@ECM3", 488, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 532, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_480@ECM3", 489, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 531, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_481@ECM3", 490, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 530, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_482@ECM3", 491, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 529, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_483@ECM3", 492, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 528, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_484@ECM3", 493, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 527, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_485@ECM3", 494, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 526, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_486@ECM3", 495, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 525, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_487@ECM3", 496, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 524, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_488@ECM3", 497, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 523, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_489@ECM3", 498, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 522, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_490@ECM3", 499, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 521, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_491@ECM3", 500, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 520, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_492@ECM3", 501, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 519, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_493@ECM3", 502, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 518, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_494@ECM3", 503, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 517, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_495@ECM3", 504, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 516, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_496@ECM3", 505, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 515, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_497@ECM3", 506, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 514, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_498@ECM3", 507, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 513, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_499@ECM3", 508, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 512, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_500@ECM3", 509, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 511, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_501@ECM3", 510, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 510, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_502@ECM3", 511, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 509, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_503@ECM3", 512, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 508, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_504@ECM3", 513, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 507, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_505@ECM3", 514, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 506, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_506@ECM3", 515, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 505, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_507@ECM3", 516, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 504, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_508@ECM3", 517, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 503, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_509@ECM3", 518, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 502, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_510@ECM3", 519, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 501, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_511@ECM3", 520, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 500, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_512@ECM3", 521, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 499, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_513@ECM3", 522, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 498, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_514@ECM3", 523, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 497, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_515@ECM3", 524, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 496, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_516@ECM3", 525, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 495, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_517@ECM3", 526, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 494, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_518@ECM3", 527, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 493, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_519@ECM3", 528, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 492, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_520@ECM3", 529, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 491, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_521@ECM3", 530, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 490, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_522@ECM3", 531, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 489, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_523@ECM3", 532, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 488, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_524@ECM3", 533, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 487, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_525@ECM3", 534, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 486, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_526@ECM3", 535, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 485, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_527@ECM3", 536, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 484, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_528@ECM3", 537, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 483, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_529@ECM3", 538, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 482, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_530@ECM3", 539, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 481, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_531@ECM3", 540, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 480, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_532@ECM3", 541, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 479, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_533@ECM3", 542, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 478, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_534@ECM3", 543, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 477, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_535@ECM3", 544, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 476, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_536@ECM3", 545, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 475, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_537@ECM3", 546, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 474, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_538@ECM3", 547, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 473, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_539@ECM3", 548, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 472, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_540@ECM3", 549, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 471, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_541@ECM3", 550, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 470, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_542@ECM3", 551, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 469, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_543@ECM3", 552, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 468, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_544@ECM3", 553, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 467, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_545@ECM3", 554, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 466, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_546@ECM3", 555, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 465, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_547@ECM3", 556, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 464, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_548@ECM3", 557, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 463, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_549@ECM3", 558, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 462, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_550@ECM3", 559, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 461, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_551@ECM3", 560, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 460, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_552@ECM3", 561, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 459, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_553@ECM3", 562, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 458, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_554@ECM3", 563, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 457, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_555@ECM3", 564, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 456, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_556@ECM3", 565, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 455, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_557@ECM3", 566, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 454, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_558@ECM3", 567, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 453, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_559@ECM3", 568, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 452, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_560@ECM3", 569, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 451, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_561@ECM3", 570, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 450, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_562@ECM3", 571, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 449, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_563@ECM3", 572, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 448, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_564@ECM3", 573, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 447, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_565@ECM3", 574, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 446, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_566@ECM3", 575, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 445, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_567@ECM3", 576, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 444, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_568@ECM3", 577, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 443, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_569@ECM3", 578, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 442, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_570@ECM3", 579, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 441, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_571@ECM3", 580, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 440, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_572@ECM3", 581, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 439, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_573@ECM3", 582, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 438, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_574@ECM3", 583, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 437, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_575@ECM3", 584, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 436, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_576@ECM3", 585, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 435, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_577@ECM3", 586, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 434, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_578@ECM3", 587, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 433, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_579@ECM3", 588, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 432, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_580@ECM3", 589, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 431, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_581@ECM3", 590, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 430, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_582@ECM3", 591, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 429, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_583@ECM3", 592, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 428, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_584@ECM3", 593, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 427, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_585@ECM3", 594, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 426, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_586@ECM3", 595, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 425, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_587@ECM3", 596, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 424, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_588@ECM3", 597, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 423, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_589@ECM3", 598, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 422, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_590@ECM3", 599, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 421, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_591@ECM3", 600, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 420, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_592@ECM3", 601, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 419, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_593@ECM3", 602, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 418, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_594@ECM3", 603, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 417, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_595@ECM3", 604, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 416, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_596@ECM3", 605, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 415, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_597@ECM3", 606, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 414, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_598@ECM3", 607, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 413, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_599@ECM3", 608, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 412, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_600@ECM3", 609, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 411, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_601@ECM3", 610, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 410, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_602@ECM3", 611, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 409, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_603@ECM3", 612, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 408, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_604@ECM3", 613, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 407, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_605@ECM3", 614, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 406, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_606@ECM3", 615, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 405, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_607@ECM3", 616, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 404, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_608@ECM3", 617, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 403, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_609@ECM3", 618, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 402, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_610@ECM3", 619, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 401, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_611@ECM3", 620, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 400, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_612@ECM3", 621, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 399, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_613@ECM3", 622, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 398, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_614@ECM3", 623, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 397, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_615@ECM3", 624, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 396, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_616@ECM3", 625, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 395, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_617@ECM3", 626, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 394, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_618@ECM3", 627, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 393, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_619@ECM3", 628, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 392, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_620@ECM3", 629, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 391, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_621@ECM3", 630, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 390, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_622@ECM3", 631, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 389, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_623@ECM3", 632, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 388, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_624@ECM3", 633, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 387, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_625@ECM3", 634, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 386, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_626@ECM3", 635, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 385, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_627@ECM3", 636, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 384, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_628@ECM3", 637, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 383, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_629@ECM3", 638, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 382, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_630@ECM3", 639, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 381, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_631@ECM3", 640, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 380, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_632@ECM3", 641, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 379, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_633@ECM3", 642, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 378, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_634@ECM3", 643, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 377, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_635@ECM3", 644, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 376, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_636@ECM3", 645, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 375, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_637@ECM3", 646, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 374, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_638@ECM3", 647, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 373, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_639@ECM3", 648, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 372, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_640@ECM3", 649, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 371, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_641@ECM3", 650, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 370, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_642@ECM3", 651, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 369, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_643@ECM3", 652, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 368, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_644@ECM3", 653, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 367, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_645@ECM3", 654, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 366, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_646@ECM3", 655, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 365, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_647@ECM3", 656, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 364, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_648@ECM3", 657, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 363, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_649@ECM3", 658, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 362, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_650@ECM3", 659, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 361, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_651@ECM3", 660, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 360, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_652@ECM3", 661, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 359, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_653@ECM3", 662, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 358, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_654@ECM3", 663, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 357, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_655@ECM3", 664, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 356, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_656@ECM3", 665, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 355, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_657@ECM3", 666, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 354, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_658@ECM3", 667, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 353, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_659@ECM3", 668, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 352, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_660@ECM3", 669, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 351, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_661@ECM3", 670, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 350, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_662@ECM3", 671, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 349, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_663@ECM3", 672, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 348, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_664@ECM3", 673, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 347, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_665@ECM3", 674, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 346, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_666@ECM3", 675, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 345, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_667@ECM3", 676, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 344, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_668@ECM3", 677, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 343, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_669@ECM3", 678, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 342, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_670@ECM3", 679, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 341, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_671@ECM3", 680, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 340, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_672@ECM3", 681, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 339, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_673@ECM3", 682, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 338, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_674@ECM3", 683, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 337, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_675@ECM3", 684, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 336, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_676@ECM3", 685, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 335, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_677@ECM3", 686, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 334, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_678@ECM3", 687, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 333, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_679@ECM3", 688, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 332, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_680@ECM3", 689, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 331, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_681@ECM3", 690, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 330, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_682@ECM3", 691, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 329, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_683@ECM3", 692, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 328, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_684@ECM3", 693, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 327, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_685@ECM3", 694, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 326, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_686@ECM3", 695, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 325, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_687@ECM3", 696, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 324, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_688@ECM3", 697, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 323, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_689@ECM3", 698, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 322, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_690@ECM3", 699, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 321, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_691@ECM3", 700, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 320, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_692@ECM3", 701, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 319, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_693@ECM3", 702, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 318, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_694@ECM3", 703, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 317, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_695@ECM3", 704, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 316, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_696@ECM3", 705, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 315, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_697@ECM3", 706, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 314, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_698@ECM3", 707, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 313, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_699@ECM3", 708, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 312, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_700@ECM3", 709, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 311, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_701@ECM3", 710, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 310, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_702@ECM3", 711, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 309, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_703@ECM3", 712, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 308, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_704@ECM3", 713, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 307, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_705@ECM3", 714, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 306, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_706@ECM3", 715, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 305, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_707@ECM3", 716, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 304, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_708@ECM3", 717, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 303, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_709@ECM3", 718, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 302, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_710@ECM3", 719, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 301, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_711@ECM3", 720, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 300, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_712@ECM3", 721, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 299, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_713@ECM3", 722, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 298, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_714@ECM3", 723, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 297, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_715@ECM3", 724, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 296, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_716@ECM3", 725, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 295, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_717@ECM3", 726, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 294, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_718@ECM3", 727, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 293, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_719@ECM3", 728, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 292, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_720@ECM3", 729, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 291, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_721@ECM3", 730, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 290, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_722@ECM3", 731, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 289, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_723@ECM3", 732, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 288, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_724@ECM3", 733, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 287, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_725@ECM3", 734, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 286, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_726@ECM3", 735, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 285, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_727@ECM3", 736, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 284, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_728@ECM3", 737, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 283, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_729@ECM3", 738, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 282, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_730@ECM3", 739, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 281, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_731@ECM3", 740, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 280, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_732@ECM3", 741, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 279, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_733@ECM3", 742, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 278, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_734@ECM3", 743, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 277, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_735@ECM3", 744, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 276, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_736@ECM3", 745, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 275, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_737@ECM3", 746, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 274, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_738@ECM3", 747, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 273, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_739@ECM3", 748, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 272, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_740@ECM3", 749, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 271, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_741@ECM3", 750, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 270, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_742@ECM3", 751, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 269, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_743@ECM3", 752, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 268, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_744@ECM3", 753, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 267, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_745@ECM3", 754, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 266, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_746@ECM3", 755, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 265, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_747@ECM3", 756, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 264, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_748@ECM3", 757, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 263, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_749@ECM3", 758, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 262, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_750@ECM3", 759, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 261, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_751@ECM3", 760, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 260, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_752@ECM3", 761, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 259, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_753@ECM3", 762, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 258, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_754@ECM3", 763, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 257, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_755@ECM3", 764, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 256, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_756@ECM3", 765, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 255, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_757@ECM3", 766, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 254, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_758@ECM3", 767, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 253, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_759@ECM3", 768, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 252, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_760@ECM3", 769, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 251, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_761@ECM3", 770, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 250, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_762@ECM3", 771, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 249, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_763@ECM3", 772, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 248, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_764@ECM3", 773, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 247, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_765@ECM3", 774, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 246, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_766@ECM3", 775, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 245, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_767@ECM3", 776, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 244, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_768@ECM3", 777, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 243, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_769@ECM3", 778, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 242, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_770@ECM3", 779, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 241, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_771@ECM3", 780, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 240, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_772@ECM3", 781, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 239, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_773@ECM3", 782, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 238, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_774@ECM3", 783, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 237, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_775@ECM3", 784, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 236, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_776@ECM3", 785, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 235, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_777@ECM3", 786, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 234, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_778@ECM3", 787, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 233, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_779@ECM3", 788, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 232, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_780@ECM3", 789, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 231, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_781@ECM3", 790, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 230, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_782@ECM3", 791, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 229, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_783@ECM3", 792, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 228, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_784@ECM3", 793, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 227, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_785@ECM3", 794, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 226, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_786@ECM3", 795, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 225, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_787@ECM3", 796, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 224, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_788@ECM3", 797, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 223, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_789@ECM3", 798, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 222, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_790@ECM3", 799, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 221, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_791@ECM3", 800, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 220, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_792@ECM3", 801, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 219, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_793@ECM3", 802, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 218, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_794@ECM3", 803, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 217, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_795@ECM3", 804, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 216, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_796@ECM3", 805, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 215, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_797@ECM3", 806, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 214, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_798@ECM3", 807, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 213, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_799@ECM3", 808, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 212, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_800@ECM3", 809, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 211, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_801@ECM3", 810, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 210, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_802@ECM3", 811, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 209, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_803@ECM3", 812, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 208, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_804@ECM3", 813, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 207, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_805@ECM3", 814, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 206, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_806@ECM3", 815, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 205, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_807@ECM3", 816, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 204, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_808@ECM3", 817, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 203, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_809@ECM3", 818, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 202, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_810@ECM3", 819, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 201, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_811@ECM3", 820, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 200, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_812@ECM3", 821, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 199, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_813@ECM3", 822, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 198, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_814@ECM3", 823, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 197, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_815@ECM3", 824, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 196, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_816@ECM3", 825, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 195, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_817@ECM3", 826, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 194, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_818@ECM3", 827, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 193, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_819@ECM3", 828, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 192, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_820@ECM3", 829, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 191, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_821@ECM3", 830, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 190, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_822@ECM3", 831, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 189, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_823@ECM3", 832, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 188, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_824@ECM3", 833, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 187, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_825@ECM3", 834, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 186, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_826@ECM3", 835, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 185, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_827@ECM3", 836, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 184, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_828@ECM3", 837, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 183, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_829@ECM3", 838, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 182, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_830@ECM3", 839, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 181, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_831@ECM3", 840, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 180, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_832@ECM3", 841, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 179, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_833@ECM3", 842, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 178, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_834@ECM3", 843, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 177, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_835@ECM3", 844, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 176, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_836@ECM3", 845, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 175, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_837@ECM3", 846, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 174, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_838@ECM3", 847, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 173, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_839@ECM3", 848, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 172, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_840@ECM3", 849, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 171, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_841@ECM3", 850, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 170, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_842@ECM3", 851, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 169, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_843@ECM3", 852, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 168, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_844@ECM3", 853, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 167, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_845@ECM3", 854, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 166, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_846@ECM3", 855, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 165, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_847@ECM3", 856, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 164, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_848@ECM3", 857, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 163, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_849@ECM3", 858, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 162, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_850@ECM3", 859, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 161, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_851@ECM3", 860, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 160, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_852@ECM3", 861, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 159, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_853@ECM3", 862, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 158, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_854@ECM3", 863, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 157, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_855@ECM3", 864, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 156, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_856@ECM3", 865, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 155, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_857@ECM3", 866, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 154, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_858@ECM3", 867, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 153, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_859@ECM3", 868, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 152, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_860@ECM3", 869, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 151, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_861@ECM3", 870, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 150, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_862@ECM3", 871, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 149, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_863@ECM3", 872, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 148, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_864@ECM3", 873, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 147, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_865@ECM3", 874, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 146, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_866@ECM3", 875, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 145, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_867@ECM3", 876, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 144, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_868@ECM3", 877, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 143, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_869@ECM3", 878, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 142, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_870@ECM3", 879, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 141, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_871@ECM3", 880, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 140, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_872@ECM3", 881, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 139, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_873@ECM3", 882, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 138, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_874@ECM3", 883, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 137, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_875@ECM3", 884, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 136, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_876@ECM3", 885, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 135, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_877@ECM3", 886, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 134, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_878@ECM3", 887, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 133, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_879@ECM3", 888, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 132, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_880@ECM3", 889, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 131, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_881@ECM3", 890, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 130, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_882@ECM3", 891, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 129, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_883@ECM3", 892, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 128, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_884@ECM3", 893, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 127, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_885@ECM3", 894, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 126, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_886@ECM3", 895, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 125, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_887@ECM3", 896, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 124, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_888@ECM3", 897, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 123, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_889@ECM3", 898, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 122, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_890@ECM3", 899, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 121, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_891@ECM3", 900, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 120, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_892@ECM3", 901, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 119, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_893@ECM3", 902, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 118, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_894@ECM3", 903, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 117, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_895@ECM3", 904, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 116, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_896@ECM3", 905, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 115, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_897@ECM3", 906, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 114, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_898@ECM3", 907, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 113, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_899@ECM3", 908, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 112, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_900@ECM3", 909, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 111, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_901@ECM3", 910, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 110, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_902@ECM3", 911, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 109, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_903@ECM3", 912, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 108, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_904@ECM3", 913, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 107, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_905@ECM3", 914, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 106, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_906@ECM3", 915, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 105, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_907@ECM3", 916, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 104, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_908@ECM3", 917, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 103, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_909@ECM3", 918, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 102, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_910@ECM3", 919, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 101, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_911@ECM3", 920, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 100, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_912@ECM3", 921, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 99, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_913@ECM3", 922, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 98, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_914@ECM3", 923, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 97, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_915@ECM3", 924, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 96, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_916@ECM3", 925, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 95, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_917@ECM3", 926, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 94, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_918@ECM3", 927, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 93, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_919@ECM3", 928, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 92, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_920@ECM3", 929, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 91, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_921@ECM3", 930, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 90, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_922@ECM3", 931, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 89, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_923@ECM3", 932, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 88, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_924@ECM3", 933, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 87, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_925@ECM3", 934, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 86, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_926@ECM3", 935, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 85, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_927@ECM3", 936, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 84, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_928@ECM3", 937, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 83, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_929@ECM3", 938, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 82, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_930@ECM3", 939, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 81, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_931@ECM3", 940, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 80, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_932@ECM3", 941, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 79, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_933@ECM3", 942, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 78, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_934@ECM3", 943, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 77, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_935@ECM3", 944, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 76, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_936@ECM3", 945, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 75, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_937@ECM3", 946, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 74, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_938@ECM3", 947, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 73, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_939@ECM3", 948, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 72, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_940@ECM3", 949, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 71, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_941@ECM3", 950, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 70, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_942@ECM3", 951, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 69, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_943@ECM3", 952, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 68, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_944@ECM3", 953, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 67, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_945@ECM3", 954, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 66, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_946@ECM3", 955, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 65, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_947@ECM3", 956, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 64, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_948@ECM3", 957, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 63, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_949@ECM3", 958, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 62, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_950@ECM3", 959, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 61, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_951@ECM3", 960, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 60, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_952@ECM3", 961, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 59, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_953@ECM3", 962, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 58, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_954@ECM3", 963, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 57, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_955@ECM3", 964, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 56, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_956@ECM3", 965, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 55, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_957@ECM3", 966, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 54, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_958@ECM3", 967, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 53, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_959@ECM3", 968, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 52, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_960@ECM3", 969, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 51, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_961@ECM3", 970, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 50, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_962@ECM3", 971, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 49, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_963@ECM3", 972, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 48, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_964@ECM3", 973, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 47, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_965@ECM3", 974, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 46, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_966@ECM3", 975, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 45, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_967@ECM3", 976, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 44, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_968@ECM3", 977, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 43, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_969@ECM3", 978, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 42, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_970@ECM3", 979, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 41, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_971@ECM3", 980, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 40, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_972@ECM3", 981, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 39, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_973@ECM3", 982, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 38, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_974@ECM3", 983, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 37, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_975@ECM3", 984, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 36, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_976@ECM3", 985, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 35, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_977@ECM3", 986, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 34, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_978@ECM3", 987, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 33, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_979@ECM3", 988, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 32, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_980@ECM3", 989, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 31, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_981@ECM3", 990, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 30, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_982@ECM3", 991, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 29, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_983@ECM3", 992, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 28, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_984@ECM3", 993, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 27, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_985@ECM3", 994, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 26, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_986@ECM3", 995, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 25, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_987@ECM3", 996, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 24, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_988@ECM3", 997, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 23, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_989@ECM3", 998, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 22, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_990@ECM3", 999, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 21, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_991@ECM3", 1000, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 20, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_992@ECM3", 1001, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 19, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_993@ECM3", 1002, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 18, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_994@ECM3", 1003, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 17, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_995@ECM3", 1004, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 16, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_996@ECM3", 1005, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 15, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_997@ECM3", 1006, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 14, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_998@ECM3", 1007, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 13, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "lp_consumer_999@ECM3", 1008, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 12, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "consumer_hp_supplier_00@ECM3", 1009, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 3, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "consumer_lp_supplier_00@ECM3", 1010, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 2, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "ACE_ES_Dispatch_Queue-25000.us", 1011, 0, 0, 0, 250000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1021, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "ACE_ES_Dispatch_Queue-50000.us", 1012, 0, 0, 0, 500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1019, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "ACE_ES_Dispatch_Queue-100000.us", 1013, 0, 0, 0, 1000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1017, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "ACE_ES_Dispatch_Queue-200000.us", 1014, 0, 0, 0, 2000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1015, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED },
+{ "ACE_ES_Dispatch_Queue-1000000.us", 1015, 0, 0, 0, 10000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 0, 0, (RtecScheduler::Info_Type_t) 0, (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }
};
static int runtime_infos_3_size = sizeof(runtime_infos_3)/sizeof(runtime_infos_3[0]);
diff --git a/TAO/orbsvcs/tests/Event/Basic/Schedule.cpp b/TAO/orbsvcs/tests/Event/Basic/Schedule.cpp
index 63ca69d88b1..c6223095999 100644
--- a/TAO/orbsvcs/tests/Event/Basic/Schedule.cpp
+++ b/TAO/orbsvcs/tests/Event/Basic/Schedule.cpp
@@ -85,10 +85,12 @@ EC_Schedule::execute_test (ACE_ENV_SINGLE_ARG_DECL)
"EC_Schedule (%P|%t) computing schedule\n"));
RtecScheduler::RT_Info_Set_var infos;
+ RtecScheduler::Dependency_Set_var deps;
RtecScheduler::Config_Info_Set_var configs;
RtecScheduler::Scheduling_Anomaly_Set_var anomalies;
this->scheduler_->compute_scheduling (min_priority, max_priority,
infos.out (),
+ deps.out (),
configs.out (),
anomalies.out ()
ACE_ENV_ARG_PARAMETER);
@@ -99,6 +101,7 @@ EC_Schedule::execute_test (ACE_ENV_SINGLE_ARG_DECL)
"EC_Schedule (%P|%t) schedule prepared\n"));
ACE_Scheduler_Factory::dump_schedule (infos.in (),
+ deps.in (),
configs.in (),
anomalies.in ());
diff --git a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp
index 5bdb77c54a9..21fb433db6c 100644
--- a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp
+++ b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp
@@ -73,7 +73,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 20 Hz low criticality supplier
{ "low_20_S", // entry point
@@ -89,7 +90,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 10 Hz high criticality supplier
{ "high_10_S", // entry point
@@ -105,7 +107,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 10 Hz low criticality supplier
{ "low_10_S", // entry point
@@ -121,7 +124,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 5 Hz high criticality supplier
{ "high_05_S", // entry point
@@ -137,7 +141,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 5 Hz low criticality supplier
{ "low_05_S", // entry point
@@ -153,7 +158,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler:: RT_INFO_ENABLED
},
// 1 Hz high criticality supplier (declares a rate but no threads)
{ "high_01_S", // entry point
@@ -169,7 +175,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 1 Hz low criticality supplier (remote dependant: scheduler should warn)
{ "low_01_S", // entry point
@@ -185,7 +192,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 20 Hz high criticality consumer
{ "high_20_C", // entry point
@@ -201,7 +209,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 20 Hz low criticality consumer
{ "low_20_C", // entry point
@@ -217,7 +226,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 10 Hz high criticality consumer
{ "high_10_C", // entry point
@@ -233,7 +243,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 10 Hz low criticality consumer
{ "low_10_C", // entry point
@@ -249,7 +260,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 5 Hz high criticality consumer
{ "high_05_C", // entry point
@@ -265,7 +277,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 5 Hz low criticality consumer
{ "low_05_C", // entry point
@@ -281,7 +294,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 1 Hz high criticality consumer
{ "high_01_C", // entry point
@@ -297,7 +311,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
},
// 1 Hz low criticality consumer
{ "low_01_C", // entry point
@@ -313,7 +328,8 @@ main (int argc, char *argv[])
0, // OS priority
0, // Preemption subpriority
0, // Preemption priority
- RtecScheduler::OPERATION // info type
+ RtecScheduler::OPERATION, // info type
+ RtecScheduler::RT_INFO_ENABLED
}
};
@@ -403,6 +419,7 @@ main (int argc, char *argv[])
}
RtecScheduler::RT_Info_Set_var infos;
+ RtecScheduler::Dependency_Set_var deps;
RtecScheduler::Config_Info_Set_var configs;
RtecScheduler::Scheduling_Anomaly_Set_var anomalies;
@@ -418,6 +435,7 @@ main (int argc, char *argv[])
// not define instances of _out types.
RtecScheduler::RT_Info_Set_out infos_out (infos);
+ RtecScheduler::Dependency_Set_out deps_out (deps);
RtecScheduler::Config_Info_Set_out configs_out (configs);
RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out (anomalies);
ACE_Scheduler_Factory::server ()->compute_scheduling
@@ -425,7 +443,7 @@ main (int argc, char *argv[])
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos_out, configs_out, anomalies_out
+ infos_out, deps_out, configs_out, anomalies_out
ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check
#else /* ! __SUNPRO_CC */
ACE_Scheduler_Factory::server ()->compute_scheduling
@@ -433,13 +451,14 @@ main (int argc, char *argv[])
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos.out (), configs.out (), anomalies.out ()
+ infos.out (), deps.out (), configs.out (), anomalies.out ()
ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check
#endif /* ! __SUNPRO_CC */
ACE_TRY_CHECK;
ACE_Scheduler_Factory::dump_schedule (infos.in (),
+ deps.in (),
configs.in (),
anomalies.in (),
"Sched_Conf_Runtime.h",
diff --git a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp
index 690890674b2..fe655323b89 100644
--- a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp
+++ b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp
@@ -354,6 +354,7 @@ main (int argc, char *argv[])
ACE_TRY_CHECK;
RtecScheduler::RT_Info_Set_var infos;
+ RtecScheduler::Dependency_Set_var deps;
RtecScheduler::Config_Info_Set_var configs;
RtecScheduler::Scheduling_Anomaly_Set_var anomalies;
@@ -369,6 +370,7 @@ main (int argc, char *argv[])
// not define instances of _out types.
RtecScheduler::RT_Info_Set_out infos_out (infos);
+ RtecScheduler::Dependency_Set_out deps_out (deps);
RtecScheduler::Config_Info_Set_out configs_out (configs);
RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out (anomalies);
ACE_Scheduler_Factory::server ()->compute_scheduling
@@ -376,19 +378,22 @@ main (int argc, char *argv[])
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos_out, configs_out, anomalies_out ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check
+ infos_out, deps_out,
+ configs_out, anomalies_out ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check
#else /* ! __SUNPRO_CC */
ACE_Scheduler_Factory::server ()->compute_scheduling
(ACE_Sched_Params::priority_min (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
ACE_SCOPE_THREAD),
- infos.out (), configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check
+ infos.out (), deps.out (),
+ configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check
#endif /* ! __SUNPRO_CC */
ACE_TRY_CHECK;
ACE_Scheduler_Factory::dump_schedule (infos.in (),
+ deps.in (),
configs.in (),
anomalies.in (),
"Sched_Conf_Anomalies_Runtime.h",