diff options
Diffstat (limited to 'platform/linux-generic/odp_buffer.c')
-rw-r--r-- | platform/linux-generic/odp_buffer.c | 90 |
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) |