diff --git a/arch/sim/src/nuttx-names.in b/arch/sim/src/nuttx-names.in index f8306e1d631..2e8d05b67ce 100644 --- a/arch/sim/src/nuttx-names.in +++ b/arch/sim/src/nuttx-names.in @@ -50,6 +50,7 @@ NXSYMBOLS(ioctl) NXSYMBOLS(longjmp) NXSYMBOLS(lseek) NXSYMBOLS(malloc) +NXSYMBOLS(malloc_size) NXSYMBOLS(mallinfo) NXSYMBOLS(memalign) NXSYMBOLS(memcpy) diff --git a/arch/sim/src/sim/up_heap.c b/arch/sim/src/sim/up_heap.c index e57279d3715..acc8f17ac55 100644 --- a/arch/sim/src/sim/up_heap.c +++ b/arch/sim/src/sim/up_heap.c @@ -429,6 +429,15 @@ void mm_checkcorruption(FAR struct mm_heap_s *heap) #endif /* CONFIG_DEBUG_MM */ +/**************************************************************************** + * Name: malloc_size + ****************************************************************************/ + +size_t malloc_size(FAR void *mem) +{ + return host_malloc_size(mem); +} + /**************************************************************************** * Name: up_allocate_heap * diff --git a/arch/sim/src/sim/up_hostmemory.c b/arch/sim/src/sim/up_hostmemory.c index e8238b00389..82a38dbebf5 100644 --- a/arch/sim/src/sim/up_hostmemory.c +++ b/arch/sim/src/sim/up_hostmemory.c @@ -32,6 +32,12 @@ #include #include +#ifdef __APPLE__ +#include +#else +#include +#endif + #include "up_internal.h" /**************************************************************************** @@ -119,6 +125,15 @@ void host_free_shmem(void *mem) munmap(mem, 0); } +size_t host_malloc_size(void *mem) +{ +#ifdef __APPLE__ + return malloc_size(mem); +#else + return malloc_usable_size(mem); +#endif +} + void *host_memalign(size_t alignment, size_t size) { void *p; diff --git a/arch/sim/src/sim/up_internal.h b/arch/sim/src/sim/up_internal.h index 0e074369ab6..e9e21f585d4 100644 --- a/arch/sim/src/sim/up_internal.h +++ b/arch/sim/src/sim/up_internal.h @@ -159,6 +159,7 @@ void *host_alloc_heap(size_t sz); void *host_alloc_shmem(const char *name, size_t size, int master); void host_free_shmem(void *mem); +size_t host_malloc_size(void *mem); void *host_memalign(size_t alignment, size_t size); void host_free(void *mem); void *host_realloc(void *oldmem, size_t size);