Subversion Repositories shark

Rev

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_