RetroArch
Classes | 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:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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

Function Documentation

◆ mbedtls_set_alarm()

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.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mbedtls_timing_get_delay()

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.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mbedtls_timing_get_timer()

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
Here is the caller graph for this function:

◆ 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.
Here is the caller graph for this function:

◆ mbedtls_timing_self_test()

int mbedtls_timing_self_test ( int  verbose)

Checkup routine.

Returns
0 if successful, or 1 if a test failed
Here is the call graph for this function:

◆ 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
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.
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ mbedtls_timing_alarmed

volatile int mbedtls_timing_alarmed