mbed TLS v2.7.16
timing.h
Go to the documentation of this file.
1 
6 /*
7  * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
8  * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9  *
10  * This file is provided under the Apache License 2.0, or the
11  * GNU General Public License v2.0 or later.
12  *
13  * **********
14  * Apache License 2.0:
15  *
16  * Licensed under the Apache License, Version 2.0 (the "License"); you may
17  * not use this file except in compliance with the License.
18  * You may obtain a copy of the License at
19  *
20  * http://www.apache.org/licenses/LICENSE-2.0
21  *
22  * Unless required by applicable law or agreed to in writing, software
23  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
24  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25  * See the License for the specific language governing permissions and
26  * limitations under the License.
27  *
28  * **********
29  *
30  * **********
31  * GNU General Public License v2.0 or later:
32  *
33  * This program is free software; you can redistribute it and/or modify
34  * it under the terms of the GNU General Public License as published by
35  * the Free Software Foundation; either version 2 of the License, or
36  * (at your option) any later version.
37  *
38  * This program is distributed in the hope that it will be useful,
39  * but WITHOUT ANY WARRANTY; without even the implied warranty of
40  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41  * GNU General Public License for more details.
42  *
43  * You should have received a copy of the GNU General Public License along
44  * with this program; if not, write to the Free Software Foundation, Inc.,
45  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
46  *
47  * **********
48  *
49  * This file is part of mbed TLS (https://tls.mbed.org)
50  */
51 #ifndef MBEDTLS_TIMING_H
52 #define MBEDTLS_TIMING_H
53 
54 #if !defined(MBEDTLS_CONFIG_FILE)
55 #include "config.h"
56 #else
57 #include MBEDTLS_CONFIG_FILE
58 #endif
59 
60 #if !defined(MBEDTLS_TIMING_ALT)
61 // Regular implementation
62 //
63 
64 #include <stdint.h>
65 
66 #ifdef __cplusplus
67 extern "C" {
68 #endif
69 
74 {
75  unsigned char opaque[32];
76 };
77 
81 typedef struct
82 {
83  struct mbedtls_timing_hr_time timer;
84  uint32_t int_ms;
85  uint32_t fin_ms;
87 
88 extern volatile int mbedtls_timing_alarmed;
89 
100 unsigned long mbedtls_timing_hardclock( void );
101 
119 unsigned long mbedtls_timing_get_timer( struct mbedtls_timing_hr_time *val, int reset );
120 
131 void mbedtls_set_alarm( int seconds );
132 
147 void mbedtls_timing_set_delay( void *data, uint32_t int_ms, uint32_t fin_ms );
148 
161 int mbedtls_timing_get_delay( void *data );
162 
163 #ifdef __cplusplus
164 }
165 #endif
166 
167 #else /* MBEDTLS_TIMING_ALT */
168 #include "timing_alt.h"
169 #endif /* MBEDTLS_TIMING_ALT */
170 
171 #ifdef __cplusplus
172 extern "C" {
173 #endif
174 
175 #if defined(MBEDTLS_SELF_TEST)
176 
181 int mbedtls_timing_self_test( int verbose );
182 #endif
183 
184 #ifdef __cplusplus
185 }
186 #endif
187 
188 #endif /* timing.h */
unsigned long mbedtls_timing_hardclock(void)
Return the CPU cycle counter value.
unsigned char opaque[32]
Definition: timing.h:75
Configuration options (set of defines)
void mbedtls_timing_set_delay(void *data, uint32_t int_ms, uint32_t fin_ms)
Set a pair of delays to watch (See mbedtls_timing_get_delay().)
Context for mbedtls_timing_set/get_delay()
Definition: timing.h:81
volatile int mbedtls_timing_alarmed
void mbedtls_set_alarm(int seconds)
Setup an alarm clock.
int mbedtls_timing_self_test(int verbose)
Checkup routine.
unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset)
Return the elapsed time in milliseconds.
timer structure
Definition: timing.h:73
int mbedtls_timing_get_delay(void *data)
Get the status of delays (Memory helper: number of delays passed.)