Zephyr Project Requirements
Mailboxes
  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-1
1. Mailbox Initialization At Run Time ZEP-SRS-25-1

The Zephyr RTOS shall provide a mechanism to define and initialize a mailbox at run time.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-2
2. Mailbox Initialization At Compile Time ZEP-SRS-25-2

The Zephyr RTOS shall provide a mechanism to statically define and initialize a mailbox object at compile time.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-3
3. Message Size Support ZEP-SRS-25-3

The Zephyr RTOS shall support messages containing zero or more bytes of data.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-4
4. Mailbox Data Transfer ZEP-SRS-25-4

The Zephyr RTOS shall handle the data transfer between mailbox objects of the sending and receiving threads.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-5
5. Synchronous Message Sending ZEP-SRS-25-5

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.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-6
6. Synchronous Send Timeout Handling ZEP-SRS-25-6

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.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-7
7. Asynchronous Message Sending ZEP-SRS-25-7

The Zephyr RTOS shall provide a mechanism for a thread to send a message through a mailbox without waiting for it to be processed.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-8
8. Asynchronous Completion Signaling ZEP-SRS-25-8

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.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-9
9. Message Reception ZEP-SRS-25-9

The Zephyr RTOS shall provide a mechanism for a thread to receive a message via a mailbox object with a timeout parameter.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-10
10. Message Data Retrieval ZEP-SRS-25-10

The Zephyr RTOS shall provide a mechanism for a thread to retrieve message data via a mailbox object.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-11
11. Message Reception Blocking ZEP-SRS-25-11

When a receiving thread requests a message via a mailbox object and no message is available, the Zephyr RTOS shall block the receiving thread until a message is available or the timeout expires.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-12
12. Message Reception Timeout Handling ZEP-SRS-25-12

If the message receive operation times out before a message becomes available, the Zephyr RTOS shall return an appropriate timeout error code to the receiving thread.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-13
13. Non-Anonymous Messaging ZEP-SRS-25-13

The Zephyr RTOS shall handle message exchange via a mailbox object non-anonymously, allowing both the sending and receiving threads to know the identity of the other thread.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-14
14. Priority-Based Message Delivery ZEP-SRS-25-14

When multiple threads are waiting on an empty mailbox object, the Zephyr RTOS shall deliver the next message to the highest priority thread.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-15
15. Priority-Based Message Delivery ZEP-SRS-25-15

When multiple threads of equal priority are waiting on an empty mailbox object, the Zephyr RTOS shall deliver the next message to the thread that has waited the longest.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-16
16. Mailbox Quantity Support ZEP-SRS-25-16

The Zephyr RTOS shall support an arbitrary number of mailbox objects, limited only by available RAM in the system.

  • ZEP-SYRS-25
    14.1. Mailboxes ZEP-SYRS-25

    The Zephyr RTOS shall provide a framework to pass messages of arbitrary size between threads.

ZEP-SRS-25-17
17. Invalid Parameter Handling ZEP-SRS-25-17

The Zephyr RTOS shall handle invalid parameters by returning error codes rather than causing system failures.