diff options
author | Sven Dziadek <s9svdzia@stud.uni-saarland.de> | 2012-04-14 10:19:37 -0400 |
---|---|---|
committer | Sven Dziadek <s9svdzia@stud.uni-saarland.de> | 2012-05-31 16:23:12 -0400 |
commit | aae25e0770ade4083937c7443448cb3f0023b10a (patch) | |
tree | bd579d9fadff0a1133eb6e7f156ab0f6e4aa57b1 /include | |
parent | 8000ef44f4a82d845d5139cebfcac047ee291433 (diff) |
P-FP: port P-FP plugin used in B. Brandenburg's
dissertation (branch bbb-diss)
I took the unchanged code but removed references
to OMLP which was and is not implemented
tests: changed so that they work for P-FP
Diffstat (limited to 'include')
-rw-r--r-- | include/litmus.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/include/litmus.h b/include/litmus.h index 4c85d28..2357da9 100644 --- a/include/litmus.h +++ b/include/litmus.h | |||
@@ -32,27 +32,37 @@ int get_rt_task_param(pid_t pid, struct rt_task* param); | |||
32 | /* times are given in ms */ | 32 | /* times are given in ms */ |
33 | int sporadic_task( | 33 | int sporadic_task( |
34 | lt_t e, lt_t p, lt_t phase, | 34 | lt_t e, lt_t p, lt_t phase, |
35 | int partition, task_class_t cls, | 35 | int partition, unsigned int priority, |
36 | task_class_t cls, | ||
36 | budget_policy_t budget_policy, int set_cpu_set); | 37 | budget_policy_t budget_policy, int set_cpu_set); |
37 | 38 | ||
38 | /* times are given in ns */ | 39 | /* times are given in ns */ |
39 | int sporadic_task_ns( | 40 | int sporadic_task_ns( |
40 | lt_t e, lt_t p, lt_t phase, | 41 | lt_t e, lt_t p, lt_t phase, |
41 | int cpu, task_class_t cls, | 42 | int cpu, unsigned int priority, |
43 | task_class_t cls, | ||
42 | budget_policy_t budget_policy, int set_cpu_set); | 44 | budget_policy_t budget_policy, int set_cpu_set); |
43 | 45 | ||
44 | /* budget enforcement off by default in these macros */ | 46 | /* budget enforcement off by default in these macros */ |
45 | #define sporadic_global(e, p) \ | 47 | #define sporadic_global(e, p) \ |
46 | sporadic_task(e, p, 0, 0, RT_CLASS_SOFT, NO_ENFORCEMENT, 0) | 48 | sporadic_task(e, p, 0, 0, LITMUS_MAX_PRIORITY-1, \ |
49 | RT_CLASS_SOFT, NO_ENFORCEMENT, 0) | ||
47 | #define sporadic_partitioned(e, p, cpu) \ | 50 | #define sporadic_partitioned(e, p, cpu) \ |
48 | sporadic_task(e, p, 0, cpu, RT_CLASS_SOFT, NO_ENFORCEMENT, 1) | 51 | sporadic_task(e, p, 0, cpu, LITMUS_MAX_PRIORITY-1, \ |
52 | RT_CLASS_SOFT, NO_ENFORCEMENT, 1) | ||
49 | 53 | ||
50 | /* file descriptor attached shared objects support */ | 54 | /* file descriptor attached shared objects support */ |
51 | typedef enum { | 55 | typedef enum { |
52 | FMLP_SEM = 0, | 56 | FMLP_SEM = 0, |
53 | SRP_SEM = 1, | 57 | SRP_SEM = 1, |
58 | MPCP_SEM = 2, | ||
59 | MPCP_VS_SEM = 3, | ||
60 | DPCP_SEM = 4, | ||
54 | } obj_type_t; | 61 | } obj_type_t; |
55 | 62 | ||
63 | int lock_protocol_for_name(const char* name); | ||
64 | const char* name_for_lock_protocol(int id); | ||
65 | |||
56 | int od_openx(int fd, obj_type_t type, int obj_id, void* config); | 66 | int od_openx(int fd, obj_type_t type, int obj_id, void* config); |
57 | int od_close(int od); | 67 | int od_close(int od); |
58 | 68 | ||
@@ -96,6 +106,7 @@ task_class_t str2class(const char* str); | |||
96 | /* non-preemptive section support */ | 106 | /* non-preemptive section support */ |
97 | void enter_np(void); | 107 | void enter_np(void); |
98 | void exit_np(void); | 108 | void exit_np(void); |
109 | int exit_np_trace(void); | ||
99 | int requested_to_preempt(void); | 110 | int requested_to_preempt(void); |
100 | 111 | ||
101 | /* task system support */ | 112 | /* task system support */ |