You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
60 lines
1.8 KiB
3 months ago
|
/*
|
||
|
* UCW Library -- A Simple Millisecond Timer
|
||
|
*
|
||
|
* (c) 2007--2012 Martin Mares <mj@ucw.cz>
|
||
|
*
|
||
|
* This software may be freely distributed and used according to the terms
|
||
|
* of the GNU Lesser General Public License.
|
||
|
*/
|
||
|
|
||
|
#ifndef _UCW_TIMER_H
|
||
|
#define _UCW_TIMER_H
|
||
|
|
||
|
#ifdef CONFIG_UCW_CLEAN_ABI
|
||
|
#define get_timer ucw_get_timer
|
||
|
#define get_timestamp ucw_get_timestamp
|
||
|
#define init_timer ucw_init_timer
|
||
|
#define switch_timer ucw_switch_timer
|
||
|
#define timestamp_type ucw_timestamp_type
|
||
|
#endif
|
||
|
|
||
|
/***
|
||
|
* === Timestamps
|
||
|
*
|
||
|
* All timing functions in LibUCW are based on signed 64-bit timestamps
|
||
|
* with millisecond precision (the <<basics:type_timestamp_t,`timestamp_t`>> type), which measure
|
||
|
* time from an unspecified moment in the past. Depending on the compile-time
|
||
|
* settings, that moment can be the traditional UNIX epoch, or for example
|
||
|
* system boot if POSIX monotonic clock is used.
|
||
|
***/
|
||
|
|
||
|
/* time-stamp.c */
|
||
|
|
||
|
timestamp_t get_timestamp(void); /** Get current time as a millisecond timestamp. **/
|
||
|
|
||
|
/* time-conf.c */
|
||
|
|
||
|
/**
|
||
|
* A user type for parsing of time intervals in configuration files.
|
||
|
* It is specified as fractional seconds and internally converted to
|
||
|
* a <<basics:type_timestamp_t,`timestamp_t`>>. When conversion of
|
||
|
* a non-zero value yields zero, an error is raised.
|
||
|
**/
|
||
|
extern struct cf_user_type timestamp_type;
|
||
|
|
||
|
/***
|
||
|
* === Timers
|
||
|
*
|
||
|
* A timer is a very simple construct for measuring execution time.
|
||
|
* It can be initialized and then read multiple times. Each read returns
|
||
|
* the number of milliseconds elapsed since the previous read or initialization.
|
||
|
***/
|
||
|
|
||
|
/* time-timer.c */
|
||
|
|
||
|
void init_timer(timestamp_t *timer); /** Initialize a timer. **/
|
||
|
uint get_timer(timestamp_t *timer); /** Get the number of milliseconds since last init/get of a timer. **/
|
||
|
uint switch_timer(timestamp_t *oldt, timestamp_t *newt); /** Stop ticking of one timer and resume another. **/
|
||
|
|
||
|
#endif
|