#define _FRSH_OPAQUE_TYPES_H_
+/**
+ * @file frsh_opaque_types.h
+ **/
+
/**
* @defgroup opaque Opaque types
*
\
/** Printable name for the contract
Unique within the local node **/ \
- frsh_contract_id_t contract_id; \
+ frsh_contract_label_t contract_label; \
\
- /** Minimum budget needed to perform a job **/ \
+ /** Minimum budget needed to perform a job. With the energy
+ module this will be an array **/ \
struct timespec budget_min; \
\
/** Maximum period that the system system can sustain **/ \
struct timespec period_max; \
\
- /** Maximum budget that the server can use
- (and would be happy to have) **/ \
+ /** Maximum budget that the vres can use
+ (and would be happy to have). With the energy module
+ this will be an array **/ \
struct timespec budget_max; \
\
/** Minimum period for that
the system can use (and would be happy to have) **/ \
struct timespec period_min; \
+\
+ /** Set of discrete values for budget and period. With the
+ energy module this will be an array **/ \
+ frsh_utilization_set_t utilization_set; \
\
/** Workload_type: bounded, indeterminate, overhead **/ \
frsh_workload_t workload; \
in a continuous way (max-min) or as a set of
discrete values **/ \
frsh_granularity_t granularity; \
-\
- /** Set of discrete values for budget and period **/ \
- frsh_utilization_set_t utilization_set; \
\
/** Non-cooperative parameter for fair capacity
distribution **/ \
the allocated budget and capacity will be
maintained across negotiations and will
not be affected for dynamic spare capacity **/ \
- struct timespec remaining_stability_time; \
+ struct timespec stability_time; \
\
/** Low level parameter related with the elegibility
preempt other threads **/ \
frsh_preemption_level_t preemption_level; \
\
- /** Set of critical sections that the server executes
+ /** Set of critical sections that the vres executes
besides the normal budget **/ \
frsh_csects_group_t critical_sections; \
\
- /** Internal scheduling policy within the server for
+ /** Internal scheduling policy within the vres for
hierarchical scheduling systems **/ \
frsh_sched_policy_t policy; \
+\
+ /** Protocol info for distributed systems. We store it
+ as a pointer+size. It's internal meaning is imple-
+ mentation dependent. **/ \
+ frsh_protocol_info_t protocol_info; \
+ frsh_endpoint_queueing_info_t queueing_info; \
+\
+ /** Maximum loss rate
+ Percentage of packet loss in the network that is
+ tolerated by the application **/ \
+int max_loss_rate; \
+\
+ /** Minimum memory size to be reserved **/ \
+size_t minimum_memory; \
+\
+/** Maximum memory size to be reserved **/ \
+size_t maximum_memory; \
}
-#define FRSH_SYNCHOBJ_HANDLE_T_OPAQUE int
+typedef int FRSH_SYNCHOBJ_HANDLE_T_OPAQUE;
-#define FRSH_SHAREDOBJ_HANDLE_T_OPAQUE int
+typedef int FRSH_SHAREDOBJ_HANDLE_T_OPAQUE;
/**
* Critical section data
* op_kind; // kind of operation (READ or WRITE)
* obj_handle; // handle to shared object
* wcet; // Execution time
+ * blocking; // Blocking time (execution time + protection overheads)
* - attributes used only for protected shared objects
* op; // pointer to the operation
* - attributes used only for protected write operations
frsh_csect_op_kind_t op_kind; \
frsh_sharedobj_handle_t obj_handle; \
struct timespec wcet; \
+ struct timespec blocking; \
frsh_csect_op_t op; \
frsh_memory_areas_t areas; \
+ frsh_memory_areas_t storage; \
}
//opaque types for frsh endpoints
-#define FRSH_SEND_ENDPOINT_T_OPAQUE int
+typedef int FRSH_SEND_ENDPOINT_T_OPAQUE;
-#define FRSH_RECEIVE_ENDPOINT_T_OPAQUE int
+typedef int FRSH_RECEIVE_ENDPOINT_T_OPAQUE;
/*@}*/