Searched refs:sem (Results 1 – 9 of 9) sorted by relevance
/hal_rpi_pico-latest/src/common/pico_sync/ |
D | sem.c | 10 void sem_init(semaphore_t *sem, int16_t initial_permits, int16_t max_permits) { in sem_init() argument 11 lock_init(&sem->core, next_striped_spin_lock_num()); in sem_init() 12 sem->permits = initial_permits; in sem_init() 13 sem->max_permits = max_permits; in sem_init() 17 int __time_critical_func(sem_available)(semaphore_t *sem) { in __time_critical_func() 19 return *(volatile typeof(sem->permits) *) &sem->permits; in __time_critical_func() 21 static_assert(sizeof(sem->permits) == 2, ""); in __time_critical_func() 22 return *(volatile int16_t *) &sem->permits; in __time_critical_func() 26 void __time_critical_func(sem_acquire_blocking)(semaphore_t *sem) { in __time_critical_func() 28 uint32_t save = spin_lock_blocking(sem->core.spin_lock); in __time_critical_func() [all …]
|
D | BUILD.bazel | 11 "include/pico/sem.h", 27 "sem.c",
|
D | CMakeLists.txt | 25 ${CMAKE_CURRENT_LIST_DIR}/sem.c
|
/hal_rpi_pico-latest/src/common/pico_sync/include/pico/ |
D | sem.h | 45 void sem_init(semaphore_t *sem, int16_t initial_permits, int16_t max_permits); 53 int sem_available(semaphore_t *sem); 64 bool sem_release(semaphore_t *sem); 74 void sem_reset(semaphore_t *sem, int16_t permits); 83 void sem_acquire_blocking(semaphore_t *sem); 96 bool sem_acquire_timeout_ms(semaphore_t *sem, uint32_t timeout_ms); 109 bool sem_acquire_timeout_us(semaphore_t *sem, uint32_t timeout_us); 123 bool sem_acquire_block_until(semaphore_t *sem, absolute_time_t until); 134 bool sem_try_acquire(semaphore_t *sem);
|
/hal_rpi_pico-latest/test/pico_sem_test/ |
D | pico_sem_test.c | 16 semaphore_t sem; in main() local 19 sem_init(&sem, 1, 1); in main() 24 PICOTEST_CHECK(sem_try_acquire(&sem), "available permit not acquired"); in main() 25 PICOTEST_CHECK(!sem_try_acquire(&sem), "success with no permits"); in main()
|
/hal_rpi_pico-latest/src/rp2_common/pico_async_context/ |
D | async_context_poll.c | 21 sem_init(&self->sem, 1, 1); in async_context_poll_init_with_defaults() 26 sem_release(&((async_context_poll_t *)self_base)->sem); in async_context_poll_wake_up() 45 sem_acquire_block_until(&self->sem, absolute_time_min(next_time, until)); in async_context_poll_wait_for_work_until()
|
D | async_context_freertos.c | 181 SemaphoreHandle_t sem; member 190 xSemaphoreGive(call->sem); in handle_sync_func_call() 200 call.sem = xSemaphoreCreateBinary(); in async_context_freertos_execute_sync() 203 xSemaphoreTake(call.sem, portMAX_DELAY); in async_context_freertos_execute_sync() 205 vSemaphoreDelete(call.sem); in async_context_freertos_execute_sync()
|
D | async_context_threadsafe_background.c | 92 semaphore_t sem; member 101 sem_release(&call->sem); in handle_sync_func_call() 147 sem_init(&call.sem, 0, 1); in async_context_threadsafe_background_execute_sync() 150 sem_acquire_blocking(&call.sem); in async_context_threadsafe_background_execute_sync()
|
/hal_rpi_pico-latest/src/rp2_common/pico_async_context/include/pico/ |
D | async_context_poll.h | 30 semaphore_t sem; member
|