documentation/kernel/utils/stream.h.md

27 lines
1.3 KiB
Markdown
Raw Normal View History

2023-05-28 17:16:43 +00:00
# stream.h
Streams are cycled buffers, that have __one__ input and __one__ output.
# `stream_T` - struct
| Name | Type | Description |
|--------------|----------|----------------------------------------------------------------------------------|
| buffer | uint8_t* | The buffer where all the streams data is stored in. |
| size | uint32_t | The size of _buffer_ in bytes. |
| pos_sender | uint32_t | The senders (input) position in the buffer. |
| pos_receiver | uint32_t | The receivers (output) position in the buffer. This is always behind the sender. |
# `stream_alloc(size)` - function (stream_T*)
Allocates and returns a new stream, with a buffer of size **_size_**.
# `stream_destruct(stream)` - function (void)
Frees the resources of a stream.
# `stream_write(stream, buffer_in, n)` - function (uint32_t)
Writes at most **_n_** bytes from **_buffer_in_** into **_stream_**.
Returns the amount of bytes, that where actually written into the stream.
# `stream_read(stream, buffer_out, n)` - function (uint32_t)
Reads at most **_n_** bytes from **_stream_** into **_buffer_out_**.
Returns the amount of bytes, that where actually read from the stream.