]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_results/libbenchmark_results_compare.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_compare.c
1 /***** includes *****/
2 #include "libbenchmark_results_internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 int libbenchmark_result_compare_function( void const *new_key, void const *existing_key )
10 {
11   int
12     rv;
13
14   struct libbenchmark_result
15     *rs_new,
16     *rs_existing;
17
18   LFDS710_PAL_ASSERT( new_key != NULL );
19   LFDS710_PAL_ASSERT( existing_key != NULL );
20
21   rs_new = (struct libbenchmark_result *) new_key;
22   rs_existing = (struct libbenchmark_result *) existing_key;
23
24   if( rs_new->datastructure_id > rs_existing->datastructure_id )
25     return 1;
26
27   if( rs_new->datastructure_id < rs_existing->datastructure_id )
28     return -1;
29
30   if( rs_new->benchmark_id > rs_existing->benchmark_id )
31     return 1;
32
33   if( rs_new->benchmark_id < rs_existing->benchmark_id )
34     return -1;
35
36   if( rs_new->lock_id > rs_existing->lock_id )
37     return 1;
38
39   if( rs_new->lock_id < rs_existing->lock_id )
40     return -1;
41
42   if( rs_new->numa_mode > rs_existing->numa_mode )
43     return 1;
44
45   if( rs_new->numa_mode < rs_existing->numa_mode )
46     return -1;
47
48   rv = libbenchmark_topology_node_compare_lpsets_function( rs_new->lpset, rs_existing->lpset );
49
50   if( rv != 0 )
51     return rv;
52
53   rv = libbenchmark_topology_node_compare_nodes_function( &rs_new->tns, &rs_existing->tns );
54
55   // TRD : for better or worse, it's what we are :-)
56   return rv;
57 }
58