summaryrefslogtreecommitdiff
path: root/lib/bt/porting/nimble/include/os
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2025-07-25 13:33:07 +1000
committerjacqueline <me@jacqueline.id.au>2025-07-25 13:33:07 +1000
commitc8e79a926620e48830778714cfe4b2ea2453fcaf (patch)
tree8c756e08e01b8e147cf72bec128026f46bd854c5 /lib/bt/porting/nimble/include/os
parent237136f3e93cb6b5be24670d7520adb17cc0fa36 (diff)
downloadtangara-fw-c8e79a926620e48830778714cfe4b2ea2453fcaf.tar.gz
Update forked idf components
Diffstat (limited to 'lib/bt/porting/nimble/include/os')
-rw-r--r--lib/bt/porting/nimble/include/os/endian.h296
-rw-r--r--lib/bt/porting/nimble/include/os/os.h66
-rw-r--r--lib/bt/porting/nimble/include/os/os_error.h69
-rw-r--r--lib/bt/porting/nimble/include/os/os_mbuf.h1145
-rw-r--r--lib/bt/porting/nimble/include/os/os_mempool.h407
-rw-r--r--lib/bt/porting/nimble/include/os/queue.h218
-rw-r--r--lib/bt/porting/nimble/include/os/util.h45
7 files changed, 0 insertions, 2246 deletions
diff --git a/lib/bt/porting/nimble/include/os/endian.h b/lib/bt/porting/nimble/include/os/endian.h
deleted file mode 100644
index 2e06a8b5..00000000
--- a/lib/bt/porting/nimble/include/os/endian.h
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2015-2022 The Apache Software Foundation (ASF)
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * SPDX-FileContributor: 2019-2022 Espressif Systems (Shanghai) CO LTD
- */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef H_ENDIAN_
-#define H_ENDIAN_
-
-#include <inttypes.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Internal helpers */
-#ifndef os_bswap_64
-#define os_bswap_64(x) ((uint64_t) \
- ((((x) & 0xff00000000000000ull) >> 56) | \
- (((x) & 0x00ff000000000000ull) >> 40) | \
- (((x) & 0x0000ff0000000000ull) >> 24) | \
- (((x) & 0x000000ff00000000ull) >> 8) | \
- (((x) & 0x00000000ff000000ull) << 8) | \
- (((x) & 0x0000000000ff0000ull) << 24) | \
- (((x) & 0x000000000000ff00ull) << 40) | \
- (((x) & 0x00000000000000ffull) << 56)))
-#endif
-
-#ifndef os_bswap_32
-#define os_bswap_32(x) ((uint32_t) \
- ((((x) & 0xff000000) >> 24) | \
- (((x) & 0x00ff0000) >> 8) | \
- (((x) & 0x0000ff00) << 8) | \
- (((x) & 0x000000ff) << 24)))
-#endif
-
-#ifndef os_bswap_16
-#define os_bswap_16(x) ((uint16_t) \
- ((((x) & 0xff00) >> 8) | \
- (((x) & 0x00ff) << 8)))
-#endif
-
-#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-
-#ifndef ntohll
-#define ntohll(x) ((uint64_t)(x))
-#endif
-
-#ifndef htonll
-#define htonll(x) ((uint64_t)(x))
-#endif
-
-#ifndef ntohl
-#define ntohl(x) ((uint32_t)(x))
-#endif
-
-#ifndef htonl
-#define htonl(x) ((uint32_t)(x))
-#endif
-
-#ifndef ntohs
-#define ntohs(x) ((uint16_t)(x))
-#endif
-
-#ifndef htons
-#define htons(x) ((uint16_t)(x))
-#endif
-
-#ifndef htobe16
-#define htobe16(x) ((uint16_t)(x))
-#endif
-
-#ifndef htole16
-#define htole16(x) os_bswap_16 (x)
-#endif
-
-#ifndef be16toh
-#define be16toh(x) ((uint16_t)(x))
-#endif
-
-#ifndef le16toh
-#define le16toh(x) os_bswap_16 (x)
-#endif
-
-#ifndef htobe32
-#define htobe32(x) ((uint32_t)(x))
-#endif
-
-#ifndef htole32
-#define htole32(x) os_bswap_32 (x)
-#endif
-
-#ifndef be32toh
-#define be32toh(x) ((uint32_t)(x))
-#endif
-
-#ifndef le32toh
-#define le32toh(x) os_bswap_32 (x)
-#endif
-
-#ifndef htobe64
-#define htobe64(x) ((uint64_t)(x))
-#endif
-
-#ifndef htole64
-#define htole64(x) os_bswap_64 (x)
-#endif
-
-#ifndef be64toh
-#define be64toh(x) ((uint64_t)(x))
-#endif
-
-#ifndef le64toh
-#define le64toh(x) os_bswap_64 (x)
-#endif
-
-#else
-
-#ifndef ntohll
-#define ntohll(x) os_bswap_64(x)
-#endif
-
-#ifndef htonll
-#define htonll ntohll
-#endif
-
-/* These are not used in NimBLE and ESP-IDF uses them from LwIP */
-#if 0
-#ifndef ntohl
-#define ntohl(x) os_bswap_32(x)
-#endif
-
-#ifndef htonl
-#define htonl ntohl
-#endif
-
-#ifndef htons
-#define htons(x) os_bswap_16(x)
-#endif
-
-#ifndef ntohs
-#define ntohs htons
-#endif
-#endif
-
-#ifndef htobe16
-#define htobe16(x) os_bswap_16(x)
-#endif
-
-#ifndef htole16
-#define htole16(x) ((uint16_t)(x))
-#endif
-
-#ifndef be16toh
-#define be16toh(x) os_bswap_16(x)
-#endif
-
-#ifndef le16toh
-#define le16toh(x) ((uint16_t)(x))
-#endif
-
-#ifndef htobe32
-#define htobe32(x) os_bswap_32(x)
-#endif
-
-#ifndef htole32
-#define htole32(x) ((uint32_t)(x))
-#endif
-
-#ifndef be32toh
-#define be32toh(x) os_bswap_32(x)
-#endif
-
-#ifndef le32toh
-#define le32toh(x) ((uint32_t)(x))
-#endif
-
-#ifndef htobe64
-#define htobe64(x) os_bswap_64(x)
-#endif
-
-#ifndef htole64
-#define htole64(x) ((uint64_t)(x))
-#endif
-
-#ifndef be64toh
-#define be64toh(x) os_bswap_64(x)
-#endif
-
-#ifndef le64toh
-#define le64toh(x) ((uint64_t)(x))
-#endif
-
-#endif
-
-#if SOC_ESP_NIMBLE_CONTROLLER && CONFIG_BT_CONTROLLER_ENABLED
-void r_put_le16(void *buf, uint16_t x);
-#define put_le16 r_put_le16
-
-void r_put_le24(void *buf, uint32_t x);
-#define put_le24 r_put_le24
-
-void r_put_le32(void *buf, uint32_t x);
-#define put_le32 r_put_le32
-
-void r_put_le64(void *buf, uint64_t x);
-#define put_le64 r_put_le64
-
-uint16_t r_get_le16(const void *buf);
-#define get_le16 r_get_le16
-
-uint32_t r_get_le24(const void *buf);
-#define get_le24 r_get_le24
-
-uint32_t r_get_le32(const void *buf);
-#define get_le32 r_get_le32
-
-uint64_t r_get_le64(const void *buf);
-#define get_le64 r_get_le64
-
-void r_put_be16(void *buf, uint16_t x);
-#define put_be16 r_put_be16
-
-void r_put_be24(void *buf, uint32_t x);
-#define put_be24 r_put_be24
-
-void r_put_be32(void *buf, uint32_t x);
-#define put_be32 r_put_be32
-
-void r_put_be64(void *buf, uint64_t x);
-#define put_be64 r_put_be64
-
-uint16_t r_get_be16(const void *buf);
-#define get_be16 r_get_be16
-
-uint32_t r_get_be24(const void *buf);
-#define get_be24 r_get_be24
-
-uint32_t r_get_be32(const void *buf);
-#define get_be32 r_get_be32
-
-uint64_t r_get_be64(const void *buf);
-#define get_be64 r_get_be64
-
-void r_swap_in_place(void *buf, int len);
-#define swap_in_place r_swap_in_place
-
-void r_swap_buf(uint8_t *dst, const uint8_t *src, int len);
-#define swap_buf r_swap_buf
-
-
-#else
-void put_le16(void *buf, uint16_t x);
-void put_le24(void *buf, uint32_t x);
-void put_le32(void *buf, uint32_t x);
-void put_le64(void *buf, uint64_t x);
-uint16_t get_le16(const void *buf);
-uint32_t get_le24(const void *buf);
-uint32_t get_le32(const void *buf);
-uint64_t get_le64(const void *buf);
-void put_be16(void *buf, uint16_t x);
-void put_be24(void *buf, uint32_t x);
-void put_be32(void *buf, uint32_t x);
-void put_be64(void *buf, uint64_t x);
-uint16_t get_be16(const void *buf);
-uint32_t get_be24(const void *buf);
-uint32_t get_be32(const void *buf);
-uint64_t get_be64(const void *buf);
-void swap_in_place(void *buf, int len);
-void swap_buf(uint8_t *dst, const uint8_t *src, int len);
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/lib/bt/porting/nimble/include/os/os.h b/lib/bt/porting/nimble/include/os/os.h
deleted file mode 100644
index 56fdf52d..00000000
--- a/lib/bt/porting/nimble/include/os/os.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2015-2022 The Apache Software Foundation (ASF)
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * SPDX-FileContributor: 2019-2022 Espressif Systems (Shanghai) CO LTD
- */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef _OS_H
-#define _OS_H
-
-#include <assert.h>
-#include "esp_assert.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined __cplusplus && !defined static_assert
-#define static_assert _Static_assert
-#endif
-
-#include "nimble/nimble_npl.h"
-
-#define OS_ALIGN(__n, __a) ( \
- (((__n) & ((__a) - 1)) == 0) ? \
- (__n) : \
- ((__n) + ((__a) - ((__n) & ((__a) - 1)))) \
- )
-#define OS_ALIGNMENT (BLE_NPL_OS_ALIGNMENT)
-
-typedef uint32_t os_sr_t;
-#define OS_ENTER_CRITICAL(_sr) (_sr = ble_npl_hw_enter_critical())
-#define OS_EXIT_CRITICAL(_sr) (ble_npl_hw_exit_critical(_sr))
-#define OS_ASSERT_CRITICAL() assert(ble_npl_hw_is_in_critical())
-
-/* Mynewt components (not abstracted in NPL) */
-#include "os/endian.h"
-#include "os/queue.h"
-#include "os/os_error.h"
-#include "os/os_mbuf.h"
-#include "os/os_mempool.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OS_H */
diff --git a/lib/bt/porting/nimble/include/os/os_error.h b/lib/bt/porting/nimble/include/os/os_error.h
deleted file mode 100644
index 2e736e39..00000000
--- a/lib/bt/porting/nimble/include/os/os_error.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2015-2022 The Apache Software Foundation (ASF)
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * SPDX-FileContributor: 2019-2022 Espressif Systems (Shanghai) CO LTD
- */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef H_OS_ERROR_
-#define H_OS_ERROR_
-
-#include "os/os.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* OS error enumerations */
-enum os_error {
- OS_OK = 0,
- OS_ENOMEM = 1,
- OS_EINVAL = 2,
- OS_INVALID_PARM = 3,
- OS_MEM_NOT_ALIGNED = 4,
- OS_BAD_MUTEX = 5,
- OS_TIMEOUT = 6,
- OS_ERR_IN_ISR = 7, /* Function cannot be called from ISR */
- OS_ERR_PRIV = 8, /* Privileged access error */
- OS_NOT_STARTED = 9, /* OS must be started to call this function, but isn't */
- OS_ENOENT = 10, /* No such thing */
- OS_EBUSY = 11, /* Resource busy */
- OS_ERROR = 12, /* Generic Error */
-};
-
-typedef enum os_error os_error_t;
-
-/**
- * @brief Converts an OS error code (`OS_[...]`) to an equivalent system error
- * code (`SYS_E[...]`).
- *
- * @param os_error The OS error code to convert.
- *
- * @return The equivalent system error code.
- */
-int os_error_to_sys(os_error_t os_error);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/lib/bt/porting/nimble/include/os/os_mbuf.h b/lib/bt/porting/nimble/include/os/os_mbuf.h
deleted file mode 100644
index e6fd6b90..00000000
--- a/lib/bt/porting/nimble/include/os/os_mbuf.h
+++ /dev/null
@@ -1,1145 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2015-2022 The Apache Software Foundation (ASF)
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * SPDX-FileContributor: 2019-2022 Espressif Systems (Shanghai) CO LTD
- */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-/**
- * @addtogroup OSKernel
- * @{
- * @defgroup OSMbuf Chained Memory Buffers
- * @{
- */
-
-
-#ifndef _OS_MBUF_H
-#define _OS_MBUF_H
-
-#include "os/os.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * A mbuf pool from which to allocate mbufs. This contains a pointer to the os
- * mempool to allocate mbufs out of, the total number of elements in the pool,
- * and the amount of "user" data in a non-packet header mbuf. The total pool
- * size, in bytes, should be:
- * os_mbuf_count * (omp_databuf_len + sizeof(struct os_mbuf))
- */
-struct os_mbuf_pool {
- /**
- * Total length of the databuf in each mbuf. This is the size of the
- * mempool block, minus the mbuf header
- */
- uint16_t omp_databuf_len;
- /**
- * The memory pool which to allocate mbufs out of
- */
- struct os_mempool *omp_pool;
-
- STAILQ_ENTRY(os_mbuf_pool) omp_next;
-};
-
-
-/**
- * A packet header structure that preceeds the mbuf packet headers.
- */
-struct os_mbuf_pkthdr {
- /**
- * Overall length of the packet.
- */
- uint16_t omp_len;
- /**
- * Flags
- */
- uint16_t omp_flags;
-
- STAILQ_ENTRY(os_mbuf_pkthdr) omp_next;
-};
-
-/**
- * Chained memory buffer.
- */
-struct os_mbuf {
- /**
- * Current pointer to data in the structure
- */
- uint8_t *om_data;
- /**
- * Flags associated with this buffer, see OS_MBUF_F_* defintions
- */
- uint8_t om_flags;
- /**
- * Length of packet header
- */
- uint8_t om_pkthdr_len;
- /**
- * Length of data in this buffer
- */
- uint16_t om_len;
-
- /**
- * The mbuf pool this mbuf was allocated out of
- */
- struct os_mbuf_pool *om_omp;
-
- SLIST_ENTRY(os_mbuf) om_next;
-
- /**
- * Pointer to the beginning of the data, after this buffer
- */
- uint8_t om_databuf[0];
-};
-
-/**
- * Structure representing a queue of mbufs.
- */
-struct os_mqueue {
- STAILQ_HEAD(, os_mbuf_pkthdr) mq_head;
- /** Event to post when new buffers are available on the queue. */
- struct ble_npl_event mq_ev;
-};
-
-/*
- * Given a flag number, provide the mask for it
- *
- * @param __n The number of the flag in the mask
- */
-#define OS_MBUF_F_MASK(__n) (1 << (__n))
-
-/*
- * Checks whether a given mbuf is a packet header mbuf
- *
- * @param __om The mbuf to check
- */
-#define OS_MBUF_IS_PKTHDR(__om) \
- ((__om)->om_pkthdr_len >= sizeof (struct os_mbuf_pkthdr))
-
-/** Get a packet header pointer given an mbuf pointer */
-#define OS_MBUF_PKTHDR(__om) ((struct os_mbuf_pkthdr *) \
- (void *)((uint8_t *)&(__om)->om_data + sizeof(struct os_mbuf)))
-
-/** Given a mbuf packet header pointer, return a pointer to the mbuf */
-#define OS_MBUF_PKTHDR_TO_MBUF(__hdr) \
- (struct os_mbuf *)(void *)((uint8_t *)(__hdr) - sizeof(struct os_mbuf))
-
-/**
- * Gets the length of an entire mbuf chain. The specified mbuf must have a
- * packet header.
- */
-#define OS_MBUF_PKTLEN(__om) (OS_MBUF_PKTHDR(__om)->omp_len)
-
-/**
- * Access the data of a mbuf, and cast it to type
- *
- * @param __om The mbuf to access, and cast
- * @param __type The type to cast it to
- */
-#define OS_MBUF_DATA(__om, __type) \
- (__type) ((__om)->om_data)
-
-/**
- * Access the "user header" in the head of an mbuf chain.
- *
- * @param om Pointer to the head of an mbuf chain.
- */
-#define OS_MBUF_USRHDR(om) \
- (void *)((uint8_t *)om + sizeof (struct os_mbuf) + \
- sizeof (struct os_mbuf_pkthdr))
-
-/**
- * Retrieves the length of the user header in an mbuf.
- *
- * @param om Pointer to the mbuf to query.
- */
-#define OS_MBUF_USRHDR_LEN(om) \
- ((om)->om_pkthdr_len - sizeof (struct os_mbuf_pkthdr))
-
-
-/** @cond INTERNAL_HIDDEN */
-
-/*
- * Called by OS_MBUF_LEADINGSPACE() macro
- */
-static inline uint16_t
-_os_mbuf_leadingspace(struct os_mbuf *om)
-{
- uint16_t startoff;
- uint16_t leadingspace;
-
- startoff = 0;
- if (OS_MBUF_IS_PKTHDR(om)) {
- startoff = om->om_pkthdr_len;
- }
-
- leadingspace = (uint16_t) (OS_MBUF_DATA(om, uint8_t *) -
- ((uint8_t *) &om->om_databuf[0] + startoff));
-
- return (leadingspace);
-}
-
-/** @endcond */
-
-/**
- * Returns the leading space (space at the beginning) of the mbuf.
- * Works on both packet header, and regular mbufs, as it accounts
- * for the additional space allocated to the packet header.
- *
- * @param __omp Is the mbuf pool (which contains packet header length.)
- * @param __om Is the mbuf in that pool to get the leadingspace for
- *
- * @return Amount of leading space available in the mbuf
- */
-#define OS_MBUF_LEADINGSPACE(__om) _os_mbuf_leadingspace(__om)
-
-
-/** @cond INTERNAL_HIDDEN */
-
-/* Called by OS_MBUF_TRAILINGSPACE() macro. */
-static inline uint16_t
-_os_mbuf_trailingspace(struct os_mbuf *om)
-{
- struct os_mbuf_pool *omp;
-
- omp = om->om_omp;
-
- return (&om->om_databuf[0] + omp->omp_databuf_len) -
- (om->om_data + om->om_len);
-}
-
-/** @endcond */
-
-/**
- * Returns the trailing space (space at the end) of the mbuf.
- * Works on both packet header and regular mbufs.
- *
- * @param __omp The mbuf pool for this mbuf
- * @param __om Is the mbuf in that pool to get trailing space for
- *
- * @return The amount of trailing space available in the mbuf
- */
-#define OS_MBUF_TRAILINGSPACE(__om) _os_mbuf_trailingspace(__om)
-
-
-#if SOC_ESP_NIMBLE_CONTROLLER && CONFIG_BT_CONTROLLER_ENABLED
-/**
- * Initializes an mqueue. An mqueue is a queue of mbufs that ties to a
- * particular task's event queue. Mqueues form a helper API around a common
- * paradigm: wait on an event queue until at least one packet is available,
- * then process a queue of packets.
- *
- * When mbufs are available on the queue, an event OS_EVENT_T_MQUEUE_DATA
- * will be posted to the task's mbuf queue.
- *
- * @param mq The mqueue to initialize
- * @param ev_cb The callback to associate with the mqeueue
- * event. Typically, this callback pulls each
- * packet off the mqueue and processes them.
- * @param arg The argument to associate with the mqueue event.
- *
- * @return 0 on success, non-zero on failure.
- */
-int r_os_mqueue_init(struct os_mqueue *mq, ble_npl_event_fn *ev_cb, void *arg);
-#define os_mqueue_init r_os_mqueue_init
-
-
-/**
- * Remove and return a single mbuf from the mbuf queue. Does not block.
- *
- * @param mq The mbuf queue to pull an element off of.
- *
- * @return The next mbuf in the queue, or NULL if queue has no mbufs.
- */
-struct os_mbuf *r_os_mqueue_get(struct os_mqueue *);
-#define os_mqueue_get r_os_mqueue_get
-/**
- * Adds a packet (i.e. packet header mbuf) to an mqueue. The event associated
- * with the mqueue gets posted to the specified eventq.
- *
- * @param mq The mbuf queue to append the mbuf to.
- * @param evq The event queue to post an event to.
- * @param m The mbuf to append to the mbuf queue.
- *
- * @return 0 on success, non-zero on failure.
- */
-int r_os_mqueue_put(struct os_mqueue *, struct ble_npl_eventq *, struct os_mbuf *);
-#define os_mqueue_put r_os_mqueue_put
-
-
-/**
- * MSYS is a system level mbuf registry. Allows the system to share
- * packet buffers amongst the various networking stacks that can be running
- * simultaeneously.
- *
- * Mbuf pools are created in the system initialization code, and then when
- * a mbuf is allocated out of msys, it will try and find the best fit based
- * upon estimated mbuf size.
- *
- * os_msys_register() registers a mbuf pool with MSYS, and allows MSYS to
- * allocate mbufs out of it.
- *
- * @param new_pool The pool to register with MSYS
- *
- * @return 0 on success, non-zero on failure
- */
-int r_os_msys_register(struct os_mbuf_pool *);
-#define os_msys_register r_os_msys_register
-
-
-/**
- * Allocate a mbuf from msys. Based upon the data size requested,
- * os_msys_get() will choose the mbuf pool that has the best fit.
- *
- * @param dsize The estimated size of the data being stored in the mbuf
- * @param leadingspace The amount of leadingspace to allocate in the mbuf
- *
- * @return A freshly allocated mbuf on success, NULL on failure.
- */
-struct os_mbuf *r_os_msys_get(uint16_t dsize, uint16_t leadingspace);
-#define os_msys_get r_os_msys_get
-/**
- * De-registers all mbuf pools from msys.
- */
-void r_os_msys_reset(void);
-#define os_msys_reset r_os_msys_reset
-
-
-/**
- * Allocate a packet header structure from the MSYS pool. See
- * os_msys_register() for a description of MSYS.
- *
- * @param dsize The estimated size of the data being stored in the mbuf
- * @param user_hdr_len The length to allocate for the packet header structure
- *
- * @return A freshly allocated mbuf on success, NULL on failure.
- */
-struct os_mbuf *r_os_msys_get_pkthdr(uint16_t dsize, uint16_t user_hdr_len);
-#define os_msys_get_pkthdr r_os_msys_get_pkthdr
-/**
- * Count the number of blocks in all the mbuf pools that are allocated.
- *
- * @return total number of blocks allocated in Msys
- */
-int r_os_msys_count(void);
-#define os_msys_count r_os_msys_count
-
-
-/**
- * Return the number of free blocks in Msys
- *
- * @return Number of free blocks available in Msys
- */
-int r_os_msys_num_free(void);
-#define os_msys_num_free r_os_msys_num_free
-
-
-/**
- * Initialize a pool of mbufs.
- *
- * @param omp The mbuf pool to initialize
- * @param mp The memory pool that will hold this mbuf pool
- * @param buf_len The length of the buffer itself.
- * @param nbufs The number of buffers in the pool
- *
- * @return 0 on success, error code on failure.
- */
-int r_os_mbuf_pool_init(struct os_mbuf_pool *, struct os_mempool *mp,
- uint16_t, uint16_t);
-#define os_mbuf_pool_init r_os_mbuf_pool_init
-/**
- * Get an mbuf from the mbuf pool. The mbuf is allocated, and initialized
- * prior to being returned.
- *
- * @param omp The mbuf pool to return the packet from
- * @param leadingspace The amount of leadingspace to put before the data
- * section by default.
- *
- * @return An initialized mbuf on success, and NULL on failure.
- */
-struct os_mbuf *r_os_mbuf_get(struct os_mbuf_pool *omp, uint16_t);
-#define os_mbuf_get r_os_mbuf_get
-/**
- * Allocate a new packet header mbuf out of the os_mbuf_pool.
- *
- * @param omp The mbuf pool to allocate out of
- * @param user_pkthdr_len The packet header length to reserve for the caller.
- *
- * @return A freshly allocated mbuf on success, NULL on failure.
- */
-struct os_mbuf *r_os_mbuf_get_pkthdr(struct os_mbuf_pool *omp,
- uint8_t pkthdr_len);
-#define os_mbuf_get_pkthdr r_os_mbuf_get_pkthdr
-/**
- * Duplicate a chain of mbufs. Return the start of the duplicated chain.
- *
- * @param omp The mbuf pool to duplicate out of
- * @param om The mbuf chain to duplicate
- *
- * @return A pointer to the new chain of mbufs
- */
-struct os_mbuf *r_os_mbuf_dup(struct os_mbuf *m);
-#define os_mbuf_dup r_os_mbuf_dup
-/**
- * Locates the specified absolute offset within an mbuf chain. The offset
- * can be one past than the total length of the chain, but no greater.
- *
- * @param om The start of the mbuf chain to seek within.
- * @param off The absolute address to find.
- * @param out_off On success, this points to the relative offset
- * within the returned mbuf.
- *
- * @return The mbuf containing the specified offset on
- * success.
- * NULL if the specified offset is out of bounds.
- */
-struct os_mbuf *r_os_mbuf_off(const struct os_mbuf *om, int off,
- uint16_t *out_off);
-#define os_mbuf_off r_os_mbuf_off
-
-/*
- * Copy data from an mbuf chain starting "off" bytes from the beginning,
- * continuing for "len" bytes, into the indicated buffer.
- *
- * @param m The mbuf chain to copy from
- * @param off The offset into the mbuf chain to begin copying from
- * @param len The length of the data to copy
- * @param dst The destination buffer to copy into
- *
- * @return 0 on success;
- * -1 if the mbuf does not contain enough data.
- */
-int r_os_mbuf_copydata(const struct os_mbuf *m, int off, int len, void *dst);
-#define os_mbuf_copydata r_os_mbuf_copydata
-
-
-/**
- * @brief Calculates the length of an mbuf chain.
- *
- * Calculates the length of an mbuf chain. If the mbuf contains a packet
- * header, you should use `OS_MBUF_PKTLEN()` as a more efficient alternative to
- * this function.
- *
- * @param om The mbuf to measure.
- *
- * @return The length, in bytes, of the provided mbuf
- * chain.
- */
-uint16_t r_os_mbuf_len(const struct os_mbuf *om);
-#define os_mbuf_len r_os_mbuf_len
-
-
-/**
- * Append data onto a mbuf
- *
- * @param om The mbuf to append the data onto
- * @param data The data to append onto the mbuf
- * @param len The length of the data to append
- *
- * @return 0 on success, and an error code on failure
- */
-int r_os_mbuf_append(struct os_mbuf *m, const void *, uint16_t);
-#define os_mbuf_append r_os_mbuf_append
-
-
-/**
- * Reads data from one mbuf and appends it to another. On error, the specified
- * data range may be partially appended. Neither mbuf is required to contain
- * an mbuf packet header.
- *
- * @param dst The mbuf to append to.
- * @param src The mbuf to copy data from.
- * @param src_off The absolute offset within the source mbuf
- * chain to read from.
- * @param len The number of bytes to append.
- *
- * @return 0 on success;
- * OS_EINVAL if the specified range extends beyond
- * the end of the source mbuf chain.
- */
-int r_os_mbuf_appendfrom(struct os_mbuf *dst, const struct os_mbuf *src,
- uint16_t src_off, uint16_t len);
-#define os_mbuf_appendfrom r_os_mbuf_appendfrom
-/**
- * Release a mbuf back to the pool
- *
- * @param omp The Mbuf pool to release back to
- * @param om The Mbuf to release back to the pool
- *
- * @return 0 on success, -1 on failure
- */
-int r_os_mbuf_free(struct os_mbuf *mb);
-#define os_mbuf_free r_os_mbuf_free
-
-
-/**
- * Free a chain of mbufs
- *
- * @param omp The mbuf pool to free the chain of mbufs into
- * @param om The starting mbuf of the chain to free back into the pool
- *
- * @return 0 on success, -1 on failure
- */
-int r_os_mbuf_free_chain(struct os_mbuf *om);
-#define os_mbuf_free_chain r_os_mbuf_free_chain
-
-
-/**
- * Adjust the length of a mbuf, trimming either from the head or the tail
- * of the mbuf.
- *
- * @param mp The mbuf chain to adjust
- * @param req_len The length to trim from the mbuf. If positive, trims
- * from the head of the mbuf, if negative, trims from the
- * tail of the mbuf.
- */
-void r_os_mbuf_adj(struct os_mbuf *mp, int req_len);
-#define os_mbuf_adj r_os_mbuf_adj
-
-
-
-/**
- * Performs a memory compare of the specified region of an mbuf chain against a
- * flat buffer.
- *
- * @param om The start of the mbuf chain to compare.
- * @param off The offset within the mbuf chain to start the
- * comparison.
- * @param data The flat buffer to compare.
- * @param len The length of the flat buffer.
- *
- * @return 0 if both memory regions are identical;
- * A memcmp return code if there is a mismatch;
- * INT_MAX if the mbuf is too short.
- */
-int r_os_mbuf_cmpf(const struct os_mbuf *om, int off, const void *data, int len);
-#define os_mbuf_cmpf r_os_mbuf_cmpf
-
-
-/**
- * Compares the contents of two mbuf chains. The ranges of the two chains to
- * be compared are specified via the two offset parameters and the len
- * parameter. Neither mbuf chain is required to contain a packet header.
- *
- * @param om1 The first mbuf chain to compare.
- * @param offset1 The absolute offset within om1 at which to
- * start the comparison.
- * @param om2 The second mbuf chain to compare.
- * @param offset2 The absolute offset within om2 at which to
- * start the comparison.
- * @param len The number of bytes to compare.
- *
- * @return 0 if both mbuf segments are identical;
- * A memcmp() return code if the segment contents
- * differ;
- * INT_MAX if a specified range extends beyond the
- * end of its corresponding mbuf chain.
- */
-int r_os_mbuf_cmpm(const struct os_mbuf *om1, uint16_t offset1,
- const struct os_mbuf *om2, uint16_t offset2,
- uint16_t len);
-#define os_mbuf_cmpm r_os_mbuf_cmpm
-/**
- * Increases the length of an mbuf chain by adding data to the front. If there
- * is insufficient room in the leading mbuf, additional mbufs are allocated and
- * prepended as necessary. If this function fails to allocate an mbuf, the
- * entire chain is freed.
- *
- * The specified mbuf chain does not need to contain a packet header.
- *
- * @param omp The mbuf pool to allocate from.
- * @param om The head of the mbuf chain.
- * @param len The number of bytes to prepend.
- *
- * @return The new head of the chain on success;
- * NULL on failure.
- */
-struct os_mbuf *r_os_mbuf_prepend(struct os_mbuf *om, int len);
-#define os_mbuf_prepend r_os_mbuf_prepend
-/**
- * Prepends a chunk of empty data to the specified mbuf chain and ensures the
- * chunk is contiguous. If either operation fails, the specified mbuf chain is
- * freed and NULL is returned.
- *
- * @param om The mbuf chain to prepend to.
- * @param len The number of bytes to prepend and pullup.
- *
- * @return The modified mbuf on success;
- * NULL on failure (and the mbuf chain is freed).
- */
-struct os_mbuf *r_os_mbuf_prepend_pullup(struct os_mbuf *om, uint16_t len);
-#define os_mbuf_prepend_pullup r_os_mbuf_prepend_pullup
-/**
- * Copies the contents of a flat buffer into an mbuf chain, starting at the
- * specified destination offset. If the mbuf is too small for the source data,
- * it is extended as necessary. If the destination mbuf contains a packet
- * header, the header length is updated.
- *
- * @param omp The mbuf pool to allocate from.
- * @param om The mbuf chain to copy into.
- * @param off The offset within the chain to copy to.
- * @param src The source buffer to copy from.
- * @param len The number of bytes to copy.
- *
- * @return 0 on success; nonzero on failure.
- */
-int r_os_mbuf_copyinto(struct os_mbuf *om, int off, const void *src, int len);
-#define os_mbuf_copyinto r_os_mbuf_copyinto
-
-
-/**
- * Attaches a second mbuf chain onto the end of the first. If the first chain
- * contains a packet header, the header's length is updated. If the second
- * chain has a packet header, its header is cleared.
- *
- * @param first The mbuf chain being attached to.
- * @param second The mbuf chain that gets attached.
- */
-void r_os_mbuf_concat(struct os_mbuf *first, struct os_mbuf *second);
-#define os_mbuf_concat r_os_mbuf_concat
-
-
-
-/**
- * Increases the length of an mbuf chain by the specified amount. If there is
- * not sufficient room in the last buffer, a new buffer is allocated and
- * appended to the chain. It is an error to request more data than can fit in
- * a single buffer.
- *
- * @param omp
- * @param om The head of the chain to extend.
- * @param len The number of bytes to extend by.
- *
- * @return A pointer to the new data on success;
- * NULL on failure.
- */
-void *r_os_mbuf_extend(struct os_mbuf *om, uint16_t len);
-#define os_mbuf_extend r_os_mbuf_extend
-/**
- * Rearrange a mbuf chain so that len bytes are contiguous,
- * and in the data area of an mbuf (so that OS_MBUF_DATA() will
- * work on a structure of size len.) Returns the resulting
- * mbuf chain on success, free's it and returns NULL on failure.
- *
- * If there is room, it will add up to "max_protohdr - len"
- * extra bytes to the contiguous region, in an attempt to avoid being
- * called next time.
- *
- * @param omp The mbuf pool to take the mbufs out of
- * @param om The mbuf chain to make contiguous
- * @param len The number of bytes in the chain to make contiguous
- *
- * @return The contiguous mbuf chain on success, NULL on failure.
- */
-struct os_mbuf *r_os_mbuf_pullup(struct os_mbuf *om, uint16_t len);
-#define os_mbuf_pullup r_os_mbuf_pullup
-
-/**
- * Removes and frees empty mbufs from the front of a chain. If the chain
- * contains a packet header, it is preserved.
- *
- * @param om The mbuf chain to trim.
- *
- * @return The head of the trimmed mbuf chain.
- */
-struct os_mbuf *r_os_mbuf_trim_front(struct os_mbuf *om);
-#define os_mbuf_trim_front r_os_mbuf_trim_front
-/**
- * Increases the length of an mbuf chain by inserting a gap at the specified
- * offset. The contents of the gap are indeterminate. If the mbuf chain
- * contains a packet header, its total length is increased accordingly.
- *
- * This function never frees the provided mbuf chain.
- *
- * @param om The mbuf chain to widen.
- * @param off The offset at which to insert the gap.
- * @param len The size of the gap to insert.
- *
- * @return 0 on success; SYS_[...] error code on failure.
- */
-int r_os_mbuf_widen(struct os_mbuf *om, uint16_t off, uint16_t len);
-#define os_mbuf_widen r_os_mbuf_widen
-
-
-
-/**
- * Creates a single chained mbuf from m1 and m2 utilizing all
- * the available buffer space in all mbufs in the resulting
- * chain. In other words, ensures there is no leading space in
- * any mbuf in the resulting chain and trailing space only in
- * the last mbuf in the chain. Mbufs from either chain may be
- * freed if not needed. No mbufs are allocated. Note that mbufs
- * from m2 are added to the end of m1. If m1 has a packet
- * header, it is retained and length updated. If m2 has a packet
- * header it is discarded. If m1 is NULL, NULL is returned and
- * m2 is left untouched.
- *
- * @param m1 Pointer to first mbuf chain to pack
- * @param m2 Pointer to second mbuf chain to pack
- *
- * @return struct os_mbuf* Pointer to resulting mbuf chain
- */
-struct os_mbuf *r_os_mbuf_pack_chains(struct os_mbuf *m1, struct os_mbuf *m2);
-#define os_mbuf_pack_chains r_os_mbuf_pack_chains
-
-#else
-/**
- * Initializes an mqueue. An mqueue is a queue of mbufs that ties to a
- * particular task's event queue. Mqueues form a helper API around a common
- * paradigm: wait on an event queue until at least one packet is available,
- * then process a queue of packets.
- *
- * When mbufs are available on the queue, an event OS_EVENT_T_MQUEUE_DATA
- * will be posted to the task's mbuf queue.
- *
- * @param mq The mqueue to initialize
- * @param ev_cb The callback to associate with the mqeueue
- * event. Typically, this callback pulls each
- * packet off the mqueue and processes them.
- * @param arg The argument to associate with the mqueue event.
- *
- * @return 0 on success, non-zero on failure.
- */
-int os_mqueue_init(struct os_mqueue *mq, ble_npl_event_fn *ev_cb, void *arg);
-
-/**
- * Remove and return a single mbuf from the mbuf queue. Does not block.
- *
- * @param mq The mbuf queue to pull an element off of.
- *
- * @return The next mbuf in the queue, or NULL if queue has no mbufs.
- */
-struct os_mbuf *os_mqueue_get(struct os_mqueue *);
-
-/**
- * Adds a packet (i.e. packet header mbuf) to an mqueue. The event associated
- * with the mqueue gets posted to the specified eventq.
- *
- * @param mq The mbuf queue to append the mbuf to.
- * @param evq The event queue to post an event to.
- * @param m The mbuf to append to the mbuf queue.
- *
- * @return 0 on success, non-zero on failure.
- */
-int os_mqueue_put(struct os_mqueue *, struct ble_npl_eventq *, struct os_mbuf *);
-
-/**
- * MSYS is a system level mbuf registry. Allows the system to share
- * packet buffers amongst the various networking stacks that can be running
- * simultaeneously.
- *
- * Mbuf pools are created in the system initialization code, and then when
- * a mbuf is allocated out of msys, it will try and find the best fit based
- * upon estimated mbuf size.
- *
- * os_msys_register() registers a mbuf pool with MSYS, and allows MSYS to
- * allocate mbufs out of it.
- *
- * @param new_pool The pool to register with MSYS
- *
- * @return 0 on success, non-zero on failure
- */
-int os_msys_register(struct os_mbuf_pool *);
-
-/**
- * Allocate a mbuf from msys. Based upon the data size requested,
- * os_msys_get() will choose the mbuf pool that has the best fit.
- *
- * @param dsize The estimated size of the data being stored in the mbuf
- * @param leadingspace The amount of leadingspace to allocate in the mbuf
- *
- * @return A freshly allocated mbuf on success, NULL on failure.
- */
-struct os_mbuf *os_msys_get(uint16_t dsize, uint16_t leadingspace);
-
-/**
- * De-registers all mbuf pools from msys.
- */
-void os_msys_reset(void);
-
-/**
- * Allocate a packet header structure from the MSYS pool. See
- * os_msys_register() for a description of MSYS.
- *
- * @param dsize The estimated size of the data being stored in the mbuf
- * @param user_hdr_len The length to allocate for the packet header structure
- *
- * @return A freshly allocated mbuf on success, NULL on failure.
- */
-struct os_mbuf *os_msys_get_pkthdr(uint16_t dsize, uint16_t user_hdr_len);
-
-/**
- * Count the number of blocks in all the mbuf pools that are allocated.
- *
- * @return total number of blocks allocated in Msys
- */
-int os_msys_count(void);
-
-/**
- * Return the number of free blocks in Msys
- *
- * @return Number of free blocks available in Msys
- */
-int os_msys_num_free(void);
-
-/**
- * Initialize a pool of mbufs.
- *
- * @param omp The mbuf pool to initialize
- * @param mp The memory pool that will hold this mbuf pool
- * @param buf_len The length of the buffer itself.
- * @param nbufs The number of buffers in the pool
- *
- * @return 0 on success, error code on failure.
- */
-int os_mbuf_pool_init(struct os_mbuf_pool *, struct os_mempool *mp,
- uint16_t, uint16_t);
-
-/**
- * Get an mbuf from the mbuf pool. The mbuf is allocated, and initialized
- * prior to being returned.
- *
- * @param omp The mbuf pool to return the packet from
- * @param leadingspace The amount of leadingspace to put before the data
- * section by default.
- *
- * @return An initialized mbuf on success, and NULL on failure.
- */
-struct os_mbuf *os_mbuf_get(struct os_mbuf_pool *omp, uint16_t);
-
-/**
- * Allocate a new packet header mbuf out of the os_mbuf_pool.
- *
- * @param omp The mbuf pool to allocate out of
- * @param user_pkthdr_len The packet header length to reserve for the caller.
- *
- * @return A freshly allocated mbuf on success, NULL on failure.
- */
-struct os_mbuf *os_mbuf_get_pkthdr(struct os_mbuf_pool *omp,
- uint8_t pkthdr_len);
-
-/**
- * Duplicate a chain of mbufs. Return the start of the duplicated chain.
- *
- * @param omp The mbuf pool to duplicate out of
- * @param om The mbuf chain to duplicate
- *
- * @return A pointer to the new chain of mbufs
- */
-struct os_mbuf *os_mbuf_dup(struct os_mbuf *m);
-
-/**
- * Locates the specified absolute offset within an mbuf chain. The offset
- * can be one past than the total length of the chain, but no greater.
- *
- * @param om The start of the mbuf chain to seek within.
- * @param off The absolute address to find.
- * @param out_off On success, this points to the relative offset
- * within the returned mbuf.
- *
- * @return The mbuf containing the specified offset on
- * success.
- * NULL if the specified offset is out of bounds.
- */
-struct os_mbuf *os_mbuf_off(const struct os_mbuf *om, int off,
- uint16_t *out_off);
-
-
-/*
- * Copy data from an mbuf chain starting "off" bytes from the beginning,
- * continuing for "len" bytes, into the indicated buffer.
- *
- * @param m The mbuf chain to copy from
- * @param off The offset into the mbuf chain to begin copying from
- * @param len The length of the data to copy
- * @param dst The destination buffer to copy into
- *
- * @return 0 on success;
- * -1 if the mbuf does not contain enough data.
- */
-int os_mbuf_copydata(const struct os_mbuf *m, int off, int len, void *dst);
-
-/**
- * @brief Calculates the length of an mbuf chain.
- *
- * Calculates the length of an mbuf chain. If the mbuf contains a packet
- * header, you should use `OS_MBUF_PKTLEN()` as a more efficient alternative to
- * this function.
- *
- * @param om The mbuf to measure.
- *
- * @return The length, in bytes, of the provided mbuf
- * chain.
- */
-uint16_t os_mbuf_len(const struct os_mbuf *om);
-
-/**
- * Append data onto a mbuf
- *
- * @param om The mbuf to append the data onto
- * @param data The data to append onto the mbuf
- * @param len The length of the data to append
- *
- * @return 0 on success, and an error code on failure
- */
-int os_mbuf_append(struct os_mbuf *m, const void *, uint16_t);
-
-/**
- * Reads data from one mbuf and appends it to another. On error, the specified
- * data range may be partially appended. Neither mbuf is required to contain
- * an mbuf packet header.
- *
- * @param dst The mbuf to append to.
- * @param src The mbuf to copy data from.
- * @param src_off The absolute offset within the source mbuf
- * chain to read from.
- * @param len The number of bytes to append.
- *
- * @return 0 on success;
- * OS_EINVAL if the specified range extends beyond
- * the end of the source mbuf chain.
- */
-int os_mbuf_appendfrom(struct os_mbuf *dst, const struct os_mbuf *src,
- uint16_t src_off, uint16_t len);
-
-/**
- * Release a mbuf back to the pool
- *
- * @param omp The Mbuf pool to release back to
- * @param om The Mbuf to release back to the pool
- *
- * @return 0 on success, -1 on failure
- */
-int os_mbuf_free(struct os_mbuf *mb);
-
-/**
- * Free a chain of mbufs
- *
- * @param omp The mbuf pool to free the chain of mbufs into
- * @param om The starting mbuf of the chain to free back into the pool
- *
- * @return 0 on success, -1 on failure
- */
-int os_mbuf_free_chain(struct os_mbuf *om);
-
-/**
- * Adjust the length of a mbuf, trimming either from the head or the tail
- * of the mbuf.
- *
- * @param mp The mbuf chain to adjust
- * @param req_len The length to trim from the mbuf. If positive, trims
- * from the head of the mbuf, if negative, trims from the
- * tail of the mbuf.
- */
-void os_mbuf_adj(struct os_mbuf *mp, int req_len);
-
-
-/**
- * Performs a memory compare of the specified region of an mbuf chain against a
- * flat buffer.
- *
- * @param om The start of the mbuf chain to compare.
- * @param off The offset within the mbuf chain to start the
- * comparison.
- * @param data The flat buffer to compare.
- * @param len The length of the flat buffer.
- *
- * @return 0 if both memory regions are identical;
- * A memcmp return code if there is a mismatch;
- * INT_MAX if the mbuf is too short.
- */
-int os_mbuf_cmpf(const struct os_mbuf *om, int off, const void *data, int len);
-
-/**
- * Compares the contents of two mbuf chains. The ranges of the two chains to
- * be compared are specified via the two offset parameters and the len
- * parameter. Neither mbuf chain is required to contain a packet header.
- *
- * @param om1 The first mbuf chain to compare.
- * @param offset1 The absolute offset within om1 at which to
- * start the comparison.
- * @param om2 The second mbuf chain to compare.
- * @param offset2 The absolute offset within om2 at which to
- * start the comparison.
- * @param len The number of bytes to compare.
- *
- * @return 0 if both mbuf segments are identical;
- * A memcmp() return code if the segment contents
- * differ;
- * INT_MAX if a specified range extends beyond the
- * end of its corresponding mbuf chain.
- */
-int os_mbuf_cmpm(const struct os_mbuf *om1, uint16_t offset1,
- const struct os_mbuf *om2, uint16_t offset2,
- uint16_t len);
-
-/**
- * Increases the length of an mbuf chain by adding data to the front. If there
- * is insufficient room in the leading mbuf, additional mbufs are allocated and
- * prepended as necessary. If this function fails to allocate an mbuf, the
- * entire chain is freed.
- *
- * The specified mbuf chain does not need to contain a packet header.
- *
- * @param omp The mbuf pool to allocate from.
- * @param om The head of the mbuf chain.
- * @param len The number of bytes to prepend.
- *
- * @return The new head of the chain on success;
- * NULL on failure.
- */
-struct os_mbuf *os_mbuf_prepend(struct os_mbuf *om, int len);
-
-/**
- * Prepends a chunk of empty data to the specified mbuf chain and ensures the
- * chunk is contiguous. If either operation fails, the specified mbuf chain is
- * freed and NULL is returned.
- *
- * @param om The mbuf chain to prepend to.
- * @param len The number of bytes to prepend and pullup.
- *
- * @return The modified mbuf on success;
- * NULL on failure (and the mbuf chain is freed).
- */
-struct os_mbuf *os_mbuf_prepend_pullup(struct os_mbuf *om, uint16_t len);
-
-/**
- * Copies the contents of a flat buffer into an mbuf chain, starting at the
- * specified destination offset. If the mbuf is too small for the source data,
- * it is extended as necessary. If the destination mbuf contains a packet
- * header, the header length is updated.
- *
- * @param omp The mbuf pool to allocate from.
- * @param om The mbuf chain to copy into.
- * @param off The offset within the chain to copy to.
- * @param src The source buffer to copy from.
- * @param len The number of bytes to copy.
- *
- * @return 0 on success; nonzero on failure.
- */
-int os_mbuf_copyinto(struct os_mbuf *om, int off, const void *src, int len);
-
-/**
- * Attaches a second mbuf chain onto the end of the first. If the first chain
- * contains a packet header, the header's length is updated. If the second
- * chain has a packet header, its header is cleared.
- *
- * @param first The mbuf chain being attached to.
- * @param second The mbuf chain that gets attached.
- */
-void os_mbuf_concat(struct os_mbuf *first, struct os_mbuf *second);
-
-
-/**
- * Increases the length of an mbuf chain by the specified amount. If there is
- * not sufficient room in the last buffer, a new buffer is allocated and
- * appended to the chain. It is an error to request more data than can fit in
- * a single buffer.
- *
- * @param omp
- * @param om The head of the chain to extend.
- * @param len The number of bytes to extend by.
- *
- * @return A pointer to the new data on success;
- * NULL on failure.
- */
-void *os_mbuf_extend(struct os_mbuf *om, uint16_t len);
-
-/**
- * Rearrange a mbuf chain so that len bytes are contiguous,
- * and in the data area of an mbuf (so that OS_MBUF_DATA() will
- * work on a structure of size len.) Returns the resulting
- * mbuf chain on success, free's it and returns NULL on failure.
- *
- * If there is room, it will add up to "max_protohdr - len"
- * extra bytes to the contiguous region, in an attempt to avoid being
- * called next time.
- *
- * @param omp The mbuf pool to take the mbufs out of
- * @param om The mbuf chain to make contiguous
- * @param len The number of bytes in the chain to make contiguous
- *
- * @return The contiguous mbuf chain on success, NULL on failure.
- */
-struct os_mbuf *os_mbuf_pullup(struct os_mbuf *om, uint16_t len);
-
-
-/**
- * Removes and frees empty mbufs from the front of a chain. If the chain
- * contains a packet header, it is preserved.
- *
- * @param om The mbuf chain to trim.
- *
- * @return The head of the trimmed mbuf chain.
- */
-struct os_mbuf *os_mbuf_trim_front(struct os_mbuf *om);
-
-/**
- * Increases the length of an mbuf chain by inserting a gap at the specified
- * offset. The contents of the gap are indeterminate. If the mbuf chain
- * contains a packet header, its total length is increased accordingly.
- *
- * This function never frees the provided mbuf chain.
- *
- * @param om The mbuf chain to widen.
- * @param off The offset at which to insert the gap.
- * @param len The size of the gap to insert.
- *
- * @return 0 on success; SYS_[...] error code on failure.
- */
-int os_mbuf_widen(struct os_mbuf *om, uint16_t off, uint16_t len);
-
-
-/**
- * Creates a single chained mbuf from m1 and m2 utilizing all
- * the available buffer space in all mbufs in the resulting
- * chain. In other words, ensures there is no leading space in
- * any mbuf in the resulting chain and trailing space only in
- * the last mbuf in the chain. Mbufs from either chain may be
- * freed if not needed. No mbufs are allocated. Note that mbufs
- * from m2 are added to the end of m1. If m1 has a packet
- * header, it is retained and length updated. If m2 has a packet
- * header it is discarded. If m1 is NULL, NULL is returned and
- * m2 is left untouched.
- *
- * @param m1 Pointer to first mbuf chain to pack
- * @param m2 Pointer to second mbuf chain to pack
- *
- * @return struct os_mbuf* Pointer to resulting mbuf chain
- */
-struct os_mbuf *os_mbuf_pack_chains(struct os_mbuf *m1, struct os_mbuf *m2);
-
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OS_MBUF_H */
-
-
-/**
- * @} OSMbuf
- * @} OSKernel
- */
diff --git a/lib/bt/porting/nimble/include/os/os_mempool.h b/lib/bt/porting/nimble/include/os/os_mempool.h
deleted file mode 100644
index 3ef8e6d5..00000000
--- a/lib/bt/porting/nimble/include/os/os_mempool.h
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2015-2022 The Apache Software Foundation (ASF)
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * SPDX-FileContributor: 2019-2022 Espressif Systems (Shanghai) CO LTD
- */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * @addtogroup OSKernel
- * @{
- * @defgroup OSMempool Memory Pools
- * @{
- */
-
-
-#ifndef _OS_MEMPOOL_H_
-#define _OS_MEMPOOL_H_
-
-#include <stdbool.h>
-#include "os/os.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * A memory block structure. This simply contains a pointer to the free list
- * chain and is only used when the block is on the free list. When the block
- * has been removed from the free list the entire memory block is usable by the
- * caller.
- */
-struct os_memblock {
- SLIST_ENTRY(os_memblock) mb_next;
-};
-
-/* XXX: Change this structure so that we keep the first address in the pool? */
-/* XXX: add memory debug structure and associated code */
-/* XXX: Change how I coded the SLIST_HEAD here. It should be named:
- SLIST_HEAD(,os_memblock) mp_head; */
-
-/**
- * Memory pool
- */
-struct os_mempool {
- /** Size of the memory blocks, in bytes. */
- uint32_t mp_block_size;
- /** The number of memory blocks. */
- uint16_t mp_num_blocks;
- /** The number of free blocks left */
- uint16_t mp_num_free;
- /** The lowest number of free blocks seen */
- uint16_t mp_min_free;
- /** Bitmap of OS_MEMPOOL_F_[...] values. */
- uint8_t mp_flags;
- /** Address of memory buffer used by pool */
- uint32_t mp_membuf_addr;
- STAILQ_ENTRY(os_mempool) mp_list;
- SLIST_HEAD(,os_memblock);
- /** Name for memory block */
- const char *name;
-};
-
-/**
- * Indicates an extended mempool. Address can be safely cast to
- * (struct os_mempool_ext *).
- */
-#define OS_MEMPOOL_F_EXT 0x01
-
-struct os_mempool_ext;
-
-/**
- * Block put callback function. If configured, this callback gets executed
- * whenever a block is freed to the corresponding extended mempool. Note: The
- * os_memblock_put() function calls this callback instead of freeing the block
- * itself. Therefore, it is the callback's responsibility to free the block
- * via a call to os_memblock_put_from_cb().
- *
- * @param ome The extended mempool that a block is being
- * freed back to.
- * @param data The block being freed.
- * @param arg Optional argument configured along with the
- * callback.
- *
- * @return Indicates whether the block was successfully
- * freed. A non-zero value should only be
- * returned if the block was not successfully
- * released back to its pool.
- */
-typedef os_error_t os_mempool_put_fn(struct os_mempool_ext *ome, void *data,
- void *arg);
-
-struct os_mempool_ext {
- struct os_mempool mpe_mp;
-
- /* Callback that is executed immediately when a block is freed. */
- os_mempool_put_fn *mpe_put_cb;
- void *mpe_put_arg;
-};
-
-#define OS_MEMPOOL_INFO_NAME_LEN (32)
-
-/**
- * Information describing a memory pool, used to return OS information
- * to the management layer.
- */
-struct os_mempool_info {
- /** Size of the memory blocks in the pool */
- int omi_block_size;
- /** Number of memory blocks in the pool */
- int omi_num_blocks;
- /** Number of free memory blocks */
- int omi_num_free;
- /** Minimum number of free memory blocks ever */
- int omi_min_free;
- /** Name of the memory pool */
- char omi_name[OS_MEMPOOL_INFO_NAME_LEN];
-};
-
-/**
- * Get information about the next system memory pool.
- *
- * @param mempool The current memory pool, or NULL if starting iteration.
- * @param info A pointer to the structure to return memory pool information
- * into.
- *
- * @return The next memory pool in the list to get information about, or NULL
- * when at the last memory pool.
- */
-struct os_mempool *os_mempool_info_get_next(struct os_mempool *,
- struct os_mempool_info *);
-
-#if (OS_ALIGNMENT == 4)
-typedef uint32_t os_membuf_t;
-#elif (OS_ALIGNMENT == 8)
-typedef uint64_t os_membuf_t;
-#elif (OS_ALIGNMENT == 16)
-typedef __uint128_t os_membuf_t;
-#else
-#error "Unhandled `OS_ALIGNMENT` for `os_membuf_t`"
-#endif /* OS_ALIGNMENT == * */
-#define OS_MEMPOOL_SIZE(n,blksize) ((((blksize) + ((OS_ALIGNMENT)-1)) / (OS_ALIGNMENT)) * (n))
-
-/** Calculates the number of bytes required to initialize a memory pool. */
-#define OS_MEMPOOL_BYTES(n,blksize) \
- (sizeof (os_membuf_t) * OS_MEMPOOL_SIZE((n), (blksize)))
-
-#if SOC_ESP_NIMBLE_CONTROLLER && CONFIG_BT_CONTROLLER_ENABLED
-/**
- * Initialize a memory pool.
- *
- * @param mp Pointer to a pointer to a mempool
- * @param blocks The number of blocks in the pool
- * @param blocks_size The size of the block, in bytes.
- * @param membuf Pointer to memory to contain blocks.
- * @param name Name of the pool.
- *
- * @return os_error_t
- */
-os_error_t r_os_mempool_init(struct os_mempool *mp, uint16_t blocks,
- uint32_t block_size, void *membuf, const char *name);
-#define os_mempool_init r_os_mempool_init
-/**
- * Initializes an extended memory pool. Extended attributes (e.g., callbacks)
- * are not specified when this function is called; they are assigned manually
- * after initialization.
- *
- * @param mpe The extended memory pool to initialize.
- * @param blocks The number of blocks in the pool.
- * @param block_size The size of each block, in bytes.
- * @param membuf Pointer to memory to contain blocks.
- * @param name Name of the pool.
- *
- * @return os_error_t
- */
-os_error_t r_os_mempool_ext_init(struct os_mempool_ext *mpe, uint16_t blocks,
- uint32_t block_size, void *membuf, const char *name);
-#define os_mempool_ext_init r_os_mempool_ext_init
-/**
- * Removes the specified mempool from the list of initialized mempools.
- *
- * @param mp The mempool to unregister.
- *
- * @return 0 on success;
- * OS_INVALID_PARM if the mempool is not
- * registered.
- */
-os_error_t r_os_mempool_unregister(struct os_mempool *mp);
-#define os_mempool_unregister r_os_mempool_unregister
-
-
-/**
- * Clears a memory pool.
- *
- * @param mp The mempool to clear.
- *
- * @return os_error_t
- */
-os_error_t r_os_mempool_clear(struct os_mempool *mp);
-#define os_mempool_clear r_os_mempool_clear
-
-
-/**
- * Performs an integrity check of the specified mempool. This function
- * attempts to detect memory corruption in the specified memory pool.
- *
- * @param mp The mempool to check.
- *
- * @return true if the memory pool passes the integrity
- * check;
- * false if the memory pool is corrupt.
- */
-bool r_os_mempool_is_sane(const struct os_mempool *mp);
-#define os_mempool_is_sane r_os_mempool_is_sane
-
-
-/**
- * Checks if a memory block was allocated from the specified mempool.
- *
- * @param mp The mempool to check as parent.
- * @param block_addr The memory block to check as child.
- *
- * @return 0 if the block does not belong to the mempool;
- * 1 if the block does belong to the mempool.
- */
-int r_os_memblock_from(const struct os_mempool *mp, const void *block_addr);
-#define os_memblock_from r_os_memblock_from
-
-
-/**
- * Get a memory block from a memory pool
- *
- * @param mp Pointer to the memory pool
- *
- * @return void* Pointer to block if available; NULL otherwise
- */
-void *r_os_memblock_get(struct os_mempool *mp);
-#define os_memblock_get r_os_memblock_get
-/**
- * Puts the memory block back into the pool, ignoring the put callback, if any.
- * This function should only be called from a put callback to free a block
- * without causing infinite recursion.
- *
- * @param mp Pointer to memory pool
- * @param block_addr Pointer to memory block
- *
- * @return os_error_t
- */
-os_error_t r_os_memblock_put_from_cb(struct os_mempool *mp, void *block_addr);
-#define os_memblock_put_from_cb r_os_memblock_put_from_cb
-
-
-/**
- * Puts the memory block back into the pool
- *
- * @param mp Pointer to memory pool
- * @param block_addr Pointer to memory block
- *
- * @return os_error_t
- */
-os_error_t r_os_memblock_put(struct os_mempool *mp, void *block_addr);
-#define os_memblock_put r_os_memblock_put
-
-#else
-/**
- * Initialize a memory pool.
- *
- * @param mp Pointer to a pointer to a mempool
- * @param blocks The number of blocks in the pool
- * @param blocks_size The size of the block, in bytes.
- * @param membuf Pointer to memory to contain blocks.
- * @param name Name of the pool.
- *
- * @return os_error_t
- */
-os_error_t os_mempool_init(struct os_mempool *mp, uint16_t blocks,
- uint32_t block_size, void *membuf, const char *name);
-
-/**
- * Initializes an extended memory pool. Extended attributes (e.g., callbacks)
- * are not specified when this function is called; they are assigned manually
- * after initialization.
- *
- * @param mpe The extended memory pool to initialize.
- * @param blocks The number of blocks in the pool.
- * @param block_size The size of each block, in bytes.
- * @param membuf Pointer to memory to contain blocks.
- * @param name Name of the pool.
- *
- * @return os_error_t
- */
-os_error_t os_mempool_ext_init(struct os_mempool_ext *mpe, uint16_t blocks,
- uint32_t block_size, void *membuf, const char *name);
-
-/**
- * Removes the specified mempool from the list of initialized mempools.
- *
- * @param mp The mempool to unregister.
- *
- * @return 0 on success;
- * OS_INVALID_PARM if the mempool is not
- * registered.
- */
-os_error_t os_mempool_unregister(struct os_mempool *mp);
-
-/**
- * Clears a memory pool.
- *
- * @param mp The mempool to clear.
- *
- * @return os_error_t
- */
-os_error_t os_mempool_clear(struct os_mempool *mp);
-
-/**
- * Clears an extended memory pool.
- *
- * @param mpe The extended memory pool to clear.
- *
- * @return os_error_t
- */
-os_error_t os_mempool_ext_clear(struct os_mempool_ext *mpe);
-
-/**
- * Performs an integrity check of the specified mempool. This function
- * attempts to detect memory corruption in the specified memory pool.
- *
- * @param mp The mempool to check.
- *
- * @return true if the memory pool passes the integrity
- * check;
- * false if the memory pool is corrupt.
- */
-bool os_mempool_is_sane(const struct os_mempool *mp);
-
-/**
- * Checks if a memory block was allocated from the specified mempool.
- *
- * @param mp The mempool to check as parent.
- * @param block_addr The memory block to check as child.
- *
- * @return 0 if the block does not belong to the mempool;
- * 1 if the block does belong to the mempool.
- */
-int os_memblock_from(const struct os_mempool *mp, const void *block_addr);
-
-/**
- * Get a memory block from a memory pool
- *
- * @param mp Pointer to the memory pool
- *
- * @return void* Pointer to block if available; NULL otherwise
- */
-void *os_memblock_get(struct os_mempool *mp);
-
-/**
- * Puts the memory block back into the pool, ignoring the put callback, if any.
- * This function should only be called from a put callback to free a block
- * without causing infinite recursion.
- *
- * @param mp Pointer to memory pool
- * @param block_addr Pointer to memory block
- *
- * @return os_error_t
- */
-os_error_t os_memblock_put_from_cb(struct os_mempool *mp, void *block_addr);
-
-/**
- * Puts the memory block back into the pool
- *
- * @param mp Pointer to memory pool
- * @param block_addr Pointer to memory block
- *
- * @return os_error_t
- */
-os_error_t os_memblock_put(struct os_mempool *mp, void *block_addr);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OS_MEMPOOL_H_ */
-
-
-/**
- * @} OSMempool
- * @} OSKernel
- */
diff --git a/lib/bt/porting/nimble/include/os/queue.h b/lib/bt/porting/nimble/include/os/queue.h
deleted file mode 100644
index c184a394..00000000
--- a/lib/bt/porting/nimble/include/os/queue.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)queue.h 8.5 (Berkeley) 8/20/94
- * $FreeBSD: src/sys/sys/queue.h,v 1.32.2.7 2002/04/17 14:21:02 des Exp $
- */
-
-#ifndef _QUEUE_H_
-#define _QUEUE_H_
-
-/* The common BSD linked list queue macros are already defined here for ESP-IDF */
-#include <sys/queue.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This file defines circular queues. The other types of data structures:
- * singly-linked lists, singly-linked tail queues, lists and tail queues
- * are used from sys/queue.h
- *
- * A singly-linked list is headed by a single forward pointer. The elements
- * are singly linked for minimum space and pointer manipulation overhead at
- * the expense of O(n) removal for arbitrary elements. New elements can be
- * added to the list after an existing element or at the head of the list.
- * Elements being removed from the head of the list should use the explicit
- * macro for this purpose for optimum efficiency. A singly-linked list may
- * only be traversed in the forward direction. Singly-linked lists are ideal
- * for applications with large datasets and few or no removals or for
- * implementing a LIFO queue.
- *
- * A singly-linked tail queue is headed by a pair of pointers, one to the
- * head of the list and the other to the tail of the list. The elements are
- * singly linked for minimum space and pointer manipulation overhead at the
- * expense of O(n) removal for arbitrary elements. New elements can be added
- * to the list after an existing element, at the head of the list, or at the
- * end of the list. Elements being removed from the head of the tail queue
- * should use the explicit macro for this purpose for optimum efficiency.
- * A singly-linked tail queue may only be traversed in the forward direction.
- * Singly-linked tail queues are ideal for applications with large datasets
- * and few or no removals or for implementing a FIFO queue.
- *
- * A list is headed by a single forward pointer (or an array of forward
- * pointers for a hash table header). The elements are doubly linked
- * so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before
- * or after an existing element or at the head of the list. A list
- * may only be traversed in the forward direction.
- *
- * A tail queue is headed by a pair of pointers, one to the head of the
- * list and the other to the tail of the list. The elements are doubly
- * linked so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before or
- * after an existing element, at the head of the list, or at the end of
- * the list. A tail queue may be traversed in either direction.
- *
- * A circle queue is headed by a pair of pointers, one to the head of the
- * list and the other to the tail of the list. The elements are doubly
- * linked so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before or after
- * an existing element, at the head of the list, or at the end of the list.
- * A circle queue may be traversed in either direction, but has a more
- * complex end of list detection.
- *
- * For details on the use of these macros, see the queue(3) manual page.
- *
- *
- * SLIST LIST STAILQ TAILQ CIRCLEQ
- * _HEAD + + + + +
- * _HEAD_INITIALIZER + + + + +
- * _ENTRY + + + + +
- * _INIT + + + + +
- * _EMPTY + + + + +
- * _FIRST + + + + +
- * _NEXT + + + + +
- * _PREV - - - + +
- * _LAST - - + + +
- * _FOREACH + + + + +
- * _FOREACH_REVERSE - - - + +
- * _INSERT_HEAD + + + + +
- * _INSERT_BEFORE - + - + +
- * _INSERT_AFTER + + + + +
- * _INSERT_TAIL - - + + +
- * _REMOVE_HEAD + - + - -
- * _REMOVE + + + + +
- *
- */
-
-/*
- * Circular queue declarations.
- */
-#define CIRCLEQ_HEAD(name, type) \
-struct name { \
- struct type *cqh_first; /* first element */ \
- struct type *cqh_last; /* last element */ \
-}
-
-#define CIRCLEQ_HEAD_INITIALIZER(head) \
- { (void *)&(head), (void *)&(head) }
-
-#define CIRCLEQ_ENTRY(type) \
-struct { \
- struct type *cqe_next; /* next element */ \
- struct type *cqe_prev; /* previous element */ \
-}
-
-/*
- * Circular queue functions.
- */
-#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))
-
-#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
-
-#define CIRCLEQ_FOREACH(var, head, field) \
- for ((var) = CIRCLEQ_FIRST((head)); \
- (var) != (void *)(head) || ((var) = NULL); \
- (var) = CIRCLEQ_NEXT((var), field))
-
-#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \
- for ((var) = CIRCLEQ_LAST((head)); \
- (var) != (void *)(head) || ((var) = NULL); \
- (var) = CIRCLEQ_PREV((var), field))
-
-#define CIRCLEQ_INIT(head) do { \
- CIRCLEQ_FIRST((head)) = (void *)(head); \
- CIRCLEQ_LAST((head)) = (void *)(head); \
-} while (0)
-
-#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
- CIRCLEQ_NEXT((elm), field) = CIRCLEQ_NEXT((listelm), field); \
- CIRCLEQ_PREV((elm), field) = (listelm); \
- if (CIRCLEQ_NEXT((listelm), field) == (void *)(head)) \
- CIRCLEQ_LAST((head)) = (elm); \
- else \
- CIRCLEQ_PREV(CIRCLEQ_NEXT((listelm), field), field) = (elm);\
- CIRCLEQ_NEXT((listelm), field) = (elm); \
-} while (0)
-
-#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \
- CIRCLEQ_NEXT((elm), field) = (listelm); \
- CIRCLEQ_PREV((elm), field) = CIRCLEQ_PREV((listelm), field); \
- if (CIRCLEQ_PREV((listelm), field) == (void *)(head)) \
- CIRCLEQ_FIRST((head)) = (elm); \
- else \
- CIRCLEQ_NEXT(CIRCLEQ_PREV((listelm), field), field) = (elm);\
- CIRCLEQ_PREV((listelm), field) = (elm); \
-} while (0)
-
-#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \
- CIRCLEQ_NEXT((elm), field) = CIRCLEQ_FIRST((head)); \
- CIRCLEQ_PREV((elm), field) = (void *)(head); \
- if (CIRCLEQ_LAST((head)) == (void *)(head)) \
- CIRCLEQ_LAST((head)) = (elm); \
- else \
- CIRCLEQ_PREV(CIRCLEQ_FIRST((head)), field) = (elm); \
- CIRCLEQ_FIRST((head)) = (elm); \
-} while (0)
-
-#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \
- CIRCLEQ_NEXT((elm), field) = (void *)(head); \
- CIRCLEQ_PREV((elm), field) = CIRCLEQ_LAST((head)); \
- if (CIRCLEQ_FIRST((head)) == (void *)(head)) \
- CIRCLEQ_FIRST((head)) = (elm); \
- else \
- CIRCLEQ_NEXT(CIRCLEQ_LAST((head)), field) = (elm); \
- CIRCLEQ_LAST((head)) = (elm); \
-} while (0)
-
-#define CIRCLEQ_LAST(head) ((head)->cqh_last)
-
-#define CIRCLEQ_NEXT(elm,field) ((elm)->field.cqe_next)
-
-#define CIRCLEQ_PREV(elm,field) ((elm)->field.cqe_prev)
-
-#define CIRCLEQ_REMOVE(head, elm, field) do { \
- if (CIRCLEQ_NEXT((elm), field) == (void *)(head)) \
- CIRCLEQ_LAST((head)) = CIRCLEQ_PREV((elm), field); \
- else \
- CIRCLEQ_PREV(CIRCLEQ_NEXT((elm), field), field) = \
- CIRCLEQ_PREV((elm), field); \
- if (CIRCLEQ_PREV((elm), field) == (void *)(head)) \
- CIRCLEQ_FIRST((head)) = CIRCLEQ_NEXT((elm), field); \
- else \
- CIRCLEQ_NEXT(CIRCLEQ_PREV((elm), field), field) = \
- CIRCLEQ_NEXT((elm), field); \
-} while (0)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_SYS_QUEUE_H_ */
diff --git a/lib/bt/porting/nimble/include/os/util.h b/lib/bt/porting/nimble/include/os/util.h
deleted file mode 100644
index 2438373e..00000000
--- a/lib/bt/porting/nimble/include/os/util.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2015-2022 The Apache Software Foundation (ASF)
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * SPDX-FileContributor: 2019-2022 Espressif Systems (Shanghai) CO LTD
- */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef H_OS_UTIL_
-#define H_OS_UTIL_
-
-/* Helpers to pass integers as pointers and vice-versa */
-#define POINTER_TO_UINT(p) ((unsigned int) ((uintptr_t) (p)))
-#define UINT_TO_POINTER(u) ((void *) ((uintptr_t) (u)))
-#define POINTER_TO_INT(p) ((int) ((intptr_t) (p)))
-#define INT_TO_POINTER(u) ((void *) ((intptr_t) (u)))
-
-/* Helper to retrieve pointer to "parent" object in structure */
-#define CONTAINER_OF(ptr, type, field) \
- ((type *)(((char *)(ptr)) - offsetof(type, field)))
-
-/* Helper to calculate number of elements in array */
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(array) \
- (sizeof(array) / sizeof((array)[0]))
-#endif
-#endif