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