ocf/src/utils/utils_realloc.h
Rafal Stefanowski 6ed4cf8a24 Update copyright statements (2021)
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@intel.com>
2021-01-21 13:17:34 +01:00

70 lines
2.0 KiB
C

/*
* Copyright(c) 2012-2021 Intel Corporation
* SPDX-License-Identifier: BSD-3-Clause-Clear
*/
#ifndef UTILS_REALLOC_H_
#define UTILS_REALLOC_H_
/**
* @file utils_realloc.h
* @brief OCF realloc
*/
void ocf_realloc_init(void **mem, size_t *limit);
int ocf_realloc(void **mem, size_t size, size_t count, size_t *limit);
int ocf_realloc_cp(void **mem, size_t size, size_t count, size_t *limit);
/**
* @brief Initialize memory pointer and limit before reallocator usage
*
* @param[inout] mem - Pointer to the memory
* @param[inout] limit - Variable used internally by reallocator and indicates
* last allocation size
*/
#define OCF_REALLOC_INIT(mem, limit) \
ocf_realloc_init((void **)mem, limit)
/**
* @brief De-Initialize memory pointer and limit, free memory
*
* @param[inout] mem - Pointer to the memory
* @param[inout] limit - Variable used internally by reallocator and indicates
* last allocation size
*/
#define OCF_REALLOC_DEINIT(mem, limit) \
ocf_realloc((void **)mem, 0, 0, limit)
/**
* @brief Reallocate referenced memory if it is required.
*
* @param[inout] mem - Pointer to the memory
* @param[in] size - Size of particular element
* @param[in] count - Counts of element
* @param[inout] limit - Variable used internally by reallocator and indicates
* last allocation size
*
* @return 0 - Reallocation successful, Non zero - Realocation ERROR
*/
#define OCF_REALLOC(mem, size, count, limit) \
ocf_realloc((void **)mem, size, count, limit)
/**
* @brief Reallocate referenced memory if it is required and copy old content
* into new memory space, new memory space is set to '0'
*
* @param[inout] mem - Pointer to the memory
* @param[in] size - Size of particular element
* @param[in] count - Counts of element
* @param[inout] limit - Variable used internally by reallocator and indicates
* last allocation size
*
* @return 0 - Reallocation successful, Non zero - Realocation ERROR
*/
#define OCF_REALLOC_CP(mem, size, count, limit) \
ocf_realloc_cp((void **)mem, size, count, limit)
#endif /* UTILS_REALLOC_H_ */