2 #include "lfds700_queue_bounded_singleconsumer_singleproducer_internal.h"
8 /****************************************************************************/
9 int lfds700_queue_bss_dequeue( struct lfds700_queue_bss_state *qbsss, void **key, void **value )
14 struct lfds700_queue_bss_element
17 LFDS700_PAL_ASSERT( qbsss != NULL );
18 // TRD : key can be NULL
19 // TRD : value can be NULL
21 LFDS700_MISC_BARRIER_LOAD;
23 if( qbsss->read_index != qbsss->write_index )
25 qbsse = qbsss->element_array + qbsss->read_index;
31 *value = qbsse->value;
33 qbsss->read_index = (qbsss->read_index + 1) & qbsss->mask;
35 LFDS700_MISC_BARRIER_STORE;