If there are pending readers, it is best to perform a single data copy
directly into their final destination buffer rather than doing one copy
into the ring buffer just to immediately copy the same data out of it.
Incidentally, this allows for supporting pipes with no ring buffer at all.
The pipe implementation being deprecated has a similar capability so better
have it here too.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
This commit updates the k_pipe documentation to reflect the rewritten
interface.
Changes include:
* Detailed explanations of k_pipe concepts, initialization, and usage.
* Examples for defining, writing to, reading from, flushing,
and closing a pipe.
* Clarified behavior in edge cases and introduced enhanced error-handling
details.
Updated suggested use cases and API references.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
Updates the pipes documentation to generate a link to CONFIG_PIPES
Kconfig option description instead of merely listing the name of
this option.
Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Replaces sizeof(header) which is equal to the size of the pointer,
by sizeof (*header), which is equal to the size of struct message_header.
Signed-off-by: Andrej Butok <andrey.butok@nxp.com>
Alignment of the message queue's ring buffer is not necessary.
The underlying implementation uses memcpy (which is
alignment-agnostic) and does not expose any internal pointers
Signed-off-by: Grant Ramsay <gramsay@enphaseenergy.com>
Updates the FIFO and LIFO documentation to clarify behavior
surrounding re-adding data items to queues.
Fixes#56336
Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
The commit c844bd87b3 removed the support
for passing a memory block (allocated in a memory pool) as message
data, but did not update the relevant documentation.
This commit removes any references to the memory block support, which
was removed in the v2.5.0 release, in the mailbox API documentation.
Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
The pipes implementation has been updated to allow ISRs to both
send and receive data to/from pipes provided the K_NO_WAIT timeout
option is used.
Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Moves the 'Flushing a Pipe' code example to the correct location
and section and re-adds the 'Suggested Uses' text missing
compared to v2.7.
Signed-off-by: Archie Atkinson <archie.atkinson@chiaro.co.uk>