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)13 int 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)27 void k_mem_slab_free(struct k_mem_slab *slab, void *mem)
28 {
29 	free(mem);
30 	slab->info.num_used--;
31 }
32