aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2011-03-30 19:06:56 -0400
committerGlenn Elliott <gelliott@cs.unc.edu>2011-03-30 19:12:15 -0400
commitc089cad00c670bf41edecf0aed688fe8d2f43125 (patch)
tree6a6ea33898cdfb6c9a1d1d3ab9b0dee8539e831f /include
parentc05eaa8091d2cadc20363d44a85ee454262f4bc2 (diff)
Implement k-FMLP.
Implemented a k-FMLP protocol which load balances requests across k FIFO queues.
Diffstat (limited to 'include')
-rw-r--r--include/litmus/fdso.h6
-rw-r--r--include/litmus/litmus.h1
2 files changed, 5 insertions, 2 deletions
diff --git a/include/litmus/fdso.h b/include/litmus/fdso.h
index caf2a1e6918c..c740e8fc3e88 100644
--- a/include/litmus/fdso.h
+++ b/include/litmus/fdso.h
@@ -18,9 +18,10 @@ typedef enum {
18 MIN_OBJ_TYPE = 0, 18 MIN_OBJ_TYPE = 0,
19 19
20 FMLP_SEM = 0, 20 FMLP_SEM = 0,
21 SRP_SEM = 1, 21 KFMLP_SEM = 1,
22 SRP_SEM = 2,
22 23
23 MAX_OBJ_TYPE = 1 24 MAX_OBJ_TYPE = SRP_SEM
24} obj_type_t; 25} obj_type_t;
25 26
26struct inode_obj_id { 27struct inode_obj_id {
@@ -64,6 +65,7 @@ static inline void* od_lookup(int od, obj_type_t type)
64} 65}
65 66
66#define lookup_fmlp_sem(od)((struct pi_semaphore*) od_lookup(od, FMLP_SEM)) 67#define lookup_fmlp_sem(od)((struct pi_semaphore*) od_lookup(od, FMLP_SEM))
68#define lookup_kfmlp_sem(od)((struct pi_semaphore*) od_lookup(od, KFMLP_SEM))
67#define lookup_srp_sem(od) ((struct srp_semaphore*) od_lookup(od, SRP_SEM)) 69#define lookup_srp_sem(od) ((struct srp_semaphore*) od_lookup(od, SRP_SEM))
68#define lookup_ics(od) ((struct ics*) od_lookup(od, ICS_ID)) 70#define lookup_ics(od) ((struct ics*) od_lookup(od, ICS_ID))
69 71
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h
index 94086e2b38db..befdf6381693 100644
--- a/include/litmus/litmus.h
+++ b/include/litmus/litmus.h
@@ -27,6 +27,7 @@ static inline int in_list(struct list_head* list)
27} 27}
28 28
29struct task_struct* waitqueue_first(wait_queue_head_t *wq); 29struct task_struct* waitqueue_first(wait_queue_head_t *wq);
30struct task_struct* waitqueue_first_and_remove(wait_queue_head_t *wq);
30 31
31#define NO_CPU 0xffffffff 32#define NO_CPU 0xffffffff
32 33