1 /* 2 * Copyright (c) 2023 Codecoup 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #include <errno.h> 7 8 #include <stdlib.h> 9 #include <zephyr/kernel.h> 10 #include <zephyr/sys_clock.h> 11 #include <zephyr/ztest_assert.h> 12 k_mem_slab_alloc(struct k_mem_slab * slab,void ** mem,k_timeout_t timeout)13int k_mem_slab_alloc(struct k_mem_slab *slab, void **mem, k_timeout_t timeout) 14 { 15 if (slab->info.num_used >= slab->info.num_blocks) { 16 *mem = NULL; 17 return -ENOMEM; 18 } 19 20 *mem = malloc(slab->info.block_size); 21 zassert_not_null(*mem); 22 23 slab->info.num_used++; 24 return 0; 25 } 26 k_mem_slab_free(struct k_mem_slab * slab,void * mem)27void k_mem_slab_free(struct k_mem_slab *slab, void *mem) 28 { 29 free(mem); 30 slab->info.num_used--; 31 } 32