Skip to content

Commit 87c7e24

Browse files
committed
mailbox-requirements: Updates from latest feedback
Deleted / simplified requirements with implementation details Updated phrasing of synchronous and asynchronous mailbox sends signed-off-by: Joel Key <[email protected]>
1 parent 1ec0c82 commit 87c7e24

File tree

1 file changed

+6
-87
lines changed

1 file changed

+6
-87
lines changed

docs/software_requirements/mailboxes.sdoc

Lines changed: 6 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,6 @@ RELATIONS:
4242
- TYPE: Parent
4343
VALUE: ZEP-SYRS-22
4444

45-
[REQUIREMENT]
46-
UID: ZEP-SRS-22-3
47-
STATUS: Draft
48-
TYPE: Functional
49-
COMPONENT: Mailboxes
50-
TITLE: Queue Initialization
51-
STATEMENT: >>>
52-
When a mailbox is initialized, the Zephyr RTOS shall set both the send queue and receive queue of that mailbox to empty.
53-
<<<
54-
RELATIONS:
55-
- TYPE: Parent
56-
VALUE: ZEP-SYRS-22
57-
5845
[REQUIREMENT]
5946
UID: ZEP-SRS-22-4
6047
STATUS: Draft
@@ -71,19 +58,6 @@ RELATIONS:
7158
- TYPE: Parent
7259
VALUE: ZEP-SYRS-22
7360

74-
[REQUIREMENT]
75-
UID: ZEP-SRS-22-5
76-
STATUS: Draft
77-
TYPE: Functional
78-
COMPONENT: Mailboxes
79-
TITLE: Message Descriptor Usage
80-
STATEMENT: >>>
81-
The Zephyr RTOS shall use message descriptors to specify where a message's data is located and how the message is to be handled by the mailbox.
82-
<<<
83-
RELATIONS:
84-
- TYPE: Parent
85-
VALUE: ZEP-SYRS-22
86-
8761
[REQUIREMENT]
8862
UID: ZEP-SRS-22-6
8963
STATUS: Draft
@@ -97,30 +71,14 @@ RELATIONS:
9771
- TYPE: Parent
9872
VALUE: ZEP-SYRS-22
9973

100-
[REQUIREMENT]
101-
UID: ZEP-SRS-22-7
102-
STATUS: Draft
103-
TYPE: Functional
104-
COMPONENT: Mailboxes
105-
TITLE: Empty Message Support
106-
STATEMENT: >>>
107-
Where message data is non-existent (i.e., an empty message), the Zephyr RTOS shall correctly handle the message exchange without requiring buffer allocation.
108-
<<<
109-
USER_STORY: >>>
110-
As a Zephyr RTOS developer, I want to be able to send signals or notifications that don't carry data so that I can trigger actions in other threads without the overhead of data transfer.
111-
<<<
112-
RELATIONS:
113-
- TYPE: Parent
114-
VALUE: ZEP-SYRS-22
115-
11674
[REQUIREMENT]
11775
UID: ZEP-SRS-22-8
11876
STATUS: Draft
11977
TYPE: Functional
12078
COMPONENT: Mailboxes
12179
TITLE: Synchronous Message Sending
12280
STATEMENT: >>>
123-
The Zephyr RTOS shall provide a mechanism for a thread to send message via a mailbox object in a synchronous manner with a timeout parameter.
81+
The Zephyr RTOS shall provide a mechanism for a thread to send a message through a mailbox and block until the message is processed or a timeout occurs.
12482
<<<
12583
USER_STORY: >>>
12684
As a Zephyr RTOS developer, I want to be able to send a message and wait for it to be processed so that I can be sure the message was received before continuing execution.
@@ -129,27 +87,14 @@ RELATIONS:
12987
- TYPE: Parent
13088
VALUE: ZEP-SYRS-22
13189

