]> rtime.felk.cvut.cz Git - frescor/fna.git/blobdiff - src_frescan/frescan_bwres_requests.c
renamings... redo the request and messages part... also now there will be two threads...
[frescor/fna.git] / src_frescan / frescan_bwres_requests.c
similarity index 56%
rename from src_frescan/frescan_requests.c
rename to src_frescan/frescan_bwres_requests.c
index 0ac95f35194d04a2d5ae59cc33ead50f175ec4ad..b21db8826afecfff329e97fd30729b3208100cda 100644 (file)
@@ -1,7 +1,7 @@
 /*!
- * @file frescan_requests.c
+ * @file frescan_bwres_requests.c
  *
- * @brief FRESCAN requests
+ * @brief FRESCAN bandwith reservation layer: requests
  *
  * This module contains an operation to create the queue, an operation to
  * enqueue a message (with a request), and an operation to
@@ -18,7 +18,7 @@
 #include <misc/freelist.h>
 #include <misc/linux_list.h>
 #include "frescan.h"
-#include "frescan_requests.h"
+#include "frescan_bwres_requests.h"
 #include "frescan_config.h"
 #include "frescan_debug.h"
 #include "fosa_mutexes_and_condvars.h"
@@ -33,13 +33,8 @@ static bool is_initialized = false;
  **/
 
 struct request_t {
-        frescan_req_type_t  type;
-        frescan_robj_id_t   reply;
-        frescan_contract_t  *contract;
-        frescan_ss_t        ss;
-        frescan_node_t      src;
-        void                *return_info;
-        struct list_head    request_list;
+        frescan_request_data_t request_data;
+        struct list_head       request_list;
         int pool_pos;
 };
 
@@ -48,6 +43,7 @@ static fosa_cond_t  requests_cond;
 
 static struct request_t the_requests_pool[FRESCAN_MX_REQUESTS];
 static freelist_t freelist;
+
 static struct request_t the_requests_list;
 
 /**
@@ -77,13 +73,13 @@ int frescan_requests_init(int max_ceiling)
 }
 
 /**
- * frescan_request_alloc()
+ * frescan_requests_alloc()
  *
  * Allocate a request with the mutex locked
  *
  **/
 
-int frescan_request_alloc(frescan_request_id_t *id)
+int frescan_requests_alloc(frescan_request_id_t *req)
 {
         int err, pos;
 
@@ -98,8 +94,8 @@ int frescan_request_alloc(frescan_request_id_t *id)
         err = fosa_mutex_unlock(&requests_mutex);
         if (err != 0) return err;
 
-        *id = (unsigned int)pos;
-        the_requests_pool[*id].pool_pos = pos;
+        *req = (unsigned int)pos;
+        the_requests_pool[*req].pool_pos = pos;
 
         return 0;
 
@@ -109,13 +105,13 @@ locked_error:
 }
 
 /**
- * frescan_request_free()
+ * frescan_requests_free()
  *
  * free the request from the pool
  *
  **/
 
