Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
221 | giacomo | 1 | //======================================================================= |
2 | // FFFFFFIII RRRRR SSTTTTTTT |
||
3 | // FF IIR RR SS |
||
4 | // FF IR SS |
||
5 | // FFFFFF RRRR SSSSST |
||
6 | // FF FI RRR SS |
||
7 | // FF II RRR SS |
||
8 | // FF IIIIIR RS |
||
9 | // |
||
10 | // Basic FSF(FIRST Scheduling Framework) contract management opaque types |
||
11 | // S.Ha.R.K. Implementation |
||
12 | //======================================================================= |
||
13 | // Implementation dependent definitions |
||
14 | |||
15 | #ifndef _FSF_OPAQUE_TYPES_H_ |
||
16 | #define _FSF_OPAQUE_TYPES_H_ |
||
17 | |||
18 | #include <kernel/iqueue.h> |
||
19 | |||
20 | #define FSF_CONTRACT_PARAMETERS_T_OPAQUE struct { \ |
||
21 | \ |
||
22 | struct timespec budget_min; \ |
||
23 | struct timespec period_max; \ |
||
24 | struct timespec budget_max; \ |
||
25 | struct timespec period_min; \ |
||
26 | fsf_workload_t workload; \ |
||
27 | \ |
||
28 | fsf_scheduler_id_t local_scheduler_id; \ |
||
29 | \ |
||
30 | bool d_equals_t; \ |
||
31 | struct timespec deadline; \ |
||
32 | int budget_overrun_sig_notify; \ |
||
33 | union sigval budget_overrun_sig_value; \ |
||
34 | int deadline_miss_sig_notify; \ |
||
35 | union sigval deadline_miss_sig_value; \ |
||
36 | \ |
||
37 | fsf_granularity_t granularity; \ |
||
38 | fsf_utilization_set_t utilization_set; \ |
||
39 | int quality; \ |
||
40 | int importance; \ |
||
41 | \ |
||
42 | fsf_preemption_level_t preemption_level; \ |
||
43 | fsf_critical_sections_t critical_sections; \ |
||
44 | \ |
||
45 | } |
||
46 | |||
47 | //Default values for fsf_contract_parameters_t: |
||
48 | // budget_min => {0,0}; |
||
49 | // period_max => {0,0}; |
||
50 | // budget_max => {0,0}; |
||
51 | // period_min => {0,0}; |
||
52 | // workload => DEFAULT_WORKLOAD; |
||
53 | |||
54 | // d_equals_t => DEFAULT_D_EQUALS_T; (false or true) |
||
55 | // deadline => DEFAULT_DEADLINE; |
||
56 | // budget_overrun_sig_notify => 0; (signal number) |
||
57 | // budget_overrun_sig_value => {0, NULL}; |
||
58 | // deadline_miss_sig_notify => 0; (signal number) |
||
59 | // deadline_miss_sig_value => {0, NULL}; |
||
60 | // |
||
61 | // granularity => DEFAULT_GRANULARITY; |
||
62 | // utilization_set; => size = 0 |
||
63 | // quality => DEFAULT_QUALITY; (range 0..100) |
||
64 | // importance => DEFAULT_IMPORTANCE; (range 1..5) |
||
65 | // |
||
66 | // preemption_level => 0; (range 1..2**32-1) |
||
67 | // critical_sections; => size = 0 |
||
68 | |||
69 | |||
70 | #define FSF_SYNCH_OBJECT_HANDLE_T_OPAQUE struct { \ |
||
71 | IQUEUE threads; \ |
||
72 | int events; \ |
||
73 | } |
||
74 | |||
75 | #endif // _FSF_OPAQUE_TYPES_H_ |