L4Re - L4 Runtime Environment
|
Files | |
file | rdtsc.h |
time stamp counter related functions | |
file | rdtsc.h |
time stamp counter related functions | |
Macros | |
#define | L4_TSC_INIT_AUTO 0 |
Automatic init. | |
#define | L4_TSC_INIT_KERNEL 1 |
Initialized by kernel. | |
#define | L4_TSC_INIT_CALIBRATE 2 |
Initialized by user-level. | |
#define | L4_TSC_INIT_AUTO 0 |
Automatic init. | |
#define | L4_TSC_INIT_KERNEL 1 |
Initialized by kernel. | |
#define | L4_TSC_INIT_CALIBRATE 2 |
Initialized by user-level. | |
Functions | |
l4_cpu_time_t | l4_rdtsc (void) |
Read current value of CPU-internal time stamp counter. More... | |
l4_uint32_t | l4_rdtsc_32 (void) |
Read the lest significant 32 bit of the TSC. More... | |
l4_cpu_time_t | l4_rdpmc (int nr) |
Return current value of CPU-internal performance measurement counter. More... | |
l4_uint32_t | l4_rdpmc_32 (int nr) |
Return the least significant 32 bit of a performance counter. More... | |
l4_uint64_t | l4_tsc_to_ns (l4_cpu_time_t tsc) |
Convert time stamp to ns value. More... | |
l4_uint64_t | l4_tsc_to_us (l4_cpu_time_t tsc) |
Convert time stamp into micro seconds value. More... | |
void | l4_tsc_to_s_and_ns (l4_cpu_time_t tsc, l4_uint32_t *s, l4_uint32_t *ns) |
Convert time stamp to s.ns value. More... | |
l4_cpu_time_t | l4_ns_to_tsc (l4_uint64_t ns) |
Convert nano seconds into CPU ticks. More... | |
void | l4_busy_wait_ns (l4_uint64_t ns) |
Wait busy for a small amount of time. More... | |
void | l4_busy_wait_us (l4_uint64_t us) |
Wait busy for a small amount of time. More... | |
l4_uint32_t | l4_calibrate_tsc (l4_kernel_info_t *kip) |
Calibrate scalers for time stamp calculations. More... | |
l4_uint32_t | l4_tsc_init (int constraint, l4_kernel_info_t *kip) |
Initialitze scaler for TSC calicaltions. More... | |
l4_uint32_t | l4_get_hz (void) |
Get CPU frequency in Hz. More... | |
|
inline |
Wait busy for a small amount of time.
ns | nano seconds to wait |
Definition at line 317 of file rdtsc.h.
References l4_ns_to_tsc(), and l4_rdtsc().
|
inline |
Wait busy for a small amount of time.
us | micro seconds to wait |
Definition at line 327 of file rdtsc.h.
References EXTERN_C_END, l4_ns_to_tsc(), and l4_rdtsc().
|
inline |
Calibrate scalers for time stamp calculations.
Determine some scalers to be able to convert between real time and CPU ticks. This test uses channel 0 of the PIT (i8254) or the kernel KIP, depending on availability. Just calls l4_tsc_init(L4_TSC_INIT_AUTO).
Definition at line 179 of file rdtsc.h.
References l4_tsc_init(), and L4_TSC_INIT_AUTO.
l4_uint32_t l4_get_hz | ( | void | ) |
Get CPU frequency in Hz.
|
inline |
Convert nano seconds into CPU ticks.
ns | nano seconds |
Definition at line 303 of file rdtsc.h.
Referenced by l4_busy_wait_ns(), and l4_busy_wait_us().
|
inline |
|
inline |
|
inline |
Read current value of CPU-internal time stamp counter.
Definition at line 185 of file rdtsc.h.
Referenced by l4_busy_wait_ns(), and l4_busy_wait_us().
|
inline |
l4_uint32_t l4_tsc_init | ( | int | constraint, |
l4_kernel_info_t * | kip | ||
) |
Initialitze scaler for TSC calicaltions.
Initialize the scalers needed by l4_tsc_to_ns()/l4_ns_to_tsc() and so on. Current versions of Fiasco export these scalers from kernel into userland. The programmer may decide whether he allows to use these scalers or if an calibration should be performed.
constraint | programmers constraint:
|
kip | KIP pointer |
Referenced by l4_calibrate_tsc().
|
inline |
Convert time stamp to ns value.
tsc | time value in CPU ticks |
|
inline |
|
inline |