Coverage Report

Created: 2022-12-08 06:10

/src/libgcrypt/random/jitterentropy-health.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (C) 2021, Stephan Mueller <smueller@chronox.de>
3
 *
4
 * License: see LICENSE file in root directory
5
 *
6
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
7
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
8
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
9
 * WHICH ARE HEREBY DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE
10
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
11
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
12
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
13
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
14
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
15
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
16
 * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
17
 * DAMAGE.
18
 */
19
20
#ifndef JITTERENTROPY_HEALTH_H
21
#define JITTERENTROPY_HEALTH_H
22
23
#ifdef __cplusplus
24
extern "C"
25
{
26
#endif
27
28
static inline uint64_t jent_delta(uint64_t prev, uint64_t next)
29
0
{
30
0
  return (next - prev);
31
0
}
32
33
#ifdef JENT_HEALTH_LAG_PREDICTOR
34
void jent_lag_init(struct rand_data *ec, unsigned int osr);
35
#else /* JENT_HEALTH_LAG_PREDICTOR */
36
static inline void jent_lag_init(struct rand_data *ec, unsigned int osr)
37
{
38
  (void)ec;
39
  (void)osr;
40
}
41
#endif /* JENT_HEALTH_LAG_PREDICTOR */
42
43
void jent_apt_init(struct rand_data *ec, unsigned int osr);
44
unsigned int jent_stuck(struct rand_data *ec, uint64_t current_delta);
45
unsigned int jent_health_failure(struct rand_data *ec);
46
47
#ifdef __cplusplus
48
}
49
#endif
50
51
#endif /* JITTERENTROPY_HEALTH_H */