More details.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@14245 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
368fa59d4e
commit
3c77181e9c
|
@ -190,8 +190,6 @@
|
||||||
*
|
*
|
||||||
* @startuml {rt_arch.png} "RT Synchronization"
|
* @startuml {rt_arch.png} "RT Synchronization"
|
||||||
* package OS {
|
* package OS {
|
||||||
* class ch_system_t
|
|
||||||
* class ready_list_t
|
|
||||||
* class thread_t {
|
* class thread_t {
|
||||||
* - queue: ch_queue_t
|
* - queue: ch_queue_t
|
||||||
* - wtmtxp: mutex_t *
|
* - wtmtxp: mutex_t *
|
||||||
|
@ -201,7 +199,7 @@
|
||||||
* class ch_list_t
|
* class ch_list_t
|
||||||
* class ch_queue_t
|
* class ch_queue_t
|
||||||
* }
|
* }
|
||||||
* package Synchronization {
|
* package "Low Level Synchronization" {
|
||||||
*
|
*
|
||||||
* class thread_reference_t {
|
* class thread_reference_t {
|
||||||
* - ref : thread_t *
|
* - ref : thread_t *
|
||||||
|
@ -210,13 +208,23 @@
|
||||||
* + chThdResumeI()
|
* + chThdResumeI()
|
||||||
* + chThdResumeS()
|
* + chThdResumeS()
|
||||||
* }
|
* }
|
||||||
* class thread_queue_t {
|
* class threads_queue_t {
|
||||||
* - queue: ch_queue_t
|
* - queue: ch_queue_t
|
||||||
* + chThdQueueObjectInit()
|
* + chThdQueueObjectInit()
|
||||||
* + chThdEnqueueTimeoutS()
|
* + chThdEnqueueTimeoutS()
|
||||||
* + chThdDequeueNextI()
|
* + chThdDequeueNextI()
|
||||||
* + chThdDequeueAllI()
|
* + chThdDequeueAllI()
|
||||||
* }
|
* }
|
||||||
|
* }
|
||||||
|
* package Messages {
|
||||||
|
* class messages <<(S,#FF7700) Singleton>> {
|
||||||
|
* + {static} chMsgWait()
|
||||||
|
* + {static} chMsgGet()
|
||||||
|
* + {static} chMsgRelease()
|
||||||
|
* + {static} chMsgSend()
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* package Semaphores {
|
||||||
* class semaphore_t {
|
* class semaphore_t {
|
||||||
* - queue: ch_queue_t
|
* - queue: ch_queue_t
|
||||||
* - cnt : cnt_t
|
* - cnt : cnt_t
|
||||||
|
@ -226,6 +234,8 @@
|
||||||
* + chSemSignal()
|
* + chSemSignal()
|
||||||
* + chSemReset()
|
* + chSemReset()
|
||||||
* }
|
* }
|
||||||
|
* }
|
||||||
|
* package Monitors {
|
||||||
* class mutex_t {
|
* class mutex_t {
|
||||||
* - queue: ch_queue_t
|
* - queue: ch_queue_t
|
||||||
* - owner : thread_t *
|
* - owner : thread_t *
|
||||||
|
@ -245,50 +255,48 @@
|
||||||
* + chCondWait()
|
* + chCondWait()
|
||||||
* + chCondWaitTimeout()
|
* + chCondWaitTimeout()
|
||||||
* }
|
* }
|
||||||
* class events {
|
* mutex_t "1" .l. "0..*" condition_variable_t : indirect\ncollaboration
|
||||||
* + chEvtObjectInit()
|
* mutex_t o-- "0..*" thread_t : waiting\nthreads
|
||||||
* + chEvtRegister()
|
* mutex_t o-- "0..1" thread_t : owner\nthread
|
||||||
* + chEvtBroadcastFlags()
|
* mutex_t o-- "0..1" mutex_t : next\nowned mutex
|
||||||
|
* condition_variable_t o-- "0..*" thread_t : waiting\nthreads
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* messages -u- thread_t : collaboration
|
||||||
|
*
|
||||||
|
* package Events {
|
||||||
|
* class events <<(S,#FF7700) Singleton>> {
|
||||||
* + {static} chEvtSignal()
|
* + {static} chEvtSignal()
|
||||||
* + {static} chEvtWaitOne()
|
* + {static} chEvtWaitOne()
|
||||||
* + {static} chEvtWaitAny()
|
* + {static} chEvtWaitAny()
|
||||||
* + {static} chEvtWaitAll()
|
* + {static} chEvtWaitAll()
|
||||||
* + {static} chEvtDispatch()
|
* + {static} chEvtDispatch()
|
||||||
* }
|
* }
|
||||||
* }
|
* class event_source_t {
|
||||||
* package Messages {
|
* + chEvtObjectInit()
|
||||||
* class messages <<(S,#FF7700) Singleton>> {
|
* + chEvtRegister()
|
||||||
* + {static} chMsgWait()
|
* + chEvtBroadcastFlags()
|
||||||
* + {static} chMsgGet()
|
|
||||||
* + {static} chMsgRelease()
|
|
||||||
* + {static} chMsgSend()
|
|
||||||
* }
|
* }
|
||||||
|
* class event_listener_t {
|
||||||
|
* }
|
||||||
|
* event_source_t o-- event_listener_t : registered\nlisteners
|
||||||
|
* event_listener_t o-- "1" thread_t : listening\nthread
|
||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
* Synchronization ..> OS : use
|
* events -u- thread_t : collaboration
|
||||||
*
|
*
|
||||||
* thread_reference_t o-- "0..1" thread_t : referred\nthread
|
* thread_reference_t o-- "0..1" thread_t : referred\nthread
|
||||||
*
|
*
|
||||||
* thread_queue_t o-- "0..*" thread_t : queued\nthreads
|
* threads_queue_t o-- "0..*" thread_t : queued\nthreads
|
||||||
*
|
*
|
||||||
* ch_queue_t "1" --* thread_queue_t
|
* ch_queue_t "1" --* threads_queue_t
|
||||||
* ch_queue_t "1" --* semaphore_t
|
* ch_queue_t "1" --* semaphore_t
|
||||||
* ch_queue_t "1" --* mutex_t
|
* ch_queue_t "1" --* mutex_t
|
||||||
* ch_queue_t "1" --* condition_variable_t
|
* ch_queue_t "1" --* condition_variable_t
|
||||||
*
|
*
|
||||||
* thread_t <.. messages : use
|
* thread_t o-- "0..*" mutex_t: owned\nmutexes
|
||||||
*
|
|
||||||
* thread_t o-- "0..1" mutex_t: owned\nmutexes
|
|
||||||
*
|
*
|
||||||
* semaphore_t o-- "0..*" thread_t : waiting\nthreads
|
* semaphore_t o-- "0..*" thread_t : waiting\nthreads
|
||||||
*
|
*
|
||||||
* condition_variable_t o-- "0..*" thread_t : waiting\nthreads
|
|
||||||
*
|
|
||||||
* mutex_t "1" -l- "0..*" condition_variable_t : collaboration
|
|
||||||
* mutex_t o-- "0..*" thread_t : waiting\nthreads
|
|
||||||
* mutex_t o-- "0..1" thread_t : waiting\nthreads
|
|
||||||
* mutex_t o-- "0..1" mutex_t : next\nowned mutex
|
|
||||||
* mutex_t "0..*" --o thread_t : owned\nmutexes
|
|
||||||
*
|
|
||||||
* @enduml
|
* @enduml
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue