RetroArch
Classes | Macros | Functions | Variables
timing.c File Reference
#include "mbedtls/config.h"
#include "mbedtls/platform.h"
#include "mbedtls/timing.h"
#include <unistd.h>
#include <sys/types.h>
#include <sys/time.h>
#include <signal.h>
#include <time.h>
Include dependency graph for timing.c:

Classes

struct  _hr_time
 

Macros

#define asm   __asm
 
#define HAVE_HARDCLOCK
 
#define FAIL
 

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...
 
static void sighandler (int signum)
 
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...
 
static void busy_msleep (unsigned long msec)
 
int mbedtls_timing_self_test (int verbose)
 Checkup routine. More...
 

Variables

static int hardclock_init = 0
 
static struct timeval tv_init
 
volatile int mbedtls_timing_alarmed = 0
 

Macro Definition Documentation

◆ asm

#define asm   __asm

◆ FAIL

#define FAIL
Value:
do \
{ \
if( verbose != 0 ) \
mbedtls_printf( "failed\n" ); \
return( 1 ); \
} while( 0 )
return
Definition: irq.c:321

◆ HAVE_HARDCLOCK

#define HAVE_HARDCLOCK

Function Documentation

◆ busy_msleep()

static void busy_msleep ( unsigned long  msec)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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:

◆ sighandler()

static void sighandler ( int  signum)
static
Here is the caller graph for this function:

Variable Documentation

◆ hardclock_init

int hardclock_init = 0
static

◆ mbedtls_timing_alarmed

volatile int mbedtls_timing_alarmed = 0

◆ tv_init

struct timeval tv_init
static