2 #define LFDS710_RINGBUFFER_GET_USER_STATE_FROM_STATE( ringbuffer_state ) ( (ringbuffer_state).user_state )
5 enum lfds710_ringbuffer_query
7 LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_GET_COUNT,
8 LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_VALIDATE
11 /***** structures *****/
12 struct lfds710_ringbuffer_element
14 struct lfds710_freelist_element
17 struct lfds710_queue_umm_element
20 struct lfds710_queue_umm_element
21 *qumme_use; // TRD : hack; we need a new queue with no dummy element
28 struct lfds710_ringbuffer_state
30 struct lfds710_freelist_state
33 struct lfds710_queue_umm_state
37 (*element_cleanup_callback)( struct lfds710_ringbuffer_state *rs, void *key, void *value, enum lfds710_misc_flag unread_flag ),
41 /***** public prototypes *****/
42 void lfds710_ringbuffer_init_valid_on_current_logical_core( struct lfds710_ringbuffer_state *rs,
43 struct lfds710_ringbuffer_element *re_array_inc_dummy,
44 lfds710_pal_uint_t number_elements_inc_dummy,
46 // TRD : used in conjunction with the #define LFDS710_MISC_MAKE_VALID_ON_CURRENT_LOGICAL_CORE_INITS_COMPLETED_BEFORE_NOW_ON_ANY_OTHER_LOGICAL_CORE
48 void lfds710_ringbuffer_cleanup( struct lfds710_ringbuffer_state *rs,
49 void (*element_cleanup_callback)(struct lfds710_ringbuffer_state *rs, void *key, void *value, enum lfds710_misc_flag unread_flag) );
51 int lfds710_ringbuffer_read( struct lfds710_ringbuffer_state *rs,
55 void lfds710_ringbuffer_write( struct lfds710_ringbuffer_state *rs,
58 enum lfds710_misc_flag *overwrite_occurred_flag,
59 void **overwritten_key,
60 void **overwritten_value );
62 void lfds710_ringbuffer_query( struct lfds710_ringbuffer_state *rs,
63 enum lfds710_ringbuffer_query query_type,