Subversion Repositories shark

Rev

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_