diff --git a/docs/software_requirements/condition_variables.sdoc b/docs/software_requirements/condition_variables.sdoc new file mode 100644 index 0000000..50c1ba6 --- /dev/null +++ b/docs/software_requirements/condition_variables.sdoc @@ -0,0 +1,123 @@ +[DOCUMENT] +TITLE: Condition Variables +REQ_PREFIX: ZEP-SRS-21- + +[GRAMMAR] +IMPORT_FROM_FILE: software_requirements.sgra + +[REQUIREMENT] +UID: ZEP-SRS-21-1 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Dynamic initialization of condition variables +STATEMENT: >>> +The Zephyr RTOS shall provide a mechanism to define and initialize a condition variable dynamically (at runtime). +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 + +[REQUIREMENT] +UID: ZEP-SRS-21-2 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Static initialization of condition variables +STATEMENT: >>> +The Zephyr RTOS shall provide a mechanism to define and initialize a condition variable statically (at compile time). +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 + +[REQUIREMENT] +UID: ZEP-SRS-21-3 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Signal one waiting thread +STATEMENT: >>> +The Zephyr RTOS shall provide a mechanism to signal the highest priorite waiting thread when a condition is met. +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 + +[REQUIREMENT] +UID: ZEP-SRS-21-4 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Signal multiple waiting threads +STATEMENT: >>> +The Zephyr RTOS shall provide a mechanism to signal all waiting threads when a condition is met. +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 + +[REQUIREMENT] +UID: ZEP-SRS-21-5 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Wait on a condition variable +STATEMENT: >>> +The Zephyr RTOS shall provide a mechanism for a thread to wait on a condition variable. +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 + +[REQUIREMENT] +UID: ZEP-SRS-21-6 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Wait timeout on a condition variable +STATEMENT: >>> +When waiting on a condition variable, the thread shall specify a timeout value. +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 + +[REQUIREMENT] +UID: ZEP-SRS-21-7 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Wait timeout occurence +STATEMENT: >>> +When a timeout occurs while waiting on a condition variable, the thread shall be unblocked and a timeout error shall be returned. +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 + +[REQUIREMENT] +UID: ZEP-SRS-21-8 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Release mutex on wait +STATEMENT: >>> +If a thread is waiting on a condition variable, the thread shall release the current owned mutex independently. +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 + +[REQUIREMENT] +UID: ZEP-SRS-21-9 +STATUS: Draft +TYPE: Functional +COMPONENT: Condition Variables +TITLE: Unblock a waiting thread +STATEMENT: >>> +henever some thread signals a condition variable the Zephyr RTOS shall unblock the highest priority thread currently waiting for this condition variable. +<<< +RELATIONS: +- TYPE: Parent + VALUE: ZEP-SYRS-20 diff --git a/docs/software_requirements/index.sdoc b/docs/software_requirements/index.sdoc index 9a47f5c..a39b666 100644 --- a/docs/software_requirements/index.sdoc +++ b/docs/software_requirements/index.sdoc @@ -66,3 +66,6 @@ FILE: timers.sdoc [DOCUMENT_FROM_FILE] FILE: tracing.sdoc + +[DOCUMENT_FROM_FILE] +FILE: condition_variables.sdoc diff --git a/docs/system_requirements/index.sdoc b/docs/system_requirements/index.sdoc index da2443c..a73ccda 100644 --- a/docs/system_requirements/index.sdoc +++ b/docs/system_requirements/index.sdoc @@ -293,3 +293,18 @@ Zepyhr shall provide a framework mechanism for tracing low level system operatio USER_STORY: >>> As a Zephyr RTOS user, I want to be able to trace different OS operations. <<< + +[SECTION] +TITLE: Condition Variables + +[REQUIREMENT] +UID: ZEP-SYRS-21 +STATUS: Draft +TYPE: Non-Functional +COMPONENT: Condition Variables +TITLE: Condition Variables +STATEMENT: >>> +The Zephyr RTOS shall provide a framework to synchronize threads based on a condition variable. +<<< + +[/SECTION]