mbed TLS v2.16.7
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 #include <stdint.h>
61 
62 #ifdef __cplusplus
63 extern "C" {
64 #endif
65 
66 #if !defined(MBEDTLS_TIMING_ALT)
67 // Regular implementation
68 //
69 
74 {
75  unsigned char opaque[32];
76 };
77 
82 {
84  uint32_t int_ms;
85  uint32_t fin_ms;
87 
88 #else /* MBEDTLS_TIMING_ALT */
89 #include "timing_alt.h"
90 #endif /* MBEDTLS_TIMING_ALT */
91 
92 extern volatile int mbedtls_timing_alarmed;
93 
104 unsigned long mbedtls_timing_hardclock( void );
105 
123 unsigned long mbedtls_timing_get_timer( struct mbedtls_timing_hr_time *val, int reset );
124 
135 void mbedtls_set_alarm( int seconds );
136 
151 void mbedtls_timing_set_delay( void *data, uint32_t int_ms, uint32_t fin_ms );
152 
165 int mbedtls_timing_get_delay( void *data );
166 
167 #if defined(MBEDTLS_SELF_TEST)
168 
173 int mbedtls_timing_self_test( int verbose );
174 #endif
175 
176 #ifdef __cplusplus
177 }
178 #endif
179 
180 #endif /* timing.h */
mbedtls_timing_hr_time
timer structure
Definition: timing.h:74
mbedtls_timing_get_delay
int mbedtls_timing_get_delay(void *data)
Get the status of delays (Memory helper: number of delays passed.)
mbedtls_set_alarm
void mbedtls_set_alarm(int seconds)
Setup an alarm clock.
mbedtls_timing_self_test
int mbedtls_timing_self_test(int verbose)
Checkup routine.
mbedtls_timing_get_timer
unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset)
Return the elapsed time in milliseconds.
mbedtls_timing_alarmed
volatile int mbedtls_timing_alarmed
mbedtls_timing_delay_context
Context for mbedtls_timing_set/get_delay()
Definition: timing.h:82
mbedtls_timing_delay_context
struct mbedtls_timing_delay_context mbedtls_timing_delay_context
Context for mbedtls_timing_set/get_delay()
mbedtls_timing_delay_context::timer
struct mbedtls_timing_hr_time timer
Definition: timing.h:83
mbedtls_timing_hardclock
unsigned long mbedtls_timing_hardclock(void)
Return the CPU cycle counter value.
mbedtls_timing_delay_context::fin_ms
uint32_t fin_ms
Definition: timing.h:85
config.h
Configuration options (set of defines)
mbedtls_timing_delay_context::int_ms
uint32_t int_ms
Definition: timing.h:84
mbedtls_timing_hr_time::opaque
unsigned char opaque[32]
Definition: timing.h:75
mbedtls_timing_set_delay
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().)