Portable interface to timeouts and to the CPU cycle counter.
More...
#include "mbedtls/config.h"
#include <stdint.h>
Go to the source code of this file.
Portable interface to timeouts and to the CPU cycle counter.
Definition in file timing.h.
◆ mbedtls_timing_delay_context
typedef struct mbedtls_timing_delay_context mbedtls_timing_delay_context |
Context for mbedtls_timing_set/get_delay()
◆ mbedtls_set_alarm()
void mbedtls_set_alarm |
( |
int | seconds | ) |
|
Setup an alarm clock.
- Parameters
-
seconds | delay before the "mbedtls_timing_alarmed" flag is set (must be >=0) |
- Warning
- Only one alarm at a time is supported. In a threaded context, this means one for the whole process, not one per thread.
◆ mbedtls_timing_get_delay()
int mbedtls_timing_get_delay |
( |
void * | data | ) |
|
Get the status of delays (Memory helper: number of delays passed.)
- Parameters
-
- Returns
- -1 if cancelled (fin_ms = 0), 0 if none of the delays are passed, 1 if only the intermediate delay is passed, 2 if the final delay is passed.
◆ mbedtls_timing_get_timer()
Return the elapsed time in milliseconds.
- Parameters
-
val | points to a timer structure |
reset | If 0, query the elapsed time. Otherwise (re)start the timer. |
- Returns
- Elapsed time since the previous reset in ms. When restarting, this is always 0.
- Note
- To initialize a timer, call this function with reset=1.
Determining the elapsed time and resetting the timer is not
atomic on all platforms, so after the sequence
`{ get_timer(1); ...; time1 = get_timer(1); ...; time2 =
get_timer(0) }` the value time1+time2 is only approximately
the delay since the first reset.
◆ mbedtls_timing_hardclock()
unsigned long mbedtls_timing_hardclock |
( |
void | | ) |
|
Return the CPU cycle counter value.
- Warning
- This is only a best effort! Do not rely on this! In particular, it is known to be unreliable on virtual machines.
- Note
- This value starts at an unspecified origin and may wrap around.
◆ mbedtls_timing_self_test()
int mbedtls_timing_self_test |
( |
int | verbose | ) |
|
Checkup routine.
- Returns
- 0 if successful, or 1 if a test failed
◆ 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()
.)
- Parameters
-
data | Pointer to timing data. Must point to a valid mbedtls_timing_delay_context struct. |
int_ms | First (intermediate) delay in milliseconds. The effect if int_ms > fin_ms is unspecified. |
fin_ms | Second (final) delay in milliseconds. Pass 0 to cancel the current delay. |
- Note
- To set a single delay, either use
mbedtls_timing_set_timer
directly or use this function with int_ms == fin_ms.
◆ mbedtls_timing_alarmed
volatile int mbedtls_timing_alarmed |
|
extern |