]> rtime.felk.cvut.cz Git - frescor/fna.git/blobdiff - src_frescan/frescan_data.h
add the infraestructure for storing the negotiated contracts and performing the analy...
[frescor/fna.git] / src_frescan / frescan_data.h
index 2c7070c195f144e4c826b067a28ad29d326cafe1..71354326cca555412a665f2fa3ecd84bb1b9942d 100644 (file)
@@ -116,6 +116,33 @@ typedef struct {
         frescan_prio_t prio;
 } frescan_contract_t;
 
+/**
+ * frescan_sa_xxx scheduling analysis types
+ */
+
+typedef struct {
+        frescan_prio_t server_prio;
+} frescan_sa_final_values_t;
+
+typedef struct {
+        frescan_contract_t        contract;
+        frescan_node_t            node;
+        frescan_ss_t              ss;
+        frescan_sa_final_values_t final_values;
+        struct list_head          list;
+} frescan_sa_contract_t;
+
+typedef struct {
+        frescan_prio_t    max_prio;
+        frescan_prio_t    min_prio;
+} frescan_sa_init_params_t;
+
+typedef struct {
+        frescan_sa_contract_t contracts[FRESCAN_MX_NODES][FRESCAN_MX_IDS];
+        frescan_sa_contract_t contracts_head;
+        frescan_sa_init_params_t init_params;
+} frescan_sa_scenario_t;
+
 /**
  * frescan_prio_queue_t - priority queue
  *
@@ -177,6 +204,7 @@ typedef struct {
  * @id_fp_queues: the same as id_queues but for fp messages, which have
  *                id=FRESCAN_MX_IDS and are distinguised through their
  *                priorities.
+ * @scenario: the scheduling analysis scenario for the network
  *
  * the implementation can handle several FRESCAN networks at the same time
  * in the same node, so we need a place to store its internal data. The data
@@ -197,6 +225,7 @@ typedef struct {
         frescan_prio_t last_packet_prio;
         frescan_packet_t *id_queues[FRESCAN_MX_IDS];      // TODO: alloc at init
         frescan_packet_t *id_fp_queues[FRESCAN_MX_PRIOS]; // TODO: alloc at init
+        frescan_sa_scenario_t scenario;
 } frescan_network_data_t;
 
 extern frescan_network_data_t the_networks[FRESCAN_MX_NETWORKS];
@@ -208,6 +237,4 @@ extern frescan_network_data_t the_networks[FRESCAN_MX_NETWORKS];
 
 extern int frescan_data_init(int fd, frescan_init_params_t *params);
 
-
-
 #endif // _MARTE_FRESCAN_DATA_H_