From: Petri Savolainen <petri.savolai...@linaro.org>

Inline queue handle from queue index conversion function.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
---
/** Email created from pull request 492 (psavol:master-sched-optim)
 ** https://github.com/Linaro/odp/pull/492
 ** Patch: https://github.com/Linaro/odp/pull/492.patch
 ** Base sha: 5a58bbf2bb331fd7dde2ebbc0430634ace6900fb
 ** Merge commit sha: b29563293c1bca56419d2dc355a8e64d961e024a
 **/
 .../linux-generic/include/odp_queue_internal.h     |  7 ++++-
 platform/linux-generic/odp_queue.c                 | 30 +++++++---------------
 platform/linux-generic/odp_schedule.c              |  5 +---
 platform/linux-generic/odp_schedule_iquery.c       |  2 +-
 platform/linux-generic/odp_schedule_sp.c           |  3 ++-
 5 files changed, 19 insertions(+), 28 deletions(-)

diff --git a/platform/linux-generic/include/odp_queue_internal.h 
b/platform/linux-generic/include/odp_queue_internal.h
index 158b1d5f1..6fe3fb462 100644
--- a/platform/linux-generic/include/odp_queue_internal.h
+++ b/platform/linux-generic/include/odp_queue_internal.h
@@ -62,11 +62,16 @@ union queue_entry_u {
        uint8_t pad[ROUNDUP_CACHE_LINE(sizeof(struct queue_entry_s))];
 };
 
-static inline uint32_t queue_to_id(odp_queue_t handle)
+static inline uint32_t queue_to_index(odp_queue_t handle)
 {
        return _odp_typeval(handle) - 1;
 }
 
+static inline odp_queue_t queue_from_index(uint32_t queue_id)
+{
+       return _odp_cast_scalar(odp_queue_t, queue_id + 1);
+}
+
 static inline queue_entry_t *qentry_from_int(queue_t q_int)
 {
        return (queue_entry_t *)(void *)(q_int);
diff --git a/platform/linux-generic/odp_queue.c 
b/platform/linux-generic/odp_queue.c
index 58103930c..21135df63 100644
--- a/platform/linux-generic/odp_queue.c
+++ b/platform/linux-generic/odp_queue.c
@@ -45,26 +45,19 @@ typedef struct queue_table_t {
 
 static queue_table_t *queue_tbl;
 
-static
-queue_entry_t *get_qentry(uint32_t queue_id);
+static queue_entry_t *get_qentry(uint32_t queue_id);
 
-static inline queue_entry_t *handle_to_qentry(odp_queue_t handle)
+static inline queue_entry_t *get_qentry(uint32_t queue_id)
 {
-       uint32_t queue_id;
-
-       queue_id = queue_to_id(handle);
-       return get_qentry(queue_id);
+       return &queue_tbl->queue[queue_id];
 }
 
-static inline odp_queue_t queue_from_id(uint32_t queue_id)
+static inline queue_entry_t *handle_to_qentry(odp_queue_t handle)
 {
-       return _odp_cast_scalar(odp_queue_t, queue_id + 1);
-}
+       uint32_t queue_id;
 
-static
-queue_entry_t *get_qentry(uint32_t queue_id)
-{
-       return &queue_tbl->queue[queue_id];
+       queue_id = queue_to_index(handle);
+       return get_qentry(queue_id);
 }
 
 static int queue_init_global(void)
@@ -90,7 +83,7 @@ static int queue_init_global(void)
                queue_entry_t *queue = get_qentry(i);
                LOCK_INIT(&queue->s.lock);
                queue->s.index  = i;
-               queue->s.handle = queue_from_id(i);
+               queue->s.handle = queue_from_index(i);
        }
 
        ODP_DBG("done\n");
@@ -620,7 +613,7 @@ static int queue_info(odp_queue_t handle, odp_queue_info_t 
*info)
                return -1;
        }
 
-       queue_id = queue_to_id(handle);
+       queue_id = queue_to_index(handle);
 
        if (odp_unlikely(queue_id >= ODP_CONFIG_QUEUES)) {
                ODP_ERR("Invalid queue handle:%" PRIu64 "\n",
@@ -648,11 +641,6 @@ static int queue_info(odp_queue_t handle, odp_queue_info_t 
*info)
        return 0;
 }
 
-odp_queue_t sched_cb_queue_handle(uint32_t queue_index)
-{
-       return queue_from_id(queue_index);
-}
-
 int sched_cb_queue_deq_multi(uint32_t queue_index, odp_event_t ev[], int num)
 {
        queue_entry_t *qe = get_qentry(queue_index);
diff --git a/platform/linux-generic/odp_schedule.c 
b/platform/linux-generic/odp_schedule.c
index 118f9eb17..0a12487e9 100644
--- a/platform/linux-generic/odp_schedule.c
+++ b/platform/linux-generic/odp_schedule.c
@@ -25,10 +25,7 @@
 #include <odp/api/packet_io.h>
 #include <odp_ring_internal.h>
 #include <odp_timer_internal.h>
-
-/* Should remove this dependency */
 #include <odp_queue_internal.h>
-#include <odp_timer_internal.h>
 
 /* Number of priority levels  */
 #define NUM_PRIO 8
@@ -876,7 +873,7 @@ static inline int do_schedule_grp(odp_queue_t *out_queue, 
odp_event_t out_ev[],
                                continue;
                        }
 
-                       handle            = sched_cb_queue_handle(qi);
+                       handle            = queue_from_index(qi);
                        sched_local.num   = num;
                        sched_local.index = 0;
                        sched_local.queue = handle;
diff --git a/platform/linux-generic/odp_schedule_iquery.c 
b/platform/linux-generic/odp_schedule_iquery.c
index 33767c1f8..c41eb857d 100644
--- a/platform/linux-generic/odp_schedule_iquery.c
+++ b/platform/linux-generic/odp_schedule_iquery.c
@@ -1529,7 +1529,7 @@ static inline int consume_queue(int prio, unsigned int 
queue_index)
 
        cache->top = &cache->stash[0];
        cache->count = count;
-       cache->queue = sched_cb_queue_handle(queue_index);
+       cache->queue = queue_from_index(queue_index);
        return count;
 }
 
diff --git a/platform/linux-generic/odp_schedule_sp.c 
b/platform/linux-generic/odp_schedule_sp.c
index 017eaee34..01a3d4948 100644
--- a/platform/linux-generic/odp_schedule_sp.c
+++ b/platform/linux-generic/odp_schedule_sp.c
@@ -18,6 +18,7 @@
 #include <odp_config_internal.h>
 #include <odp_ring_internal.h>
 #include <odp_timer_internal.h>
+#include <odp_queue_internal.h>
 
 #define NUM_THREAD        ODP_THREAD_COUNT_MAX
 #define NUM_QUEUE         ODP_CONFIG_QUEUES
@@ -564,7 +565,7 @@ static int schedule_multi(odp_queue_t *from, uint64_t wait,
                        sched_local.cmd = cmd;
 
                        if (from)
-                               *from = sched_cb_queue_handle(qi);
+                               *from = queue_from_index(qi);
 
                        return num;
                }

Reply via email to