Home
last modified time | relevance | path

Searched refs:mutex (Results 1 – 25 of 182) sorted by relevance

12345678

/Zephyr-latest/kernel/
Dmutex.c55 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/
Dmutex.c26 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/
Dmutex.h68 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/
Dmutex.c12 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/
Dmtx.c13 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/
Dcmsis_mutex.c19 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/
Dmtx.c22 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 …]
Dcnd.c19 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/
Dmutex.c15 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/
DREADME.rst11 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/
Dmutexes.rst6 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/
Dpktqueue.c11 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/
Dusbh_api.c18 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/
Dthreading.c56 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/
Dlvgl_zephyr_osal.c49 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/
Dethos_u.c29 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/
Dmain.c17 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/
Ddisplay_sdl_bottom.c17 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 …]
Ddisplay_sdl_bottom.h24 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/
Di2c_gpio.c50 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/
Dthreads.h52 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/
Dflash_gd32.c21 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/
Dthread_competition.c25 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/
Dthreading_weak.c22 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/
Dmain.c118 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()

12345678