-int frescan_request_free(frescan_request_id_t id)
+int frescan_requests_free(frescan_request_id_t req)
 {
         int err;
 
@@ -124,7 +120,7 @@ int frescan_request_free(frescan_request_id_t id)
         err = fosa_mutex_lock(&requests_mutex);
         if (err != 0) return err;
 
-                err = freelist_free(&freelist, id);
+                err = freelist_free(&freelist, req);
                 if (err != 0) goto locked_error;
 
         err = fosa_mutex_unlock(&requests_mutex);
@@ -138,139 +134,24 @@ locked_error:
 }
 
 /**
- * frescan_request_set_type()
- *
- **/
-
-int frescan_request_set_type(frescan_request_id_t id, frescan_req_type_t type)
-{
-        DEBUG(FRESCAN_REQUESTS_ENABLE_DEBUG, "id:%d, type:%d\n", id, type);
-        the_requests_pool[id].type = type;
-        return 0;
-}
-
-/**
- * frescan_request_set_reply()
- *
- **/
-
-int frescan_request_set_reply(frescan_request_id_t id, frescan_robj_id_t reply)
-{
-        the_requests_pool[id].reply = reply;
-        return 0;
-}
-
-/**
- * frescan_request_set_contract()
- *
- **/
-
-int frescan_request_set_contract(frescan_request_id_t id,
-                                 const frescan_contract_t *contract)
-{
-        the_requests_pool[id].contract = (frescan_contract_t *)contract;
-        return 0;
-}
-
-/**
- * frescan_request_set_ss()
+ * frescan_requests_get_data() - gets the data of the request
  *
- **/
-
-int frescan_request_set_ss(frescan_request_id_t id,
-                           frescan_ss_t         ss)
-{
-        the_requests_pool[id].ss = ss;
-        return 0;
-}
-
-/**
- * frescan_request_set_src()
- *
- **/
-
-int frescan_request_set_src(frescan_request_id_t id, frescan_node_t src)
-{
-        the_requests_pool[id].src = src;
-        return 0;
-}
-
-/**
- * frescan_request_set_return_info()
- *
- **/
-
-int frescan_request_set_return_info(frescan_request_id_t id,
-                                    void *return_info)
-{
-        the_requests_pool[id].return_info = return_info;
-        return 0;
-}
-
-/**
- * frescan_request_get_type()
- *
- **/
-
-int frescan_request_get_type(frescan_request_id_t id, frescan_req_type_t *type)
-{
-        *type = the_requests_pool[id].type;
-        DEBUG(FRESCAN_REQUESTS_ENABLE_DEBUG, "id:%d, type:%d\n", id, *type);
-        return 0;
-}
-
-/**
- * frescan_request_get_reply()
- *
- **/
-
-int frescan_request_get_reply(frescan_request_id_t id, frescan_robj_id_t *reply)
-{
-        *reply = the_requests_pool[id].reply;
-        return 0;
-}
-
-/**
- * frescan_request_get_contract()
- *
- **/
-
-int frescan_request_get_contract(frescan_request_id_t id,
-                                 frescan_contract_t **contract)
-{
-        *contract = the_requests_pool[id].contract;
-        return 0;
-}
-
-/**
- * frescan_request_get_src()
- *
- **/
-
-int frescan_request_get_src(frescan_request_id_t id, frescan_node_t *src)
-{
-        *src = the_requests_pool[id].src;
-        return 0;
-}
-
-/**
- * frescan_request_get_return_info()
- *
- **/
+ */
 
-int frescan_request_get_return_info(frescan_request_id_t id,
-                                    void **return_info)
+int frescan_requests_get_data(frescan_request_id_t   req,
+                              frescan_request_data_t **data)
 {
-        *return_info = the_requests_pool[id].return_info;
+        DEBUG(FRESCAN_REQUESTS_ENABLE_DEBUG, "request id:%d\n", req);
+        *data = &the_requests_pool[req].request_data;
         return 0;
 }
 
 /**
- * frescan_requestqueue_enqueue()
+ * frescan_requests_enqueue()
  *
  **/
 
-int frescan_requestqueue_enqueue(frescan_request_id_t id)
+int frescan_requests_enqueue(frescan_request_id_t req)
 {
         int err;
 
@@ -281,7 +162,7 @@ int frescan_requestqueue_enqueue(frescan_request_id_t id)
               "is list empty A? %d\n",
               list_empty(&the_requests_list.request_list));
 
-        list_add_tail(&the_requests_pool[id].request_list,
+        list_add_tail(&the_requests_pool[req].request_list,
                       &the_requests_list.request_list);
 
         DEBUG(FRESCAN_REQUESTS_ENABLE_DEBUG,
@@ -306,7 +187,7 @@ locked_error:
  *
  **/
 
-int frescan_requestqueue_dequeue(frescan_request_id_t *id)
+int frescan_requests_dequeue(frescan_request_id_t *req)
 {
         int err;
         struct list_head *pos;
@@ -332,7 +213,7 @@ int frescan_requestqueue_dequeue(frescan_request_id_t *id)
 
         list_del(&request->request_list);
 
-        *id = request->pool_pos;
+        *req = request->pool_pos;
 
         DEBUG(FRESCAN_REQUESTS_ENABLE_DEBUG,
               "is list empty now? %d\n",