1 #include "lfds600_ringbuffer_internal.h"
7 /****************************************************************************/
8 #pragma warning( disable : 4100 )
10 void lfds600_ringbuffer_query( struct lfds600_ringbuffer_state *rs, enum lfds600_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 LFDS600_RINGBUFFER_QUERY_VALIDATE:
20 // TRD : query_input can be NULL
22 lfds600_ringbuffer_internal_validate( rs, (struct lfds600_validation_info *) query_input, (enum data_structure_validity *) query_output, ((enum data_structure_validity *) query_output)+2 );
29 #pragma warning( default : 4100 )
35 /****************************************************************************/
36 void lfds600_ringbuffer_internal_validate( struct lfds600_ringbuffer_state *rs, struct lfds600_validation_info *vi, enum data_structure_validity *lfds600_queue_validity, enum data_structure_validity *lfds600_freelist_validity )
39 // TRD : vi can be NULL
40 assert( lfds600_queue_validity != NULL );
41 assert( lfds600_freelist_validity != NULL );
43 lfds600_queue_query( rs->qs, LFDS600_QUEUE_QUERY_VALIDATE, vi, lfds600_queue_validity );
47 struct lfds600_validation_info
53 lfds600_freelist_query( rs->fs, LFDS600_FREELIST_QUERY_ELEMENT_COUNT, NULL, (void *) &total_elements );
54 lfds600_freelist_vi.min_elements = total_elements - vi->max_elements;
55 lfds600_freelist_vi.max_elements = total_elements - vi->min_elements;
56 lfds600_freelist_query( rs->fs, LFDS600_FREELIST_QUERY_VALIDATE, (void *) &lfds600_freelist_vi, (void *) lfds600_freelist_validity );
60 lfds600_freelist_query( rs->fs, LFDS600_FREELIST_QUERY_VALIDATE, NULL, (void *) lfds600_freelist_validity );