diff --git a/lib/libc/arcmwdt/threading.c b/lib/libc/arcmwdt/threading.c index dbeb4436b7d..af9cdf76b13 100644 --- a/lib/libc/arcmwdt/threading.c +++ b/lib/libc/arcmwdt/threading.c @@ -6,22 +6,25 @@ #ifdef CONFIG_MULTITHREADING +#include #include #include #include #include #include -#include <../lib/src/c/inc/internal/thread.h> #ifndef CONFIG_USERSPACE #define ARCMWDT_DYN_LOCK_SZ (sizeof(struct k_mutex)) -#define ARCMWDT_MAX_DYN_LOCKS 10 +/* The library wants 2 locks per available FILE entry, and then some more */ +#define ARCMWDT_MAX_DYN_LOCKS (FOPEN_MAX * 2 + 5) K_MEM_SLAB_DEFINE(z_arcmwdt_lock_slab, ARCMWDT_DYN_LOCK_SZ, ARCMWDT_MAX_DYN_LOCKS, sizeof(void *)); #endif /* !CONFIG_USERSPACE */ LOG_MODULE_DECLARE(os, CONFIG_KERNEL_LOG_LEVEL); +typedef void *_lock_t; + void _mwmutex_create(_lock_t *mutex_ptr) { bool alloc_fail;