TinySTM  1.0.5
mod_ab.h
Go to the documentation of this file.
1 /*
2  * File:
3  * mod_ab.h
4  * Author(s):
5  * Pascal Felber <pascal.felber@unine.ch>
6  * Patrick Marlier <patrick.marlier@unine.ch>
7  * Description:
8  * Module for gathering statistics about atomic blocks.
9  *
10  * Copyright (c) 2007-2014.
11  *
12  * This program is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU General Public License
14  * as published by the Free Software Foundation, version 2
15  * of the License.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * This program has a dual license and can also be distributed
23  * under the terms of the MIT license.
24  */
25 
39 #ifndef _MOD_AB_H_
40 # define _MOD_AB_H_
41 
42 # include "stm.h"
43 
44 # ifdef __cplusplus
45 extern "C" {
46 # endif
47 
51 typedef struct stm_ab_stats {
55  unsigned long samples;
59  double mean;
63  double variance;
67  double min;
71  double max;
75  double percentile_50;
79  double percentile_90;
83  double percentile_95;
87  double *reservoir;
91  unsigned int reservoir_size;
93 
106 int stm_get_ab_stats(int id, stm_ab_stats_t *stats);
107 
121 void mod_ab_init(int freq, int (*check)(void));
122 
123 # ifdef __cplusplus
124 }
125 # endif
126 
127 #endif /* _MOD_AB_H_ */