mirror of
https://github.com/apache/nuttx.git
synced 2026-08-29 21:30:44 +00:00
The kernel mapping should be performed in sem_wait (thread level) as virtual memory mappings cannot be added from interrupt, at least for now. The reason? kmm_map() depends on mm_map_add(), which in turn uses a mutex for mutual exclusion. Using mutexes from interrupt level is not permitted. Mapping tcb->waitobj into kernel virtual memory directly in sem_wait() makes sense, since accessing tcb->waitobj via a user virtual address can lead to unexpected results (the wrong mappings can be in place). |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| Make.defs | ||
| sem_clockwait.c | ||
| sem_destroy.c | ||
| sem_holder.c | ||
| sem_initialize.c | ||
| sem_post.c | ||
| sem_protect.c | ||
| sem_recover.c | ||
| sem_reset.c | ||
| sem_rw.c | ||
| sem_setprotocol.c | ||
| sem_tickwait.c | ||
| sem_timedwait.c | ||
| sem_timeout.c | ||
| sem_trywait.c | ||
| sem_wait.c | ||
| sem_waitirq.c | ||
| semaphore.h | ||