]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_results/libbenchmark_results_put_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_put_result.c
1 /***** includes *****/
2 #include "libbenchmark_results_internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 void libbenchmark_results_put_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                                       lfds710_pal_uint_t logical_processor_number,
16                                       lfds710_pal_uint_t windows_logical_processor_group_number,
17                                       lfds710_pal_uint_t result )
18 {
19   struct libbenchmark_result
20     *r;
21
22   LFDS710_PAL_ASSERT( rs != NULL );
23   // TRD : datastructure_id can be any value in its range
24   // TRD : benchmark_id can be any value in its range
25   // TRD : lock_id can be any value in its range
26   // TRD : numa_mode can be any value in its range
27   LFDS710_PAL_ASSERT( lpset != NULL );
28   // TRD : logical_processor_number can be any value in its range
29   // TRD : windows_logical_processor_group_number can be any value in its range
30   // TRD : result can be any value in its range
31
32   r = libshared_memory_alloc_from_most_free_space_node( rs->ms, sizeof(struct libbenchmark_result), LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES );
33
34   r->benchmark_id = benchmark_id;
35   r->datastructure_id = datastructure_id;
36   r->lock_id  = lock_id;
37   r->numa_mode = numa_mode;
38   r->lpset = lpset;
39   LIBBENCHMARK_TOPOLOGY_NODE_SET_TYPE( r->tns, LIBBENCHMARK_TOPOLOGY_NODE_TYPE_LOGICAL_PROCESSOR );
40   LIBBENCHMARK_TOPOLOGY_NODE_SET_LOGICAL_PROCESSOR_NUMBER( r->tns, logical_processor_number );
41   LIBBENCHMARK_TOPOLOGY_NODE_SET_WINDOWS_GROUP_NUMBER( r->tns, windows_logical_processor_group_number );
42   r->result = result;
43
44   LFDS710_BTREE_AU_SET_KEY_IN_ELEMENT( r->baue, r );
45   
46   lfds710_btree_au_insert( &rs->results_tree, &r->baue, NULL );
47
48   return;
49 }
50