Tor 0.4.9.8
Loading...
Searching...
No Matches
compat_time.c File Reference

Portable wrappers for finding out the current time, running timers, etc. More...

#include "lib/time/compat_time.h"
#include "lib/err/torerr.h"
#include "lib/log/log.h"
#include "lib/log/util_bug.h"
#include "lib/intmath/muldiv.h"
#include "lib/intmath/bits.h"
#include "lib/fs/winlib.h"
#include "lib/wallclock/timeval.h"
#include <errno.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Macros

#define COMPAT_TIME_PRIVATE
 
#define ONE_MILLION   ((int64_t) (1000 * 1000))
 
#define ONE_BILLION   ((int64_t) (1000 * 1000 * 1000))
 
#define initialized_at_coarse   initialized_at
 

Functions

void tor_sleep_msec (int msec)
 
void monotime_init (void)
 
void monotime_zero (monotime_t *out)
 
int64_t monotime_diff_usec (const monotime_t *start, const monotime_t *end)
 
int64_t monotime_diff_msec (const monotime_t *start, const monotime_t *end)
 
uint64_t monotime_absolute_nsec (void)
 
uint64_t monotime_absolute_usec (void)
 
uint64_t monotime_absolute_msec (void)
 
uint64_t monotime_absolute_sec (void)
 
uint32_t monotime_coarse_get_stamp (void)
 
uint64_t monotime_coarse_stamp_units_to_approx_msec (uint64_t units)
 
uint64_t monotime_msec_to_approx_coarse_stamp_units (uint64_t msec)
 

Variables

static int monotime_initialized = 0
 
static monotime_t initialized_at
 

Detailed Description

Portable wrappers for finding out the current time, running timers, etc.

Definition in file compat_time.c.

Macro Definition Documentation

◆ COMPAT_TIME_PRIVATE

#define COMPAT_TIME_PRIVATE

Definition at line 12 of file compat_time.c.

◆ initialized_at_coarse

#define initialized_at_coarse   initialized_at

Definition at line 858 of file compat_time.c.

◆ ONE_BILLION

#define ONE_BILLION   ((int64_t) (1000 * 1000 * 1000))

Definition at line 78 of file compat_time.c.

◆ ONE_MILLION

#define ONE_MILLION   ((int64_t) (1000 * 1000))

Definition at line 77 of file compat_time.c.

Function Documentation

◆ monotime_absolute_msec()

uint64_t monotime_absolute_msec ( void )

Return the number of milliseconds since the timer system was initialized. The returned value may be equal to zero. Fractional units are truncated, not rounded.

Definition at line 811 of file compat_time.c.

◆ monotime_absolute_nsec()

uint64_t monotime_absolute_nsec ( void )

Return the number of nanoseconds since the timer system was initialized. The returned value may be equal to zero.

Definition at line 793 of file compat_time.c.

Referenced by monotime_absolute_msec(), monotime_absolute_sec(), and monotime_absolute_usec().

◆ monotime_absolute_sec()

uint64_t monotime_absolute_sec ( void )

Return the number of seconds since the timer system was initialized. The returned value may be equal to zero. Fractional units are truncated, not rounded.

Definition at line 817 of file compat_time.c.

◆ monotime_absolute_usec()

◆ monotime_coarse_get_stamp()

◆ monotime_coarse_stamp_units_to_approx_msec()

uint64_t monotime_coarse_stamp_units_to_approx_msec ( uint64_t units)

Convert a difference, expressed in the units of monotime_coarse_to_stamp, into an approximate number of milliseconds.

The returned value may be equal to zero. Fractional units are truncated, not rounded.

Definition at line 891 of file compat_time.c.

Referenced by channel_flush_from_first_active_circuit(), and rate_per_sec_to_rate_per_step().

◆ monotime_diff_msec()

int64_t monotime_diff_msec ( const monotime_t * start,
const monotime_t * end )

Return the number of milliseconds between start and end. The returned value may be equal to zero. Fractional units are truncated, not rounded.

Definition at line 785 of file compat_time.c.

◆ monotime_diff_usec()

int64_t monotime_diff_usec ( const monotime_t * start,
const monotime_t * end )

Return the number of microseconds between start and end. The returned value may be equal to zero. Fractional units are truncated, not rounded.

Definition at line 777 of file compat_time.c.

Referenced by hs_pow_solve(), and timer_advance_to_cur_time().

◆ monotime_init()

void monotime_init ( void )

Initialize the monotonic timer subsystem. Must be called before any monotonic timer functions. This function is idempotent.

Definition at line 751 of file compat_time.c.

Referenced by monotime_absolute_nsec(), and timers_initialize().

◆ monotime_msec_to_approx_coarse_stamp_units()

uint64_t monotime_msec_to_approx_coarse_stamp_units ( uint64_t msec)

Definition at line 896 of file compat_time.c.

◆ monotime_zero()

void monotime_zero ( monotime_t * out)

Set out to zero.

Definition at line 764 of file compat_time.c.

◆ tor_sleep_msec()

void tor_sleep_msec ( int msec)

Delay for msec milliseconds.

Definition at line 58 of file compat_time.c.

Referenced by worker_thread_main().

Variable Documentation

◆ initialized_at

monotime_t initialized_at
static

Definition at line 83 of file compat_time.c.

◆ monotime_initialized

int monotime_initialized = 0
static

True iff monotime_init has been called.

Definition at line 81 of file compat_time.c.

Referenced by monotime_absolute_nsec(), and monotime_init().