Skip to content

Commit 3706a2b

Browse files
committed
Merge commit '4a394d97f7b44fa729d3e928a67036de69952a82'
2 parents db85dd9 + 4a394d9 commit 3706a2b

5 files changed

Lines changed: 242 additions & 154 deletions

File tree

CHANGE_LOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@ All notable changes to this project/module will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project/module adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
---
8+
## V2.2.0 - 06.06.2025
9+
10+
### Added
11+
- New API functions for get full and empty state of buffers
12+
13+
### Changed
14+
- Fixing compiler warnigns on implicit type conversions
15+
16+
### Fixed
17+
- Possible compiler out of order execution (added compiler barriers)
18+
- Race conditions (added atomic counter)
19+
720
---
821
## V2.1.0 - 22.08.2023
922

LICENSE

Lines changed: 0 additions & 21 deletions
This file was deleted.

README.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,21 @@ Guidance for multi-entry usage:
5151

5252
| API Functions | Description | Prototype |
5353
| --- | ----------- | ----- |
54-
| **ring_buffer_init** | Initialization of ring buffer | ring_buffer_status_t ring_buffer_init(p_ring_buffer_t * p_ring_buffer, const uint32_t size, const ring_buffer_attr_t * const p_attr) |
55-
| **ring_buffer_is_init** | Get initialization flag | ring_buffer_status_t ring_buffer_is_init(p_ring_buffer_t buf_inst, bool * const p_is_init) |
56-
| **ring_buffer_add** | Add element to ring buffer in FIFO form | ring_buffer_status_t ring_buffer_add(p_ring_buffer_t buf_inst, const void * const p_item) |
57-
| **ring_buffer_add_multi** | Add multiple elements to ring buffer in FIFO form | ring_buffer_status_t ring_buffer_add_many(p_ring_buffer_t buf_inst, const void * const p_item, const uint32_t size) |
58-
| **ring_buffer_get** | Get element from ring buffer in FIFO form | ring_buffer_status_t ring_buffer_get(p_ring_buffer_t buf_inst, void * const p_item) |
59-
| **ring_buffer_get_multi** | Get multiple elements from ring buffer in FIFO form | ring_buffer_status_t ring_buffer_get_multi(p_ring_buffer_t buf_inst, void * const p_item, const uint32_t size) |
60-
| **ring_buffer_get_by_index** | Get element from ring buffer without any side effects. Access by index. | ring_buffer_status_t ring_buffer_get_by_index(p_ring_buffer_t buf_inst, void * const p_item, const int32_t idx) |
61-
| **ring_buffer_reset** | Reset ring buffer | ring_buffer_status_t ring_buffer_reset(p_ring_buffer_t buf_inst) |
62-
| **ring_buffer_get_name** | Get ring buffer name | ring_buffer_status_t ring_buffer_get_name(p_ring_buffer_t buf_inst, char * const p_name)|
63-
| **ring_buffer_get_taken** | Get number of taken space of elements inside a buffer | ring_buffer_status_t ring_buffer_get_taken(p_ring_buffer_t buf_inst, uint32_t * const p_taken)|
64-
| **ring_buffer_get_free** | Get number of free space of elements inside a buffer | ring_buffer_status_t ring_buffer_get_free(p_ring_buffer_t buf_inst, uint32_t * const p_free)|
65-
| **ring_buffer_get_size** | Get size of all items inside ring buffer | ring_buffer_status_t ring_buffer_get_size(p_ring_buffer_t buf_inst, uint32_t * const p_size)|
66-
| **ring_buffer_get_item_size** | Get item size in bytes | ring_buffer_status_t ring_buffer_get_item_size(p_ring_buffer_t buf_inst, uint32_t * const p_item_size)|
54+
| **ring_buffer_init** | Initialization of ring buffer | ring_buffer_status_t ring_buffer_init(p_ring_buffer_t * p_ring_buffer, const uint32_t size, const ring_buffer_attr_t * const p_attr) |
55+
| **ring_buffer_is_init** | Get initialization flag | ring_buffer_status_t ring_buffer_is_init(p_ring_buffer_t buf_inst, bool * const p_is_init) |
56+
| **ring_buffer_add** | Add element to ring buffer in FIFO form | ring_buffer_status_t ring_buffer_add(p_ring_buffer_t buf_inst, const void * const p_item) |
57+
| **ring_buffer_add_multi** | Add multiple elements to ring buffer in FIFO form | ring_buffer_status_t ring_buffer_add_many(p_ring_buffer_t buf_inst, const void * const p_item, const uint32_t size) |
58+
| **ring_buffer_get** | Get element from ring buffer in FIFO form | ring_buffer_status_t ring_buffer_get(p_ring_buffer_t buf_inst, void * const p_item) |
59+
| **ring_buffer_get_multi** | Get multiple elements from ring buffer in FIFO form | ring_buffer_status_t ring_buffer_get_multi(p_ring_buffer_t buf_inst, void * const p_item, const uint32_t size) |
60+
| **ring_buffer_get_by_index** | Get element from ring buffer without any side effects. Access by index. | ring_buffer_status_t ring_buffer_get_by_index(p_ring_buffer_t buf_inst, void * const p_item, const int32_t idx) |
61+
| **ring_buffer_reset** | Reset ring buffer | ring_buffer_status_t ring_buffer_reset(p_ring_buffer_t buf_inst) |
62+
| **ring_buffer_get_name** | Get ring buffer name | ring_buffer_status_t ring_buffer_get_name(p_ring_buffer_t buf_inst, char * const p_name)|
63+
| **ring_buffer_get_taken** | Get number of taken space of elements inside a buffer | ring_buffer_status_t ring_buffer_get_taken(p_ring_buffer_t buf_inst, uint32_t * const p_taken)|
64+
| **ring_buffer_get_free** | Get number of free space of elements inside a buffer | ring_buffer_status_t ring_buffer_get_free(p_ring_buffer_t buf_inst, uint32_t * const p_free)|
65+
| **ring_buffer_get_size** | Get size of all items inside ring buffer | ring_buffer_status_t ring_buffer_get_size(p_ring_buffer_t buf_inst, uint32_t * const p_size)|
66+
| **ring_buffer_get_item_size** | Get item size in bytes | ring_buffer_status_t ring_buffer_get_item_size(p_ring_buffer_t buf_inst, uint32_t * const p_item_size)|
67+
| **ring_buffer_is_full** | Is buffer full | ring_buffer_status_t ring_buffer_is_full(p_ring_buffer_t buf_inst, bool * const p_full)|
68+
| **ring_buffer_is_empty** | Is buffer empty | ring_buffer_status_t ring_buffer_is_empty(p_ring_buffer_t buf_inst, bool * const p_empty)|
6769

6870
## **Usage**
6971

@@ -142,7 +144,6 @@ while( eRING_BUFFER_EMPTY != ring_buffer_get( my_ring_buffer, &item ))
142144
// Do something with "item" value here...
143145
}
144146

145-
146147
// =============================================================
147148
// GETTING VALUE BY INDEX
148149
// =============================================================

0 commit comments

Comments
 (0)