[FIX] Ksyms: Fix warnings
[kernel/swap-modules.git] / buffer / buffer_queue.c
index 8d6474b..8744b21 100644 (file)
@@ -49,7 +49,7 @@
 
 /* Queue structure. Consist of pointers to the first and the last elements of
  * queue. */
-struct queue {
+struct queue_t {
        struct swap_subbuffer *start_ptr;
        struct swap_subbuffer *end_ptr;
        unsigned int subbuffers_count;
@@ -57,7 +57,7 @@ struct queue {
 };
 
 /* Write queue */
-struct queue write_queue = {
+struct queue_t write_queue = {
        .start_ptr = NULL,
        .end_ptr = NULL,
        .subbuffers_count = 0,
@@ -67,7 +67,7 @@ struct queue write_queue = {
 };
 
 /* Read queue */
-struct queue read_queue = {
+struct queue_t read_queue = {
        .start_ptr = NULL,
        .end_ptr = NULL,
        .subbuffers_count = 0,
@@ -123,7 +123,7 @@ int buffer_queue_allocation(size_t subbuffer_size,
        sync_init(&buffer_busy_sync);
 
        /* Memory allocation for queue_busy */
-       queue_busy = memory_allocation(sizeof(**queue_busy) * queue_subbuffer_count);
+       queue_busy = memory_allocation(sizeof(*queue_busy) * queue_subbuffer_count);
 
        if (!queue_busy) {
                result = -E_SB_NO_MEM_QUEUE_BUSY;
@@ -312,6 +312,16 @@ static unsigned int is_buffer_enough(struct swap_subbuffer *subbuffer,
        return ((queue_subbuffer_size-subbuffer->full_buffer_part) >= size) ? 1 : 0;
 }
 
+static void next_queue_element(struct queue_t *queue)
+{
+       /* If we reached the last elemenet, end pointer should point to NULL */
+       if (queue->start_ptr == queue->end_ptr)
+               queue->end_ptr = NULL;
+
+       queue->start_ptr = queue->start_ptr->next_in_queue;
+       --queue->subbuffers_count;
+}
+
 /* Get first subbuffer from read list */
 struct swap_subbuffer *get_from_read_list(void)
 {
@@ -327,14 +337,7 @@ struct swap_subbuffer *get_from_read_list(void)
 
        result = read_queue.start_ptr;
 
-       /* If this is the last readable buffer, read_queue.start_ptr next time will 
-        * points to NULL and that case is handled in the beginning of function
-        */
-       if (read_queue.start_ptr == read_queue.end_ptr) {
-               read_queue.end_ptr = NULL;
-       }
-       read_queue.start_ptr = read_queue.start_ptr->next_in_queue;
-       --read_queue.subbuffers_count;
+       next_queue_element(&read_queue);
 
 get_from_read_list_unlock:
        /* Unlock read sync primitive */
@@ -391,7 +394,7 @@ struct swap_subbuffer *get_from_write_list(size_t size, void **ptr_to_write)
        struct swap_subbuffer *result = NULL;
 
        /* Callbacks are called at the end of the function to prevent deadlocks */
-       struct queue callback_queue = {
+       struct queue_t callback_queue = {
                .start_ptr = NULL,
                .end_ptr = NULL,
                .queue_sync = {
@@ -427,14 +430,7 @@ struct swap_subbuffer *get_from_write_list(size_t size, void **ptr_to_write)
                } else {
                        result = write_queue.start_ptr;
 
-                       /* If we reached end of the list */
-                       if (write_queue.start_ptr == write_queue.end_ptr) {
-                               write_queue.end_ptr = NULL;
-                       }
-
-                       /* Move start write pointer */
-                       write_queue.start_ptr = write_queue.start_ptr->next_in_queue;
-                       --write_queue.subbuffers_count;
+                       next_queue_element(&write_queue);
 
                        /* Add to callback list */
                        if (!callback_queue.start_ptr)
@@ -551,14 +547,7 @@ void buffer_queue_flush(void)
                sync_lock(&buffer->buffer_sync);
 
                buffer = write_queue.start_ptr;
-
-               /* If we reached end of the list */
-               if (write_queue.start_ptr == write_queue.end_ptr) {
-                       write_queue.end_ptr = NULL;
-               }
-               write_queue.start_ptr = write_queue.start_ptr->next_in_queue;
-               --write_queue.subbuffers_count;
-
+               next_queue_element(&write_queue);
                add_to_read_list(buffer);
 
                /* Unlock buffer sync primitive */