aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/edzl_common.h
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2010-11-26 14:56:39 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2010-11-26 14:56:39 -0500
commit1baad08397910f4dee59e071808d74ea4ff8cf11 (patch)
treec8f24b6fb96da54e108d58a7423a027a95acaf61 /include/litmus/edzl_common.h
parent5c5456402d467969b217d7fdd6670f8c8600f5a8 (diff)
Implementation of EDZL
This patch implements the global EDZL scheduler. It is based heavily on the GSN-EDF implementation. Timers are used to detect zero-laxity points and issue the proper rescheduling operations.
Diffstat (limited to 'include/litmus/edzl_common.h')
-rw-r--r--include/litmus/edzl_common.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/litmus/edzl_common.h b/include/litmus/edzl_common.h
new file mode 100644
index 000000000000..d9ecfa1a70f9
--- /dev/null
+++ b/include/litmus/edzl_common.h
@@ -0,0 +1,24 @@
1/*
2 * EDZL common data structures and utility functions shared by all EDZL
3 * based scheduler plugins
4 */
5
6/* CLEANUP: Add comments and make it less messy.
7 *
8 */
9
10#ifndef __UNC_EDZL_COMMON_H__
11#define __UNC_EDZL_COMMON_H__
12
13#include <litmus/rt_domain.h>
14
15void edzl_domain_init(rt_domain_t* rt, check_resched_needed_t resched,
16 release_jobs_t release);
17
18int edzl_higher_prio(struct task_struct* first,
19 struct task_struct* second);
20
21int edzl_ready_order(struct bheap_node* a, struct bheap_node* b);
22
23int edzl_preemption_needed(rt_domain_t* rt, struct task_struct *t);
24#endif