You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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]>
Copy file name to clipboardExpand all lines: docs/software_requirements/mailboxes.sdoc
+6-87Lines changed: 6 additions & 87 deletions
Original file line number
Diff line number
Diff line change
@@ -42,19 +42,6 @@ RELATIONS:
42
42
- TYPE: Parent
43
43
VALUE: ZEP-SYRS-22
44
44
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
-
58
45
[REQUIREMENT]
59
46
UID: ZEP-SRS-22-4
60
47
STATUS: Draft
@@ -71,19 +58,6 @@ RELATIONS:
71
58
- TYPE: Parent
72
59
VALUE: ZEP-SYRS-22
73
60
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
-
87
61
[REQUIREMENT]
88
62
UID: ZEP-SRS-22-6
89
63
STATUS: Draft
@@ -97,30 +71,14 @@ RELATIONS:
97
71
- TYPE: Parent
98
72
VALUE: ZEP-SYRS-22
99
73
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
-
116
74
[REQUIREMENT]
117
75
UID: ZEP-SRS-22-8
118
76
STATUS: Draft
119
77
TYPE: Functional
120
78
COMPONENT: Mailboxes
121
79
TITLE: Synchronous Message Sending
122
80
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.
124
82
<<<
125
83
USER_STORY: >>>
126
84
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:
129
87
- TYPE: Parent
130
88
VALUE: ZEP-SYRS-22
131
89
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
-
145
90
[REQUIREMENT]
146
91
UID: ZEP-SRS-22-10
147
92
STATUS: Draft
148
93
TYPE: Functional
149
94
COMPONENT: Mailboxes
150
95
TITLE: Synchronous Send Timeout Handling
151
96
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.
153
98
<<<
154
99
USER_STORY: >>>
155
100
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
165
110
COMPONENT: Mailboxes
166
111
TITLE: Asynchronous Message Sending
167
112
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.
169
114
<<<
170
115
USER_STORY: >>>
171
116
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:
174
119
- TYPE: Parent
175
120
VALUE: ZEP-SYRS-22
176
121
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
-
190
122
[REQUIREMENT]
191
123
UID: ZEP-SRS-22-13
192
124
STATUS: Draft
193
125
TYPE: Functional
194
126
COMPONENT: Mailboxes
195
127
TITLE: Asynchronous Completion Signaling
196
128
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.
198
130
<<<
199
131
USER_STORY: >>>
200
132
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
226
158
COMPONENT: Mailboxes
227
159
TITLE: Message Data Retrieval
228
160
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.
230
162
<<<
231
163
USER_STORY: >>>
232
164
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:
280
212
- TYPE: Parent
281
213
VALUE: ZEP-SYRS-22
282
214
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
-
296
215
[REQUIREMENT]
297
216
UID: ZEP-SRS-22-20
298
217
STATUS: Draft
@@ -358,7 +277,7 @@ TYPE: Functional
358
277
COMPONENT: Mailboxes
359
278
TITLE: Invalid Parameter Handling
360
279
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.
362
281
<<<
363
282
USER_STORY: >>>
364
283
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