| /Zephyr-latest/kernel/ | 
| D | mutex.c | 55 int z_impl_k_mutex_init(struct k_mutex *mutex)  in z_impl_k_mutex_init()  argument57 	mutex->owner = NULL;  in z_impl_k_mutex_init()
 58 	mutex->lock_count = 0U;  in z_impl_k_mutex_init()
 60 	z_waitq_init(&mutex->wait_q);  in z_impl_k_mutex_init()
 62 	k_object_init(mutex);  in z_impl_k_mutex_init()
 65 	k_obj_core_init_and_link(K_OBJ_CORE(mutex), &obj_type_mutex);  in z_impl_k_mutex_init()
 68 	SYS_PORT_TRACING_OBJ_INIT(k_mutex, mutex, 0);  in z_impl_k_mutex_init()
 74 static inline int z_vrfy_k_mutex_init(struct k_mutex *mutex)  in z_vrfy_k_mutex_init()  argument
 76 	K_OOPS(K_SYSCALL_OBJ_INIT(mutex, K_OBJ_MUTEX));  in z_vrfy_k_mutex_init()
 77 	return z_impl_k_mutex_init(mutex);  in z_vrfy_k_mutex_init()
 [all …]
 
 | 
| /Zephyr-latest/subsys/portability/cmsis_rtos_v2/ | 
| D | mutex.c | 27 	struct cmsis_rtos_mutex_cb *mutex;  in osMutexNew()  local44 		mutex = (struct cmsis_rtos_mutex_cb *)attr->cb_mem;  in osMutexNew()
 45 	} else if (k_mem_slab_alloc(&cmsis_rtos_mutex_cb_slab, (void **)&mutex, K_MSEC(100)) != 0) {  in osMutexNew()
 48 	memset(mutex, 0, sizeof(struct cmsis_rtos_mutex_cb));  in osMutexNew()
 49 	mutex->is_cb_dynamic_allocation = attr->cb_mem == NULL;  in osMutexNew()
 51 	k_mutex_init(&mutex->z_mutex);  in osMutexNew()
 52 	mutex->state = attr->attr_bits;  in osMutexNew()
 55 		strncpy(mutex->name, init_mutex_attrs.name, sizeof(mutex->name) - 1);  in osMutexNew()
 57 		strncpy(mutex->name, attr->name, sizeof(mutex->name) - 1);  in osMutexNew()
 60 	return (osMutexId_t)mutex;  in osMutexNew()
 [all …]
 
 | 
| /Zephyr-latest/include/zephyr/sys/ | 
| D | mutex.h | 68 static inline void sys_mutex_init(struct sys_mutex *mutex)  in sys_mutex_init()  argument70 	ARG_UNUSED(mutex);  in sys_mutex_init()
 77 __syscall int z_sys_mutex_kernel_lock(struct sys_mutex *mutex,
 80 __syscall int z_sys_mutex_kernel_unlock(struct sys_mutex *mutex);
 102 static inline int sys_mutex_lock(struct sys_mutex *mutex, k_timeout_t timeout)  in sys_mutex_lock()  argument
 105 	return z_sys_mutex_kernel_lock(mutex, timeout);  in sys_mutex_lock()
 125 static inline int sys_mutex_unlock(struct sys_mutex *mutex)  in sys_mutex_unlock()  argument
 128 	return z_sys_mutex_kernel_unlock(mutex);  in sys_mutex_unlock()
 146 static inline void sys_mutex_init(struct sys_mutex *mutex)
 148 	k_mutex_init(&mutex->kernel_mutex);
 [all …]
 
 | 
| /Zephyr-latest/lib/os/ | 
| D | mutex.c | 12 static struct k_mutex *get_k_mutex(struct sys_mutex *mutex)  in get_k_mutex()  argument16 	obj = k_object_find(mutex);  in get_k_mutex()
 21 	return obj->data.mutex;  in get_k_mutex()
 33 int z_impl_z_sys_mutex_kernel_lock(struct sys_mutex *mutex, k_timeout_t timeout)  in z_impl_z_sys_mutex_kernel_lock()  argument
 35 	struct k_mutex *kernel_mutex = get_k_mutex(mutex);  in z_impl_z_sys_mutex_kernel_lock()
 44 static inline int z_vrfy_z_sys_mutex_kernel_lock(struct sys_mutex *mutex,  in z_vrfy_z_sys_mutex_kernel_lock()  argument
 47 	if (check_sys_mutex_addr(mutex)) {  in z_vrfy_z_sys_mutex_kernel_lock()
 51 	return z_impl_z_sys_mutex_kernel_lock(mutex, timeout);  in z_vrfy_z_sys_mutex_kernel_lock()
 55 int z_impl_z_sys_mutex_kernel_unlock(struct sys_mutex *mutex)  in z_impl_z_sys_mutex_kernel_unlock()  argument
 57 	struct k_mutex *kernel_mutex = get_k_mutex(mutex);  in z_impl_z_sys_mutex_kernel_unlock()
 [all …]
 
 | 
| /Zephyr-latest/lib/libc/common/source/thrd/ | 
| D | mtx.c | 13 int mtx_init(mtx_t *mutex, int type)  in mtx_init()  argument36 	switch (pthread_mutex_init(mutex, attrp)) {  in mtx_init()
 52 void mtx_destroy(mtx_t *mutex)  in mtx_destroy()  argument
 54 	(void)pthread_mutex_destroy(mutex);  in mtx_destroy()
 57 int mtx_lock(mtx_t *mutex)  in mtx_lock()  argument
 59 	switch (pthread_mutex_lock(mutex)) {  in mtx_lock()
 67 int mtx_timedlock(mtx_t *restrict mutex, const struct timespec *restrict time_point)  in mtx_timedlock()  argument
 69 	switch (pthread_mutex_timedlock(mutex, time_point)) {  in mtx_timedlock()
 79 int mtx_trylock(mtx_t *mutex)  in mtx_trylock()  argument
 81 	switch (pthread_mutex_trylock(mutex)) {  in mtx_trylock()
 [all …]
 
 | 
| /Zephyr-latest/subsys/portability/cmsis_rtos_v1/ | 
| D | cmsis_mutex.c | 19 	struct k_mutex *mutex;  in osMutexCreate()  local29 	if (k_mem_slab_alloc(&cmsis_mutex_slab, (void **)&mutex, K_MSEC(100)) == 0) {  in osMutexCreate()
 30 		(void)memset(mutex, 0, sizeof(struct k_mutex));  in osMutexCreate()
 35 	k_mutex_init(mutex);  in osMutexCreate()
 37 	return (osMutexId)mutex;  in osMutexCreate()
 45 	struct k_mutex *mutex = (struct k_mutex *) mutex_id;  in osMutexWait()  local
 57 		status = k_mutex_lock(mutex, K_FOREVER);  in osMutexWait()
 59 		status = k_mutex_lock(mutex, K_NO_WAIT);  in osMutexWait()
 61 		status = k_mutex_lock(mutex, K_MSEC(timeout));  in osMutexWait()
 78 	struct k_mutex *mutex = (struct k_mutex *) mutex_id;  in osMutexRelease()  local
 [all …]
 
 | 
| /Zephyr-latest/tests/lib/c_lib/thrd/src/ | 
| D | mtx.c | 22 static mtx_t  mutex;  variable28 	zassert_not_equal(thrd_success, mtx_init(&mutex, FORTY_TWO));  in ZTEST()
 39 		zassert_equal(thrd_success, mtx_init(&mutex, type));  in ZTEST()
 40 		mtx_destroy(&mutex);  in ZTEST()
 53 	zassert_equal(thrd_success, mtx_init(&mutex, mtx_plain));  in ZTEST()
 54 	mtx_destroy(&mutex);  in ZTEST()
 69 		zassert_equal(thrd_success, mtx_init(&mutex, type));  in ZTEST()
 70 		zassert_equal(thrd_success, mtx_lock(&mutex));  in ZTEST()
 74 				zassert_not_equal(thrd_success, mtx_lock((&mutex)));  in ZTEST()
 77 			zassert_equal(thrd_success, mtx_lock(&mutex));  in ZTEST()
 [all …]
 
 | 
| D | cnd.c | 19 	mtx_t mutex;  member53 		zassert_equal(thrd_error, cnd_wait(NULL, &fixture->mutex));  in ZTEST_F()
 57 		zassert_equal(thrd_error, cnd_timedwait(NULL, &fixture->mutex, NULL));  in ZTEST_F()
 59 			      cnd_timedwait(NULL, &fixture->mutex, &fixture->time_point));  in ZTEST_F()
 63 		zassert_equal(thrd_error, cnd_timedwait(&fixture->cond, &fixture->mutex, NULL));  in ZTEST_F()
 76 		res = cnd_timedwait(&fixture->cond, &fixture->mutex, &time_point);  in test_cnd_thread_fn()
 78 		res = cnd_wait(&fixture->cond, &fixture->mutex);  in test_cnd_thread_fn()
 86 	(void)mtx_unlock(&fixture->mutex);  in test_cnd_thread_fn()
 94 	zassert_equal(thrd_success, mtx_lock(&fixture->mutex));  in tst_cnd_common()
 110 	zassert_equal(thrd_success, mtx_unlock(&fixture->mutex));  in tst_cnd_common()
 [all …]
 
 | 
| /Zephyr-latest/tests/posix/common/src/ | 
| D | mutex.c | 15 static pthread_mutex_t mutex;  variable24 		rc = pthread_mutex_trylock(&mutex);  in normal_mutex_entry()
 33 	zassert_false(pthread_mutex_unlock(&mutex), "mutex unlock is failed");  in normal_mutex_entry()
 39 	zassert_false(pthread_mutex_lock(&mutex), "mutex is not taken");  in recursive_mutex_entry()
 40 	zassert_false(pthread_mutex_lock(&mutex), "mutex is not taken 2nd time");  in recursive_mutex_entry()
 42 	zassert_false(pthread_mutex_unlock(&mutex), "mutex is not unlocked");  in recursive_mutex_entry()
 43 	zassert_false(pthread_mutex_unlock(&mutex), "mutex is not unlocked");  in recursive_mutex_entry()
 59 	zassert_ok(pthread_mutex_init(&mutex, &mut_attr), "mutex initialization is failed");  in test_mutex_common()
 74 	zassert_ok(pthread_mutex_lock(&mutex));  in test_mutex_common()
 82 	zassert_ok(pthread_mutex_unlock(&mutex));  in test_mutex_common()
 [all …]
 
 | 
| /Zephyr-latest/samples/kernel/condition_variables/condvar/ | 
| D | README.rst | 11 multithreaded application. Condition variables are used with a mutex41     inc_count: thread 2, count = 1, unlocking mutex
 42     inc_count: thread 3, count = 2, unlocking mutex
 43     inc_count: thread 2, count = 3, unlocking mutex
 44     inc_count: thread 3, count = 4, unlocking mutex
 45     inc_count: thread 2, count = 5, unlocking mutex
 46     inc_count: thread 3, count = 6, unlocking mutex
 47     inc_count: thread 2, count = 7, unlocking mutex
 48     inc_count: thread 3, count = 8, unlocking mutex
 49     inc_count: thread 2, count = 9, unlocking mutex
 [all …]
 
 | 
| /Zephyr-latest/doc/kernel/services/synchronization/ | 
| D | mutexes.rst | 6 A :dfn:`mutex` is a kernel object that implements a traditional7 reentrant mutex. A mutex allows multiple threads to safely share
 18 Any number of mutexes can be defined (limited only by available RAM). Each mutex
 21 A mutex has the following key properties:
 23 * A **lock count** that indicates the number of times the mutex has been locked
 24   by the thread that has locked it. A count of zero indicates that the mutex
 27 * An **owning thread** that identifies the thread that has locked the mutex,
 30 A mutex must be initialized before it can be used. This sets its lock count
 34 to access it by **locking** the associated mutex. If the mutex is already locked
 35 by another thread, the requesting thread may choose to wait for the mutex
 [all …]
 
 | 
| /Zephyr-latest/samples/arch/smp/pktqueue/src/ | 
| D | pktqueue.c | 11 			struct k_mutex *mutex)  in phdr_desc_enqueue()  argument14 	k_mutex_lock(mutex, K_FOREVER);  in phdr_desc_enqueue()
 26 	k_mutex_unlock(mutex);  in phdr_desc_enqueue()
 31 					struct k_mutex *mutex)  in phdr_desc_dequeue()  argument
 35 	k_mutex_lock(mutex, K_FOREVER);  in phdr_desc_dequeue()
 43 	k_mutex_unlock(mutex);  in phdr_desc_dequeue()
 
 | 
| /Zephyr-latest/subsys/usb/host/ | 
| D | usbh_api.c | 18 	k_mutex_lock(&uhs_ctx->mutex, K_FOREVER);  in usbh_init()35 	k_mutex_unlock(&uhs_ctx->mutex);  in usbh_init()
 43 	k_mutex_lock(&uhs_ctx->mutex, K_FOREVER);  in usbh_enable()
 64 	k_mutex_unlock(&uhs_ctx->mutex);  in usbh_enable()
 77 	k_mutex_lock(&uhs_ctx->mutex, K_FOREVER);  in usbh_disable()
 84 	k_mutex_unlock(&uhs_ctx->mutex);  in usbh_disable()
 93 	k_mutex_lock(&uhs_ctx->mutex, K_FOREVER);  in usbh_shutdown()
 100 	k_mutex_unlock(&uhs_ctx->mutex);  in usbh_shutdown()
 
 | 
| /Zephyr-latest/lib/libc/arcmwdt/ | 
| D | threading.c | 56 void _mwmutex_lock(_lock_t mutex)  in _mwmutex_lock()  argument58 	__ASSERT_NO_MSG(mutex != NULL);  in _mwmutex_lock()
 59 	k_mutex_lock((struct k_mutex *)mutex, K_FOREVER);  in _mwmutex_lock()
 62 void _mwmutex_unlock(_lock_t mutex)  in _mwmutex_unlock()  argument
 64 	__ASSERT_NO_MSG(mutex != NULL);  in _mwmutex_unlock()
 65 	k_mutex_unlock((struct k_mutex *)mutex);  in _mwmutex_unlock()
 
 | 
| /Zephyr-latest/drivers/misc/ethos_u/ | 
| D | ethos_u.c | 29 	struct k_mutex *mutex;  in ethosu_mutex_create()  local31 	mutex = k_malloc(sizeof(*mutex));  in ethosu_mutex_create()
 32 	if (mutex == NULL) {  in ethosu_mutex_create()
 37 	k_mutex_init(mutex);  in ethosu_mutex_create()
 39 	return (void *)mutex;  in ethosu_mutex_create()
 42 int ethosu_mutex_lock(void *mutex)  in ethosu_mutex_lock()  argument
 46 	status = k_mutex_lock((struct k_mutex *)mutex, K_FOREVER);  in ethosu_mutex_lock()
 55 int ethosu_mutex_unlock(void *mutex)  in ethosu_mutex_unlock()  argument
 57 	k_mutex_unlock((struct k_mutex *)mutex);  in ethosu_mutex_unlock()
 
 | 
| /Zephyr-latest/modules/lvgl/ | 
| D | lvgl_zephyr_osal.c | 51 lv_result_t lv_mutex_init(lv_mutex_t *mutex)  in lv_mutex_init()  argument53 	k_mutex_init(mutex);  in lv_mutex_init()
 57 lv_result_t lv_mutex_lock(lv_mutex_t *mutex)  in lv_mutex_lock()  argument
 61 	ret = k_mutex_lock(mutex, K_FOREVER);  in lv_mutex_lock()
 70 lv_result_t lv_mutex_lock_isr(lv_mutex_t *mutex)  in lv_mutex_lock_isr()  argument
 74 	ret = k_mutex_lock(mutex, K_NO_WAIT);  in lv_mutex_lock_isr()
 83 lv_result_t lv_mutex_unlock(lv_mutex_t *mutex)  in lv_mutex_unlock()  argument
 87 	ret = k_mutex_unlock(mutex);  in lv_mutex_unlock()
 96 lv_result_t lv_mutex_delete(lv_mutex_t *mutex)  in lv_mutex_delete()  argument
 98 	ARG_UNUSED(mutex);  in lv_mutex_delete()
 
 | 
| /Zephyr-latest/samples/kernel/condition_variables/simple/src/ | 
| D | main.c | 17 K_MUTEX_DEFINE(mutex);35 	k_mutex_lock(&mutex, K_FOREVER);  in worker_thread()
 44 	k_mutex_unlock(&mutex);  in worker_thread()
 61 	k_mutex_lock(&mutex, K_FOREVER);  in main()
 74 		k_condvar_wait(&condvar, &mutex, K_FOREVER);  in main()
 84 	k_mutex_unlock(&mutex);  in main()
 
 | 
| /Zephyr-latest/drivers/display/ | 
| D | display_sdl_bottom.c | 17 			    bool use_accelerator, void **window, void **renderer, void **mutex,  in sdl_display_init_bottom()  argument42 	*mutex = SDL_CreateMutex();  in sdl_display_init_bottom()
 43 	if (*mutex == NULL) {  in sdl_display_init_bottom()
 106 			      const uint16_t y, void *renderer, void *mutex, void *texture,  in sdl_display_write_bottom()  argument
 118 	err = SDL_TryLockMutex(mutex);  in sdl_display_write_bottom()
 133 	SDL_UnlockMutex(mutex);  in sdl_display_write_bottom()
 139 			    void *mutex, void *texture, void *read_texture)  in sdl_display_read_bottom()  argument
 149 	err = SDL_TryLockMutex(mutex);  in sdl_display_read_bottom()
 163 	SDL_UnlockMutex(mutex);  in sdl_display_read_bottom()
 182 void sdl_display_cleanup_bottom(void **window, void **renderer, void **mutex, void **texture,  in sdl_display_cleanup_bottom()  argument
 [all …]
 
 | 
| D | display_sdl_bottom.h | 24 			    bool use_accelerator, void **window, void **renderer, void **mutex,29 			      const uint16_t y, void *renderer, void *mutex, void *texture,
 34 			    void *mutex, void *texture, void *read_texture);
 37 void sdl_display_cleanup_bottom(void **window, void **renderer, void **mutex, void **texture,
 
 | 
| /Zephyr-latest/drivers/i2c/ | 
| D | i2c_gpio.c | 50 	struct k_mutex mutex;  member87 	k_mutex_lock(&context->mutex, K_FOREVER);  in i2c_gpio_configure()
 91 	k_mutex_unlock(&context->mutex);  in i2c_gpio_configure()
 101 	k_mutex_lock(&context->mutex, K_FOREVER);  in i2c_gpio_get_config()
 108 	k_mutex_unlock(&context->mutex);  in i2c_gpio_get_config()
 119 	k_mutex_lock(&context->mutex, K_FOREVER);  in i2c_gpio_transfer()
 124 	k_mutex_unlock(&context->mutex);  in i2c_gpio_transfer()
 134 	k_mutex_lock(&context->mutex, K_FOREVER);  in i2c_gpio_recover_bus()
 138 	k_mutex_unlock(&context->mutex);  in i2c_gpio_recover_bus()
 197 	err = k_mutex_init(&context->mutex);  in i2c_gpio_init()
 
 | 
| /Zephyr-latest/lib/libc/common/include/ | 
| D | threads.h | 52 int mtx_init(mtx_t *mutex, int type);53 void mtx_destroy(mtx_t *mutex);
 54 int mtx_lock(mtx_t *mutex);
 55 int mtx_timedlock(mtx_t *ZRESTRICT mutex, const struct timespec *ZRESTRICT time_point);
 56 int mtx_trylock(mtx_t *mutex);
 57 int mtx_unlock(mtx_t *mutex);
 
 | 
| /Zephyr-latest/drivers/flash/ | 
| D | flash_gd32.c | 21 	struct k_sem mutex;  member62 	k_sem_take(&dev_data->mutex, K_FOREVER);  in flash_gd32_write()
 66 	k_sem_give(&dev_data->mutex);  in flash_gd32_write()
 84 	k_sem_take(&data->mutex, K_FOREVER);  in flash_gd32_erase()
 88 	k_sem_give(&data->mutex);  in flash_gd32_erase()
 115 	k_sem_init(&data->mutex, 1, 1);  in flash_gd32_init()
 
 | 
| /Zephyr-latest/tests/kernel/mutex/sys_mutex/src/ | 
| D | thread_competition.c | 25 SYS_MUTEX_DEFINE(mutex);99 	sys_mutex_lock(&mutex, K_NO_WAIT);  in ZTEST()
 105 			&mutex, NULL, NULL,  in ZTEST()
 113 			&mutex, NULL, NULL,  in ZTEST()
 118 			&mutex, NULL, NULL,  in ZTEST()
 122 	sys_mutex_unlock(&mutex);  in ZTEST()
 
 | 
| /Zephyr-latest/lib/libc/armstdc/src/ | 
| D | threading_weak.c | 22 int __weak z_impl_k_mutex_init(struct k_mutex *mutex)  in z_impl_k_mutex_init()  argument27 int __weak z_impl_k_mutex_lock(struct k_mutex *mutex, k_timeout_t timeout)  in z_impl_k_mutex_lock()  argument
 32 int __weak z_impl_k_mutex_unlock(struct k_mutex *mutex)  in z_impl_k_mutex_unlock()  argument
 
 | 
| /Zephyr-latest/tests/subsys/tracing/tracing_api/src/ | 
| D | main.c | 125 	struct k_mutex mutex;  in ZTEST()  local173 	sys_trace_k_condvar_wait_enter(&condvar, &mutex, timeout);  in ZTEST()
 174 	sys_trace_k_condvar_wait_exit(&condvar, &mutex, timeout, ret);  in ZTEST()
 182 	sys_trace_k_mutex_init(&mutex, ret);  in ZTEST()
 183 	sys_trace_k_mutex_lock_enter(&mutex, timeout);  in ZTEST()
 184 	sys_trace_k_mutex_lock_exit(&mutex, timeout, ret);  in ZTEST()
 185 	sys_trace_k_mutex_lock_blocking(&mutex, timeout);  in ZTEST()
 186 	sys_trace_k_mutex_unlock_enter(&mutex);  in ZTEST()
 187 	sys_trace_k_mutex_unlock_exit(&mutex, ret);  in ZTEST()
 
 |