2 * @ingroup adf_os_public
4 * This file abstracts memory operations.
10 #include <adf_os_types.h>
11 #include <adf_os_mem_pvt.h>
14 * @brief Allocate a memory buffer. Note this call can block.
16 * @param[in] size buffer size
18 * @return Buffer pointer or NULL if there's not enough memory.
21 adf_os_mem_alloc(adf_os_size_t size)
23 return __adf_os_mem_alloc(size);
27 * @brief Free malloc'ed buffer
29 * @param[in] buf buffer pointer allocated by @ref adf_os_mem_alloc
32 adf_os_mem_free(void *buf)
34 __adf_os_mem_free(buf);
38 * @brief Move a memory buffer. Overlapping regions are not allowed.
40 * @param[in] dst destination address
41 * @param[in] src source address
42 * @param[in] size buffer size
45 adf_os_mem_copy(void *dst, void *src, adf_os_size_t size)
47 __adf_os_mem_copy(dst, src, size);
51 * @brief Does a non-destructive copy of memory buffer
53 * @param[in] dst destination address
54 * @param[in] src source address
55 * @param[in] size buffer size
58 adf_os_mem_move(void *dst, void *src, adf_os_size_t size)
60 __adf_os_mem_move(dst,src,size);
65 * @brief Fill a memory buffer
67 * @param[in] buf buffer to be filled
68 * @param[in] b byte to fill
69 * @param[in] size buffer size
72 adf_os_mem_set(void *buf, a_uint8_t b, adf_os_size_t size)
74 __adf_os_mem_set(buf, b, size);
79 * @brief Zero a memory buffer
81 * @param[in] buf buffer to be zeroed
82 * @param[in] size buffer size
85 adf_os_mem_zero(void *buf, adf_os_size_t size)
87 __adf_os_mem_zero(buf, size);
92 * @brief Compare two memory buffers
94 * @param[in] buf1 first buffer
95 * @param[in] buf2 second buffer
96 * @param[in] size buffer size
102 adf_os_mem_cmp(void *buf1, void *buf2, adf_os_size_t size)
104 return __adf_os_mem_cmp(buf1, buf2, size);