]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_results/libbenchmark_results_get_result.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / test_and_benchmark / libbenchmark / src / libbenchmark_results / libbenchmark_results_get_result.c
1 /***** includes *****/
2 #include "libbenchmark_results_internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 int libbenchmark_results_get_result( struct libbenchmark_results_state *rs,
10                                      enum libbenchmark_datastructure_id datastructure_id,
11                                      enum libbenchmark_benchmark_id benchmark_id,
12                                      enum libbenchmark_lock_id lock_id,
13                                      enum libbenchmark_topology_numa_mode numa_mode,
14                                      struct lfds710_list_aso_state *lpset,
15                                      struct libbenchmark_topology_node_state *tns,
16                                      lfds710_pal_uint_t *result )
17 {
18   int
19     rv;
20
21   struct lfds710_btree_au_element
22     *baue;
23
24   struct libbenchmark_result
25     *r,
26     search_key;
27
28   LFDS710_PAL_ASSERT( rs != NULL );
29   // TRD : datastructure_id can be any value in its range
30   // TRD : benchmark_id can be any value in its range
31   // TRD : lock_id can be any value in its range
32   // TRD : numa_mode can be any value in its range
33   LFDS710_PAL_ASSERT( lpset != NULL );
34   LFDS710_PAL_ASSERT( tns!= NULL );
35   LFDS710_PAL_ASSERT( result != NULL );
36
37   search_key.datastructure_id = datastructure_id;
38   search_key.benchmark_id = benchmark_id;
39   search_key.lock_id  = lock_id;
40   search_key.numa_mode = numa_mode;
41   search_key.lpset = lpset;
42   search_key.tns = *tns;
43
44   rv = lfds710_btree_au_get_by_key( &rs->results_tree, NULL, &search_key, &baue );
45
46   if( rv == 1 )
47   {
48     r = LFDS710_BTREE_AU_GET_KEY_FROM_ELEMENT( *baue );
49     *result = r->result;
50   }
51
52   return rv;
53 }
54