typedef long frsh_signal_t;
typedef long frsh_signal_info_t;
-typedef struct frsh_memory_area_data {
- long size;
- long area;
-} frsh_memory_area_data_t;
-
-typedef struct frsh_memory_areas {
- long size;
- frsh_memory_area_data_t memory_areas[255];
- // FIXME: It will be better to use sequence<frsh_memory_area_data_t> memory_areas;
-} frsh_memory_areas_t;
-
-typedef struct frsh_csect {
- // FIXME: Are all these fields needed for negotioation? I
- // guess that at least areas and storage are not. A possible
- // solution would be to add a new block
- // (e.g. frsh_csect_runtime) which will not be sent for
- // negotiation and will only be used localy by the
- // application. This would require some changes in
- // frsh_contract_negotiate(). Note that this is the same
- // problem as with signals in timing_reqs.
+typedef struct frsh_csect_runtime {
long op_kind;
- long obj_handle;
+ char obj_label[65];
fosa_rel_time_t wcet;
fosa_rel_time_t blocking;
- long op;
- frsh_memory_areas_t areas;
- frsh_memory_areas_t storage;
-} frsh_csect_t;
-
-typedef struct frsh_csects_group {
- long size;
- frsh_csect_t csects[255];
-} frsh_csects_group_t;
+} frsh_csect_runtime_t;
module fres {
native container_ptr;
/// Critical sections (for shared objects)
struct csects {
- frsh_csects_group_t sections;
- // FIXME: Use "sequence<frsh_csect_t> sections;" or something similar.
+ //frsh_csect_runtime_t sections;
+ sequence<frsh_csect_runtime> sections;
};
/// Spare capacity