Adds further ext deps as-is binaries copies from customers env.
Qt6 Migration CI / migrate (push) Canceled after 0s
Qt6 Migration CI / migrate (push) Canceled after 0s
This commit is contained in:
3700 files changed
+2132394
No files matched your search
+169
@@ -0,0 +1,169 @@
|
||||
// Copyright(c) 2006 to 2019 ZettaScale Technology and others
|
||||
//
|
||||
// This program and the accompanying materials are made available under the
|
||||
// terms of the Eclipse Public License v. 2.0 which is available at
|
||||
// http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||
// v. 1.0 which is available at
|
||||
// http://www.eclipse.org/org/documents/edl-v10.php.
|
||||
//
|
||||
// SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||
|
||||
/**
|
||||
* @file heap.h
|
||||
* @brief Heap memory management.
|
||||
*
|
||||
* Platform independent interface to heap memory management.
|
||||
*/
|
||||
#ifndef DDSRT_HEAP_H
|
||||
#define DDSRT_HEAP_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "dds/export.h"
|
||||
#include "dds/ddsrt/attributes.h"
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct ddsrt_allocation_ops {
|
||||
void* (*malloc) (size_t size);
|
||||
void* (*calloc) (size_t count, size_t size);
|
||||
void* (*realloc) (void *memblk, size_t size);
|
||||
void (*free) (void *ptr);
|
||||
} ddsrt_allocation_ops_t;
|
||||
|
||||
/// @brief Set the memory allocators
|
||||
///
|
||||
/// Set the functions to malloc, calloc, realloc, and free memory. By default
|
||||
/// the functions of `stdlib` will be used.
|
||||
DDS_EXPORT void
|
||||
ddsrt_set_allocator(
|
||||
ddsrt_allocation_ops_t custom_ops);
|
||||
|
||||
/**
|
||||
* @brief Allocate memory from heap.
|
||||
*
|
||||
* The allocated block of memory must be freed by calling @ddsrt_free when no
|
||||
* longer used.
|
||||
*
|
||||
* @param[in] size The size, in bytes, of the block of memory to allocate.
|
||||
*
|
||||
* @returns A pointer to the allocated block of memory. abort() is called if
|
||||
* not enough free memory was available.
|
||||
*/
|
||||
DDS_EXPORT void *
|
||||
ddsrt_malloc(
|
||||
size_t size)
|
||||
ddsrt_attribute_malloc
|
||||
ddsrt_attribute_alloc_size((1));
|
||||
|
||||
/**
|
||||
* @brief Allocate memory from heap.
|
||||
*
|
||||
* Allocate a block of memory from heap with the given size. The allocated
|
||||
* block of memory must be freed by calling @ddsrt_free when no longer used.
|
||||
*
|
||||
* @param[in] size The size, in bytes, of memory to allocate.
|
||||
*
|
||||
* @returns A pointer to the allocated block of memory, NULL if not enough
|
||||
* memory was available.
|
||||
*/
|
||||
DDS_EXPORT void *
|
||||
ddsrt_malloc_s(
|
||||
size_t size)
|
||||
ddsrt_attribute_malloc
|
||||
ddsrt_attribute_alloc_size((1));
|
||||
|
||||
/**
|
||||
* @brief Allocate memory from heap for an array of @count elements of @size
|
||||
* bytes.
|
||||
*
|
||||
* The allocated memory is initialized to zero. The allocated memory must be
|
||||
* freed by calling @ddsrt_free when no longer used.
|
||||
*
|
||||
* A non-NULL pointer, that must be freed is always returned, even if the sum
|
||||
* @count and @size equals zero.
|
||||
*
|
||||
* @returns A pointer to the allocated memory. abort() is called if not enough
|
||||
* free memory was available.
|
||||
*/
|
||||
DDS_EXPORT void *
|
||||
ddsrt_calloc(
|
||||
size_t count,
|
||||
size_t size)
|
||||
ddsrt_attribute_malloc
|
||||
ddsrt_attribute_alloc_size((1,2));
|
||||
|
||||
/**
|
||||
* @brief Allocate memory from heap for an array of @count elements of @size
|
||||
* bytes.
|
||||
*
|
||||
* The allocated memory is initialized to zero. The allocated memory must be
|
||||
* freed by calling @ddsrt_free when no longer used.
|
||||
*
|
||||
* A non-NULL pointer, that must be freed is always returned, even if the sum
|
||||
* @count and @size equals zero.
|
||||
*
|
||||
* @returns A pointer to the allocated memory, or NULL if not enough memory was
|
||||
* available.
|
||||
*/
|
||||
DDS_EXPORT void *
|
||||
ddsrt_calloc_s(
|
||||
size_t count,
|
||||
size_t size)
|
||||
ddsrt_attribute_malloc
|
||||
ddsrt_attribute_alloc_size((1,2));
|
||||
|
||||
/**
|
||||
* @brief Reallocate memory from heap.
|
||||
*
|
||||
* Reallocate memory from heap. If memblk is NULL the function returns
|
||||
* ddsrt_malloc_s(size). If size is 0, ddsrt_realloc_s free's the memory
|
||||
* pointed to by memblk and returns a pointer as if ddsrt_malloc_s(0) was
|
||||
* invoked. The returned pointer must be free'd with ddsrt_free.
|
||||
*
|
||||
* @returns A pointer to reallocated memory. Calls abort() if not enough free
|
||||
* memory was available.
|
||||
*/
|
||||
DDS_EXPORT void *
|
||||
ddsrt_realloc(
|
||||
void *memblk,
|
||||
size_t size)
|
||||
ddsrt_attribute_malloc
|
||||
ddsrt_attribute_alloc_size((2));
|
||||
|
||||
/**
|
||||
* @brief Reallocate memory from heap.
|
||||
*
|
||||
* Reallocate memory from heap. If memblk is NULL the function returns
|
||||
* ddsrt_malloc_s(size). If size is 0, ddsrt_realloc_s free's the memory
|
||||
* pointed to by memblk and returns a pointer as if ddsrt_malloc_s(0) was
|
||||
* invoked. The returned pointer must be free'd with ddsrt_free.
|
||||
*
|
||||
* @returns A pointer to reallocated memory, or NULL if not enough free memory
|
||||
* was available.
|
||||
*/
|
||||
DDS_EXPORT void *
|
||||
ddsrt_realloc_s(
|
||||
void *memblk,
|
||||
size_t size)
|
||||
ddsrt_attribute_malloc
|
||||
ddsrt_attribute_alloc_size((2));
|
||||
|
||||
/**
|
||||
* @brief Free a previously allocated block of memory and return it to heap.
|
||||
*
|
||||
* Free the allocated memory pointed to by @ptr and release it to the heap. No
|
||||
* action will be taken if @ptr is NULL.
|
||||
*
|
||||
* @param[in] ptr Pointer to previously allocated block of memory.
|
||||
*/
|
||||
DDS_EXPORT void
|
||||
ddsrt_free(void *ptr);
|
||||
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* DDSRT_HEAP_H */
|
||||
Reference in new issue
Block a user