2 #include "libbenchmark_topology_internal.h"
8 /****************************************************************************/
9 void libbenchmark_topology_iterate_init( struct libbenchmark_topology_iterate_state *tis, enum libbenchmark_topology_node_type type )
11 LFDS710_PAL_ASSERT( tis != NULL );
12 // TRD : type can be any value in its range
24 /****************************************************************************/
25 int libbenchmark_topology_iterate( struct libbenchmark_topology_state *ts, struct libbenchmark_topology_iterate_state *tis, struct libbenchmark_topology_node_state **tns )
30 LFDS710_PAL_ASSERT( ts != NULL );
31 LFDS710_PAL_ASSERT( tis != NULL );
32 LFDS710_PAL_ASSERT( tns != NULL );
34 while( lfds710_btree_au_get_by_absolute_position_and_then_by_relative_position(&ts->topology_tree, &tis->baue, LFDS710_BTREE_AU_ABSOLUTE_POSITION_LARGEST_IN_TREE, LFDS710_BTREE_AU_RELATIVE_POSITION_NEXT_SMALLER_ELEMENT_IN_ENTIRE_TREE) )
36 *tns = LFDS710_BTREE_AU_GET_VALUE_FROM_ELEMENT( *tis->baue );
38 if( (*tns)->type == tis->type )
42 if( tis->baue == NULL )