]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commitdiff
sched: register the schedulers into the list
authorJonathan Creekmore <jonathan.creekmore@gmail.com>
Thu, 21 Jan 2016 15:06:36 +0000 (16:06 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 21 Jan 2016 15:06:36 +0000 (16:06 +0100)
Adds a simple macro to place a pointer to a scheduler into an array
section at compile time. Also, goes ahead and generates the array
entries with each of the schedulers.

Signed-off-by: Jonathan Creekmore <jonathan.creekmore@gmail.com>
Acked-by: Dario Faggioli <dario.faggioli@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
xen/common/sched_arinc653.c
xen/common/sched_credit.c
xen/common/sched_credit2.c
xen/common/sched_rt.c
xen/include/xen/sched-if.h

index dbe02ed47a44b5c242fe583e12b4938730bd2ef3..3b59514644d8eab70b814f437f1b35c8a18ee2a1 100644 (file)
@@ -767,6 +767,8 @@ const struct scheduler sched_arinc653_def = {
     .tick_resume    = NULL,
 };
 
+REGISTER_SCHEDULER(sched_arinc653_def);
+
 /*
  * Local variables:
  * mode: C
index 02afddfd2bb5df5402351dfeaafba8383fb5797e..1645f9c2b62127e7b52ede012f661dc5cf78b65e 100644 (file)
@@ -2027,3 +2027,5 @@ const struct scheduler sched_credit_def = {
     .tick_suspend   = csched_tick_suspend,
     .tick_resume    = csched_tick_resume,
 };
+
+REGISTER_SCHEDULER(sched_credit_def);
index 3c49ffa1b19e60af10869c0a00230126b3a4c6d8..38b02d06434b1afc0072433fce62d8e9928732fc 100644 (file)
@@ -2228,3 +2228,5 @@ const struct scheduler sched_credit2_def = {
     .alloc_domdata  = csched2_alloc_domdata,
     .free_domdata   = csched2_free_domdata,
 };
+
+REGISTER_SCHEDULER(sched_credit2_def);
index 3f1d047efe3833aeac8d618c0f3665d83ca522a5..7640cd0872de2f13602c8321e9aff284d872dd0e 100644 (file)
@@ -1199,3 +1199,5 @@ const struct scheduler sched_rtds_def = {
     .wake           = rt_vcpu_wake,
     .context_saved  = rt_context_saved,
 };
+
+REGISTER_SCHEDULER(sched_rtds_def);
index 493d43fd24987a5386ad6d33969e10a04a8159d4..9c6e0f53426560dc2836623bf1e671ed66329430 100644 (file)
@@ -170,6 +170,8 @@ extern const struct scheduler sched_credit2_def;
 extern const struct scheduler sched_arinc653_def;
 extern const struct scheduler sched_rtds_def;
 
+#define REGISTER_SCHEDULER(x) static const struct scheduler *x##_entry \
+  __used_section(".data.schedulers") = &x;
 
 struct cpupool
 {