1. Work Queue Management
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
-
26.1. Thread support ZEP-SYRS-15 The Zephyr RTOS shall support threads.
The Zephyr RTOS shall provide a mechanism to initialize a work queue.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
-
26.1. Thread support ZEP-SYRS-15 The Zephyr RTOS shall support threads.
The Zephyr RTOS shall provide a mechanism to start an initialized work queue, dedicating a thread to process its work items.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to process the work items of an initialized work queue that has not been started, in the context of the calling thread, returning only when the work queue is stopped.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
When a work queue is started, the Zephyr RTOS shall allow the priority of its dedicated thread to be configured.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
When a work queue is started, the Zephyr RTOS shall allow a name to be assigned to the work queue's dedicated thread.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
When a work queue is started, the Zephyr RTOS shall allow the work queue's dedicated thread to be marked as essential to system operation.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall process the work items of a work queue in the order in which they were submitted.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
While yielding between work items is enabled for a work queue, the Zephyr RTOS shall cause the work queue thread to yield to other ready threads between processing successive work items.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
While yielding between work items is disabled for a work queue, the Zephyr RTOS shall not yield the work queue thread until no work items remain queued.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to wait until all work items submitted to a work queue have been processed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
While a work queue is draining, the Zephyr RTOS shall reject submission of work items to that work queue unless the submission originates from the work queue's own thread.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
When a drain operation is initiated with submission blocking enabled, the Zephyr RTOS shall continue to prevent submission of work items to the work queue after the drain completes, until submissions are explicitly re-enabled.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to allow work items to be submitted again to a work queue whose submissions were previously blocked.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to stop the dedicated thread of a work queue that has been drained and is blocking new submissions.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
When stopping a work queue, the Zephyr RTOS shall wait for the work queue thread to terminate for at most a caller-specified timeout.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
If the work queue thread has not terminated when the stop timeout expires, then the Zephyr RTOS shall return an error indicating timeout and leave the work queue running.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
If a stop is requested for a work queue whose dedicated thread is marked as essential to system operation, then the Zephyr RTOS shall reject the request and return an error indicating that the operation is not supported.
2. Work Item Submission and Processing
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to initialize a work item at run time, associating a handler function to be executed when the work item is processed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to define and initialize a work item at compile time, associating a handler function to be executed when the work item is processed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a system work queue that is started during kernel initialization and is available to application and kernel code.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to submit a work item to the system work queue.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to submit a work item to a specified work queue.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall allow a work item to be submitted from either a thread or an interrupt service routine.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
When the work queue thread removes a work item from the queue, the Zephyr RTOS shall invoke that work item's handler function in the context of the work queue thread.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
If a work item is submitted while it is already queued and has not yet started running, then the Zephyr RTOS shall retain the work item at its current position in the queue.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
If a work item is submitted while its handler function is running, then the Zephyr RTOS shall queue the work item to be processed again after the running handler function completes.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
If a work item is submitted to a work queue while its handler function is running on a different work queue, then the Zephyr RTOS shall queue the work item on the work queue that is running it.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to wait until a submitted work item's handler function has finished executing.
3. Work Item Status and Cancellation
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to determine whether a work item is currently pending, where a work item is pending while it is waiting for its delay to elapse, queued to a work queue, running, being cancelled, or being flushed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to cancel a work item that has been submitted but has not yet started running, so that its handler function is not invoked.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
If a work item's handler function has already started running when the work item is cancelled, then the Zephyr RTOS shall not interrupt the execution of that handler function.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to cancel a work item and wait until the work item is no longer pending.
4. Delayable Work
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to initialize a delayable work item at run time, associating a handler function to be executed when the work item is processed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to define and initialize a delayable work item at compile time, associating a handler function to be executed when the work item is processed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to schedule a delayable work item to be submitted to a specified work queue after a specified delay.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to schedule a delayable work item to be submitted to the system work queue after a specified delay.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
When the scheduled delay of a delayable work item elapses, the Zephyr RTOS shall submit the work item to its work queue.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to reschedule a delayable work item that is scheduled but not yet submitted, replacing the previously scheduled delay with the new delay.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
If a delayable work item is rescheduled with a non-zero delay while it is queued or running, then the Zephyr RTOS shall leave that execution unaffected and schedule an additional submission of the work item after the new delay.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to cancel a delayable work item that has been scheduled but not yet submitted to its work queue, so that it is not submitted.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to wait until a delayable work item's handler function has finished executing.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
When a wait for completion is requested for a delayable work item that is scheduled but not yet submitted, the Zephyr RTOS shall submit the work item to its work queue immediately before waiting.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to cancel a delayable work item and wait until the work item is no longer pending.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to query the time remaining until a scheduled delayable work item is submitted to its work queue.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
Where workqueue work timeout monitoring is enabled, the Zephyr RTOS shall monitor the execution duration of each work item and, if a work item handler runs longer than the configured timeout, abort the work queue thread.
5. Triggered Work
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to initialize a triggered work item at run time, associating a handler function to be executed when the work item is processed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to submit a work item that is processed when any of a specified set of poll events becomes ready or when a specified timeout elapses, and to report the triggering outcome to the work item handler.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
If a triggered work item is submitted while it is still waiting for its poll events, then the Zephyr RTOS shall cancel the existing submission and resubmit the work item with the new set of poll events.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to cancel a submitted triggered work item before any of its poll events becomes ready.
6. User Mode Work Queues
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to initialize, at run time, a work item usable by user mode threads, associating a handler function to be executed when the work item is processed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to define and initialize, at compile time, a work item usable by user mode threads, associating a handler function to be executed when the work item is processed.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism to start a work queue whose dedicated thread runs in user mode.
-
29.1. Work Queues ZEP-SYRS-37 The Zephyr RTOS shall provide a framework to offload the processing of work items to a dedicated thread.
The Zephyr RTOS shall provide a mechanism for user mode threads to submit a work item to a user mode work queue.