1 #include "lfds601_ringbuffer_internal.h"
\r
7 /****************************************************************************/
\r
8 #pragma warning( disable : 4100 )
\r
10 void lfds601_ringbuffer_query( struct lfds601_ringbuffer_state *rs, enum lfds601_ringbuffer_query_type query_type, void *query_input, void *query_output )
\r
12 assert( rs != NULL );
\r
13 // TRD : query_type can be any value in its range
\r
14 // TRD : query_input can be NULL
\r
15 assert( query_output != NULL );
\r
17 switch( query_type )
\r
19 case LFDS601_RINGBUFFER_QUERY_VALIDATE:
\r
20 // TRD : query_input can be NULL
\r
22 lfds601_ringbuffer_internal_validate( rs, (struct lfds601_validation_info *) query_input, (enum lfds601_data_structure_validity *) query_output, ((enum lfds601_data_structure_validity *) query_output)+2 );
\r
29 #pragma warning( default : 4100 )
\r
35 /****************************************************************************/
\r
36 void lfds601_ringbuffer_internal_validate( struct lfds601_ringbuffer_state *rs, struct lfds601_validation_info *vi, enum lfds601_data_structure_validity *lfds601_queue_validity, enum lfds601_data_structure_validity *lfds601_freelist_validity )
\r
38 assert( rs != NULL );
\r
39 // TRD : vi can be NULL
\r
40 assert( lfds601_queue_validity != NULL );
\r
41 assert( lfds601_freelist_validity != NULL );
\r
43 lfds601_queue_query( rs->qs, LFDS601_QUEUE_QUERY_VALIDATE, vi, lfds601_queue_validity );
\r
47 struct lfds601_validation_info
\r
48 lfds601_freelist_vi;
\r
53 lfds601_freelist_query( rs->fs, LFDS601_FREELIST_QUERY_ELEMENT_COUNT, NULL, (void *) &total_elements );
\r
54 lfds601_freelist_vi.min_elements = total_elements - vi->max_elements;
\r
55 lfds601_freelist_vi.max_elements = total_elements - vi->min_elements;
\r
56 lfds601_freelist_query( rs->fs, LFDS601_FREELIST_QUERY_VALIDATE, (void *) &lfds601_freelist_vi, (void *) lfds601_freelist_validity );
\r
60 lfds601_freelist_query( rs->fs, LFDS601_FREELIST_QUERY_VALIDATE, NULL, (void *) lfds601_freelist_validity );
\r