Rev 881 | Rev 985 | Go to most recent revision | Details | Compare with Previous | 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 | \ |
||
900 | trimarchi | 46 | fsf_network_id_t network_id; \ |
47 | bool granted_capacity_flag; \ |
||
48 | \ |
||
881 | trimarchi | 49 | } |
50 | |||
51 | |||
52 | //Default values for fsf_contract_parameters_t: |
||
53 | // budget_min => {0,0}; |
||
54 | // period_max => {0,0}; |
||
55 | // budget_max => {0,0}; |
||
56 | // period_min => {0,0}; |
||
57 | // workload => DEFAULT_WORKLOAD; |
||
58 | |||
59 | // d_equals_t => DEFAULT_D_EQUALS_T; |
||
60 | // (false or true) |
||
61 | // deadline => DEFAULT_DEADLINE; |
||
62 | // budget_overrun_sig_notify => 0; (signal number) |
||
63 | // budget_overrun_sig_value => {0, NULL}; |
||
64 | // deadline_miss_sig_notify => 0; (signal number) |
||
65 | // deadline_miss_sig_value => {0, NULL}; |
||
66 | // |
||
67 | // granularity => DEFAULT_GRANULARITY; |
||
68 | |||
69 | // utilization_set; => size = 0 |
||
70 | // quality => DEFAULT_QUALITY; |
||
71 | // (range 0..100) |
||
72 | // importance => DEFAULT_IMPORTANCE; |
||
73 | // (range 1..5) |
||
74 | // |
||
75 | // preemption_level => 0; |
||
76 | // (range 1..2**32-1) |
||
77 | // critical_sections => size = 0 |
||
78 | // |
||
79 | // policy => DEFAULT_SCHED_POLICY; |
||
80 | // (FSF_NONE) |
||
900 | trimarchi | 81 | // |
82 | // network_id => FSF_NULL_NETWORK_ID; |
||
83 | // (0) |
||
84 | // granted_capacity_flag => false; |
||
881 | trimarchi | 85 | |
86 | |||
87 | #define FSF_SYNCH_OBJ_HANDLE_T_OPAQUE int |
||
88 | |||
89 | #define FSF_SHARED_OBJ_HANDLE_T_OPAQUE int |
||
90 | |||
91 | |||
900 | trimarchi | 92 | //opaque types for fsf endpoints |
93 | #define FSF_SEND_ENDPOINT_T_OPAQUE int |
||
94 | |||
95 | #define FSF_RECEIVE_ENDPOINT_T_OPAQUE int |
||
96 | |||
97 | |||
881 | trimarchi | 98 | #endif // _FSF_OPAQUE_TYPES_H_ |