Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

40 lines
938 B

/*
* Copyright (c) 2025 Croxel Inc.
* Copyright (c) 2025 CogniPilot Foundation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stddef.h>
#include <zephyr/kernel.h>
#include <zephyr/sys/check.h>
#define DT_DRV_COMPAT brcm_afbr_s50
#define NUM_AFBR_INST DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT)
BUILD_ASSERT(NUM_AFBR_INST > 0, "Invalid number of AFBR-S50 instances");
/** Defined separate memslab to isolate library from the other components.
* Through debugging, the library requests an initial allocation of ~4-KiB,
* which is why the total pool is sized to 8-KiB per instance.
*/
K_MEM_SLAB_DEFINE(argus_memslab, 64, 128 * NUM_AFBR_INST, sizeof(void *));
void *Argus_Malloc(size_t size)
{
void *ptr = NULL;
int err;
err = k_mem_slab_alloc(&argus_memslab, &ptr, K_NO_WAIT);
CHECKIF(err != 0 || ptr == NULL) {
return NULL;
}
return ptr;
}
void Argus_Free(void *ptr)
{
k_mem_slab_free(&argus_memslab, ptr);
}