MySQL  8.0.26
Source Code Documentation
my_rdtsc.h File Reference

Multi-platform timer code. More...

#include "my_inttypes.h"
#include "my_macros.h"

Go to the source code of this file.

Classes

struct  my_timer_unit_info
 Characteristics of a timer. More...
 
struct  my_timer_info
 Characteristics of all the supported timers. More...
 

Macros

#define MY_TIMER_ROUTINE_ASM_X86   1
 
#define MY_TIMER_ROUTINE_ASM_X86_64   2
 
#define MY_TIMER_ROUTINE_RDTSC   5
 
#define MY_TIMER_ROUTINE_ASM_IA64   6
 
#define MY_TIMER_ROUTINE_ASM_PPC   7
 
#define MY_TIMER_ROUTINE_GETHRTIME   9
 
#define MY_TIMER_ROUTINE_CLOCK_GETTIME   11
 
#define MY_TIMER_ROUTINE_NXGETTIME   12
 
#define MY_TIMER_ROUTINE_GETTIMEOFDAY   13
 
#define MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER   14
 
#define MY_TIMER_ROUTINE_GETTICKCOUNT   15
 
#define MY_TIMER_ROUTINE_TIMES   17
 
#define MY_TIMER_ROUTINE_ASM_PPC64   19
 
#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC64   20
 
#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC32   21
 
#define MY_TIMER_ROUTINE_ASM_SUNPRO_I386   22
 
#define MY_TIMER_ROUTINE_ASM_GCC_SPARC64   23
 
#define MY_TIMER_ROUTINE_ASM_GCC_SPARC32   24
 
#define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME   25
 
#define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME   26
 
#define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64   27
 
#define MY_TIMER_ROUTINE_ASM_AARCH64   28
 

Typedefs

typedef struct my_timer_info MY_TIMER_INFO
 

Functions

ulonglong my_timer_cycles (void)
 A cycle timer. More...
 
ulonglong my_timer_nanoseconds (void)
 A namoseconds timer. More...
 
ulonglong my_timer_microseconds (void)
 A microseconds timer. More...
 
ulonglong my_timer_milliseconds (void)
 A millisecond timer. More...
 
ulonglong my_timer_ticks (void)
 A ticks timer. More...
 
void my_timer_init (MY_TIMER_INFO *mti)
 Timer initialization function. More...
 

Detailed Description

Multi-platform timer code.

Macro Definition Documentation

◆ MY_TIMER_ROUTINE_ASM_AARCH64

#define MY_TIMER_ROUTINE_ASM_AARCH64   28

◆ MY_TIMER_ROUTINE_ASM_GCC_SPARC32

#define MY_TIMER_ROUTINE_ASM_GCC_SPARC32   24

◆ MY_TIMER_ROUTINE_ASM_GCC_SPARC64

#define MY_TIMER_ROUTINE_ASM_GCC_SPARC64   23

◆ MY_TIMER_ROUTINE_ASM_IA64

#define MY_TIMER_ROUTINE_ASM_IA64   6

◆ MY_TIMER_ROUTINE_ASM_PPC

#define MY_TIMER_ROUTINE_ASM_PPC   7

◆ MY_TIMER_ROUTINE_ASM_PPC64

#define MY_TIMER_ROUTINE_ASM_PPC64   19

◆ MY_TIMER_ROUTINE_ASM_SUNPRO_I386

#define MY_TIMER_ROUTINE_ASM_SUNPRO_I386   22

◆ MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC32

#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC32   21

◆ MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC64

#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC64   20

◆ MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64

#define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64   27

◆ MY_TIMER_ROUTINE_ASM_X86

#define MY_TIMER_ROUTINE_ASM_X86   1

◆ MY_TIMER_ROUTINE_ASM_X86_64

#define MY_TIMER_ROUTINE_ASM_X86_64   2

◆ MY_TIMER_ROUTINE_CLOCK_GETTIME

#define MY_TIMER_ROUTINE_CLOCK_GETTIME   11

◆ MY_TIMER_ROUTINE_GETHRTIME

#define MY_TIMER_ROUTINE_GETHRTIME   9

◆ MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME

#define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME   26

◆ MY_TIMER_ROUTINE_GETTICKCOUNT

#define MY_TIMER_ROUTINE_GETTICKCOUNT   15

◆ MY_TIMER_ROUTINE_GETTIMEOFDAY

#define MY_TIMER_ROUTINE_GETTIMEOFDAY   13

◆ MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME

#define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME   25

◆ MY_TIMER_ROUTINE_NXGETTIME

#define MY_TIMER_ROUTINE_NXGETTIME   12

◆ MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER

#define MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER   14

◆ MY_TIMER_ROUTINE_RDTSC

#define MY_TIMER_ROUTINE_RDTSC   5

◆ MY_TIMER_ROUTINE_TIMES

#define MY_TIMER_ROUTINE_TIMES   17

Typedef Documentation

◆ MY_TIMER_INFO

typedef struct my_timer_info MY_TIMER_INFO

Function Documentation

◆ my_timer_cycles()

ulonglong my_timer_cycles ( void  )

A cycle timer.

Returns
the current timer value, in cycles.

◆ my_timer_init()

void my_timer_init ( MY_TIMER_INFO mti)

Timer initialization function.

Parameters
[out]mtithe timer characteristics.

◆ my_timer_microseconds()

ulonglong my_timer_microseconds ( void  )

A microseconds timer.

Returns
the current timer value, in microseconds.

◆ my_timer_milliseconds()

ulonglong my_timer_milliseconds ( void  )

A millisecond timer.

Returns
the current timer value, in milliseconds.

◆ my_timer_nanoseconds()

ulonglong my_timer_nanoseconds ( void  )

A namoseconds timer.

Returns
the current timer value, in nanoseconds.

◆ my_timer_ticks()

ulonglong my_timer_ticks ( void  )

A ticks timer.

Returns
the current timer value, in ticks.