mbed TLS v2.3.0
Data Structures | Functions | Variables
timing.h File Reference

Portable interface to the CPU cycle counter. More...

#include "config.h"
#include <stdint.h>
Include dependency graph for timing.h:

Go to the source code of this file.

Data Structures

struct  mbedtls_timing_hr_time
 timer structure More...
 
struct  mbedtls_timing_delay_context
 Context for mbedtls_timing_set/get_delay() More...
 

Functions

unsigned long mbedtls_timing_hardclock (void)
 Return the CPU cycle counter value. More...
 
unsigned long mbedtls_timing_get_timer (struct mbedtls_timing_hr_time *val, int reset)
 Return the elapsed time in milliseconds. More...
 
void mbedtls_set_alarm (int seconds)
 Setup an alarm clock. More...
 
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().) More...
 
int mbedtls_timing_get_delay (void *data)
 Get the status of delays (Memory helper: number of delays passed.) More...
 
int mbedtls_timing_self_test (int verbose)
 Checkup routine. More...
 

Variables

volatile int mbedtls_timing_alarmed
 

Detailed Description

Portable interface to the CPU cycle counter.

Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: GPL-2.0

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

This file is part of mbed TLS (https://tls.mbed.org)

Definition in file timing.h.

Function Documentation

void mbedtls_set_alarm ( int  seconds)

Setup an alarm clock.

Parameters
secondsdelay before the "mbedtls_timing_alarmed" flag is set
Warning
Only one alarm at a time is supported. In a threaded context, this means one for the whole process, not one per thread.
int mbedtls_timing_get_delay ( void *  data)

Get the status of delays (Memory helper: number of delays passed.)

Parameters
dataPointer to timing data Must point to a valid mbedtls_timing_delay_context struct.
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.
unsigned long mbedtls_timing_get_timer ( struct mbedtls_timing_hr_time val,
int  reset 
)

Return the elapsed time in milliseconds.

Parameters
valpoints to a timer structure
resetif set to 1, the timer is restarted
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.
int mbedtls_timing_self_test ( int  verbose)

Checkup routine.

Returns
0 if successful, or 1 if a test failed
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
dataPointer to timing data Must point to a valid mbedtls_timing_delay_context struct.
int_msFirst (intermediate) delay in milliseconds.
fin_msSecond (final) delay in milliseconds. Pass 0 to cancel the current delay.

Variable Documentation

volatile int mbedtls_timing_alarmed