aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/odp_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-generic/odp_buffer.c')
-rw-r--r--platform/linux-generic/odp_buffer.c90
1 files changed, 34 insertions, 56 deletions
diff --git a/platform/linux-generic/odp_buffer.c b/platform/linux-generic/odp_buffer.c
index 9c7dc1f59..af9b85edc 100644
--- a/platform/linux-generic/odp_buffer.c
+++ b/platform/linux-generic/odp_buffer.c
@@ -1,82 +1,60 @@
-/* Copyright (c) 2013, Linaro Limited
- * All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2013-2018 Linaro Limited
+ * Copyright (c) 2019-2022 Nokia
*/
+#include <odp/api/align.h>
#include <odp/api/buffer.h>
+
+#include <odp/api/plat/buffer_inline_types.h>
+
#include <odp_pool_internal.h>
#include <odp_buffer_internal.h>
-#include <odp_buffer_inlines.h>
#include <odp_debug_internal.h>
+#include <odp_string_internal.h>
#include <string.h>
#include <stdio.h>
#include <inttypes.h>
-odp_buffer_t odp_buffer_from_event(odp_event_t ev)
-{
- return (odp_buffer_t)ev;
-}
+#include <odp/visibility_begin.h>
-odp_event_t odp_buffer_to_event(odp_buffer_t buf)
-{
- return (odp_event_t)buf;
-}
+/* Buffer header field offsets for inline functions */
+const _odp_buffer_inline_offset_t _odp_buffer_inline_offset ODP_ALIGNED_CACHE = {
+ .uarea_addr = offsetof(odp_buffer_hdr_t, uarea_addr)
+};
-void *odp_buffer_addr(odp_buffer_t buf)
-{
- odp_buffer_hdr_t *hdr = buf_hdl_to_hdr(buf);
-
- return hdr->seg[0].data;
-}
-
-uint32_t odp_buffer_size(odp_buffer_t buf)
-{
- odp_buffer_hdr_t *hdr = buf_hdl_to_hdr(buf);
-
- return hdr->size;
-}
+#include <odp/visibility_end.h>
-int odp_buffer_snprint(char *str, uint32_t n, odp_buffer_t buf)
+void odp_buffer_print(odp_buffer_t buf)
{
odp_buffer_hdr_t *hdr;
- pool_t *pool;
int len = 0;
+ int max_len = 512;
+ int n = max_len - 1;
+ char str[max_len];
if (!odp_buffer_is_valid(buf)) {
- ODP_PRINT("Buffer is not valid.\n");
- return len;
+ _ODP_ERR("Buffer is not valid.\n");
+ return;
}
- hdr = buf_hdl_to_hdr(buf);
- pool = hdr->pool_ptr;
-
- len += snprintf(&str[len], n-len,
- "Buffer\n");
- len += snprintf(&str[len], n-len,
- " pool %" PRIu64 "\n",
- odp_pool_to_u64(pool->pool_hdl));
- len += snprintf(&str[len], n-len,
- " addr %p\n", hdr->seg[0].data);
- len += snprintf(&str[len], n-len,
- " size %" PRIu32 "\n", hdr->size);
- len += snprintf(&str[len], n-len,
- " type %i\n", hdr->type);
-
- return len;
-}
-
-void odp_buffer_print(odp_buffer_t buf)
-{
- int max_len = 512;
- char str[max_len];
- int len;
-
- len = odp_buffer_snprint(str, max_len-1, buf);
+ hdr = _odp_buf_hdr(buf);
+
+ len += _odp_snprint(&str[len], n - len, "Buffer info\n");
+ len += _odp_snprint(&str[len], n - len, "-----------\n");
+ len += _odp_snprint(&str[len], n - len, " handle 0x%" PRIx64 "\n",
+ odp_buffer_to_u64(buf));
+ len += _odp_snprint(&str[len], n - len, " pool index %u\n", hdr->event_hdr.index.pool);
+ len += _odp_snprint(&str[len], n - len, " buffer index %u\n",
+ hdr->event_hdr.index.event);
+ len += _odp_snprint(&str[len], n - len, " addr %p\n",
+ (void *)hdr->event_hdr.base_data);
+ len += _odp_snprint(&str[len], n - len, " size %u\n", odp_buffer_size(buf));
+ len += _odp_snprint(&str[len], n - len, " user area %p\n", hdr->uarea_addr);
str[len] = 0;
- ODP_PRINT("\n%s\n", str);
+ _ODP_PRINT("%s\n", str);
}
uint64_t odp_buffer_to_u64(odp_buffer_t hdl)