/Zephyr-latest/kernel/ |
D | mutex.c | 55 int z_impl_k_mutex_init(struct k_mutex *mutex) in z_impl_k_mutex_init() argument 57 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 | 26 struct cv2_mutex *mutex; in osMutexNew() local 42 if (k_mem_slab_alloc(&cv2_mutex_slab, (void **)&mutex, K_MSEC(100)) == 0) { in osMutexNew() 43 memset(mutex, 0, sizeof(struct cv2_mutex)); in osMutexNew() 48 k_mutex_init(&mutex->z_mutex); in osMutexNew() 49 mutex->state = attr->attr_bits; in osMutexNew() 52 strncpy(mutex->name, init_mutex_attrs.name, in osMutexNew() 53 sizeof(mutex->name) - 1); in osMutexNew() 55 strncpy(mutex->name, attr->name, sizeof(mutex->name) - 1); in osMutexNew() 58 return (osMutexId_t)mutex; in osMutexNew() 66 struct cv2_mutex *mutex = (struct cv2_mutex *) mutex_id; in osMutexAcquire() local [all …]
|
/Zephyr-latest/include/zephyr/sys/ |
D | mutex.h | 68 static inline void sys_mutex_init(struct sys_mutex *mutex) in sys_mutex_init() argument 70 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() argument 16 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() argument 36 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() local 29 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; variable 28 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; member 53 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; variable 24 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 mutex 41 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 traditional 7 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() argument 14 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() argument 58 __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/modules/lvgl/ |
D | lvgl_zephyr_osal.c | 49 lv_result_t lv_mutex_init(lv_mutex_t *mutex) in lv_mutex_init() argument 51 k_mutex_init(mutex); in lv_mutex_init() 55 lv_result_t lv_mutex_lock(lv_mutex_t *mutex) in lv_mutex_lock() argument 59 ret = k_mutex_lock(mutex, K_FOREVER); in lv_mutex_lock() 68 lv_result_t lv_mutex_lock_isr(lv_mutex_t *mutex) in lv_mutex_lock_isr() argument 72 ret = k_mutex_lock(mutex, K_NO_WAIT); in lv_mutex_lock_isr() 81 lv_result_t lv_mutex_unlock(lv_mutex_t *mutex) in lv_mutex_unlock() argument 85 ret = k_mutex_unlock(mutex); in lv_mutex_unlock() 94 lv_result_t lv_mutex_delete(lv_mutex_t *mutex) in lv_mutex_delete() argument 96 ARG_UNUSED(mutex); in lv_mutex_delete()
|
/Zephyr-latest/drivers/misc/ethos_u/ |
D | ethos_u.c | 29 struct k_mutex *mutex; in ethosu_mutex_create() local 31 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/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() argument 42 *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; member 87 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; member 62 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() argument 27 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 | 118 struct k_mutex mutex; in ZTEST() local 166 sys_trace_k_condvar_wait_enter(&condvar, &mutex, timeout); in ZTEST() 167 sys_trace_k_condvar_wait_exit(&condvar, &mutex, timeout, ret); in ZTEST() 175 sys_trace_k_mutex_init(&mutex, ret); in ZTEST() 176 sys_trace_k_mutex_lock_enter(&mutex, timeout); in ZTEST() 177 sys_trace_k_mutex_lock_exit(&mutex, timeout, ret); in ZTEST() 178 sys_trace_k_mutex_lock_blocking(&mutex, timeout); in ZTEST() 179 sys_trace_k_mutex_unlock_enter(&mutex); in ZTEST() 180 sys_trace_k_mutex_unlock_exit(&mutex, ret); in ZTEST()
|