diff options
Diffstat (limited to 'include/litmus/sched_plugin.h')
-rw-r--r-- | include/litmus/sched_plugin.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/litmus/sched_plugin.h b/include/litmus/sched_plugin.h index e31008fcdd59..8e65555d9b7f 100644 --- a/include/litmus/sched_plugin.h +++ b/include/litmus/sched_plugin.h | |||
@@ -74,10 +74,28 @@ typedef void (*decrease_prio_klitirqd_t)(struct task_struct* klitirqd, | |||
74 | 74 | ||
75 | 75 | ||
76 | typedef int (*enqueue_pai_tasklet_t)(struct tasklet_struct* tasklet); | 76 | typedef int (*enqueue_pai_tasklet_t)(struct tasklet_struct* tasklet); |
77 | typedef void (*change_prio_pai_tasklet_t)(struct task_struct *old_prio, | ||
78 | struct task_struct *new_prio); | ||
77 | typedef void (*run_tasklets_t)(struct task_struct* next); | 79 | typedef void (*run_tasklets_t)(struct task_struct* next); |
78 | 80 | ||
79 | typedef raw_spinlock_t* (*get_dgl_spinlock_t) (struct task_struct *t); | 81 | typedef raw_spinlock_t* (*get_dgl_spinlock_t) (struct task_struct *t); |
80 | 82 | ||
83 | |||
84 | typedef int (*higher_prio_t)(struct task_struct* a, struct task_struct* b); | ||
85 | |||
86 | #ifdef CONFIG_LITMUS_NESTED_LOCKING | ||
87 | |||
88 | typedef enum | ||
89 | { | ||
90 | BASE, | ||
91 | EFFECTIVE | ||
92 | } comparison_mode_t; | ||
93 | |||
94 | typedef int (*__higher_prio_t)(struct task_struct* a, comparison_mode_t a_mod, | ||
95 | struct task_struct* b, comparison_mode_t b_mod); | ||
96 | #endif | ||
97 | |||
98 | |||
81 | /********************* sys call backends ********************/ | 99 | /********************* sys call backends ********************/ |
82 | /* This function causes the caller to sleep until the next release */ | 100 | /* This function causes the caller to sleep until the next release */ |
83 | typedef long (*complete_job_t) (void); | 101 | typedef long (*complete_job_t) (void); |
@@ -112,6 +130,8 @@ struct sched_plugin { | |||
112 | task_block_t task_block; | 130 | task_block_t task_block; |
113 | task_exit_t task_exit; | 131 | task_exit_t task_exit; |
114 | 132 | ||
133 | higher_prio_t compare; | ||
134 | |||
115 | #ifdef CONFIG_LITMUS_LOCKING | 135 | #ifdef CONFIG_LITMUS_LOCKING |
116 | /* locking protocols */ | 136 | /* locking protocols */ |
117 | allocate_lock_t allocate_lock; | 137 | allocate_lock_t allocate_lock; |
@@ -121,6 +141,7 @@ struct sched_plugin { | |||
121 | #ifdef CONFIG_LITMUS_NESTED_LOCKING | 141 | #ifdef CONFIG_LITMUS_NESTED_LOCKING |
122 | nested_increase_prio_t nested_increase_prio; | 142 | nested_increase_prio_t nested_increase_prio; |
123 | nested_decrease_prio_t nested_decrease_prio; | 143 | nested_decrease_prio_t nested_decrease_prio; |
144 | __higher_prio_t __compare; | ||
124 | #endif | 145 | #endif |
125 | #ifdef CONFIG_LITMUS_DGL_SUPPORT | 146 | #ifdef CONFIG_LITMUS_DGL_SUPPORT |
126 | get_dgl_spinlock_t get_dgl_spinlock; | 147 | get_dgl_spinlock_t get_dgl_spinlock; |
@@ -132,6 +153,7 @@ struct sched_plugin { | |||
132 | #endif | 153 | #endif |
133 | #ifdef CONFIG_LITMUS_PAI_SOFTIRQD | 154 | #ifdef CONFIG_LITMUS_PAI_SOFTIRQD |
134 | enqueue_pai_tasklet_t enqueue_pai_tasklet; | 155 | enqueue_pai_tasklet_t enqueue_pai_tasklet; |
156 | change_prio_pai_tasklet_t change_prio_pai_tasklet; | ||
135 | run_tasklets_t run_tasklets; | 157 | run_tasklets_t run_tasklets; |
136 | #endif | 158 | #endif |
137 | } __attribute__ ((__aligned__(SMP_CACHE_BYTES))); | 159 | } __attribute__ ((__aligned__(SMP_CACHE_BYTES))); |