132-
[REQUIREMENT]
133-
UID: ZEP-SRS-22-9
134-
STATUS: Draft
135-
TYPE: Functional
136-
COMPONENT: Mailboxes
137-
TITLE: Synchronous Sending Behavior
138-
STATEMENT: >>>
139-
When a synchronous message is sent, the Zephyr RTOS shall block the sending thread until a receiver processes the message or the timeout expires.
140-
<<<
141-
RELATIONS:
142-
- TYPE: Parent
143-
VALUE: ZEP-SYRS-22
144-
14590
[REQUIREMENT]
14691
UID: ZEP-SRS-22-10
14792
STATUS: Draft
14893
TYPE: Functional
14994
COMPONENT: Mailboxes
15095
TITLE: Synchronous Send Timeout Handling
15196
STATEMENT: >>>
152-
If the synchronous message send operation times out before a receiver processes the message, the Zephyr RTOS shall return an appropriate timeout error code to the sending thread.
97+
If the synchronous message send operation times out before a receiver processes the message, the Zephyr RTOS shall return an timeout error code to the sending thread.
15398
<<<
15499
USER_STORY: >>>
155100
As a Zephyr RTOS developer, I want to be able to limit how long my thread waits for a message to be received so that I can implement fallback behavior if communication takes too long.
@@ -165,7 +110,7 @@ TYPE: Functional
165110
COMPONENT: Mailboxes
166111
TITLE: Asynchronous Message Sending
167112
STATEMENT: >>>
168-
The Zephyr RTOS shall provide a mechanism for a thread to send a message in an asynchronous manner.
113+
The Zephyr RTOS shall provide a mechanism for a thread to send a message through a mailbox without waiting for it to be processed.
169114
<<<
170115
USER_STORY: >>>
171116
As a Zephyr RTOS developer, I want to be able to send a message without waiting for it to be processed so that my thread can continue execution immediately.
@@ -174,27 +119,14 @@ RELATIONS:
174119
- TYPE: Parent
175120
VALUE: ZEP-SYRS-22
176121

177-
[REQUIREMENT]
178-
UID: ZEP-SRS-22-12
179-
STATUS: Draft
180-
TYPE: Functional
181-
COMPONENT: Mailboxes
182-
TITLE: Asynchronous Sending Behavior
183-
STATEMENT: >>>
184-
When an asynchronous message is sent, the Zephyr RTOS shall not wait for a receiver to process the message before returning to the caller.
185-
<<<
186-
RELATIONS:
187-
- TYPE: Parent
188-
VALUE: ZEP-SYRS-22
189-
190122
[REQUIREMENT]
191123
UID: ZEP-SRS-22-13
192124
STATUS: Draft
193125
TYPE: Functional
194126
COMPONENT: Mailboxes
195127
TITLE: Asynchronous Completion Signaling
196128
STATEMENT: >>>
197-
When a sending thread provides a semaphore during an asynchronous send command using a mailbox object, the Zephyr RTOS shall give the semaphore when the message has been both received and completely processed by the receiver.
129+
When a sending thread asynchronously sends a message to a mailbox object, the Zephyr RTOS shall provide a mechanism to signal to the sending thread that the message has been both received and completely processed by the receiver.
198130
<<<
199131
USER_STORY: >>>
200132
As a Zephyr RTOS developer, I want to be notified when my asynchronously sent message has been fully processed so that I can perform follow-up actions without polling.
@@ -226,7 +158,7 @@ TYPE: Functional
226158
COMPONENT: Mailboxes
227159
TITLE: Message Data Retrieval
228160
STATEMENT: >>>
229-
The Zephyr RTOS shall provide a mechanism for a thread to retrieve message data via a mailbox object into a buffer and complete the message processing.
161+
The Zephyr RTOS shall provide a mechanism for a thread to retrieve message data via a mailbox object.
230162
<<<
231163
USER_STORY: >>>
232164
As a Zephyr RTOS developer, I want to be able to extract message data into my buffer after message reception so that I can process the information contained in the message.
@@ -280,19 +212,6 @@ RELATIONS:
280212
- TYPE: Parent
281213
VALUE: ZEP-SYRS-22
282214

283-
[REQUIREMENT]
284-
UID: ZEP-SRS-22-19
285-
STATUS: Draft
286-
TYPE: Functional
287-
COMPONENT: Mailboxes
288-
TITLE: Receiver Thread Queuing
289-
STATEMENT: >>>
290-
While a thread is waiting to receive a message via a mailbox object, the Zephyr RTOS shall keep the thread in the receive queue until a matching message arrives or the waiting period expires.
291-
<<<
292-
RELATIONS:
293-
- TYPE: Parent
294-
VALUE: ZEP-SYRS-22
295-
296215
[REQUIREMENT]
297216
UID: ZEP-SRS-22-20
298217
STATUS: Draft
@@ -358,7 +277,7 @@ TYPE: Functional
358277
COMPONENT: Mailboxes
359278
TITLE: Invalid Parameter Handling
360279
STATEMENT: >>>
361-
The Zephyr RTOS shall handle invalid parameters by returning appropriate error codes rather than causing system failures.
280+
The Zephyr RTOS shall handle invalid parameters by returning error codes rather than causing system failures.
362281
<<<
363282
USER_STORY: >>>
364283
As a Zephyr RTOS developer, I want the system to validate my inputs and return errors rather than crash when I provide invalid parameters so that I can develop more robust applications.

0 commit comments

Comments
 (0)