1 #include "lfds610_ringbuffer_internal.h"
7 /****************************************************************************/
8 #pragma warning( disable : 4100 )
10 void lfds610_ringbuffer_query( struct lfds610_ringbuffer_state *rs, enum lfds610_ringbuffer_query_type query_type, void *query_input, void *query_output )
13 // TRD : query_type can be any value in its range
14 // TRD : query_input can be NULL
15 assert( query_output != NULL );
19 case LFDS610_RINGBUFFER_QUERY_VALIDATE:
20 // TRD : query_input can be NULL
22 lfds610_ringbuffer_internal_validate( rs, (struct lfds610_validation_info *) query_input, (enum lfds610_data_structure_validity *) query_output, ((enum lfds610_data_structure_validity *) query_output)+2 );
29 #pragma warning( default : 4100 )
35 /****************************************************************************/
36 void lfds610_ringbuffer_internal_validate( struct lfds610_ringbuffer_state *rs, struct lfds610_validation_info *vi, enum lfds610_data_structure_validity *lfds610_queue_validity, enum lfds610_data_structure_validity *lfds610_freelist_validity )
39 // TRD : vi can be NULL
40 assert( lfds610_queue_validity != NULL );
41 assert( lfds610_freelist_validity != NULL );
43 lfds610_queue_query( rs->qs, LFDS610_QUEUE_QUERY_VALIDATE, vi, lfds610_queue_validity );
47 struct lfds610_validation_info
53 lfds610_freelist_query( rs->fs, LFDS610_FREELIST_QUERY_ELEMENT_COUNT, NULL, (void *) &total_elements );
54 lfds610_freelist_vi.min_elements = total_elements - vi->max_elements;
55 lfds610_freelist_vi.max_elements = total_elements - vi->min_elements;
56 lfds610_freelist_query( rs->fs, LFDS610_FREELIST_QUERY_VALIDATE, (void *) &lfds610_freelist_vi, (void *) lfds610_freelist_validity );
60 lfds610_freelist_query( rs->fs, LFDS610_FREELIST_QUERY_VALIDATE, NULL, (void *) lfds610_freelist_validity );