Subversion Repositories shark

Rev

Rev 900 | 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; 
985 julio 71
//                                (range 0..2**32-1)
881 trimarchi 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_